Queryrecalc по всем документам

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

  1. Гость

    Как можно пробижаться по всем документам с запуском процедуры Queryrecalc?
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    содержимое процедуры в библиотеку, библиотеку в Queryrecalc формы и в какой-то агент... и побежал :)
     
  3. Гость

    Содержимое какой процедуры в библиотеку? Прости че-то не догоняю. Для того что бы запустить Queryrecalc формы, надо создать агента. Вопрос что он должен делать что бы запустить Queryrecalc?
     
  4. K-Fire

    K-Fire Гость

    QueryCalc это событие формы. Вот код который повешан на это событие переносишь в отдельную функцию какой-нить библиотеки. И агентом вызываешь эту функцию для каждого документа из множества.
     
  5. Гость

    Могу ли я просто код QueryRecalc, вставить в агента:
    Set Doc = Source.Document

    Dim session As New NotesSession
    Set session = New NotesSession
    Set prodb = session.CurrentDatabase
    Set proDoc = prodb.GetProfileDocument("SystemInformation")

    PathToServer = proDoc.GetItemValue("PathToServerDbIS")(0)
    PathToDB = proDoc.GetItemValue("PathToDbIS")(0)+proDoc.GetItemValue("NameOfDbIS")(0)

    Set session = New NotesSession
    If db Is Nothing Then Set db = session.GetDatabase(PathToServer, PathToDB)
    If view Is Nothing Then Set view = db.GetView ("ContragentsForContracts" )

    Dim Cworkspace As New NotesUIWorkspace

    Set uidoc = Cworkspace.CurrentDocument
    Set Cdoc = uidoc.Document
    Set cLink = New NotesRichTextItem(Doc,"ContractPartiesLink")
    Set OtherDoc = view.GetDocumentByKey(Doc.GetItemValue("ContractParties")(0), True)

    If Not OtherDoc Is Nothing Then
    Call Doc.ReplaceItemValue("ContractPartiesAccount", OtherDoc.GetItemValue("ContractPartyAccount")(0))
    ' Call CLink.AppendDocLink(doc,""+Doc.Subject(0),)
    Call CLink.AppendText(" Уставные документы ")
    Call CLink.AppendDocLink(OtherDoc,OtherDoc.Subject(0),)
    End If

    'Set the saveoptions so that the user is not prompted when the document closes.
    cdoc.form = "Contract"
    Cdoc.SaveOptions = "0"

    Call Cdoc.Save (True, False,False)

    DocUNID = Cdoc.UniversalID

    'Close the document in the UI
    Call uidoc.Close (True)

    'Re-open the document in the UI
    Set uidoc = CWorkspace.EditDocument(True, Cdoc)
    Set CDocN= uidoc.Document

    cdocN.saveOptions="1"
     
  6. K-Fire

    K-Fire Гость

    Ну естессно можешь, только текущий док получать не как Source.Document, а в цикле, и все остальные UI объекты выкинуть тоже.


    Вопрос кстати характеризует глобальное непонимание что такое евенты, рекомендую покурить хелп поплотнее :)
     
  7. Гость

    Thanks :)
     
  8. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Только вот врятли получится то, что надо.
     
  9. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    я бы еще порекомендовал рассмотреть понятия процедурального написания программ, и не лепить во все места куски кода, а писать правильные процедуры, которые можно вызвать из нескольких мест!
    что это дает? это позволит исправлять/изменять код только в одном месте программы, а не в N-местах...

    почему? я так понял что там только ссылка добавляется в РТ-поле
     
  10. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    судя по задаче лучше вынести код в процедуру библиотеки, но не а агент
     
  11. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Просто предупреждение, т.к. мало того, что предложено. Начнётся с того, что документ обработается один, если вообще обработается.
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    все-равно не понял, ну да ладно )
     
Загрузка...

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