Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




 
Ответить Новая тема 
> Импорт значений документов в таблицу Rt поля
allex
Вставить ник
сообщение 19:02:2007, 11:10
Цитата Ответить 


Гуру
Иконка группы

Группа: Lotus team
Сообщений: 288
Регистрация: 18:07:2005
Из: г.Меленки
Пользователь №: 1 995



Репутация:   2  


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

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


Сообщение отредактировал allex - 21:02:2007, 09:00
Подняться вверх 
 
Сообщение #1


Ответить  Новая тема 

 

RSS Текстовая версия Сейчас: 2:12:2008 - 12:44

с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net