Побороть Listtag

Тема в разделе "Lotus - Программирование", создана пользователем allex, 29 июл 2009.

Статус темы:
Закрыта.
  1. allex

    allex Гость

    Имеется код, который в текущем доке забирает значения из нужных полей

    Нужно просуммировать каждый эллемент массива: A1( Listtag(x1)) + A1( Listtag(x2)) + A1( Listtag(x3)) и записать это в новый массим

    Код (Text):
    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Set uidoc = ws.CurrentDocument
    uidoc.EditMode = True
    Set doc = uidoc.Document
    Stop

    Dim A List As Double
    Dim A1 List As Double
    Dim A2 List As Double
    Dim A3 List As Double
    For i = 1 To 15
    A("ju_" + Cstr(i) ) = 0             ' имена полей результата суммирования
    A1("ju_srjp_" + Cstr(i) ) = 0   ' имена полей участвующих в суммировани
    A2("ju_vjbo_" + Cstr(i) ) = 0   ' имена полей участвующих в суммировани
    A3("ju_vtbo_" + Cstr(i) ) = 0   ' имена полей участвующих в суммировани
    Next
    Stop
    '%REM  
    Forall x1 In A1
    If doc.HasItem(Listtag(X1)) Then
    A1( Listtag(x1) ) = doc.getitemvalue( Listtag(x1) )(0)
    End If
    End Forall
    Stop       
    Forall x2 In A2
    If doc.HasItem(Listtag(X2)) Then
    A2( Listtag(x2) ) = doc.getitemvalue( Listtag(x2) )(0)
    End If
    End Forall
    Stop
    Forall x3 In A3
    If doc.HasItem(Listtag(X3)) Then
    A3( Listtag(x3) ) = doc.getitemvalue( Listtag(x3) )(0)
    End If
    End Forall
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    А зачем тебе списки? В первом цикле For..Next можно сразу и сумму посчитать и записать.
     
  3. allex

    allex Гость

    Объясни... мозг кипит
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Не совсем понятно, что суммировать нужно.
    A1( Listtag(x1)) + A1( Listtag(x2)) + A1( Listtag(x3))
    Т.к. элементов A1( Listtag(x2)) и A1( Listtag(x3)) не существует.
    Если я правильно думаю, то что-то типа такого:
    Код (Text):
    For i = 1 To 15
    d = 0
    If doc.HasItem("ju_srjp_" + Cstr(i)) Then d = d + doc.getitemvalue("ju_srjp_" + Cstr(i)(0)
    If doc.HasItem("ju_vjbo_" + Cstr(i)) Then d = d + doc.getitemvalue("ju_vjbo_" + Cstr(i)(0)
    If doc.HasItem("ju_vtbo_" + Cstr(i)) Then d = d + doc.getitemvalue("ju_vtbo_" + Cstr(i)(0)
    ...
    Next
    Также конструкция вида A1( Listtag(x1) ) равна просто x1.
     
  5. allex

    allex Гость

    Это я идейно изложил
    Ты правильно понял
     
Загрузка...
Статус темы:
Закрыта.

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