Один из вариантов, который поможет справиться с данными, - это использовать задачу SSIS для ночной записи (или некоторого интервала) данных электронной таблицы в таблицу SQL и кодировать отчет в соответствии с этим - пользователям все еще приходится обновлять электронную таблицу.и вы можете использовать некоторую производительность для отчета.
Ваша большая проблема, на мой взгляд, заключается в использовании кристалла и в два раза:
1: подотчеты будут запускаться один раз для каждой строки подробностей.происходят, так что один подотчет может выполняться десятки или сотни раз.Даже если они находятся на верхнем уровне (по одному на страницу и т. П.), Накладные расходы на эти подотчеты являются неприятными.
2: механизм Crystal не является самым быстрым способом сопоставления данных (но будетбыть единственным способом сделать это на листе Excel).
Есть несколько вещей, которые вы можете сделать с этим, но оба они требуют кучу переделок:
1: Предполагая, чтоВы можете использовать мое предложение по переносу данных в SQL, писать сохраненные процедуры для фактического создания данных отчета (сгруппированных, отсортированных, отфильтрованных и т. д.) и просто использовать Crystal для их отображения (вместо того, чтобы механизм Crystal делал все).Это должно существенно повлиять на производительность каждого отчета.
2: если у вас много отчетов с одинаковым форматированием (т. Е. 4 столбца данных и аналогичные графики), вы можете объединить их в сохраненных процессах.в 1, поэтому один сохраненный процесс возвращает данные для нескольких отчетов.Это уменьшает количество поездок и количество отчетов, которые будут обработаны.Например, ваш сохраненный процесс может вернуть набор данных, например:
ReportName Col1Name Col1Value Col2Name Col2Value
SubReport1 Name Joe Bloggs Orders 12
SubReport1 Name Jane Bloggs Orders 7
SubReport2 Product Trousers StockLevel 10
SubReport2 Product Shirts StockLevel 15
Отчет Crystal может взять этот набор данных и превратить его в подотчеты, сгруппировав по столбцу ReportName.Этот метод может усложнить применение специфичного для отчета форматирования, поэтому его необходимо делать с учетом этого.
В прошлом я использовал оба этих метода для создания отчетов, которые выполняются на несколько порядков быстрее, чем отчеты.на котором они были основаны.