агент обновления документов

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 12 апр 2007.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Подскажите, я полный ноль в агентах.... Это мой первый агент
    Мне нужно залезть во view, достать доки и обновить их
    veiw содержит
    |Уникальное название|Заглавие БД|Сервер|Имя БД|


    Начал писать агент
    Вообщем документ содержит еще поле со списком форм определенной БД(которую мы открыли). Мне нужно обновить документ, так как список форм мог измениться. Я получил новый список форм. НО как можно изменить документ(с обновленным полем, содержащим список форм) - не знаю
    НО как я понимаю тут надо работать с doc, но я что-то не знаю....
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Попробуй заюзать @Command([ToolsRefreshAllDocs])
     
  3. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Medevic
    я думаю не подойдет.
    Я считаю что нужно написать почти тот же код, что и на кнопочке документа. Только как обновить и сохранить док - не знаю
     
  4. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
  5. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Есть документ с двумя полями поле№1 и поле№2 , причем второе берет значение из первого через use formula for choices (поле№1)
    Документ сохранен, вообщем все нормально,все заполнено

    Далее вызываю агент
    .....................
    Call doc.ReplaceItemValue("поле№1",stMsgString)
    Call doc.Save(True,True )

    Т.е. обновилось поле№1
    НО поле№2 не обновилось и оно пусто
    Помогите, что можно сделать... Можно ли как-н обновить документ, или еще что-н?
     
  6. Ogion7

    Ogion7 Гость

    Документ обновить надо, или галку поставь Refresh fields on keyword change
     
  7. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    <!--QuoteBegin-Ogion7+12:04:2007, 16:06 -->
    <span class="vbquote">(Ogion7 @ 12:04:2007, 16:06 )</span><!--QuoteEBegin-->Можно ли как-н обновить документ
    [snapback]62276" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Для: Ogion7
    вот я и не знаю как обновить
     
  8. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    Call doc.ReplaceItemValue("поле№1",stMsgString)
    Call doc.ComputeWithForm(True, False)
    Call doc.Save(True,True )
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Kee_Keekkenen
    Все равно не заполняется то поле....((
    Вот мой код на всякий случай
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Dim vw As NotesView
    Dim vwnav As NotesViewNavigator
    Dim vwentryA As NotesViewEntry
    Dim stDBServer As String
    Dim stDBFileName As String
    Dim stMsgString As String

    Set db = s.CurrentDatabase
    Set vw = db.GetView ("vw-InformationDB" )
    Set vwnav = vw.CreateViewNav()
    Set vwentryA = vwnav.GetFirst

    While Not(vwentryA Is Nothing)
    Set doc = vwentryA.Document
    ' Открываем БД
    Dim db1 As New NotesDatabase( "", "" )
    stDBServer = doc.GetItemValue("GXE_InfD_d_DBServer_TX")(0)
    stDBFileName = doc.GetItemValue("GXE_InfD_d_DBFileName_TX")(0)
    If stDBServer = "Local" Then stDBServer=""
    Call db1.Open(stDBServer,stDBFileName )
    ' Получаем список форм открытой БД
    Forall form In db1.Forms
    stMsgString = stMsgString & Chr(10) & form.Name
    End Forall

    Call doc.ReplaceItemValue("GXE_InfD_d_CandidListFormDB_TX",stMsgString)

    Call doc.ComputeWithForm(True, False)
    Call doc.Save(True,True )
    Call vw.Refresh()

    Set vwentryA = vwnav.GetNext(vwentryA)

    Wend
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-wowa+13:04:2007, 07:23 -->
    <span class="vbquote">(wowa @ 13:04:2007, 07:23 )</span><!--QuoteEBegin-->Все равно не заполняется то поле....((
    [snapback]62316" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Не понятно, как оно должно заполнится.

    Ты пишешь:
    <!--QuoteBegin-wowa+12:04:2007, 14:50 -->
    <span class="vbquote">(wowa @ 12:04:2007, 14:50 )</span><!--QuoteEBegin-->Есть документ с двумя полями поле№1 и поле№2 , причем второе берет значение из первого через use formula for choices (поле№1)
    [snapback]62257" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Второе никак не может брать значение из первого через use formula for choices. Так ты только создаешь список возможных значений. Но значение поля должен проставить ты сам.
     
  11. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Начну все заново...В документе Мне нужно было занести в Listbox(поле№2) значения... Чтобы их туда занести , мне порекомендовали создать отдельное, скрытое Text поле(поле№1), и занести сначала туда значения,..
    И прописать в поле№2, на второй закладки через use formula for choices (поле№1).....
    http://codeby.net/forum/threads/12348.html?hl=listbox
    При работе агента скрытое, TEXT поле№1 обновляется, но ListBox (поле№2) - пусто
     
  12. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-wowa+13:04:2007, 10:11 -->
    <span class="vbquote">(wowa @ 13:04:2007, 10:11 )</span><!--QuoteEBegin-->При работе агента скрытое, TEXT поле№1 обновляется, но ListBox (поле№2) - пусто
    [snapback]62324" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Пустое это как? Нет значения или нет списка вариантов?
     
  13. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    При просмотре в Notes, поле пусто
     
  14. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Понятно, где ошибка.
    Вот так, как ниже списки не делают.
    <!--QuoteBegin-wowa+13:04:2007, 07:23 -->
    <span class="vbquote">(wowa @ 13:04:2007, 07:23 )</span><!--QuoteEBegin-->Forall form In db1.Forms
    stMsgString = stMsgString & Chr(10) & form.Name
    End Forall[/quote]
    У тебя как бы получается, что первое значение пустое.
    Т.е. список вида (хотя это не список, а просто строка):
    "
    1
    2"
    В листбокс видно именно пустое значение, т.к. остальные на других строках.
    Короче, делай правильно список. Например, через Split:
    Код (Text):
    Call doc.ReplaceItemValue("GXE_InfD_d_CandidListFormDB_TX", Split(stMsgString, chr(10)))
     
  15. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Кстати, Call doc.ComputeWithForm(True, False) можешь убрать.
     
  16. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Для: Medevic
    Большое спасибо, Очень тебе благодарен!!!!!!

    Единственно остается пустая первая строка...
     
  17. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    FullTrim(Split(stMsgString, chr(10)))
     
  18. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    <!--QuoteBegin-Medevic+13:04:2007, 10:05 -->
    <span class="vbquote">(Medevic @ 13:04:2007, 10:05 )</span><!--QuoteEBegin-->Кстати, Call doc.ComputeWithForm(True, False) можешь убрать.
    [snapback]62332" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Вот это кстати лучше оставить.... иначе не так работает как надо..
    СПАСИБО!
     
Загрузка...

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