На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Импорт в FastReport v3.2.x , Импорт MS-Word/Excel документов в FR v3.2. Как?
    Всем привет! Кто то знает как импортировать MS-Word/Excel документы в FastReport v3.2?
    Сообщение отредактировано: ERrorMAKros -
      ERrorMAKros
      никак. Фаст не поддерживает эти форматы... возможен только экспорт...
        Странный вопрос... А зачем? :blink:
        FastReport - это генератор отчетов, а не редактор документов.
        Он сам создает отчеты. И соответственно может их выдавать в разные форматы...
          ERrorMAKros
          а в чём проблема сделать из Word/Excel тот же отчёт? :)
          не обязательно их в фаст переносить...
            В фасте есть статические поля и поля, подключаемые к таблицам. Если взять виртуальную таблицу (т.е. хранимую в памяти) и в нее перекачать данные из того же Excel, то его можно просто сгенерить заново. Если же перегонять еще и текст в нужное место - то там некоторое неудобство с пересылками текста вида
            m1:=(frxReport1.findobject('frmLabname') as TfrxMemoView); m1.text:=nameoflab;
            где var m1:TfrxMemoView;
            Т.е. перегнать в фаст из ворда или экселя можно, но заранее подготовленный в фасте шаблон должен при этом быть.
              Цитата dron-s @
              а в чём проблема сделать из Word/Excel тот же отчёт?
              не обязательно их в фаст переносить...
              Когда-то страдал такой фигней. У этого подхода есмть два минуса: 1. нужно чтобы на компе пользователя был установлен офис; 2. отчет создается медленнее из-за необходимости запуска сервера приложения
                При этом пересылается в тот же Excel запредельно медленно и ничего не сделаешь...
                  Цитата
                  нужно чтобы на компе пользователя был установлен офис;

                  на счёт это, вроде бы офис у всех стоит...
                  Цитата
                  отчет создается медленнее из-за необходимости запуска сервера приложения

                  медленне получается буквально на 1-2 секунды...
                  ну если уж так не устраивает, то можно впринципе и ручками начертить... но это равно тому, что заниматься ананизмом... :lol:
                    Цитата dron-s @
                    на счёт это, вроде бы офис у всех стоит...
                    ошибаешься

                    Цитата dron-s @
                    медленне получается буквально на 1-2 секунды...
                    Если отчет простой и генерируется в среднем за 100 мс, то задержка на 1-2 секунды значительна.
                      Цитата
                      ошибаешься

                      по крайней мере я не встречал ещё не одного клиента, у которого бы не стаял офис (это из моей практики)... хотя сейчас у 1-2 встречал что стоит OpenOffice... полное подобие офиса только он Freeware...
                        Кабы 1-2 с... у меня, к примеру, отчет из примерно 5000 записей и около 15-20 полей (по выбору) в Excel генерится около получаса (правда, по сети и через MSSQL7), в то же время в фасте - несколько секунд (полей при этом беру вполовину меньше).У фаста ширина листа не безгранична, к сожалению.
                        Автора темы сей вопрос уже не волнует, но если есть разумный способ ускорения процедуры перегона полей из таблицы БД в Excel (например, перегонять не в отдельные ячейки, а сразу всю строку) - было бы интересно узнать - как. Я перегоняю при помощи кода непосредственно в Excel без применения каких-либо компонентов и разумного способа ускорения пока не нашел. Ячейки заполняются медленно. Применение какого-л. компонента даст ускорение?
                        А перегнать из Excel в фаст - все же не проблема, хоть и не без заморочек.
                          Цитата parle @
                          у меня, к примеру, отчет из примерно 5000 записей и около 15-20 полей (по выбору) в Excel генерится около получаса


                          А у меня отчет из 20000 строк и десятка полей - минуту генерится. Инструментом нужно уметь пользоваться..

                          Цитата parle @
                          например, перегонять не в отдельные ячейки, а сразу всю строку)

                          ЛОЛ. При таком подходе - он у тя может и весь день может генерится. Обычно передаёт весь лист.
                            Цитата parle @
                            А перегнать из Excel в фаст - все же не проблема,

                            ну раз не проблема, то ждём от Вас наглядного примера, так сказать посмотреть на это...
                              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 нулевое). М.б., из-за этого тормозит. А "Весь лист" - не врубаюсь. Где его взять-то, лист, если заранее даже не знаешь, есть ли вообще в подчиненной таблице записи и сколько их там. :'(
                                Я для ускорения передачи данных в ексель сначала все выгружал в текстовый CVS, а потом его открывал а екселе...
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0648 ]   [ 16 queries used ]   [ Generated: 19.08.25, 21:23 GMT ]