Передача многостраничного отчета в Excel

отредактировано 05:22 Раздел: FastReport 2.xx VCL
Нужно передать многостраничный отчет в MS Excel, при этом чтобы шапка была только одна - на самом верху. Т.е. как будто бы отчет был выведен на неограниченном по высоте листе. Можно ли каким-либо образом исхитриться и выполнить задуманное?

Комментарии

  • отредактировано 05:22
    написал:
    Можно ли каким-либо образом исхитриться и выполнить задуманное?
    Я разрешаю вам это.

    frOLEExcelExport уже пробовали?
  • отредактировано January 2005
    Пробовал, хотя предпочитаю JsExcelExport. OLE уж больно долго переводит отчет (минут 30-40 ;) ). Но ведь шапка будет повторятся в екселе столько раз, сколько листов в отчете (50 А3), а нужна ровно одна шапка в самом верху.
    Дпустим есть отчет на двух листах:
    Page1:
    +----------------+
    | Простой пример |
    +------+---------+
    |  id  |  value  |
    +------+---------+
    |   1  | Nokia   |
    |   2  | Samsung |
    |   3  | Sony    |
    |   4  | Alcatel |
    +------+---------+
    
    Page2:
    +------+---------+
    |  id  |  value  |
    +------+---------+
    |   5  | Motorola|
    |   6  | Siemens |
    |   7  | LG      |
    +------+---------+
    |  конец отчета  |
    +------+---------+
    
    В MS Excel переводится так:
    
    +----------------+
    | Простой пример |
    +------+---------+
    |  id  |  value  |
    +------+---------+
    |   1  | Nokia   |
    |   2  | Samsung |
    |   3  | Sony    |
    |   4  | Alcatel |
    +------+---------+
    +------+---------+
    |  id  |  value  |
    +------+---------+
    |   5  | Motorola|
    |   6  | Siemens |
    |   7  | LG      |
    +------+---------+
    |  конец отчета  |
    +------+---------+
    
    А надо так:
    +----------------+
    | Простой пример |
    +------+---------+
    |  id  |  value  |
    +------+---------+
    |   1  | Nokia   |
    |   2  | Samsung |
    |   3  | Sony    |
    |   4  | Alcatel |
    |   5  | Motorola|
    |   6  | Siemens |
    |   7  | LG      |
    +------+---------+
    |  конец отчета  |
    +------+---------+
    
    Ну вот - если это можно сделать средствами экспорта без перестройки отчета, то прошу указать как... Либо предложить еще идеи...
    Буду признателен.
  • отредактировано 05:22
    2 dymka:

    Есть 2 варианта:
    1. Разобраться в исходниках экспорта и добавить нужную функциональность, т.е. определение на каком бэнде лежит экспортируемый объект и принимать решение - экспортировать его или нет.
    2. Создавть второй отчёт, в котором уже на стадии подготовки отчёта скрывать шапки на всех страницах, кроме первой ...
  • отредактировано 05:22
    1. При экспорте неизвестно на каком бэнде лежит объект репорта, поэтому вариант отпадает, хотя хороший был бы вариант, ежели в экспорте флажок был бы - создавать непрерывный отчет или типа того ;) .
    2. Не до конца понял мысль. Создавать отдельный отчет? Такой вариант точно не пойдет - плодить кучу отчетов неохота.
    Сейчас пока делаю - вешаю скрипт на хеадер типа
    Visible := not [EXPORT] or ([PAGE#] = 1)
    и переменную [EXPORT] заполняю взависимости от действия: на экран или в ексель, но остаются разрыва в екселе в виде пустой строки.
  • отредактировано January 2005
    Не наглей, dymka!
    Тебе предложили два варианта, но по-твоему один "отпадает", второй "не пойдет"...
    Давай-ка думай сам!
  • отредактировано 05:22
    написал:
    1. При экспорте неизвестно на каком бэнде лежит объект репорта, поэтому вариант отпадает, хотя хороший был бы вариант, ежели в экспорте флажок был бы - создавать непрерывный отчет или типа того smile.gif.

    Кто тебе сказал, что тебе ничего неизвестно об объекте ??? CurReport.Pages[НОМЕР_СТРАНИЦЫ_В_FRF].FindObject(ИМЯ_ОБЪЕКТА) ещё никто не отменял ...
    написал:
    2. Не до конца понял мысль. Создавать отдельный отчет? Такой вариант точно не пойдет - плодить кучу отчетов неохота.
    Сейчас пока делаю - вешаю скрипт на хеадер типа
    Visible := not [EXPORT] or ([PAGE#] = 1)
    и переменную [EXPORT] заполняю взависимости от действия: на экран или в ексель, но остаются разрыва в екселе в виде пустой строки.

    Можно и так ...

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.