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

Тема в разделе "Lotus - Программирование", создана пользователем Archi2001, 2 апр 2008.

Статус темы:
Закрыта.
  1. Archi2001

    Archi2001 Гость

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Да, есть. Вроде бы, не больше 256 строк в одной таблице.

    ричтекст с html.

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

    Omh Lotus team
    Lotus team

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

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Omh
    Вот здесь написал.
    http://codeby.net/ipb.html?s=&sh...ost&p=99937
    Ты еще сказал, что жесть. :)


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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Запамятовал :)
     
  6. Sandr

    Sandr Гость

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

    Archi2001 Гость

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

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

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Вот как я делал:
    Код (Text):
    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.
     
  9. Archi2001

    Archi2001 Гость

    Спасибо!!! С меня +"единичка" :)
     
  10. rsdim

    rsdim Гость

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

    Archi2001 Гость

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

Поделиться этой страницей