Nasledovanie Polya

Тема в разделе "Lotus - Программирование", создана пользователем Olga23, 2 фев 2006.

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

    Olga23 Гость

    Tovarischi, spasite! Ne znayu s chego nachat...U menya est View, gde est dokument firmi-on roditelskij...Pod nim nahodyatsya dokumenti sotrudnikov i drugie...Kak sdelat,chtobi pole iz dokumenta firmi peredalos uge sozdannim dochernim dokumentam?Mne nugno napisat agent...Ya ne znayu s chego mne nachat:-( :D
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Olga23+2:02:2006, 15:34 -->
    <span class="vbquote">(Olga23 @ 2:02:2006, 15:34 )</span><!--QuoteEBegin-->Pod nim nahodyatsya dokumenti sotrudnikov i drugie
    [snapback]30043" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Значит, это response-документы ?
    <!--QuoteBegin-Olga23+2:02:2006, 15:34 -->
    <span class="vbquote">(Olga23 @ 2:02:2006, 15:34 )</span><!--QuoteEBegin-->Kak sdelat,chtobi pole iz dokumenta firmi peredalos uge sozdannim dochernim dokumentam?Mne nugno napisat agent...Ya ne znayu s chego mne nachat:-(
    [snapback]30043" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Делаем так. Создаем кнопку в твоем главном документе. В ней вызываем агента так:
    Код (Text):
     Dim ws As New NotesUIWorkspace
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim uidoc As NotesUIDocument

    Set uidoc = ws.CurrentDocument
    Set db = session.CurrentDatabase
    Set agent = db.GetAgent("твой агент")
    Call agent.Run(uidoc.Document.NoteID)
    В самом агенте делаем так:
    Код (Text):
     Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim dc As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim rdoc As NotesDocument
    Dim i As Long
    Set db = session.CurrentDatabase
    Set agent = session.CurrentAgent
    Set doc = db.GetDocumentByID(agent.ParameterDocID) 'получаем главный документ
    Set dc = doc.Responses
    For i = 1 to dc.Count
     Set rdoc = dc.GetNthDocument(i)
     rdoc.MyField = doc.MyField
     Call rdoc.Save(True, True, True)
    Next
     
  3. Olga23

    Olga23 Гость

    Ochen bolshoe za pomosch...Da da eto responce dokumenti, tak kak oni nasledujut polya iz dokumenta firmi...Tolko chto poprobovala sdelat, kak Vi posovetovali, vizvala nagala na knopku, vizvalsya agent, no rezultata net...V kode agenta v etih strochkah:
    Set rdoc = dc.GetNthDocument(i)
    rdoc.MyField = doc.MyField
    Call rdoc.Save(True, True, True)
    Next
    vmesto MyFeld ya napisala imya moego polya...No ne rabotaet,a pochemu nikak ponyat ne mogu:-(
     
  4. Olga23

    Olga23 Гость

    kstati zabila dobavit, chto pole v dokumente roditele tipa spisok....No eto nikak ne vliyaet ya dumayu...Vo vseh dok-tah responce vstavlena subform, gde stojat dannie o firmi, tak vot tam sredi poley toge stojat spiski....I vse proishodit absoljutno normalno...A s etim polem pryamo kakaya to problema... :(
     
  5. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Olga23
    Так ты пройдись дебаггером. Посмотри где и что не так.
    Посмотри, сколько документов в doc.Responses.
     
  6. Olga23

    Olga23 Гость

    Posmotrela seychas v Debbugere, kogda proishodit:
    Set agent = db.GetAgent("твой агент"), togda ya vigu v WS--->Responces--->(0;False;""""), vo vkladke Parent ya vigu imya bazi dannih....
    To est pod Responces net nichego, pusto...
     
  7. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Olga23+2:02:2006, 16:41 -->
    <span class="vbquote">(Olga23 @ 2:02:2006, 16:41 )</span><!--QuoteEBegin-->WS--->Responces--->(0;False;""""),
    [snapback]30048" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Это как ? Может быть это doc.Responses в агенте ? Если так, значит у него нет response-документов.
     
  8. Olga23

    Olga23 Гость

    hm...Togda esli net responce dokumentov, kak eto vozmogno sdelat?A skagite pogalujsta chto takoe responce dokumenti? Eto kak ya ponimayu dokumenti otvetov?
     
  9. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Olga23
    Это документы с полем $REF.
     
  10. Olga23

    Olga23 Гость

    v etih dokumentah k sogaleniju netu etogo polya...Est li u Vas eshe idei, kak eto mogno sdelat? :)
     
  11. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Значит, задача немного усложняется.
    Вместо этого:
    <!--QuoteBegin-Medevic+2:02:2006, 15:53 -->
    <span class="vbquote">(Medevic @ 2:02:2006, 15:53 )</span><!--QuoteEBegin-->Set dc = doc.Responses
    [snapback]30044" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Нужно по-другому взять коллекцию документов. У тебя, вроде бы, они связаны по UNID. Т.е. есть поле (в дочерних документах), где прописан UNID главного документа. Скорее всего, есть представление. Есть ли у тебя встроенное представление в главном документе, которое показывает его дочерние документы ?
     
  12. Olga23

    Olga23 Гость

    aga oni svyazani po UNIDID, no vstroennogo predstavlenija netu....
     
  13. Гость

    Я делала не через doc.Responses, а с помощью вида в котором выводились ответные документы по ID родительского дока.
    Категория задавалась так:
    Код (Text):
    @Text($ref)
    Текст серверного агента:
    Код (Text):
    Sub Initialize
    ' Функция выполняет обновление всех зависимых документов...
    ' Обновление происходит по виду "RequestAdd~RequestUNID"
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim agent As NotesAgent
    Dim view As NotesView  
    Dim collection As NotesDocumentCollection
    Dim wdoc As NotesDocument
    Dim doc As NotesDocument
    Dim item As NotesItem
    Dim count As Integer

    Set agent = session.CurrentAgent
    Set db = session.CurrentDatabase
    Set doc = db.GetDocumentByID(agent.ParameterDocID) 

    Set view = db.GetView("RequestAdd~RequestUNID")
    Call view.Refresh
    Set collection = view.GetAllDocumentsByKey(Cstr(doc.UniversalID), True)
    If collection.Count = 0 Then Exit Sub
    count% = 0
    Set wdoc = collection.GetFirstDocument
    While count <= collection.Count
    ' Обновим поля в приложениях...  
    count%=count%+1
    Call wdoc.ReplaceItemValue("Visible",doc.Visible(0))

    Call wdoc.Save(True, True)
    Set wdoc = collection.GetNextDocument(wdoc)
    Wend
    Delete session 
    End Sub
     
  14. Olga23

    Olga23 Гость

    <!--QuoteBegin-Юлия+6:02:2006, 10:12 -->
    <span class="vbquote">(Юлия @ 6:02:2006, 10:12 )</span><!--QuoteEBegin-->Я делала не через doc.Responses, а с помощью вида в котором выводились ответные документы по ID родительского дока.
    Категория задавалась так:
    CODE

    @Text($ref)
    [snapback]30187" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Julja, hotela u Vas sprosit, a u vas est eto pole $ref u dokumentov? I:
    вида в котором выводились ответные документы по ID родительского дока.-eto vi spezialno View sozdavali?I gde ono ispolzovalos, tolko v kode agenta?
     
  15. Гость

    Да, это поле есть во всех ответных документов. Его не обязательно отображать на форме, оно по умолчанию создается. Как и $UpdateBy.

    Попробуй сделать вид для форм-ответоных документов, в котором первое поле будет @Text($ref). :)
     
  16. Olga23

    Olga23 Гость

    Spasibo za otvet:)Seychas poprobovala sozdat View "RequestAdd~RequestUNID" s odnoj kolonkoj: @Text($ref). Potom agent s kodom, kotorij Vi napisali...Vizvala agent iz odnogo iz dok-tov roditeley, poluchila takoe soobschenie ob oshibke:
    Invalid note ID...Seychas vot dumayu, v chem moget bit problema...Julija, skagite pogalujsta, otkuda Vi etot agent vizivali? Eshe tut posmotrela v kagdom dokumenta roditele est vkladka dokumenti-eto View so vsemi dokumentami,to est vse doki, otnosyaschiesya k nemu(krome dok-tov sotrudnikov).
     
  17. Гость

    Вызывала из родительского документа.

    А в "RequestAdd~RequestUNID" ответные документы отображаются нормально?
     
  18. Olga23

    Olga23 Гость

    ya ne vigu ni odnogo iz dokumentov v etom View kstati...
     
  19. Гость

    А какое условие отбора в представление?
    Какие еще поля есть в виде кроме первого? Если оно одно, то его не нужно категоризировать.
    Птички на свойстве "Show response documents in a hierarchy" не должно быть.
    Больше ничего не приходит в голову. :)
     
  20. Olga23

    Olga23 Гость

    uslovie otbora:vibrat form = "Person"; Form = " Notice" nu i t.d. formi, na osnove kotorih sozdayutsya eto vzavisyaschie ot roditelskogo dokumenta...Galochku ubrala, vse ravno ne hotit rabotat...
     
Статус темы:
Закрыта.

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