
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.123] |
![]() |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Всем привет! Кто то знает как импортировать MS-Word/Excel документы в FastReport v3.2?
|
Сообщ.
#2
,
|
|
|
ERrorMAKros
никак. Фаст не поддерживает эти форматы... возможен только экспорт... |
Сообщ.
#3
,
|
|
|
Странный вопрос... А зачем?
![]() FastReport - это генератор отчетов, а не редактор документов. Он сам создает отчеты. И соответственно может их выдавать в разные форматы... |
Сообщ.
#4
,
|
|
|
ERrorMAKros
а в чём проблема сделать из Word/Excel тот же отчёт? ![]() не обязательно их в фаст переносить... |
Сообщ.
#5
,
|
|
|
В фасте есть статические поля и поля, подключаемые к таблицам. Если взять виртуальную таблицу (т.е. хранимую в памяти) и в нее перекачать данные из того же Excel, то его можно просто сгенерить заново. Если же перегонять еще и текст в нужное место - то там некоторое неудобство с пересылками текста вида
m1:=(frxReport1.findobject('frmLabname') as TfrxMemoView); m1.text:=nameoflab; где var m1:TfrxMemoView; Т.е. перегнать в фаст из ворда или экселя можно, но заранее подготовленный в фасте шаблон должен при этом быть. |
Сообщ.
#6
,
|
|
|
Цитата dron-s @ Когда-то страдал такой фигней. У этого подхода есмть два минуса: 1. нужно чтобы на компе пользователя был установлен офис; 2. отчет создается медленнее из-за необходимости запуска сервера приложения а в чём проблема сделать из Word/Excel тот же отчёт? не обязательно их в фаст переносить... |
Сообщ.
#7
,
|
|
|
При этом пересылается в тот же Excel запредельно медленно и ничего не сделаешь...
|
Сообщ.
#8
,
|
|
|
Цитата нужно чтобы на компе пользователя был установлен офис; на счёт это, вроде бы офис у всех стоит... Цитата отчет создается медленнее из-за необходимости запуска сервера приложения медленне получается буквально на 1-2 секунды... ну если уж так не устраивает, то можно впринципе и ручками начертить... но это равно тому, что заниматься ананизмом... ![]() |
Сообщ.
#9
,
|
|
|
Цитата dron-s @ ошибаешьсяна счёт это, вроде бы офис у всех стоит... Цитата dron-s @ Если отчет простой и генерируется в среднем за 100 мс, то задержка на 1-2 секунды значительна. медленне получается буквально на 1-2 секунды... |
Сообщ.
#10
,
|
|
|
Цитата ошибаешься по крайней мере я не встречал ещё не одного клиента, у которого бы не стаял офис (это из моей практики)... хотя сейчас у 1-2 встречал что стоит OpenOffice... полное подобие офиса только он Freeware... |
Сообщ.
#11
,
|
|
|
Кабы 1-2 с... у меня, к примеру, отчет из примерно 5000 записей и около 15-20 полей (по выбору) в Excel генерится около получаса (правда, по сети и через MSSQL7), в то же время в фасте - несколько секунд (полей при этом беру вполовину меньше).У фаста ширина листа не безгранична, к сожалению.
Автора темы сей вопрос уже не волнует, но если есть разумный способ ускорения процедуры перегона полей из таблицы БД в Excel (например, перегонять не в отдельные ячейки, а сразу всю строку) - было бы интересно узнать - как. Я перегоняю при помощи кода непосредственно в Excel без применения каких-либо компонентов и разумного способа ускорения пока не нашел. Ячейки заполняются медленно. Применение какого-л. компонента даст ускорение? А перегнать из Excel в фаст - все же не проблема, хоть и не без заморочек. |
![]() |
Сообщ.
#12
,
|
|
Цитата parle @ у меня, к примеру, отчет из примерно 5000 записей и около 15-20 полей (по выбору) в Excel генерится около получаса А у меня отчет из 20000 строк и десятка полей - минуту генерится. Инструментом нужно уметь пользоваться.. Цитата parle @ например, перегонять не в отдельные ячейки, а сразу всю строку) ЛОЛ. При таком подходе - он у тя может и весь день может генерится. Обычно передаёт весь лист. |
Сообщ.
#13
,
|
|
|
Цитата parle @ А перегнать из Excel в фаст - все же не проблема, ну раз не проблема, то ждём от Вас наглядного примера, так сказать посмотреть на это... |
Сообщ.
#14
,
|
|
|
jack128, если не в лом, подскажите, как Вы это делаете. У меня отчет в Excel - задача вторичная по отношению к БД, но скорость передачи весьма удручает. Передаю из основной и нескольких подчиненных таблиц, т.е. одной главной записи соответствуют несколько подчиненных. Инструментом пользоваться нужно уметь, слов нет. Подскажите, как,-хотя бы направление.
Теперь по фасту. 1.Я писал уже, что для передачи шаблон д.б. заготовлен заранее. В принципе, и это обойти можно, т.к. отчет в фасте - это нечто XML-подобное, но все же лучше его заготовить. 2.memo-поля с текстом перегнать довольно легко - нужно просто (пока) запомнить их имена. 3.Для заполнения полей в detail band из таблиц БД удобно пользоваться виртуальной таблицей. Наверное, они в разных пакетах есть, я пользуюсь vttable из компонентов библиотеки SDAC (это - компоненты для работы с mssql). Moжно взять таблицы AbsolutDatabase, чтобы не связываться с BDE. 4.Если перегнать из БД в Excel - не проблема даже с учетом моего не-слишком-умения-применения-инструмента, то и обратная задача - тоже не проблема.Загоняем из ячеек Excel в свою таблицу. 5.А загнав данные в таблицу - просто перестроить отчет по шаблону.При этом отдельные записи (заголовки и т.п., не входящие в таблицу) перегнать через механизм, что я приводил - т.е. m1:=(frxReport1.findobject('frmLabname') as TfrxMemoView); m1.text:=nameoflab; тут у меня frmLabName - имя поля в отчете, а m1 - внутренняя типа TfrxMemoView. NameOfLab - какая-то строка. Недостатки - очевидны. Перегоняешь не какую попало таблицу Excel, а таблицу определенной формы. Правильнее будет сказать - просто перестраиваешь отчет. Тогда можно перестроить и чарт, если он включен в отчет. Тут, ведь, результат важен - вышло - не вышло, а отсутствие чистоты подхода вторично. А для чистоты подхода уже нужно драконить весь формат отчета, это с точки зрения затрат времени не вполне оправдано, хоть и само по себе интересно. Таким же образом, кстати, можно выкусить из отчета FastReport табличные данные - все столбцы под одним своим именем, остается их найти и, скажем,- в файл. Пример сейчас не приведу - эта задача у меня на работе. Еще раз прошу просвятить насчет передачи в Excel. Завтра на работе буду - напишу, как я это вымучиваю. У меня там, правда, перед передачей каждой строки - кучища проверок, вычислений номеров ячеек, объединений, проверок на Not VarIsNull для всех строк и их объединения(а иначе, зараза, ругается при преобразовании в строку, если поле в mssql нулевое). М.б., из-за этого тормозит. А "Весь лист" - не врубаюсь. Где его взять-то, лист, если заранее даже не знаешь, есть ли вообще в подчиненной таблице записи и сколько их там. ![]() |
Сообщ.
#15
,
|
|
|
Я для ускорения передачи данных в ексель сначала все выгружал в текстовый CVS, а потом его открывал а екселе...
|