Собрать отчет из многих баз

  • Автор темы Автор темы anna
  • Дата начала Дата начала
Действительно, нет ничего лучше эксперимента - снятие самого простого отчета из видов (без поиска) со всех баз заняло ~30 секунд на клиенте. На сервере, значит, будет еще быстрее.
Можно ещё ускорить процентов на 50, как минимум, если заморочится с многопоточностью на Java.
 
Давно хотел поделиться, генератор отчетов для БД на лотусе
 

Вложения

Там все проще простого, добавляете в Настройки:
1) все Ваши БД
2) все необходимые формы из выбранных БД, по которым планируется отчет
3) фильтры для формулы отбора

Далее создаете отчетную форму с указанием БД, форм, фильтров, добавляете необходимое кол-во группировок и столбцов, в которых пишите формулу подсчета. Запускаем и получаем отчет в формате .xls, .html. Думаю в тонкостях разберетесь
 
А вот любопытно, это мне показалось или взаправду: GetDocumentByKey(key) отрабатывает намного дольше, чем GetDocumentByKey(key, True)?
 
Там все проще простого, добавляете в Настройки:
1) все Ваши БД
2) все необходимые формы из выбранных БД, по которым планируется отчет
3) фильтры для формулы отбора

Далее создаете отчетную форму с указанием БД, форм, фильтров, добавляете необходимое кол-во группировок и столбцов, в которых пишите формулу подсчета. Запускаем и получаем отчет в формате .xls, .html. Думаю в тонкостях разберетесь
При выборе фильтра возникает ошибка "В формуле отсутствует подстановочный знак (#V#)"
 
Конечно. При наличии "true" отбираются только точные совпадения ключа поиска, а без него "похожие" типа LIKE в SQL. Нужно же ещё разобраться похожие они или нет.
 
При выборе фильтра возникает ошибка "В формуле отсутствует подстановочный знак (#V#)"
Там в поле формула надо прописать, что-то на подобии Status=#V#
В случае типа фильтра "Дата", формула будет выглядеть так @Created>=#DV1# & @Created<=#DV2#
 
Последнее редактирование модератором:
@Darkhan, я правильно понимаю, что по сути - это не Excel формат, а просто файл с расширением?

еще моменты (брюзжание):
-конкатенация строк для отчета - долго работать будет... (ну и память, разумеется)
вполне можно сразу писать в поток (если нужно заглядывать "назад" + буфер)
-вывод в файл - почему бы не NotesStream
-название файла - уж 100500 раз были здесь либы для создания временных файлов во спец. месте
-раз уж хтмл - почему бы не расширить OpenXML-ом
 
@Darkhan, я правильно понимаю, что по сути - это не Excel формат, а просто файл с расширением?
совершенно верно
-конкатенация строк для отчета - долго работать будет... (ну и память, разумеется)
идет запись в самописный LS StringBuilder, конкатенация происходит за счет Join массива строк
-вывод в файл - почему бы не NotesStream
на момент релиза (6 лет назад) повсеместно использовали олдскульные инструменты
-название файла - уж 100500 раз были здесь либы для создания временных файлов во спец. месте
думаю, стоит задуматься
-раз уж хтмл - почему бы не расширить OpenXML-ом
никак руки не доходят)
 
Общая концепция выглядит следующим образом:

0) Берем базу данных (в цикле, если отчет по нескольким)
1) Получаем коллекцию по формуле отбора (сформированной из фильтров)
2) Итерируя по коллекции получаем док, прогоняем по группам и столбцам,о загоняя данные в объекты (чтобы повторно не пробегаться по коллекции)
3) Пробегаемся по собранным объектам и печатаем в файл
 
Там все проще простого, добавляете в Настройки:
1) все Ваши БД
2) все необходимые формы из выбранных БД, по которым планируется отчет
3) фильтры для формулы отбора

Далее создаете отчетную форму с указанием БД, форм, фильтров, добавляете необходимое кол-во группировок и столбцов, в которых пишите формулу подсчета. Запускаем и получаем отчет в формате .xls, .html. Думаю в тонкостях разберетесь
А я что-то не могу разобраться сходу. Может быть, в отдельную тему? мне кажется, это актуально и заслуживает внимания.
 
Мы в соцсетях:

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