• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Динамическая таблица

  • Автор темы Archi2001
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Archi2001

Всем здрасти!
вот тут столкнулся с не очень тривиальной для меня задачей...
есть агент, который периодически или по "клику" лезет в Оракл и "возращает" XML файл с табличными данными из базы ...
Под лотусом есть форма - при закрузке которой в зависимости от значения некоторых полей, запускается агент и если всё нормально, то в форме должна сформироваться динамически таблица из полученного XML ...
У меня единственный вариант всплывает, это через метод NotesRichTextItem.AppendTable формировать указанную таблицу ...
Возникают несколько вопросов и "нюансов"...
данные в XML могут содержать "объединеные ячейки" -как их объединить в RichText?
как граммотоно "парсить" xml при этом одновременно создавать таблицу указанным вариантом? (это отдельная тема - но хотя бы вариант... а то я честно - завис, и кроме NotesDOMParser ничего не замечаю :) ) ...
XML может содержать абсолютно произвольное кол-во строк и столбцов, в т.ч. и объединёных... соотв, возможно ли "переполнение" RichText ?
И вообще, может есть более оптимальные, быстрые варианты рисования таблицы в Лотусе (на форме под клиентом)? :(
(таблица нужна чисто для "визуализации" данных ... )
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
XML может содержать абсолютно произвольное кол-во строк и столбцов, в т.ч. и объединёных... соотв, возможно ли "переполнение" RichText ?
Да, есть. Вроде бы, не больше 256 строк в одной таблице.

И вообще, может есть более оптимальные, быстрые варианты рисования таблицы в Лотусе (на форме под клиентом)? sad.gif
(таблица нужна чисто для "визуализации" данных ... )
ричтекст с html.

Или под виндами внедренный IE (более быстро и качественно). Но здесь некоторые скажут, что это изврат. :)
 
O

Omh

Ричтесктовая таблица может содержать merged ячейки, но для создания таковых метода у классов нету.
Подтверждаю, что 256 строк - лимит для одной таблицы.
Таблиц может быть сколько угодно (?), но тромозить это дело начинает космически.

Я за RT + Html.
Что такое embedded IE - не знаю.
Medevic, просвяти.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Omh
Вот здесь написал.
link removed
Ты еще сказал, что жесть. :)


У RT + html нашлась неожиданная проблема.
Таблица по-разному выглядела в разных клиентах.
 
S

Sandr

Кстати, ограничение на 256 строк также актуально и для ХТМЛ :) Тока там заморачиватся не надо - после 256й срочки новая таблица сама формируется...
Если результат с таблицей хранить не надо - то я бы ваще все в браузер кидал...
 
A

Archi2001

Medevic , Omh Спасибо за советы!!! ... ;)
но теперь и меня просвятите, неуча... RT + html - это как? а то весна ... сижу туплю ... :)
Это как-то связано со св-вом стиля PassThruHTML? ... я просто чего-то до сегодня с этим не сталкивался, а пример из хелпа как-то не так работает, как мне хотелось бы ... :unsure:
Если можно простейший пример из раздела "Hello world" в RichText + html .... :unsure:

Таблица по-разному выглядела в разных клиентах.
да мне пока хотя бы под один сообразить как делается (а вообще клиент у всех 7.0.3 ... ) :)

Если результат с таблицей хранить не надо - то я бы ваще все в браузер кидал...

да, это хороший вариант.... но хотят внутри клиента и всё тут (из-за того, что в форме будут "сводные" данные, которых не будет в таблице... )
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Вот как я делал:
Код:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim stream As NotesStream
Dim body As NotesMIMEEntity
Dim html As Variant
...
Set doc = New NotesDocument(db)
doc.Form = "Form"
Set stream = session.CreateStream
session.ConvertMIME = False
Set body = doc.CreateMIMEEntity
html = "<body>Привет</body>"
...
Call stream.WriteText(html)
Call body.SetContentFromText(stream, {text/html; charset="UTF-8"}, ENC_IDENTITY_BINARY)
Call doc.CloseMIMEEntities(True)
session.ConvertMIME = True

Ну и в рт-поле поставить галку Store contents as HTML and MIME.
 
R

rsdim

Это не единственный способ, вы можете так же создать таблицу необходимой размерности средствами JavaScript (в т.ч. и в клиенте Notes) ну и апплеты на Java это тоже вариант, если нет необходимости взаимодействовать с UI элементами типа полей и кнопок.
 
A

Archi2001

rsdim да, можно и с помощью JavaScript ... но, может я конечно и сильно ошибаюсь, но средствами Л-Скрипта немного проще обработать XML внутри клиента?! :ph34r: Хотя, понятно, что аналоги классов которые есть ЛС есть и в JavaScript ;)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!