05.06.2006, 13:21 | #1 |
Участник
|
Возникла проблема с получением имени файла при создании своего канала вывода отчетов.
Здравствуйте!
Возникла проблема с получением имени файла при создание своего канала вывода отчетов. В форму SysPrintForm добавляем канал вывода Excel с полем ввода имени файла, по аналогии со стандартным выводом отчета в Файл. Имя файла сохраняется: SysPrintOptions sysPrintOptions; SysPrintOptions clientSysPrintOptions; clientSysPrintOptions.parmFileName(excelFileName.text()); sysPrintOptions.updatePrintJobSettings(clientSysPrintOptions.pack()); Далее вызывается \Classes\ClassFactory\CreateViewer: case ReportOutputUserType:: Default: { return new ExcelChannelOutputReport(jobsCursor, pagesCursor, report); } Где ExcelChannelOutputReport – класс унаследованный от reportOutputUser и отвечающий за вывод в Exccel. Вопрос состоит в том, как в класс ExcelChannelOutputReport передать введенное в форме имя файла. PS просмотр классов PDFViewer и WebReportHTML результатов не принес |
|
05.06.2006, 14:16 | #2 |
Участник
|
в процессе исследования выяснилось, что при сохранение отчета, например, в PDF файл, собственно файл с введенным именем создается до создания экземпляра класса PDFViewer. А класс PDFViewer имеет метод result который возвращает текстовый буфер, содержащий форматированный PDF документ.
К сожалению, работа с Excel производится через COM, что непозволяет просто создать текстовый буфер и записать его в файл. Буду благодарен за любые идеи по этой теме. |
|
05.06.2006, 15:26 | #3 |
Участник
|
Цитата:
Сообщение от oleg_kap
К сожалению, работа с Excel производится через COM, что непозволяет просто создать текстовый буфер и записать его в файл.
Буду благодарен за любые идеи по этой теме. С уваженем, itfs. |
|
06.06.2006, 14:12 | #4 |
Developer
|
А почему же низя-то ?!
У TextBuffer() есть метод для копирования в буфер обмена, а у объекта Range (COM) есть метод вставки, и даже есть специальная вставка. |
|