Проблемы с экспортом
Не пойму в чем проблема. Экспорт совершенно не работает. Отчет представляет собой довольно большую таблицу, лист формата А3. При экспорте в PDF формируются пустые листы (даже не листы, а просто ничего нет). При экспорте в текстовый формат формируется текстовый файл (prn) с частью данных отчета, причем без рамочек, без линий, без ничего, обрывки текста (пробовал и с включенной псевдографикой, и без). А главное, то что мне нужно на данный момент, при экспорте в Excel вылетает ошибка: ругается на OLE и дебаггер останавливается на след процедуре:
procedure TfrxExcel.SetColSize(x: Integer; Size: Extended);
var
r: Variant;
begin
r := WorkSheet.Columns;
r.Columns[x].ColumnWidth := Size;
end;
а именно на строке r.Columns[x].ColumnWidth := Size;
Что ему не нравится? Количетво столбцов? Неужели есть ограничение?
procedure TfrxExcel.SetColSize(x: Integer; Size: Extended);
var
r: Variant;
begin
r := WorkSheet.Columns;
r.Columns[x].ColumnWidth := Size;
end;
а именно на строке r.Columns[x].ColumnWidth := Size;
Что ему не нравится? Количетво столбцов? Неужели есть ограничение?
Комментарии
В версии 3.09 скорость экспорта в Excel через OLE увеличена в несколько раз (возможно десятков раз) - быстрее уже врядли получится.
Вертикальный текст в Excel сделаем как текст с поворотом на 90 (Excel это поддерживает).
Насчет PDF - приишлите *.fp3 файл (сохрантие из preview) на адрес fediachov@fast-report.com
При разработке каждого отчета нужно помнить о том, куда эти отчеты будут экспортироваться и равняться на ограничения этих форматов, а не на возможности FastReport, которые могут значительно отличаться в большую сторону.
Я добавлю выдержку из документации по Enterprise Edition, которая войдет в следующую версию штатной документации "FastReport 3 - руководство пользователя".
----
Рекомендации по разработке отчетов, результат которых будет
представлен в табличных форматах.
Очень многие форматы используют табличное представление данных. Из
применяемых в сервере отчетов к ним относятся форматы HTML, XLS, XML,
RTF. Никаких пересечений или наслоений ячеек в подобных форматах
недопустимо (если брать в рассмотрение именно табличную разметку, это
касается HTML и RTF), в отличии от свободы в процессе разработки
шаблона отчета в дизайнере FastReport. Фильтры экспорта, как правило,
максимально учитывают эти требования при переносе объектов из отчета
FastReport в результирующий файл. Это реализуется при помощи
специальных алгоритмов учета пересечений объектов и оптимального их
расположения. В местах пересечений объектов возникают новые столбцы и
строки в результирующей таблице. Это необходимо для сохранения точного
позиционирования переносимых объектов FastReport. Большое количество
пересекающихся объектов в отчете приводит к росту числа столбцов и
строк в таблице, что усложняет ее дальнейшее использование в и
замедляет процесс экспорта. В процессе разработки шаблона отчета
помните об этом, если Вы хотите в последующем экспортировать свои
отчеты в какой-либо из форматов, отличный от внутреннего формата
FastReport. Избежать перекрытия ячеек помогут инструменты выравнивания
текстовых объектов по сетке. Проследите за тем, чтобы было включено
выравнивание по сетке. Для упрощения выравнивания можно увеличить шаг
сетки. При создании таблиц в отчетах проследите чтобы границы соседних
ячеек соприкасались друг с другом. Важно, чтобы ячейки не
пересекались. Алгоритм фильтра экспорта сделает отсечение ячеек, но
результат экспорта может быть далек от желаемого (вы увидите не совсем
то, что хотели). Располагайте объекты так, чтобы они находились на
одной линии, как по вертикали, так и по горизонтали. В этом могут
помочь выносные линии. Применение этих простых правил на практике
поможет Вам создать отчет, который будет прекрасно выглядеть после
экспорта в любой из форматов, которые используют табличную разметку
для представления данных.
----
Я уже писал несколько раз по поводу экспорта в теме "Крэш программы при экспорте PDF". Безрезультатно.
Может хоть Вы что посоветуете. Хоть обнадежте, что в новой версии что-то поменялось, а то пришлось отдать программу с припиской, что в любой момент она может просто "свалиться".