Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/469: Рейтинг темы: голосов - 469, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698

Dxl Importer

12.11.2009, 11:06. Показов 88245. Ответов 69
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Вопрос.
Вот кусок кода
<!--shcode--><pre><code class=vb>Call Me.Exporter.Setinput( doc )
Call Me.Exporter.Setoutput( Me.Stream )
Call Me.Exporter.Process()

Set Me.domParser = Me.session.CreateDOMParser()
Call Me.domParser.Setinput( Me.Stream )
Call Me.domParser.Setoutput( tmpStream )
Me.domParser.Process

Call Me.Importer.Setinput( Me.domParser )
Call Me.Importer.SetOutput( Me.curDb )
Call Me.importer.Process[/CODE]
Ну так вот... документ нормально экспортируется в поток... нормально парсится... но вот импортироваться не хочет.
Лог importera
"<?xml version=1.0?><DXLImporterLog></DXLImporterLog>"

меня смущает вот эта строка Call Me.Importer.Setinput( Me.domParser )
Но вот никак не пойму как надо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2009, 11:06
Ответы с готовыми решениями:

Баг в Importer.importdxl
Всем привет Понадобилось воспользоваться функционалом DXL... и... о надо же... он почти работает. Только вот в видах теряет комментарий и...

Dxl R8 To R6
Делаю экспорт документа в DXL из восьмёрки. При импорте там же в восьмерке всё проходит нормально. В версии нотеса 6.5.5 при вызове Call...

Dxl
Предыстория: Я так часто натыкался на этом форуме на выражения типа «ДХЛ тебе в помощь…» и т.п., что не выдержал и решил таки...

69
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
05.04.2010, 13:03
Студворк — интернет-сервис помощи студентам
если принудительно не ставить - выгрузит в 1251 - это точно!
выставляется в NotesStream - при Open , читаем хелп дизайнера
если доки существуют - нужно опциями рулить (импортера - хэлп дизайнера), иначе получите с другим унидом
0
btoskswommy
05.04.2010, 13:26
Цитата Сообщение от lmike
если принудительно не ставить - выгрузит в 1251 - это точно!
выставляется в NotesStream - при Open , читаем хелп дизайнера
если доки существуют - нужно опциями рулить (импортера - хэлп дизайнера), иначе получите с другим унидом
Я выставил Importer.DocumentImportOption = DXLIMPORTOPTION_CREATE для принудительного создания документа, если даже есть старый, и он делает его копию с новым унидом. Если это делать с документом при существующем родителе в базе, то он создается копией и крепится к родителю вместе со старым. Если создавать родителя, то он создается новым, однако выскакивает эта ошибка. Может это из-за того, что родитель ссылается на потомка, которого нет в базе?
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
05.04.2010, 13:40
ошибка форматирования ХМЛ, и она наводит на мысль о кодировке!
надо учитывать, что кодировка ХМЛ для не англицких языков д.б. UTF-8 (а не усечённые варианты аля МСпердулятора №1251)
0
btoskswommy
05.04.2010, 23:40
Цитата Сообщение от lmike
ошибка форматирования ХМЛ, и она наводит на мысль о кодировке!
надо учитывать, что кодировка ХМЛ для не англицких языков д.б. UTF-8 (а не усечённые варианты аля МСпердулятора №1251)
поставил кодировку, теперь ошибки нет, но и не так работает. Если создаваемый документ не имеет потомков, создается копия, или он является потомком уже существующего, то создается копия и крепится как потомок к существующему. Но если сделать попытку создания документа, родитель которого был удален из базы, то ничего не происходит, ошибок нет, но документ не создается, видимо, потому что не может найти своего родителя. Как такую проблему обойти? Можно ли при импорте присваивать новые UNID и ParentUNID ?
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
06.04.2010, 12:42
яж об этом сразу и говорил...
юнид новый и так присваивается..., а вот поле $REF с пом. XSLT изменить в ходе импорта (в цепочку вставить - см. хелп)

др. словами - алгоритм, кот. вы пытаетесь сделать - изначально "ущербен"...
документ-"потомок" создаётся в базе, но во вьюшке стоит галка про иерархию доков, потому его и "не видно"
цель ваших действий мне не ясна...
не проще ли поменять юнид существующего дока - если он не имеет потомков, либо ваще его заменить (либо сдеать копию и заменить)
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
20.08.2017, 09:21
Всем привет!
Спустя несколько лет вернулся к вопросу формирования PDF на основе Lotus-формы.
Вот какой возник момент:
В xml стили в столбцах таблиц указаны неявно. Через ссылки на теги pardef.
Эти pardef могут быть в любом месте xml. На какой pardef идет ссылка можно определить из атрибута def тега par



Так вот собственно вопрос: как бы правильно написать шаблон в xslt, чтоб мощно было забирать из нужного тега pardef значение атрибута align ?
Мне думалось, что должно быть как-то так:


Код (XML):
<xsl:template match="ldn:par" name="ldn:par">
<xsl:choose>
<xsl:when test="expression">

</xsl:when>

<xsl:otherwise>

<fo:block font-family="Arial" >

<xsl:attribute name="text-align">
<xsl:value-of select="pardef[@id=@def]/@align"/>
</xsl:attribute>

<xsl:apply-templates />

<fo:leader />

</fo:block>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Но не работает. Для теста пробовал напрямую ссылаться на известный id, но результата так же не получил.

Код (XML):
<xsl:attribute name="text-align">
<xsl:value-of select="pardef[@id=30]/@align"/>
</xsl:attribute>
Вероятно, что шаблон работает в рамках своей выборки и по этому не находит теги глобально по фалу.
Обходной маневр - это программно добавить в исходный xml теги pardef везде где есть ссылка на него, но так делать не хочется.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
20.08.2017, 11:48
Цитата Сообщение от NickProstoNick
pardef значение атрибута align ?
про pardef морочился с рекурсией, до чего доборолся не помню, но если не выкладывал - результат был так-себе
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
21.08.2017, 11:53
я уже разобрался... Выражение должно быть следующего вида:

Код (XML):
<xsl:attribute name="text-align">
<xsl:variable name="def" select="@def"></xsl:variable>
<xsl:value-of select="//ldn:pardef[@id=$def]/@align"/>
</xsl:attribute>

Было (третья колонка):



Стало (третья колонка):




--- Добавлено 22 авг 2017. Первое сообщение размещено 21 авг 2017 ---

Вот финальный вариант верстки:
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
22.08.2017, 12:17
@NickProstoNick если есть возможность - желательно полный XSLT , для всех, выложить
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
24.08.2017, 17:22
Я уже как-то тут делился этим шаблоном....
Если в документе для конвертации будут атачи - то в PDF-файле будет пометка (см. файл <имя файла>)
Финальная версия в архиве


--- Добавлено 25 авг 2017. Первое сообщение размещено 23 авг 2017 ---

Выкладываю очередную последнюю версию
В данной версии:
- "причесал" шаблоны. частично избавился от мусора;
- добавил возможность цеплять файлы в PDF;
- в тексте сделал ссылки на вложенные файлы вида (см. файл <имя файла>).
- исправил некоторые ошибки в шаблонах. Из всех ошибок и предупреждений осталось только это

.SpoilerTarget">Спойлер: Ошибки. Как бороться еще не придумал
25 серп 2017 18:49:56 org.apache.fop.events.LoggingEventListen er processEvent
INFO: An fo:table (No context info available) is wider than the available room in inline-progression-dymension. Adjusting end-indent based on overconstrained geometry rules (XSL 1.1, ch. 5.3.4)
25 серп 2017 18:49:56 org.apache.fop.events.LoggingEventListen er processEvent
INFO: An fo:table (No context info available) is wider than the available room in inline-progression-dymension. Adjusting end-indent based on overconstrained geometry rules (XSL 1.1, ch. 5.3.4)
25 серп 2017 18:49:56 org.apache.fop.fonts.truetype.OpenFont handleCharacterSpacing
WARNING: Encountered format constraint violation in advanced (typographic) table (AT) in font Arial Bold, ignoring AT data: unsupported class definition table format: 0
25 серп 2017 18:49:58 org.apache.fop.events.LoggingEventListen er processEvent
INFO: Rendered page #1.
25 серп 2017 18:49:58 org.apache.fop.events.LoggingEventListen er processEvent
INFO: Rendered page #2.

С вложенными файлами есть нюанс - в AdobeReade "плывут" названия файлов с кириллицей и не открываются и не детачатся файлы zip и rar (по крайней мере я столкнулся только с этими файлами)


Это решается модификацией реестра. Необходимо модифицировать запись
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Ado be\Acrobat Reader\11.0\FeatureLockDown\cDefaultLaun chAttachmentPerms
Именно модифицировать, т.к. zip и rar в этом списке записаны как запрещенные
ПОДРОБНЕЕ ТУТ

Ну и собственно результат работы.
Верстка в Lotus (шапка с картинкой добавлена в дизайней формы, а текст с файлами - в RT-поле)



Ну и результат отрисовки в PDF




--- Добавлено 28 авг 2017 ---

Очередная последняя версия
На выходных подумалось, что надо сделать границы таблицы по умолчанию, а то пользователям не объяснишь зачем выставлять цвет границ. Их же и так видно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.08.2017, 17:22
Помогаю со студенческими работами здесь

Переобразование Dxl
в Rich тексте лежит DXl &lt;?xml version=1.0 encoding=utf-8 ?&gt; &lt;database xmlns=http://www.lotus.com/dxl version=8.5.3&gt; &lt;document...

Dxl -> Xml
Существуют ли какие-либо быстрые способы преобразования DXL в стандарный XML (data), понятный другим программам. Например: &lt;div...

Символы В Dxl
Например, при экспорте символ {} меняется на {&amp;apos;}. Подскажите, где посмотреть список всех соответствий? Спасибо.

Dxl Export формы
Всем привет! Помогите пожалуйста решить следующую проблему: Задача состоит в том, чтобы экспортировать форму из базы, дабы получить...

Вопрос По Выгрузке Dxl
Добрый день. Мучаюсь с выгрузкой dxl из lotus`a методом NotesDXLExporter. Подскажите, как выгружать xml по определенной схеме и с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
70
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru