Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
03.11.2006, 17:43
|
|||
---|---|---|---|
Генерация документов но основе шаблонов |
|||
#18+
Hi, All! Хотелось бы посоветоваться с обчеством. Разрабатываем систему регистрации / генерации документов (договоров) на основе шаблонов текста и набора параметров к ним. Параметры содержат значения, подставляемые в шаблон в нужных местах. Документ Word – овский (так нам проще). Выбираем технологию, на которой лучше такую вещь реализовать. С интересом прочитал про шаблоны на базе DW /topic/141132&hl= - не совсем то, это простой текст Слияние текста и шаблона на основе MailMerge - замечательная вещь, скорее всего, подойдёт (будем копать). /topic/88015&hl= Тема про закладки, одноимённые названиям параметрам полей в БД тоже кажется перспективной /topic/121387&hl= Предполагается, что будет таблица, с большим набором полей, где будут храниться договора. Каждое поле соответствует одному из параметров подстановки в шаблон. Ссылка на сам шаблон так же хранится в поле записи этой таблице. Шаблоны разные: соответственно, некоторые параметры используются в каких-то шаблонах, а в других не используются (набор параметров – полей таблицы заведомо избыточен, чтобы охватить все возможные ситуации). Более элегантная идея хранить название поля (параметра), его тип и значение в одной таблице из 3-х (условно) полей была забракована по ряду причин. Смущает вот чего. В договорах есть приложения в виде списков (например, список доверенных лиц). Ничего умнее, чем хранить в полях, ссылающихся на такие списки, ссылки на другие таблицы БД, где и будут храниться значения этих списков, на ум не приходит. Не исследовалось ещё, пережуёт ли такую встроенную таблицу MailMerge. Есть некоторые соображения в пользу xml, который допускает внутри себя такие вложенные таблицы, но это не более чем мысли вслух. Если кто ходил по этим граблям, то посоветуйте, пожалуйста, проверенное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.11.2006, 23:02
|
|||
---|---|---|---|
|
|||
Генерация документов но основе шаблонов |
|||
#18+
По этим граблям ходил лет пять назад. Было сделано простое и сердитое XML решение. На сервере хранимой процедурой формируется XML (можно сделать и на клиенте). Вид примерно такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Эти данные должны быть заброшены в шаблон договора (здесь квитанции). Каждая переменная в шаблоне описывается стандартной word-переменной, например так {DOCVARIABLE "Name" \* MERGEFORMAT}. Все это сливается vbscript-ом, который парсит XML и забрасывает данные через CreateObject("Word.Application"). Думаю идея понятна. Если нужен работающий пример, то могу сбросить на email. По этому же принципу работает генерация отчетов для excel (примера пока нет, но если будет интересно сделаю). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2006, 14:11
|
|||
---|---|---|---|
Генерация документов но основе шаблонов |
|||
#18+
От примера не откажусь. Шлите на адрес из профиля. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2006, 14:16
|
|||
---|---|---|---|
Генерация документов но основе шаблонов |
|||
#18+
В догонку. Как я понял из описания, проблему прикреплённых списков это решение не охватывает, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.11.2006, 14:41
|
|||
---|---|---|---|
|
|||
Генерация документов но основе шаблонов |
|||
#18+
Проблему прикрепленных списков (так и быть!) сейчас решаю. Решение заброшу в эту тему. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.11.2006, 12:06
|
|||
---|---|---|---|
|
|||
Генерация документов но основе шаблонов |
|||
#18+
alex108Проблему прикрепленных списков (так и быть!) сейчас решаю. Решение заброшу в эту тему. Как и обещал, доделал таблицы. Правда, на скорую руку. Это рабочий пример с заполнением таблиц. http://xpro.t35.com/xml2table.rar (если не получится скачать, пишите - сброшу на email) Решение открытое, так что можете дополнять и развивать его в любую cторону. Если будут интересные доработки этого подхода - не забудьте поделиться :) Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.11.2006, 12:48
|
|||
---|---|---|---|
|
|||
Генерация документов но основе шаблонов |
|||
#18+
Могу рассказать, как у нас реализована печать договоров. 1. Создаются файлы с запросами, вытягивающие данные по договорам. Например query1.sql, query2.sql,query3.sql 2. Создается HTML шаблон договора (хоть в notepad, хоть в MS Word - не важно). Документ делится на секции, соответствующие запросам, секция повторяется столько раз, сколько строк в соответствующем запросе. В качестве переменных в шаблон можно подставлять столбцы из данных запроса или любое другое выражение вычислимое через evaluate функцию DataWindow. 3. При создании документа парсится шаблон, находятся секции, на основе указанных запросов формируются DataStore и вычисляются значения переменных. 4. Все отображается в DHTML Edit Control В результате получается что-то похожее на это (как выглялит в MS Word): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2008, 12:29
|
|||
---|---|---|---|
|
|||
Генерация документов но основе шаблонов |
|||
#18+
Выложил у себя на страничке визуальный редактор шаблонов документов . Все работает через DHTML Edit Control, так что можно посмотреть как с ним работать можно. Версия пока "сырая", но если задаться целью, то документ сделать можно . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
19.05.2008, 12:40
|
|||
---|---|---|---|
Генерация документов но основе шаблонов |
|||
#18+
А можно мне тоже на электронку рабочий пример скунуть очень уж понравилась мне тема!!! Плиззз!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.06.2015, 12:54
|
|||
---|---|---|---|
|
|||
Генерация документов но основе шаблонов |
|||
#18+
Локшин Марк, Большое спасибо за примеры работы с DHTML, хоть что то стало получаться, но никак не могу справиться вот с такой задачей. Мне нужно в тексте (в HTML формате), хранящемся в БД определить некоторый текст как ссылку (HREF) и убрать ссылку если надо. С первой задачей я справился: пользователь выделяет мышкой текст и жмет кнопку а там: OLEObject Range,sel Range = ole_1.HTMLEdit.object.DOM.body.createTextRange() if Range.Text = "" then return sel = ole_1.HTMLEdit.object.DOM.selection.createRange() // получили выделенный мышкой кусок if ole_1.HTMLEdit.object.DOM.selection.type = "control" then return .. далее формирую текст ссылки (тэга) по данным из БД, что-то вроде <a data-title="%1" href="#" id="obj_%2" class="LinkToObject">' ... вместо %1 и %2 подставляю нужные мне данные и потом ... string ls_new ls_new = ls_tag_begin + sel.text + ls_tag_end sel.PasteHTML(ls_new) конечно по идее надо бы через DOM element create ... потом setattribute и т.д. но ... не знаю как А вот как УДАЛИТЬ? OLEObject rel rel = ole_1.HTMLEdit.object.DOM.getElementsByTagName("A") if rel.length > 0 then int i for i = 0 to rel.length - 1 string ls_id ls_id = rel.item(i).getAttribute("id") if PosA(ls_id, string(ССЫЛКА_НА_МОЙ_ОБЪЕКТ)) > 0 then -- УРА НАШЛИ!!! пробовал - rel.parentNode.removeChild(rel.item(i)); и так пробовал- ole_1.HTMLEdit.object.DOM.documentElement.removeChild(rel.item(i)) НЕТ таких методов!!! Вопрос КАК УДАЛИТЬ элемент? Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.06.2015, 10:35
|
|||
---|---|---|---|
|
|||
Генерация документов но основе шаблонов |
|||
#18+
Всем привет, Сам разобрался ... надо вот так ... col = ole_1.HTMLEdit.object.DOM.getElementsByTagName("A") if col.length > 0 then int i for i = 0 to col.length - 1 string ls_id ls_id = col.item(i).getAttribute("id") if PosA(ls_id, string(il_rel_id)) > 0 then // ура нашли!!! // если хотим удалить текст вместе со ссылкой то col.item(i).removeNode(true) // если хотим удалить только ссылку, а текст оставить то col.item(i).removeNode(false) ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/search_topic.php?author=hrodant&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 437ms |
total: | 587ms |
0 / 0 |