Проблема с агентом.

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

  1. kilcher

    kilcher Гость

    Добрый день,всем!
    Возникла проблема в работе агента. Мне необходимо просмотреть все документы,затем выцепить из них id. По этим id я нахожу коллекцию документов ответов. И заношу значение из документа ответа в родительский документ. Все вроде функционирет,но почему то только для первого документа ответа. Как-будто коллекция не перебирается :)
    Помогите пожалуйста ошибку найти.
    Вот эта часть кода
    Set item1 = doc.GetFirstItem( "soglasovali" )
    Set view = db.GetView("Answer" )
    Set dc = view.GetAllDocumentsByKey(doc.order_id, False)
    If dc.Count =0 Then
    doc.flag="1"
    Else
    Set doc1= dc.GetFirstDocument
    Call item1.AppendToTextList( doc1.GetItemValue("From") )
    'сравниваем значение полей кто должен проставить отметку и кто уже проставил.
    f1 = doc.GetFirstItem("answer1").Values
    f2 = doc.GetFirstItem("soglasovali").Values
    f3 = Fulltrim(Arrayreplace(f1, f2, ""))
    Call doc.ReplaceItemValue("ne_soglasovali", f3)
    doc.ComputeWithForm False, False
    doc.Save True, True
    Set doc1 = dc.GetNextDocument (doc1)
    End If
     
  2. alb

    alb Well-Known Member

    Регистрация:
    13 июл 2005
    Сообщения:
    212
    Симпатии:
    0
    судя по куску кода все правильно
    ты ведь не проходишь ведь по всем документам в коллекции

    Set item1 = doc.GetFirstItem( "soglasovali" )
    Set view = db.GetView("Answer" )
    Set dc = view.GetAllDocumentsByKey(doc.order_id, False)
    If dc.Count =0 Then
    doc.flag="1"
    Else
    Set doc1= dc.GetFirstDocument
    *******************************************************
    Call item1.AppendToTextList( doc1.GetItemValue("From") )
    'сравниваем значение полей кто должен проставить отметку и кто уже проставил.
    f1 = doc.GetFirstItem("answer1").Values
    f2 = doc.GetFirstItem("soglasovali").Values
    f3 = Fulltrim(Arrayreplace(f1, f2, ""))
    Call doc.ReplaceItemValue("ne_soglasovali", f3)
    doc.ComputeWithForm False, False
    doc.Save True, True
    Set doc1 = dc.GetNextDocument (doc1)
    *******************************************************
    End If


    звездочкой выделенная часть кода должна быть в цикле
     
  3. kilcher

    kilcher Гость

    А разве Set doc1 = dc.GetNextDocument (doc1) это не переход к следующему документу коллекции? Что то торможу я :)
     
  4. alb

    alb Well-Known Member

    Регистрация:
    13 июл 2005
    Сообщения:
    212
    Симпатии:
    0
    да вы взяли этим следующий документ но чтоб его обработать нужно ведь вернутся и повторитьте действия которые делали предшествующим документом
     
  5. kilcher

    kilcher Гость

    Но ведь я не знаю сколько у меня документов. Т.е. не знаю когда остановить цикл.
     
  6. alb

    alb Well-Known Member

    Регистрация:
    13 июл 2005
    Сообщения:
    212
    Симпатии:
    0
    while not(doc1 is nothing)
    *******************************************************
    Call item1.AppendToTextList( doc1.GetItemValue("From") )
    'сравниваем значение полей кто должен проставить отметку и кто уже проставил.
    f1 = doc.GetFirstItem("answer1").Values
    f2 = doc.GetFirstItem("soglasovali").Values
    f3 = Fulltrim(Arrayreplace(f1, f2, ""))
    Call doc.ReplaceItemValue("ne_soglasovali", f3)
    doc.ComputeWithForm False, False
    doc.Save True, True
    Set doc1 = dc.GetNextDocument (doc1)
    *******************************************************
    wend

    dc.count на что?
     
  7. kilcher

    kilcher Гость

    Ну если число документов в коллекции =0.
    Спасибо за совет,все получилось. :)
     
  8. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    если кол-во 0, то doc сразу вернет nothing

    хотя лично я пользуюсь do while - loop
     
Загрузка...
Похожие Темы - Проблема агентом
  1. PaKo
    Ответов:
    11
    Просмотров:
    5.789
  2. c0de3r
    Ответов:
    5
    Просмотров:
    127
  3. DobermannTT
    Ответов:
    10
    Просмотров:
    136
  4. SoulPaladin
    Ответов:
    4
    Просмотров:
    133
  5. Artael
    Ответов:
    1
    Просмотров:
    110

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