- Форум A4on.TV и ПО «Атирра» »
- Программный продукт «Атирра» »
- Дополнения »
- Импорт документов MS Office в дизайнер отчетов Fast Report
Тема: Импорт документов MS Office в дизайнер отчетов Fast Report (Прочитано 8956 раз)
Утилита импорт документов MS Office в дизайнер отчетов Fast Report.
утилита FRIMPORT
Облегчит вам создание новых отчетов для ПО «Атирра»
Вы легко сможете перевести ваши формы Excel и Word в формат Fast Report
Пример использования
http://www.youtube.com/v/lTVd_LuR2HU
Автор утилиты: Михаил Ларин
« Последнее редактирование: Марта 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 2017-11-28 07:46:48 (edited by mcsimm 2017-11-28 08:10:51)
- mcsimm
- Member
- Offline
- From: Братск, Россия (Bratsk Russia)
- Registered: 2017-08-16
- Posts: 34
Topic: Импорт шаблона документа в Fast Report
Добрый день!
В процессе изучения MVDB заинтересовался возможностью создания отчета в Fast Report из уже имеющейся формы документа, например MS Word или Excel. По форумам нашёл утилиту, которая позволяет это сделать. Точнее, делается в два этапа:
1) Сначала документ надо сохранить в формате XPS
2) Затем уже преобразовать в *.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 2017-11-28 08:27:22
- mcsimm
- Member
- Offline
- From: Братск, Россия (Bratsk Russia)
- Registered: 2017-08-16
- Posts: 34
Re: Импорт шаблона документа в Fast Report
Ещё один способ, без использования сторонних утилит, тоже с недостатками, через объект RichTextEdit
https://helpdesk.freshoffice.ru/hc/ru/a … %B8%D1%8F-
3 Reply by DriveSoft 2017-11-28 10:10:07
- DriveSoft
- Administrator
- Offline
- Registered: 2014-02-14
- Posts: 10,294
Re: Импорт шаблона документа в Fast Report
Posts: 3
Pages 1
You must login or register to post a reply
parle
Сообщ.
#14
,
24.12.06, 18:56
Junior
Рейтинг (т): 7
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 |
private void btn_FormActMO_Click(object sender, EventArgs e) // Формирование акта МО { Fill(); GetCheckedValue(); report1.Load("ActMO.frx"); report1.SetParameterValue("NumActMO", txtbx_NumActMO.Text.ToString()); // номер акта МО report1.SetParameterValue("DateActMO", dateTP_DateActMO.Value.Date.ToLongDateString()); // Дата акта МО report1.SetParameterValue("FIO", txtbx_FIO.Text.ToString()); // ФИО освидетельствуемого report1.SetParameterValue("dateBirthday", dateTP_DataBirthday.Value.Date.ToShortDateString()); // Дата рождения report1.SetParameterValue("Adress", txtbx_Adress.Text.ToString()); // Адрес места жительства report1.SetParameterValue("InfoPerson", txtbx_Info.Text.ToString()); // Сведения заполнены на основании report1.SetParameterValue("BasisForMO", txtbx_InfoMO.Text.ToString()); // Основание для МО report1.SetParameterValue("MedPodrazdelenie", MedPodrazdelenieName); // Наименование структурного подразделения report1.SetParameterValue("DateBeginMO", dateTP_DateBeginMO.Value.ToString("dd.MM.yyyy HH:mm")); // Дата и точное время начала МО report1.SetParameterValue("MedWorker", lblMedWorker.Text.ToString()); // Кем освидетельствован report1.SetParameterValue("Appearance", Get_Appearance.ToString()); // Внешний вид освидетельствуемого report1.SetParameterValue("Complaints", Get_Complaints.ToString()); // Жалобы на свое состояние report1.SetParameterValue("OtherComplaints", txtbx_Complaints.Text.ToString()); // Жалобы другое report1.SetParameterValue("ChangeMentality", Get_ChangeMentality); // Изменения психической деятельности report1.SetParameterValue("SchulteTest", Get_Schulte.ToString()); // Результат пробы Шульте report1.SetParameterValue("VegSosReaction", VegSosReactionName); // 9. Вегетативно-сосудистые реакции report1.SetParameterValue("Eyes", Get_Eyes.ToString()); // Зрачки report1.SetParameterValue("ReactionLight", ReactionLightName); // Реакция на свет report1.SetParameterValue("Sklers", SklersName); // Склеры report1.SetParameterValue("Nistagm", NistagmName); // Нистагм // 10. Двигательная сфера report1.SetParameterValue("Speech", Get_Speech.ToString()); // Речь report1.SetParameterValue("Walking", Get_Walking.ToString()); // Походка report1.SetParameterValue("StabilityRomberg", StabilityRombergName); // Устойчивость в позе Ромберга report1.SetParameterValue("FingerNose", FingerNoseName); // Точность выполнения координационных проб report1.SetParameterValue("ResultTashena", ResultTashenaName); // результат пробы Ташена report1.SetParameterValue("NevousSystemDisease", NervousSystemDiseaseName); // 11. Наличие заболеваний нервной системы report1.SetParameterValue("OtherNSD", txtbx_NervousSystemDisease.Text.ToString()); report1.SetParameterValue("InfoUseDrugs", InfoUseDrugsName); // 12. Сведения о последнем употреблении алкоголя, лекарственных средств report1.SetParameterValue("OtherIUD", txtbx_InfoUseDrugs.Text.ToString()); //13. Наличие алкоголя в выдыхаемом воздухе освидетельствуемого: report1.SetParameterValue("TimeFirst", dateTP_TimeFirstMO.Value.ToShortTimeString()); // 13.1 Время первого исследования report1.SetParameterValue("Instruments", lblMedInstruments.Text); // 13.1 Прибор первого исследования if (chckbx.Checked) { report1.SetParameterValue("Info2", chckbx.Text); } else { report1.SetParameterValue("TimeSecond", dateTP_TimeSecondMO.Value.ToShortTimeString()); // 13.2 Время второго исследования report1.SetParameterValue("Instruments2", lblMedInstruments2.Text); // 13.2 Прибор второго исследования } report1.SetParameterValue("ResultsToxic", txtbx_ResultsToxic.Text); // 13.2 Результаты химико-токсических исследований report1.SetParameterValue("TimeToxic", TimePicker_RezultToxic.Value.ToString("HH:mm")); report1.SetParameterValue("OtherInfo", txtbx_OtherInfo.Text.ToString()); // 14. Другие данные МО report1.SetParameterValue("DateTimeEndMO", dateTP_DateTimeEndMO.Value.ToString("dd.MM.yyyy HH:mm")); // 15. Дата и точное время окончания МО report1.SetParameterValue("MedResult", MedResultsName); // 16. Медицинское заключение report1.SetParameterValue("DateMedResults", dateTP_DateMedResults.Value.ToShortDateString()); // 17. Дата медицинского заключения report1.Show(); } |