Добавление Таблицы Rich Text

Тема в разделе "Lotus - Программирование", создана пользователем imendan, 29 окт 2013.

  1. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Здравствуйте, лотусисты! Создаю программно таблицу в rich text. Две проблемы:
    1. Не могу поместить таблицы к центру.
    2. Правый маркер ячейки(2,1) сжимает данные (рисунок приложен).

    Код прилагаю:
    Dim stylez(1 To 2) As NotesRichTextParagraphStyle
    For i% = 1 To 2 Step 1
    Set stylez(i%) = session.CreateRichTextParagraphStyle
    stylez(i%).Alignment = ALIGN_CENTER
    stylez(i%).LeftMargin = 0
    stylez(i%).FirstLineLeftMargin = 0
    Next

    stylez(1).RightMargin = RULER_ONE_INCH * 4
    stylez(2).RightMargin = RULER_ONE_INCH * 2

    rowCount% = 3
    columnCount% = 2
    Call rtitem.AppendTable(rowCount%, columnCount%,, RULER_ONE_INCH, stylez)
     

    Вложения:

  2. alexas

    alexas Well-Known Member

    Регистрация:
    10 июн 2009
    Сообщения:
    215
    Симпатии:
    0
    Программный дизайн RT Table - еще тот изврат. Нюансов - море!
    Нарисуйте\сохраните куда-нибудь шаблон таблицы (шапка+1 строка).
    Подгружайте, добавляйте строки, заполняйте.
    Сохраните время и нервы. ИМХО.
     
  3. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    У меня таблица (шапка), потом текст, потом таблица (это вот), потом дальше текст. Думаю неудобно будет.
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Уберите это:
    Код (LotusScript):
    stylez(1).RightMargin = RULER_ONE_INCH * 4
    stylez(2).RightMargin = RULER_ONE_INCH * 2
    что произошло?
     
  5. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    В рисунке я выделил ячейку(2,1). Обычно в нее автоматически заполняется большой по количеству текст. Но почему-то она сжимается пополам, и, соответственно, текст расползается вниз (некрасиво при распечатке). После многих попыток я обнаружил, что правый маркер наследуется почему-то из второй колонки. Если сделать например, вот так:
    stylez(1).RightMargin = RULER_ONE_INCH * 4
    stylez(2).RightMargin = RULER_ONE_INCH * 3,
    то в первом столбце будет маркер не на 5-ти, а уже на 7.5.
    А мне нужно, чтобы соотношение было именно 4:2. По скольку во втором столбце мало данных для отображения.
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    IMENDAN
    Если клиент 8+, то при вставке картинки она сжимается клиентом и никак это не убрать.
    Так работает теперь.


    тьфу не так прочитал, думал картинку вставляете.
    Суть в том, что выставляя выравнивание с правого края RightMargin вы ограничиваете поле для отображения текста.
    то есть отступ от правой границы у вас будет 5" и если текст не влезет, то будет сжат.
    Поэтому я и говорю - уберите эти строки, закомментируйте посмотрите что будет.
    Опять же смотрите, что для первой ячейки вы такое выравнивание не делаете, а только для последних двух строк.
     
  7. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Убрал. Выводит ошибку. Таблица не формируется.
    Также не забудьте, не могу в центре создать таблицу. Она прижимается вправо. Хотя по стилю изначально весь текст по центру приравнен.
     
  8. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    ну если убрали, то вот это
    Код (LotusScript):
    Call rtitem.AppendTable(rowCount%, columnCount%,, RULER_ONE_INCH, stylez)
    надо заменить на это:
    Код (LotusScript):
    Call rtitem.AppendTable(rowCount%, columnCount%,, RULER_ONE_INCH)
    Иначе действительно ошибка будет.

    По второму вопросу:
    Чтобы выравнять таблицу, нужно к параграфу таблицы применить стиль, через:
    Код (LotusScript):
    Call notesRichTextItem.AppendStyle( notesRichTextStyle )' из Help
    Только предварительно надо установить "фокус" этот параграф:
    поиском через:
    Код (LotusScript):
    Call notesRichTextItem.BeginInsert( element, [ after ] )
    Или через RichTextNavigator найти нужный элемент и выставить BeginInsert.
    Правда как это будет работать для RT-пол, которое только создается, я не дам никаких гарантий. Надо пробовать.
     
  9. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Таблица формируется со столбцами одинаковой ширины, если убрать ссылку на стиль.
    Также крутил вертел не получилось вставить BeginInsert по середке. Почему-то поиск параграфа дает нуль.
     
  10. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    ну да, без стиля она растягивается.
    провел пару экспериментов:
    1. Пустая таблица создается с нормальной шириной колонок, если со стилями.
    И если текст писать вручную, то ограничения нет.
    Значит проблема при добавлении текста кодом, либо стиль накладывается.
    Отсюда выход: подменять стиль после добавления текста. Как-то сложно получается.
    2. выравнять таблицу по центру не удастся. стиль применяется до таблицы, она своей жизнью живет.
     
Загрузка...

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