- 论坛徽章:
- 0
|
最近遇到一个编程上的小问题,想在这里请教做过LotusNotes开发的达人.
想用LotusScript画个表格,表格的ROW不固定,要求用LotusScript代码画,目前我知道用NotesRichTextItem来做,但是做出来的看不到表格,不知道是不是哪里没有做对,另附Source如下:
[Source]
Sub Click(Source As Button)
Dim newDoc As NotesDocument
Dim rtf As NotesRichTextItem
Dim nav As NotesRichTextNavigator
Dim tbl As NotesRichTextTable
Dim strBody As String
Set newDoc = New NotesDocument(curDB)
strBody="Sample: Drawing a table"
Set rtf = newDoc.CreateRichTextItem ("Body")
'setup text styles used in document
Dim columnHeaderStyle As NotesRichTextStyle
Set columnHeaderStyle = session.CreateRichTextStyle( )
columnHeaderStyle.Bold = True
columnHeaderStyle.FontSize = 10
columnHeaderStyle.NotesFont = rtf.GetNotesFont("Arial", True)
Dim dataStyle As NotesRichTextStyle
Set dataStyle = session.CreateRichTextStyle( )
dataStyle.Bold = False
dataStyle.FontSize = 9
'Define an array of paragraph styles, which will set the width and alignment of each table column.
Dim i As Integer, k As Integer
Dim columnStyles(0 To 4) As NotesRichTextParagraphStyle
For i = 0 To 4
Set columnStyles(i) = session.CreateRichTextParagraphStyle
columnStyles(i).LeftMargin = 0
columnStyles(i).FirstLineLeftMargin = 0
Next
columnStyles(0).RightMargin = 3 * RULER_ONE_CENTIMETER
columnStyles(0).Alignment = ALIGN_LEFT
columnStyles(1).RightMargin = 8 * RULER_ONE_CENTIMETER
columnStyles(1).Alignment = ALIGN_LEFT
columnStyles(2).RightMargin = 4 * RULER_ONE_CENTIMETER
columnStyles(2).Alignment = ALIGN_LEFT
columnStyles(3).RightMargin = 4 * RULER_ONE_CENTIMETER
columnStyles(4).Alignment = ALIGN_LEFT
columnStyles(4).RightMargin = 1 * RULER_ONE_CENTIMETER
columnStyles(4).Alignment = ALIGN_LEFT
Dim headerColor As NotesColorObject
Dim dataColor As NotesColorObject
Set headerColor = session.CreateColorObject
Call headerColor.SetRGB(239,239,239)
Set dataColor = session.CreateColorObject
Call headerColor.SetRGB(255,255,255)
'add original note
rtf.AppendText strBody
rtf.AddNewline 1, True
'Create an empty table
Call rtf.AppendTable(5,5,,,columnStyles)
'Create a navigator to position the text insertion point
Set nav = rtf.CreateNavigator( )
nav.FindLastElement RTELEM_TYPE_TABLE
Set tbl = nav.GetElement
'Set table to use different color for the top and the left column
tbl.Style = TABLESTYLE_TOP
tbl.SetColor headerColor
tbl.SetAlternateColor dataColor
'insert header
rtf.AppendStyle columnHeaderStyle
nav.FindNextElement RTELEM_TYPE_TABLECELL
rtf.BeginInsert nav
rtf.AppendText "Col_1"
rtf.EndInsert
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText "Col_2"
rtf.EndInsert
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText "Col_3"
rtf.EndInsert
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText "Col_4"
rtf.EndInsert
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText "Col_5"
rtf.EndInsert
rtf.AppendStyle dataStyle
For i = 0 To 3
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText(i)
rtf.EndInsert
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText(i)
rtf.EndInsert
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText(i)
rtf.EndInsert
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText(i)
rtf.EndInsert
nav.FindNextElement
rtf.BeginInsert nav
rtf.AppendText(i)
rtf.EndInsert
Next
End Sub
[Source] |
|