Форум: "Прочее";
Текущий архив: 2014.10.05;
Скачать: [xml.tar.bz2];
Внизгенирация RTF документов Найти похожие ветки
← →
Михаил (2014-02-22 00:00) [0]Программистом не являюсь, работал инженером электросвязи, на данный момент работаю у небольшого Интернет провайдера (занимаюсь всем
понемногу). Самостоятельное изучение Delphi только начинаю. Прошу профи отнестись с пониманием.
Интересует автоматическая генерация RTF документов, какими средствами для этого можно воспользоваться?
У меня есть первый тестовый вариант программы который:
1) берет нужные поля из БД.
2) меняет в коде RTF шаблона участки вида $$$VARIABLE$$$ нужными данными из БД.
Пока это устраивает.
В скором времени пакеты документов будут очень часто меняться.
Проблемы в скором времени следующие:
1) Все RTF шаблоны хранятся на клиентах, поэтому при изменениях в тексте документов приходится менять всем клиентам шаблоны вручную.
2)Если же хранить RTF в базе, то нужно предусмотреть нормальные инструменты редактирования шаблона, а не вручную лазить в коде RTF и бесконечно переливать в БД.
3)Не мешало бы сделать нормальное привью RTF прямо в программе.
Как бы действовали вы в подобной ситуации?
Может быть вообще существует что-то вроде конструктора, чтобы пользователь сам мог создать нужный шаблон документа и выбрать для динамической информации из перечня доступных полей бд? это бы было идеально.
Конечно буду пытаться реализовать это сам, но интересуют для ознакомления готовые решения.
← →
RWolf © (2014-02-22 01:02) [1]Вариант: использовать в качестве редактора офисный пакет через OLE-встраивание.
← →
RWolf © (2014-02-22 01:10) [2]
> Может быть вообще существует что-то вроде конструктора,
> чтобы пользователь сам мог создать нужный шаблон документа
> и выбрать для динамической информации из перечня доступных
> полей бд?
В генераторах отчётов вроде FastReport всё это есть.
← →
й (2014-02-22 03:47) [3]EK RTF многие хвалят
http://www.128byte.ru/index.html
"нормальное привью RTF прямо в программе" - то есть TRichEdit не устраивает? чем?
на всякий случай: http://www.trichview.ru
← →
Dennis I. Komarov © (2014-02-22 10:49) [4]
> Как бы действовали вы в подобной ситуации?
Чем обусловлен выбор формата RTF?
Посмотрел бы в сторону XML + XSL.
← →
Inovet © (2014-02-22 13:46) [5]> [2] RWolf © (22.02.14 01:10)
> FastReport
+ в нём же есть импорт сформированного отчёта во множество форматов. Т.е. если по каким-то причинам нужен Ворд, то можно с учётом этого и сделать отчёт, в смысле - чтобы там всё красиво импортировалось, хотя обычно и без дополнительных телодвижений неплохо.
Только не покупать минимальную версию, без скрипта которая - там будет сильно многое невозможно сделать. И сразу закладываться на возможность проектирования шаблона отчёта не из exe, а без перекомпиляции exe - это огромный плюс ФР. Хотя можно и так и сяк и всяко.
← →
Inovet © (2014-02-22 13:48) [6]> [5] Inovet © (22.02.14 13:46)
Да, для ознакомления можно скачать полнофункциональную версию, но с некоторыми ограничениями.
http://www.fast-report.com/ru/
← →
Михаил (2014-02-22 14:30) [7]
> RWolf © (22.02.14 01:02) [1]
>
> Вариант: использовать в качестве редактора офисный пакет
> через OLE-встраивание.
Так бы не хотелось бы. Тем более что используется Open Office.
> "нормальное привью RTF прямо в программе" - то есть TRichEdit
> не устраивает? чем?
Таблицы не так отображает.
>
> Чем обусловлен выбор формата RTF?
Ввиду распространенность MS Office, некоторые документы нужно будет отсылать клиентам по Ел. Почте
> Inovet © (22.02.14 13:46) [5]
То есть я смогу без перекомпиляции клепать новые шаблоны прямо из программы?
← →
Михаил (2014-02-22 14:33) [8]И покупать конечно не хотелось бы ничего))
← →
Inovet © (2014-02-22 14:42) [9]> [7] Михаил (22.02.14 14:30)
> То есть я смогу без перекомпиляции клепать новые шаблоны прямо из программы?
Сможешь при правильном подходе.
> [8] Михаил (22.02.14 14:33)
> И покупать конечно не хотелось бы ничего))
Что, у Инет провайдера нет 3590 рублей? Сколько же он платит зарплату? Ну купи себе, будешь им продавать готовые изделия.
← →
Inovet © (2014-02-22 19:25) [10]> [0] Михаил (22.02.14 00:00)
> 1) берет нужные поля из БД
БД какая?
← →
Михаил (2014-02-22 22:14) [11]
> Inovet © (22.02.14 19:25) [10]
FB
← →
Inovet © (2014-02-22 22:21) [12]> [11] Михаил (22.02.14 22:14)
> FB
Ну для IBX есть обёртки в комплекте, для всяких менее распространённых баз надо самому сделать на основе шаблона-заготовки.
← →
Inovet © (2014-02-22 22:37) [13]> [12] Inovet © (22.02.14 22:21)
> для IBX
и для FIB
← →
Михаил (2014-02-24 00:09) [14]
> RWolf © (22.02.14 01:02) [1]
>
> Вариант: использовать в качестве редактора офисный пакет
> через OLE-встраивание.
Один вопрос. Можно ли на одной форме "подружить" свою панельку с кнопками с OleContainer?
OleContainer при запуске приложения занимает всю клиентскую область, съедая все другие контролы. Може я что не так делаю?
← →
clickmaker © (2014-02-24 17:35) [15]я бы заюзал RichEdit. Н-р, его более продвинутую версию из Jedi VCL (бывшей RxLib).
+ редактирование в MSO/OO, но не через оле-встраивание, а как внешним приложением, через временный файл.
Т.е. базовые функции редактирования шаблона прямо в апликухе, через RichEdit, но возможность дополнительно отформатировать/распечатать/превью через внешний ворд, например.
← →
Михаил (2014-02-24 18:09) [16]
> clickmaker © (24.02.14 17:35) [15]
Спасибо. Изучу предложения в скором времени.
← →
Михаил (2014-02-24 20:34) [17]
> Т.е. базовые функции редактирования шаблона прямо в апликухе
А если таблицы?
← →
Михаил (2014-02-24 22:04) [18]
> я бы заюзал RichEdit.
Ну и что в нем особенного?
Вложенные таблицы не поддерживаются. Высота&Ширина тоже не совпадают с Word.
← →
Михаил (2014-02-25 15:51) [19]Уж было обрадовался новому варианту. Нашел MICROSOFT OFFICE WEB COMPONENTS (Можно встраивать как ActivX). Но ворда там не оказалось. А вот Excel есть, но он пока не нужен.
Подскажите есть ли ActivX аналог Word?
← →
RWolf © (2014-02-25 16:30) [20]Word и есть ActiveX.
OleContainer1.CreateObjectFromFile("test.doc", false);
OleContainer1.DoVerb(ovOpen);
← →
Михаил (2014-02-25 17:50) [21]
> var
> Doc: Variant;
> begin
>
> if not (OleContainer.State = osRunning) then
> OleContainer.Run;
>
> Doc := OleContainer.OleObject;
> .......................
> end;
Знающие подскажите, как вставить текст от текущей позиции курсора?
← →
Константин (2014-02-26 06:12) [22]EkRTF
http://www.code.net.ru/
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2014.10.05;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.003 c