Замечание к документу ""А нахрена уральский парень занимается Тай-Чи" (c) Шахрин"   >>>   
Тема: Я же, сказал что это всё - "коряво", но работает

Создан:Sergey Kornienko 03/26/2005 03:32 PM
Папка:
06. Разработка Notes-приложений
Тип сообщения:
Извинение

Сообщение:
Вот тебе скрипты кнопки создания доч. документа:

Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Set db=session.currentdatabase

Dim coll As NotesDocumentCollection
Set coll= ws.PickListCollection(PICKLIST_CUSTOM,False,db.server, db.filepath,"DocTemplates","Выберите тип документа для создания","Список типов")
If coll.count=0 Then Exit Sub


Set doc= coll.GetFirstDocument
If doc.CreateNames(0) <> "" Then
doc.tmp=Evaluate(|@Trim(@Replace(CreateNames;@UserNamesList;""))|,doc)

If Ubound(doc.tmp) = Ubound(doc.CreateNames) Then
If doc.tmp(0) <> "" Then
Messagebox "Вы не имеете права на создание документов этого типа !", 16, "Ошибка"
Exit Sub
End If
End If
End If
Dim rt As notesRichTextItem
Set rt=doc.GetFirstItem("DocFile")
Dim tdoc As New NotesDocument(db)
tdoc.form="Document"
Call tdoc.CopyItem(rt, doc.TemplateType(0)+"File")
tdoc.TemplateName=doc.TemplateName
Dim ErrorMsg As String
Dim Errorcode As Integer
Dim success As Integer

Dim ltdoc As New NotesDocument(db)
ltdoc.form="LotusDoc"
ltdoc.TemplateName=doc.TemplateName
ltdoc.ProcessName=doc.ProcessName(0)

ltdoc.DocDocumentUniqueID=doc.SysDocumentUniqueID {Здесь передаю поле}
ltdoc.activityNames=doc.activityNames
ltdoc.label1=doc.label1
ltdoc.label2=doc.label2
ltdoc.label3=doc.label3
ltdoc.label4=doc.label4
ltdoc.label5=doc.label5
ltdoc.label6=doc.label6

ltdoc.field1=doc.field1
ltdoc.field2=doc.field2
ltdoc.field3=doc.field3
ltdoc.field4=doc.field4
ltdoc.field5=doc.field5
ltdoc.field6=doc.field6

ltdoc.val1=doc.val1
ltdoc.val2=doc.val2
ltdoc.val3=doc.val3
ltdoc.val4=doc.val4
ltdoc.val5=doc.val5
ltdoc.val6=doc.val6

ltdoc.doc1=doc.doc1
ltdoc.doc2=doc.doc2
ltdoc.doc3=doc.doc3
ltdoc.doc4=doc.doc4
ltdoc.doc5=doc.doc5
ltdoc.doc6=doc.doc6

ltdoc.stage1=doc.stage1
ltdoc.stage2=doc.stage2
ltdoc.stage3=doc.stage3
ltdoc.stage4=doc.stage4
ltdoc.stage5=doc.stage5
ltdoc.stage6=doc.stage6
ltdoc.HasTemplate=doc.HasTemplate
If doc.doc1(0) <> "1" Then
ltdoc.resp1=doc.resp1
End If
If doc.doc2(0) <> "1" Then
ltdoc.resp2=doc.resp2
End If
If doc.doc3(0) <> "1" Then
ltdoc.resp3=doc.resp3
End If
If doc.doc4(0) <> "1" Then
ltdoc.resp4=doc.resp4
End If
If doc.doc5(0) <> "1" Then
ltdoc.resp5=doc.resp5
End If
If doc.doc6(0) <> "1" Then
ltdoc.resp6=doc.resp6
End If
i=0
Forall v In doc.activitynames
id =Right(v,Len(v)-Instr(v,"%"))
Call ltdoc.replaceitemvalue(id,doc.getItemValue("resp" + Cstr(i+1)))
i=i+1
End Forall


Dim ireaders As New NotesItem(ltdoc,"ReadNames",doc.ReadNames,READERS)
Dim itreaders As New NotesItem(tdoc,"ReadNames",doc.ReadNames,READERS)

Dim iauthors As New NotesItem(ltdoc,"EditNames",doc.EditNames,AUTHORS)
Dim itauthors As New NotesItem(tdoc,"EditNames",doc.EditNames,AUTHORS)


tdoc.ProcessName = doc.ProcessName(0)
If doc.createNames(0) <> "" Then
ltdoc.createNames=doc.createNames
Else
ltdoc.createNames = session.UserName
End If
success = DWFJobInitiate(doc.ProcessName(0),"документооборот", "1. High", True, ltDoc, "", ErrorMsg, Errorcode)
Call ltdoc.save(True,True)
success = DWFBinderAddDocument(ltdoc, tdoc, errorcode)
Call tdoc.save(True,True)
Call tdoc.makeresponse(ltdoc)
Call tdoc.save(True,True)
tdoc.refid = ltdoc.universalid
var =Evaluate(|@SetField("refid";$REF)|,tdoc)
Call tdoc.removeitem("$REF")
Call tdoc.save(True,True)

Call ws.editdocument(True,ltdoc)

End Sub

И ещё, не суди строга. Я – студент-программер

Уверен, что разберёшься.

Иерархия документов данной дискуссии:
Можно ли при создании дочернего документа до его сохранения узнать UNID родительского? (Ivan Pomidoroff) (03.03.2005 11:16:05)
.... $REF или @InheritedDocumentUniqueID - что Вам болШе нравится (-) (Nick A Norkin; VIT Server B) (03.03.2005 12:11:58)
........ Нужно на скрипте, а не на формулах(+) (Ivan Pomidoroff) (03.03.2005 16:00:07)
............ Во вновь создаваемом документе разместить computed for display поле с формулой @Text(@InheritedDocumentUniqueID) и брать значение из этого поля (-) (Nick A Norkin; VIT Server B) (03.03.2005 18:13:43)
.... Можно. немного "коряво", но работает на 100% (Sergey Kornienko) (26.03.2005 12:15:48)
........ "А нахрена уральский парень занимается Тай-Чи" (c) Шахрин (Vlad Sh) (26.03.2005 14:55:54)
............ Я же, сказал что это всё - "коряво", но работает (Sergey Kornienko) (26.03.2005 15:32:38)
................ Сергей поймите критику правильно.... (Andrew S Golembiovskiy) (26.03.2005 16:00:07)
.................... Могу подтвердить :-) (+) (Dmitry E Nabatchikov) (31.03.2005 13:15:27)
................ Студент, Вы в LN собираетесь работать или его у вас для ознакомления дают? (Vlad Sh) (26.03.2005 17:09:11)
.................... ну вот, испортили парню субботу, сейчас пойдет и напьется, "нежнее, Виктор, еще нежнее" (с). (Dmitry Akulov) (26.03.2005 18:03:57)
........................ Люди!!! (Sergey Kornienko) (28.03.2005 19:45:53)


Разработчикам и администраторам: курсы, книги, сертификация