From word to fastreport
Утилита импорт документов MS Office в дизайнер отчетов Fast Report.утилита FRIMPORTОблегчит вам создание новых отчетов для ПО «Атирра»Вы легко сможете перевести ваши формы Excel и Word в формат Fast Report
Автор утилиты: Михаил Ларин
« Последнее редактирование: Марта 20, 2013, 10:34:10 от Шумко Дмитрий »
- Форум A4on.TV и ПО «Атирра» »
- Программный продукт «Атирра» »
- Дополнения »
- Импорт документов MS Office в дизайнер отчетов Fast Report
Skip to forum content
My Visual Database
A Simple Solution for Creating Databases
You are not logged in. Please login or register.
Active topics Unanswered topics
Pages 1
You must login or register to post a reply
1 (edited by mcsimm )
Topic: Импорт шаблона документа в Fast Report
Добрый день!В процессе изучения MVDB заинтересовался возможностью создания отчета в Fast Report из уже имеющейся формы документа, например MS Word или Excel. По форумам нашёл утилиту, которая позволяет это сделать. Точнее, делается в два этапа:1) Сначала документ надо сохранить в формате XPS2) Затем уже преобразовать в *.FR3У утилиты есть, естественно, и некоторые недостатки:1) XPS нужен только версии 1.0. Тот, что делает Office 2007 или виртуальный принтер XPS в Windows 10 уже не подходит, пришлось мне поднять в виртуалке Windows XP и установить XPS Essentials Pack с сайта Майкрософт.;2) Шрифт в экспорте задаётся только один;3) Требуется всё-таки окончательная «доработка напильником» полученного документа.Но это всё-же некритичные проблемы, программа достаточно хорошо справляется даже со сложным форматированием. Делал ли автор после этой первой бэты другие версии программы — неизвестно (я не нашёл, как и имени самого автора).Прилагаю архив с этой программой к сообщению.
Нашёл здесь https://www.fastreport.ru/ru/forum/inde … topic=6326
2 Reply by mcsimm
Re: Импорт шаблона документа в Fast Report
Ещё один способ, без использования сторонних утилит, тоже с недостатками, через объект RichTextEdithttps://helpdesk.freshoffice.ru/hc/ru/a … %B8%D1%8F-
3 Reply by DriveSoft
Re: Импорт шаблона документа в Fast Report
Posts: 3
Pages 1
You must login or register to post a reply
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 нулевое). М.б., из-за этого тормозит.
А «Весь лист» — не врубаюсь. Где его взять-то, лист, если заранее даже не знаешь, есть ли вообще в подчиненной таблице записи и сколько их там.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
void btn_FormActMO_Clickobject sender, EventArgs e // Формирование акта МО (; GetCheckedValue) report1.() report1.(, txtbx_NumActMO..() // номер акта МО report1SetParameterValue"DateActMO", dateTP_DateActMOValueDateToLongDateString); report1. (, txtbx_FIO..() // ФИО освидетельствуемого report1SetParameterValue"dateBirthday", dateTP_DataBirthdayValueDateToShortDateString); report1.(, txtbx_Adress..() // Адрес места жительства report1SetParameterValue"InfoPerson", txtbx_InfoTextToString); report1.(, txtbx_InfoMO.. () // Основание для МО report1SetParameterValue"MedPodrazdelenie", MedPodrazdelenieName; report1.(, dateTP_DateBeginMO..(); report1.(, lblMedWorker..() // Кем освидетельствован report1SetParameterValue"Appearance", Get_AppearanceToString); report1.(, Get_Complaints. () // Жалобы на свое состояние report1SetParameterValue"OtherComplaints", txtbx_ComplaintsTextToString); report1.(, Get_ChangeMentality) // Изменения психической деятельности report1SetParameterValue"SchulteTest", Get_SchulteToString); report1.(, VegSosReactionName) // 9. Вегетативно-сосудистые реакции report1SetParameterValue"Eyes", Get_EyesToString); report1. (, ReactionLightName) // Реакция на свет report1SetParameterValue"Sklers", SklersName; report1.(, NistagmName) // Нистагм report1.(, Get_Speech.() // Речь report1SetParameterValue"Walking", Get_WalkingToString); report1.(, StabilityRombergName) // Устойчивость в позе Ромберга report1SetParameterValue"FingerNose", FingerNoseName; report1. (, ResultTashenaName) // результат пробы Ташена report1SetParameterValue"NevousSystemDisease", NervousSystemDiseaseName; report1.(, txtbx_NervousSystemDisease..() report1.(, InfoUseDrugsName) // 12. Сведения о последнем употреблении алкоголя, лекарственных средств report1SetParameterValue"OtherIUD", txtbx_InfoUseDrugsTextToString); report1. (, dateTP_TimeFirstMO..() // 13.1 Время первого исследования report1SetParameterValue"Instruments", lblMedInstrumentsText; if chckbx.) .(, chckbx.) > report1.(, dateTP_TimeSecondMO..() // 13.2 Время второго исследования report1SetParameterValue"Instruments2", lblMedInstruments2Text; > report1SetParameterValue"ResultsToxic", txtbx_ResultsToxicText; report1.(, TimePicker_RezultToxic.. (); report1SetParameterValue"OtherInfo", txtbx_OtherInfoTextToString); report1.(, dateTP_DateTimeEndMO..(); report1.(, MedResultsName) // 16. Медицинское заключение report1SetParameterValue"DateMedResults", dateTP_DateMedResultsValueToShortDateString); report1. (; >




