Импорт значений документов в таблицу Rt поля

Тема в разделе "Oбщий функционал", создана пользователем allex, 19 фев 2007.

  1. allex

    allex Гость

    Действие вешается в представлении для импорта файла Excel в Lotus
    Значения из документов представления "body_f2" из примера импортируются в сгенерированную скриптом табличку, где колличество вкладок вычисляется динамически, в зависимости от количества документов в представлении,а использование стиля позволяем изменять размеры колонок

    Код (Text):
    Sub Click(Source As Button)

    Dim val_List( 1 To 200 ) As Variant ' колличество шагов исполнеия цыкла
    Dim current_val As Variant
    counter% = 1
    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)
    Dim view_doc As NotesDocument
    Call doc.ReplaceItemValue("Form", "body_rt_f2") ' название формы отчета по этой форме (в ней же содержится RT поле в котором создается таблица со вкладками)
    Dim body As New NotesRichTextItem(doc, "body_rt")
    Set view = db.GetView("body_f2")

    REM Create table in Body item
    rowCount% = 16 'колличество строк в таблице каждой из вкладок
    columnCount% = 7 'колличество столбцов в таблице каждой из вкладок
    a = view.EntryCount ' число документов в представлении (строки)
    'c = a+12
    'b = Fix(c/rowCount%) ' число вкладок
    b = Fix(a/rowCount%) ' число вкладок
    b1 = Fix(a/rowCount%) ' число вкладок
    b2 = a/rowCount%

    If b1< b2 Then b=b1 +1

    Dim tabs() As String
    If Messagebox("Продолжить создание таблицы?", _
    MB_YESNO + MB_ICONQUESTION, "Tabbed?") = IDNO Then
    Call body.AppendTable(b, 1)
    Else
    Redim tabs(1 To b)
    For i = 1 To b
    tabs(i) = "Стр № " & i
    Next
    Call body.AppendTable(b, 1, tabs) 'создание таблицы с вкладками

    End If
    REM Populate table
    Dim rtnav As NotesRichTextNavigator
    Set rtnav = body.CreateNavigator
    Call rtnav.FindFirstElement(RTELEM_TYPE_TABLE)'
    Set view_doc = view.GetFirstDocument
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL) 'поиск ячейки в 1 вкладке
    ' вставка таблицы 7х15
    '****************************************** стиль оформления
    Dim columnStyles1(0 To 6) As NotesRichTextParagraphStyle
    For i = 0 To 6
    Set columnStyles1(i) = session.CreateRichTextParagraphStyle
    columnStyles1(i).LeftMargin = 0 ' position relative to cell border.
    columnStyles1(i).FirstLineLeftMargin = 0
    Next
    columnStyles1(0).RightMargin = 4.5 * RULER_ONE_CENTIMETER
    columnStyles1(0).Alignment = ALIGN_CENTER
    columnStyles1(1).RightMargin = 17. * RULER_ONE_CENTIMETER
    columnStyles1(1).Alignment = ALIGN_LEFT
    columnStyles1(2).RightMargin = 2. * RULER_ONE_CENTIMETER
    columnStyles1(2).Alignment = ALIGN_CENTER
    columnStyles1(3).RightMargin = 1.5 * RULER_ONE_CENTIMETER
    columnStyles1(3).Alignment = ALIGN_CENTER
    columnStyles1(4).RightMargin = 1.5 * RULER_ONE_CENTIMETER
    columnStyles1(4).Alignment = ALIGN_CENTER
    columnStyles1(5).RightMargin = 1.5 * RULER_ONE_CENTIMETER
    columnStyles1(5).Alignment = ALIGN_CENTER
    columnStyles1(6).RightMargin = 1.5 * RULER_ONE_CENTIMETER
    columnStyles1(6).Alignment = ALIGN_CENTER
    '*********************************************
    For ib = 1 To b Step 1
    Call body.BeginInsert(rtnav)                                                           
    Call body.AppendTable(rowCount%, columnCount%,,,columnStyles1)
    'Call body.AppendTable(16, 7,,,columnStyles1)
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL) 'поиск ячейки во вложенной таблице 1 вкладки

    For iRow% = 1 To rowCount% Step 1
    If view_doc.Size = 0 Goto savedoc
    On Error Goto savedoc

    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 0 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 1 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 2 ))
    'On Error=19 Goto savedoc
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 3 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 4 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Call body.AppendText(view_doc.ColumnValues( 5 ))
    Call body.EndInsert
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Call body.BeginInsert(rtnav)
    Dim v6 As String
    v6$ = Left$(view_doc.ColumnValues( 6 ), 6)
    Call body.AppendText(v6$)
    val_List( counter% ) = current_val
    Set view_doc = view.GetNextDocument( view_doc )
    counter% = counter% + 1        

    Call body.EndInsert
    If current_val > a Goto savedoc
    Call rtnav.FindNextElement(RTELEM_TYPE_TABLECELL)
    Next
    Next
    'Exit Sub
    savedoc:

    REM Save document and refresh view
    Call doc.Save(True, False)
    Dim ws As New NotesUIWorkspace
    Call ws.ViewRefresh
    Exit Sub

    End Sub
     
Загрузка...
Похожие Темы - Импорт значений документов
  1. ToxaRat
    Ответов:
    11
    Просмотров:
    624
  2. magistr
    Ответов:
    25
    Просмотров:
    1.757
  3. Lia
    Ответов:
    15
    Просмотров:
    1.081
  4. ty3uk
    Ответов:
    16
    Просмотров:
    1.946
  5. Ali002
    Ответов:
    0
    Просмотров:
    1.116

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