如果你说的是c/s结构下的就很好解决的(b/s我不会)
在主表单上建两行链接文本,并将主表单设置为自动刷新域:
子表单(隐藏公式为:flag="true",执行代码1)
子表单(隐藏公式为:flag="false",设置为链接热点写公式"http://.../Cid?opendocument")
创建两个隐藏域:flag(用来标记是否创建了子表单),Cid(记录子表单的ID号)
在子表单form1中创建一个隐藏域:Pid(记录主文档的ID号),并新建一个按钮用于当用户填写完毕后点击执行代码2。
另外需新建一视图all,视图选择公式可以不写,第一列必须为排序列且列公式为@text(@DocumentUniqueID).
代码1:
Dim session As New notessession
Dim ws As New notesuiworkspace
Dim uidoc As notesuidocument
Dim docid As String
Dim db As Notesdatabase
Dim newdoc ,doc As notesdocument
Set db=session.currentdatabase
Set uidoc=ws.currentdocument
Set doc=uidoc.document
docid=doc.UniversalID
Call doc.save(True,True)
doc.saveoptions=0
Call uidoc.close
Set uidoc = ws.ComposeDocument _
( "", "", "form1" ) '创建子文档
Set newdoc=uidoc.document
newdoc.Pid=docid '将父文档的ID传给新建的子文档
代码2:
Dim session As New notessession
Dim ws As New notesuiworkspace
Dim uidoc As notesuidocument
Dim docid,key As String
Dim db As Notesdatabase
Dim Pdoc ,doc As notesdocument
Dim view As notesview
Set db=session.currentdatabase
Set uidoc=ws.currentdocument
Set doc=uidoc.document
Set view=db.getview("all")
Call doc.save(True,True)
doc.saveoptions=0
Call uidoc.close
docid=doc.UniversalID
key=doc.Pid(0)
Set Pdoc=view.Getdocumentbykey(key,True)
Pdoc.flag="true"
Pdoc.Cid=docid
Call Pdoc.save(True,False)
Set uidoc=ws.Editdocument(True,Pdoc)