F_XLSREP
Краткое описание :
Оптимизировать время формирования XLT-отчетовОписание :
XLS-Отчеты по шаблонамЧто измененно :
Оптимизировать время формирования XLT-отчетов
Как измененно :
В рамках решения задачи было сделано следующее:
1. Было проведена оптимизация кода формирования XLT-отчетов, в результате
достигнута незначительное увеличение скорости.
2. Было проведено исследование скорости формирования в зависимости от данных.
На скорость значительно влияет фактор уникальности выводимых строковых данных.
На примере отчета "Финансово-расчетные операции | Отчеты | Интерактивные отчеты
| Интерактивный аналитический отчет", разница в скорости будет порядка 6-ти раз
между:
1. отчетом где все строковые данные по колонкам одинаковые
и
2. отчетом где все строковые данные уникальны
Чем больше одинаковых строковых данных, тем отчет будет выводиться быстрее.
3. Было проведено исследование влияния прочих факторов на скорость формирования.
3.1. Если в шаблоне после "основной таблицы" (таблицы с основными данными
отчета), есть еще что-либо то отчет будет формироваться медленнее.
3.2. Также негативно сказываются, наличие в шаблоне:
- условного форматирования
- формул
- объединения ячеек
- обычного форматирования
& УНАСЛЕДОВАННЫЕ ИЗМЕНЕНИЯ ШАБЛОНОВ:
GALREPBUILDER.XLA
F_XLSREP
Краткое описание :
Ошибка при формировании Excel отчетаОписание :
Отчеты в XLS в целомЧто измененно :
В некоторых случаях, при формировании Excel-отчета по
XLT-шаблону возникает ошибка MS Excel:
Run-time error '-2147417848 (80010108)':
Automation error
The object invoked has disconnected from its clients.
Ошибка возникает при вставке новых записей для формирования данных таблицы
отчета.
Проявление проблемы весьма не устойчиво. Проблема возникает на версиях "Excel
2010" и "Excel 2013", при этом на тех же данных в "Excel 2007" ошибка не
возникает. Проблема не возникает при формировании отчетов с не большим
количеством данных. Предположительно проблема возникает при недостаточном
количестве свободной оперативной памяти на машине клиента (2-4 ГБ). При
выполнении макроса формирования отчета вручную (не из системы Галактика),
дополнительно возникает сообщение MS Excel: "Недостаточно ресурсов. Выберите
меньше данных или закройте другие приложение".
На сайте MicroSoft есть обсуждения по аналогичной проблеме:
https://answers.microsoft.com/ru-ru/msoffice/forum/msoffice_excel-mso_other/exce
l-2010/d004cd86-b722-48ea-82c5-d4e24f257461
Как измененно :
Ранее при формировании данных таблицы отчета, все необходимые
строки вставлялись за 1-ну итерацию. Теперь разработал функционал, позволяющий
управлять количеством строк вставляемых за 1-ну итерацию. Количество строк
можно задать в параметрах приложения (galnet.cfg), секция GalRepBuilderXLA (в
"фигурных скобках"), параметр CopyBlockRowsCount. Например:
{GalRepBuilderXLA}
CopyBlockRowsCount=100
Если параметр не задан, либо равен 0-лю, то это система как и ранее будет
вставлять все строки за 1-ну итерацию. Чем меньше строк вставляется за 1-ну
итерацию, тем меньше требуется оперативной памяти для выполнения операции, но
тем дольше будет происходить формирование данных таблицы отчета.
& УНАСЛЕДОВАННЫЕ ИЗМЕНЕНИЯ ШАБЛОНОВ:
GALREPBUILDER.XLA