• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Folder & View

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

Anatoly

Нужно отобранные (агентом) в папку документы просматривать в разных разрезах.
Можно-ли создать нужные View и в их SELECT отбирать только документы помещенные в конкретную папку?
Или придется создать на каждый вариант просмотра отдельную папку и в агенте каждый нужный документ помещать во все папки?
 
N

nvyush

на каждый вариант просмотра отдельную папку и в агенте каждый нужный документ помещать во все папки
Агент получает коллекцию нужных документов, далее для каждой папки
Call notesDocumentCollection.PutAllInFolder( folderName$ [, createonfail ] )
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
лучше одну папку с категорией, а потом резать доки по категории
 
N

nvyush

Можно также сортировку по нажатию на заголовки столбцов использовать.
 
A

Anatoly

Сортировка не годится.
Нужно смотреть не отсортированные, а по категориям.
Причем по разным реквизитам. Их уже 10+...
Придется плодить папки и раскидывать агентом.
А, вообще, есть возможности через формулу/свойства_документа узнать вхождение документа в конкретную папку.
Или только сканировать саму папку?
 
N

nvyush

А, вообще, есть возможности через формулу/свойства_документа узнать вхождение документа в конкретную папку.
link removed

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

Xalet

А в сами доки вписать инфу, что они отобраны агентом, а потом селектами этот флаг искать не проще?
 
N

nvyush

А в сами доки вписать инфу, что они отобраны агентом, а потом селектами этот флаг искать не проще?
А если условия отбора задаёт пользователь и одновременно могут работать несколько пользователей?
 
A

Anatoly

А в сами доки вписать инфу, что они отобраны агентом, а потом селектами этот флаг искать не проще?

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Как часто агент будет отбирать документы?
Список отобранных документов будет общий или каждый юзер может составлять свой список?
 
N

nvyush

При повторном отборе, тогда придется чистить предварительно этот флаг.
Сдается мне при большом количестве документов это будет напряжнее, чем просто очистить папку.

Call notesView.AllEntries.StampAll("Flag", "0")
 
A

Anatoly

Как часто агент будет отбирать документы?
Список отобранных документов будет общий или каждый юзер может составлять свой список?
На данный момент суть в том, что юзер (1) отбирает документы за период от года до декады и анализирует их по ряду параметров: в разрезе отделов, разных категорий и статусов. Базе порядка 60к+ документов, Отбирается от нескольких сотен до ... Все зависит от анализируемого периода.
Сейчас агент сканирует по дате ВСЮ базу и либо снимает, либо ставит флажок. Медленно получается...
 
X

Xalet

При повторном отборе, тогда придется чистить предварительно этот флаг.
Сдается мне при большом количестве документов это будет напряжнее, чем просто очистить папку.
Ладно, будем "путить" smile.gif в десяток папок.

Вообще было бы неплохо знать, что конкретно делаете и зачем. Тогда, возможно, и советы толковые посыпятся...
 
A

Anatoly

Call notesView.AllEntries.StampAll("Flag", "0")

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

Кстати, как коллекция получится быстрее, db.Search(по flag=1) или view.AllEntries?
 
O

oshmianski

может имеет смысл выдать пользователю диалог, где он выберет нужные ему параметры, а результат сбросить в MS Excell?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
На данный момент суть в том, что юзер (1) отбирает документы за период от года до декады и анализирует их по ряду параметров: в разрезе отделов, разных категорий и статусов. Базе порядка 60к+ документов, Отбирается от нескольких сотен до ... Все зависит от анализируемого периода.
Сейчас агент сканирует по дате ВСЮ базу и либо снимает, либо ставит флажок. Медленно получается...
При изменении документов и/или перемещении их в папку нагружается индексер. На 60к+ мгновенно он не сработает в любом случае.
Мне кажется, проще и лучше сделать нужное количество представлений и использовать стандартный полнотекстовой поиск для фильтрации по периоду, поставив сортировку keep current order (sortable).

Добавлено: Запрос можно составить один раз и сохранить. И показать пользователю куда тыкать для изменения периода и других параметров.
 
N

nvyush

Мне кажется, проще и лучше сделать нужное количество представлений и использовать стандартный полнотекстовой поиск для фильтрации по периоду, поставив сортировку keep current order (sortable).
Категоризация не поломается?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Поломается. Зато способ самый быстрый. ;)
 
A

Anatoly

Пока остановился на таком варианте:
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"

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

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
Может проблему решить с помощю сторонних средств

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!