• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Помогите Оформить Таблицу

  • Автор темы Oksana
  • Дата начала
O

Oksana

Помогите, пожалуйста, оформить таблицу.
Необходимо автоматически формировать письмо по выбранным документам в таблицу заданной формы.
Создать таблицу и занести значения, это всё получается. Шрифт тоже управляем.
А вот задать ширину сталбцов и выравнивание текста в ячейках никак :)
Если задаю параметры параграфа перед таблицей, то центрируется содержимое только первой ячейки.
Если применяю стили при создании таблицы, ширина столбцов задается, но еще и внутри ячейки для текста задается такой же отступ справа и это смещает текст.
Может у кого подобный пример форматирования есть?
В идеале, там еще надо одну ячейку объединить, но это пока не трогаю.
 

erdi

Green Team
20.08.2008
264
17
BIT
0
а перед вставкой текста применяй стиль для текста...что-то типо этого
Код:
Select Case iColumn
Case 1:richStyle.Bold = True
richStyle.NotesColor=COLOR_BLACK
Call bodys.AppendStyle(richStyle)
Call bodys.AppendText(col1(iRow) ) 
Case 2:richStyle.Bold = False
Call bodys.AppendStyle(richStyle)
Call bodys.AppendText( col2(iRow))
Case 3:richStyle.Bold = True
richStyle.NotesColor=200
Call bodys.AppendStyle(richStyle)
Call bodys.AppendText( col3(iRow))	
End Select
 
Y

yerke

Помогите, пожалуйста, оформить таблицу.
Необходимо автоматически формировать письмо по выбранным документам в таблицу заданной формы.
Создать таблицу и занести значения, это всё получается. Шрифт тоже управляем.
А вот задать ширину сталбцов и выравнивание текста в ячейках никак :)
Если задаю параметры параграфа перед таблицей, то центрируется содержимое только первой ячейки.
Если применяю стили при создании таблицы, ширина столбцов задается, но еще и внутри ячейки для текста задается такой же отступ справа и это смещает текст.
Может у кого подобный пример форматирования есть?
В идеале, там еще надо одну ячейку объединить, но это пока не трогаю.
Код:
arr(1) = 3.5
arr(2) = 4
arr(3) = 2
arr(4) = 2.5
arr(5) = 6
arr(6) = 5.5
For i = 1 To cc
Set rtpsStyleArray(i) = ini.s.CreateRichTextParagraphStyle
rtpsStyleArray(i).Alignment = ALIGN_LEFT
rtpsStyleArray(i).FirstLineLeftMargin = 0
rtpsStyleArray(i).LeftMargin = 0
rtpsStyleArray(i).RightMargin = RULER_ONE_CENTIMETER * arr(i)
Next

'=create and get table
Call rti.AppendTable(1, cc, , , rtpsStyleArray)
cc - count of columns
 
O

Oksana


делала так
Код:
	Dim styles(1 To 4) As NotesRichTextParagraphStyle
'стиль столбца для каждого стобца
For k = 1 To NumC Step 1
Set styles(k) = s.CreateRichTextParagraphStyle
styles(k).LeftMargin = 0
styles(k).FirstLineLeftMargin = 0
styles(k).Alignment = ALIGN_CENTER 'Выравнивание по центру
Next
'	'задаем ширину для каждого столбца
styles(1).RightMargin = RULER_ONE_CENTIMETER * 1
styles(2).RightMargin = RULER_ONE_CENTIMETER * 4
styles(3).RightMargin = RULER_ONE_CENTIMETER * 3
styles(4).RightMargin = RULER_ONE_CENTIMETER * 2
добавляется правый отступ внутри ячейки.
Повторила у себя ваш пример, получилось. Но не вижу где у меня ошибка (разница лишь в том как задаем ширину ведь?) Нашла, у себя в коде применение стиля, до таблицы, из-за него видать съезжало. Отступы ушли.

Остается вопрос
: мне надо только в 2-х первых строках выравнивание по центру, а далее по левому краю, как к нему перейти?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 947
609
BIT
244
если таблиц всегда имеет одинаковое форматирование - так почемубы не сделать готовый шаблон и содержимое добавлять?
Код:
...
Set rt=doc.GetFirstItem({tblAdd})
Call body.AppendRTItem(rt)

Dim rtnav As NotesRichTextNavigator
Set rtnav = body.CreateNavigator
If Not rtnav.FindFirstElement(RTELEM_TYPE_TABLE) Then
Messagebox "Could not find table",, "Fatal error"
Exit Sub
End If
Dim rtt As NotesRichTextTable
Set rtt = rtnav.GetElement
...
'здесь уже модифицируем таблицу
cols=rtt.ColumnCount
rtnav.FindLastElement(RTELEM_TYPE_TABLECELL)
rtt.AddRow(rows)
rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
...
'в некоем цикле
Call body.BeginInsert(rtnav)
Call body.AppendText(info(1))
Call body.EndInsert
Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
то что условно является хидером - заполняем аналогично (до AddRow) - но оно уже имеет нужные отступы
doc - это и есть док с шаблоном таблицы в РТ поле
 

savl

Lotus Team
28.10.2011
2 602
313
BIT
221
Не забудте про предел в 255 строк таблицы
 
O

Oksana

если таблиц всегда имеет одинаковое форматирование - так почемубы не сделать готовый шаблон и содержимое добавлять?
Спасибо, сделала через готовый шаблон.
Хотя вот странно кажется, вроде всего-то пару строк добавить поменять выравнивание и дальше заполняй ячейки.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 947
609
BIT
244
РТ классы очень глючные, чем меньше с ними манипуляций - тем меньше непредсказуемого поведения B)
 

KingGLEB

Active member
08.05.2008
30
0
BIT
0
А не проще, если надо таблицу отправить письмом, то нарисовать HTML табличку и заполнить её как надо? Цвета, объединение ячеек, фон, ссылки, короче все прелести.
Сам долго парился с таблицами в письмах, но в какой-то момент надоело и стал отправлять письма в html.
 
A

afest

Если это транспортировать в Excell или Word (в общем любой другой OLE объект), то есть в каждом приложении инструкция по совместимости, программированию и т.п. (в мелкософтовских там юзается Visual Basic). Самое главное - знание инглиша! Ибо на руссише нема перевода...
 
Мы в соцсетях:

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