Nasledovanie Polya

  • Автор темы Olga23
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

Olga23

#1
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
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#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]

Делаем так. Создаем кнопку в твоем главном документе. В ней вызываем агента так:
Код:
 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)
В самом агенте делаем так:
Код:
 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
 
O

Olga23

#3
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:-(
 
O

Olga23

#4
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... :(
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
Для: Olga23
Так ты пройдись дебаггером. Посмотри где и что не так.
Посмотри, сколько документов в doc.Responses.
 
O

Olga23

#6
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...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#7
<!--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-документов.
 
O

Olga23

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

Olga23

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#11
Значит, задача немного усложняется.
Вместо этого:
<!--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 главного документа. Скорее всего, есть представление. Есть ли у тебя встроенное представление в главном документе, которое показывает его дочерние документы ?
 
G

Guest

#13
Я делала не через doc.Responses, а с помощью вида в котором выводились ответные документы по ID родительского дока.
Категория задавалась так:
Код:
@Text($ref)
Текст серверного агента:
Код:
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
 
O

Olga23

#14
<!--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?
 
G

Guest

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

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

Olga23

#16
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).
 
G

Guest

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

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

Guest

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

Olga23

#20
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...
 
Статус
Закрыто для дальнейших ответов.