Examples: AppendTable method

  1. This agent creates a basic or tabbed table, depending on user input, in a rich text item.
    %INCLUDE "lsconst.lss"
    Sub Initialize
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Set db = session.CurrentDatabase
      Dim doc As New NotesDocument(db)
      Call doc.AppendItemValue("From", session.UserName)
      Call doc.AppendItemValue _
      ("Subject", Inputbox("Subject?"))
      Dim rti As New NotesRichTextItem(doc, "Body")
      Call rti.AppendText("Paragraph of text")
      Call rti.AddNewLine(2)
      Dim rows As Integer, columns As Integer
      rows = 4
      columns = 3
      Dim tabs() As String
      If Messagebox("Do you want a tabbed table?", _
      MB_YESNO + MB_ICONQUESTION, "Tabbed?") = IDNO Then
        Call rti.AppendTable(rows, columns)
      Else
        Redim tabs(1 To rows)
        For i = 1 To rows
          tabs(i) = "Row " & i
        Next
        Call rti.AppendTable(rows, columns, tabs)
      End If
      Call doc.Save(True, False)
    End Sub
  2. This view action creates a basic auto-width table of 4 rows and 3 columns, and populates it.
    Sub Click(Source As Button)
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Set db = session.CurrentDatabase
      REM Create document with Body rich text item
      Dim doc As New NotesDocument(db)
      Call doc.ReplaceItemValue("Form", "Main topic")
      Call doc.ReplaceItemValue("Subject", "Table 4 x 3")
      Dim body As New NotesRichTextItem(doc, "Body")
      REM Create table in Body item
      rowCount% = 4
      columnCount% = 3
      Call body.AppendTable(rowCount%, columnCount%)
      REM Populate table
      Dim rtnav As NotesRichTextNavigator
      Set rtnav = body.CreateNavigator
      Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL) 
      For iRow% = 1 To 4 Step 1
        For iColumn% = 1 To 3 Step 1
          Call body.BeginInsert(rtnav)
          Call body.AppendText("Row " & iRow% & ", _
          Column " & iColumn%)
          Call body.EndInsert
          Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
        Next
      Next
      REM Save document and refresh view
      Call doc.Save(True, False)
      Dim ws As New NotesUIWorkspace
      Call ws.ViewRefresh
    End Sub
  3. This view action creates a basic auto-width table of 4 rows and 3 columns, with a left margin of 1.5 inches rather than the default 1 inch, and populates it.
    Sub Click(Source As Button)
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Set db = session.CurrentDatabase
      REM Create document with Body rich text item
      Dim doc As New NotesDocument(db)
      Call doc.ReplaceItemValue("Form", "Main topic")
      Call doc.ReplaceItemValue("Subject", "Table 4 x 3")
      Dim body As New NotesRichTextItem(doc, "Body")
      REM Create table in Body item
      rowCount% = 4
      columnCount% = 3
      Call body.AppendTable(rowCount%, columnCount%,, _
      RULER_ONE_INCH * 1.5)
      REM Populate table
      Dim rtnav As NotesRichTextNavigator
      Set rtnav = body.CreateNavigator
      Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL) 
      For iRow% = 1 To 4 Step 1
        For iColumn% = 1 To 3 Step 1
          Call body.BeginInsert(rtnav)
          Call body.AppendText("Row " & iRow% & ", _
          Column " & iColumn%)
          Call body.EndInsert
          Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
        Next
      Next
      REM Save document and refresh view
      Call doc.Save(True, False)
      Dim ws As New NotesUIWorkspace
      Call ws.ViewRefresh
    End Sub
  4. This view action creates a basic table of 4 rows and 3 columns, and populates it. The width of each column is fixed at 1.5 inches. The left margin of the table is 1.5 inches.
    Sub Click(Source As Button)
      Dim session As New NotesSession
      Dim db As NotesDatabase
      Set db = session.CurrentDatabase
      REM Create document with Body rich text item
      Dim doc As New NotesDocument(db)
      Call doc.ReplaceItemValue("Form", "Main topic")
      Call doc.ReplaceItemValue("Subject", "Table 4 x 3")
      Dim body As New NotesRichTextItem(doc, "Body")
      REM Create table in Body item
      rowCount% = 4
      columnCount% = 3
      Dim styles(1 To 3) As NotesRichTextParagraphStyle
      For i% = 1 To 3 Step 1
        Set styles(i%) = session.CreateRichTextParagraphStyle
        styles(i%).LeftMargin = 0
        styles(i%).FirstLineLeftMargin = 0
        styles(i%).RightMargin = RULER_ONE_INCH * 1.5
      Next
      Call body.AppendTable _
      (rowCount%, columnCount%,, RULER_ONE_INCH * 1.5, styles)
      REM Populate table
      Dim rtnav As NotesRichTextNavigator
      Set rtnav = body.CreateNavigator
      Call rtnav.FindFirstElement(RTELEM_TYPE_TABLECELL) 
      For iRow% = 1 To 4 Step 1
        For iColumn% = 1 To 3 Step 1
          Call body.BeginInsert(rtnav)
          Call body.AppendText("Row " & iRow% & ", Column " & iColumn%)
          Call body.EndInsert
          Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
        Next
      Next
      REM Save document and refresh view
      Call doc.Save(True, False)
      Dim ws As New NotesUIWorkspace
      Call ws.ViewRefresh
    End Sub