• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Folder & View

  • Автор темы Автор темы Anatoly
  • Дата начала Дата начала
A

Anatoly

Нужно отобранные (агентом) в папку документы просматривать в разных разрезах.
Можно-ли создать нужные View и в их SELECT отбирать только документы помещенные в конкретную папку?
Или придется создать на каждый вариант просмотра отдельную папку и в агенте каждый нужный документ помещать во все папки?
 
на каждый вариант просмотра отдельную папку и в агенте каждый нужный документ помещать во все папки
Агент получает коллекцию нужных документов, далее для каждой папки
Call notesDocumentCollection.PutAllInFolder( folderName$ [, createonfail ] )
 
лучше одну папку с категорией, а потом резать доки по категории
 
Можно также сортировку по нажатию на заголовки столбцов использовать.
 
Сортировка не годится.
Нужно смотреть не отсортированные, а по категориям.
Причем по разным реквизитам. Их уже 10+...
Придется плодить папки и раскидывать агентом.
А, вообще, есть возможности через формулу/свойства_документа узнать вхождение документа в конкретную папку.
Или только сканировать саму папку?
 
А, вообще, есть возможности через формулу/свойства_документа узнать вхождение документа в конкретную папку.
link removed

Добавлено
Нужно смотреть не отсортированные, а по категориям.
Причем по разным реквизитам. Их уже 10+...
Придется плодить папки и раскидывать агентом.
Есть вариант обойтись одной папкой. Сделать первый категоризованный столбец - вид среза и использовать @SetViewInfo. Документы, разумеется, размножатся по числу срезов, но, КМК, лучше один документ десять раз в одной папке, чем по одному разу в десяти папках. Может я и ошибаюсь, более опытные товарищи поправят.
 
А в сами доки вписать инфу, что они отобраны агентом, а потом селектами этот флаг искать не проще?
 
А в сами доки вписать инфу, что они отобраны агентом, а потом селектами этот флаг искать не проще?
А если условия отбора задаёт пользователь и одновременно могут работать несколько пользователей?
 
А в сами доки вписать инфу, что они отобраны агентом, а потом селектами этот флаг искать не проще?

При повторном отборе, тогда придется чистить предварительно этот флаг.
Сдается мне при большом количестве документов это будет напряжнее, чем просто очистить папку.
Ладно, будем "путить" :) в десяток папок.
 
Как часто агент будет отбирать документы?
Список отобранных документов будет общий или каждый юзер может составлять свой список?
 
При повторном отборе, тогда придется чистить предварительно этот флаг.
Сдается мне при большом количестве документов это будет напряжнее, чем просто очистить папку.

Call notesView.AllEntries.StampAll("Flag", "0")
 
Как часто агент будет отбирать документы?
Список отобранных документов будет общий или каждый юзер может составлять свой список?
На данный момент суть в том, что юзер (1) отбирает документы за период от года до декады и анализирует их по ряду параметров: в разрезе отделов, разных категорий и статусов. Базе порядка 60к+ документов, Отбирается от нескольких сотен до ... Все зависит от анализируемого периода.
Сейчас агент сканирует по дате ВСЮ базу и либо снимает, либо ставит флажок. Медленно получается...
 
При повторном отборе, тогда придется чистить предварительно этот флаг.
Сдается мне при большом количестве документов это будет напряжнее, чем просто очистить папку.
Ладно, будем "путить" smile.gif в десяток папок.

Вообще было бы неплохо знать, что конкретно делаете и зачем. Тогда, возможно, и советы толковые посыпятся...
 
Call notesView.AllEntries.StampAll("Flag", "0")

Можно и так...
Поробую
1) Search по установленным флагу,
2) очистить флаг по коллекции,
3) Search по периоду
4) Установить флаг по коллекции

Кстати, как коллекция получится быстрее, db.Search(по flag=1) или view.AllEntries?
 
может имеет смысл выдать пользователю диалог, где он выберет нужные ему параметры, а результат сбросить в MS Excell?
 
На данный момент суть в том, что юзер (1) отбирает документы за период от года до декады и анализирует их по ряду параметров: в разрезе отделов, разных категорий и статусов. Базе порядка 60к+ документов, Отбирается от нескольких сотен до ... Все зависит от анализируемого периода.
Сейчас агент сканирует по дате ВСЮ базу и либо снимает, либо ставит флажок. Медленно получается...
При изменении документов и/или перемещении их в папку нагружается индексер. На 60к+ мгновенно он не сработает в любом случае.
Мне кажется, проще и лучше сделать нужное количество представлений и использовать стандартный полнотекстовой поиск для фильтрации по периоду, поставив сортировку keep current order (sortable).

Добавлено: Запрос можно составить один раз и сохранить. И показать пользователю куда тыкать для изменения периода и других параметров.
 
Мне кажется, проще и лучше сделать нужное количество представлений и использовать стандартный полнотекстовой поиск для фильтрации по периоду, поставив сортировку keep current order (sortable).
Категоризация не поломается?
 
Поломается. Зато способ самый быстрый. ;)
 
Пока остановился на таком варианте:
1) Очищаю флаг от предыдущего варианта
Sub FlagClear
SearchFormula ={@IsMember(Form;"Inspection":"InspectionRes") & StatFlag=1}
Set dc = CurrDb.Search(SearchFormula,Nothing,0)
Call dc.StampAll("StatFlag", 0)
End Sub

2) Делаю новую выборку и устанавливаю флажок
Sub FlagSet_Inspection
SearchFormula ={Form="Inspection" & DateStart>=[} + Cstr(StartDate) + {] & DateStart<=[} + Cstr(EndDate) +{]}
Set dc = CurrDb.Search(SearchFormula,Nothing,0)
Call dc.StampAll("StatFlag", 1)
End Sub

3) В нужные вью в SELECT включил "& StatFlag=1"

У меня на локальной копии время сократилось кардинально, попробую на днях на рабочей базе у клиента.
 
Может проблему решить с помощю сторонних средств

Например сделать шаблон в экселе с построенными сводными таблицами и графиками.
Затем скидываешь на лист с данными данные, кнопка обновить - и у тебя готовые х срезов. которые можно еще двигать как хошь, менять местами.

Если данных очень много - выгружать на OLAP сервер по ходу жизни, он строит кубы и моментально получается статистика.

ну или просто в реляционную базу данных на который настроить любой репортер (ну как минимум эксель)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab