怎样建立一个这样的表单。100分,不够再给

mikej 2003-02-25 02:40:15
想建立这样一个表单:

表单上面有几个超级链接,点击链接打开新的窗口,出现一个新的表单,让用户填写。用户填写完毕,新的窗口自动关闭。

依次填写新窗口。

当所有的都填写完毕时。提交这个带有很多链接的表单。保存成文档。

以后打开这个文档,点击每个链接都可以看到原来在新窗口中填写的相关表单。

只求实现的思路,不求源代码!如果分不够,可以再给。保证。。。
...全文
77 36 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
jca 2003-02-26
  • 打赏
  • 举报
回复
使用javascript
在子表单的提交按纽里使用javascript把子表单的值付值给父窗口
window.parent.document.forms[0].a.value=document.forms[0].a.value;
然后进行判断是否结束输入,如果是
则调用父窗口的保存按纽的click事件
window.parent.document.forms[0].button.click();
window.close()
否则
window.close()
aqsir 2003-02-26
  • 打赏
  • 举报
回复
如果你说的是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)
cslion 2003-02-26
  • 打赏
  • 举报
回复
9494
mikej 2003-02-26
  • 打赏
  • 举报
回复
关键是小表单提交的时候,运行的代理,怎么可能识别出主表单呢?这一点我想不明白
jca 2003-02-26
  • 打赏
  • 举报
回复
如果你是担心这个问题,我有一个方法
你在主表单上建立一个按纽b。该按纽b用来保存文档,然后在小表单的提交按纽里调用按纽b的click事件就可以了.
aqsir 2003-02-26
  • 打赏
  • 举报
回复
胖胖,你就用我那段代码,我已经测试过了的没有问题的
rugl 2003-02-26
  • 打赏
  • 举报
回复
表单上面有几个超级链接,点击链接打开新的窗口,出现一个新的表单,让用户填写。用户填写完毕,新的窗口自动关闭。

你所谓的“出现一个新的表单”是指还是原来的表单,只不过是弹出一个新的窗口而已?从头到尾都只用到一个表单?

如果是这样,那么我理解错了,不好意思。
mikej 2003-02-26
  • 打赏
  • 举报
回复
比如说有1个表单A,上面有2个链接

我要用表单A创建2个文档,为此我要另外写2×2=4个表单,这不浪费吗?
rugl 2003-02-26
  • 打赏
  • 举报
回复
我忘了把里面的几份文档删掉,你可以在notes下把它们删掉,然后自己再创建试一下。
rugl 2003-02-26
  • 打赏
  • 举报
回复
已发出,请查收。
mikej 2003-02-26
  • 打赏
  • 举报
回复
我的email是:xiaofengji01@mails.tsinghua.edu.cn.


对你说的还是很不理解:)
rugl 2003-02-26
  • 打赏
  • 举报
回复
表单A你爱创建多少个文档就创建多少个文档。关键是表单B等只能创建一个文档,对吧?

如果愿意,留下email,我给你发一个库过去,你看看,能不能用。
mikej 2003-02-26
  • 打赏
  • 举报
回复
我的意思是表单A也可以创建好多文档,你这个表单A只能创建一个文档吧?
rugl 2003-02-26
  • 打赏
  • 举报
回复
在表单A上,点击一个链接操作用表单B生成一份文档,当然可以点击另一个操作用另一个表单生产另一份文档,只要保证每一个表单只生成一份文档,以后点击时只是打开相应的文档即可,楼主不就是这个意思吗?
mikej 2003-02-26
  • 打赏
  • 举报
回复
同意aqsir的说法,rugl的说法没什么实际意义,只能创建一份文档
aqsir 2003-02-26
  • 打赏
  • 举报
回复
那你这样做只能用a表单创建一份B文档,没有什么现实意义的,也没有达到楼主的要求
rugl 2003-02-26
  • 打赏
  • 举报
回复
不好意思,上面的aa:=@DbColumn("":"";"";"C";1)中少了一个引号。

至于为什么只有一个值,是通过下面的@if控制的,请仔细看一下,当视图C没有文档的时候,即(aa="")的时候,执行(Command([Compose];"B"),新建一份文档,当视图C一有值,即(aa="")不成立,执行的是"(@Do(@Command([OpenView]; "C";aa);@Command([OpenDocument]))),即打开已经存在的文档,所以不可能产生第二份文档。

有什么不妥可以讨论。
tanlin1978 2003-02-26
  • 打赏
  • 举报
回复
在B/S下为什么不用JS呢?更简单:

window.opener.document.forms[0].域名1.value=document.forms[0].域名2.value

其中window.opener.document表示父表单,document表示当前表单
aqsir 2003-02-26
  • 打赏
  • 举报
回复
b/s的请大家讨论讨论!
rugl(rugl) 老兄的方法好像行不通呀!aa:=@DbColumn("":"";"";"C;1),不可能只有一个值的,请三思。
rugl 2003-02-26
  • 打赏
  • 举报
回复
哎,没有那么麻烦的,举个例子

你有一个表单A,上面有很多个链接操作,举个例子,上面有一个链接操作F,第一次点击时想用表单B生成一份新文档,以后再点击就是打开这份文档。

要实现这样的功能,先给表单B建一对应的视图C,选择条件为表单B生成的文档,第一列的值随意为表单B的一个域,并给他排序。

最后,在链接操作F中写公式如下:

aa:=@DbColumn("":"";"";"C;1);
@If(aa="";@Command([Compose];"B");@Do(@Command([OpenView]; "C";aa);@Command([OpenDocument])))
加载更多回复(16)
内容概要:本文详细介绍了一个基于C++语言开发的疫苗接种和儿童体检系统的设计与实现全过程,涵盖项目背景、目标意义、架构设计、核心功能模块、数据库实现、API接口规范、前后端代码实现及部署应用等多个方面。系统采用层架构与模块化设计,实现了儿童信息管理、疫苗接种记录、体检数据录入、多用户权限控制、数据统计析、异常预警、安全加密与日志审计等核心功能,并通过MySQL数据库进行数据持久化,结合Qt实现图形化界面,支持高并发、数据脱敏、多平台对接与自动化部署。项目强调数据安全、隐私保护与系统可扩展性,适用于社区医疗、疾控中心、学校及医院等场景。; 适合人群:具备C++编程基础,熟悉数据库操作和基本软件工程流程的开发人员、计算机及相关专业学生、医疗信息化项目开发者,以及希望了解完整医疗管理系统开发流程的技术人员。; 使用场景及目标:①学习如何使用C++构建完整的医疗信息管理系统;②掌握数据库设计、前后端交互、权限控制、多线程处理和GUI开发等关键技术;③应用于社区卫生服务、学校健康管理、疾控数据统计等实际业务场景,提升儿童健康管理水平;④作为课程设计、毕业设计或实际项目的参考模板。; 阅读建议:建议读者结合文档中的代码示例与数据库脚本,搭建本地开发环境进行实践操作,重点关注系统架构设计、模块解耦、安全机制与前后端交互逻辑,深入理解各功能模块的实现原理,并尝试在此基础上进行功能扩展,如接入移动端或增加AI析模块。

536

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧