壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2507|回复: 27

[Domino C/S开发] 如何从A表单的按钮调用B表单?

[复制链接]
发表于 2003/3/27 11:58:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
怎么样从A表单的按钮调用B表单,然后把A中某些值传递到B中。
再编辑B后,点B中的保存再回到A中,同时把一些需要计算的值累计到A中。
哪里有这样的例子?我现在急需,请帮助!
感激!
发表于 2003/3/27 12:14:56 | 显示全部楼层
使用LSP,也可以使用对话框表单(将B作为对话框)
 楼主| 发表于 2003/3/27 13:41:00 | 显示全部楼层
不明白哦,我现在是刚开始做这方面的。
能不能具体些呢。
 楼主| 发表于 2003/3/28 09:20:44 | 显示全部楼层
救命啊。
能出手的快点出手吧。
发表于 2003/3/28 11:37:45 | 显示全部楼层
要求的步骤还挺麻烦的
提供一个思路:
首先要在A表单设置一个代理
pathstring="xxx.nsf"
Set newdb = s.getdatabase(db.server,pathstring)
Set newdoc = New notesdocument(newdb)
newdoc.Form="xxx"    'B表单名
........      ' 进行赋值
doc.unid=newDoc.universalid     '取得新建好的文档的id
........
之后在A表单的onload事件中写JS,用来调出B表单:
var zsfwid =document.forms[0].unid.value
if ((zsfwid!="") && (document.forms[0].loadmode.value=="1"))
{
  var pathname = (window.location.pathname);
  var tmpurlstring=pathname.substring(0,(pathname.lastIndexOf('.nsf')-4))+'newdb.nsf/viewname/'+zsfwid+'?EditDocument'
  window.open(tmpurlstring,'新表单);
  document.forms[0].loadmode.value="0"
}                  '该处loadmode为A表单里的一个标志域,用来防止表单每次加载时都调出B表单
在B表单中的操作完毕后要将部分值传回A表单,可事先在上述代理中将A表单生成的文档的universalid赋给B表单中的一个记录域(在“ ........      ' 进行赋值” 处写 )
然后在B表单的保存按钮中调用一个代理,用notesdatabase类的getdocumentbyunid取到A文档,将值传回。
发表于 2003/3/28 12:43:44 | 显示全部楼层
可以把B独有的域设为A的隐藏域,公共的可以用msessagebox继承A的,如何继承请察看帮助,这样编写B后,相应A的也会更改,然后需要累加的就加上隐藏域的值
 楼主| 发表于 2003/3/28 13:41:21 | 显示全部楼层
多谢提供。
在研究。
 楼主| 发表于 2003/3/28 15:02:25 | 显示全部楼层
LS怎么做啊?我现在能打开B表单,同时也能关闭A表单。可是值却传不过来。我还不知道用什么类可以做到。
发表于 2003/3/28 16:45:21 | 显示全部楼层
你现在作到什么地步了,完成了什么功能,等等,说详细点。
 楼主| 发表于 2003/3/28 17:04:48 | 显示全部楼层
我现在可以打开B表单同时关闭A表单。就是值传不到B中来。
发表于 2003/3/28 17:20:55 | 显示全部楼层
没用我的方法吗?
我的方法是在A表单调用javascript打开B表单(而不是打开B表单同时关闭A表单)
至于赋值部分:
pathstring="xxx.nsf"
Set newdb = s.getdatabase(db.server,pathstring)
Set newdoc = New notesdocument(newdb)
newdoc.Form="xxx"    'B表单名
newdoc.aaa=doc.aaa
newdoc.bbb=doc.bbb
newdoc.ccc=doc.ccc
newdoc.ddd=doc.ddd
.......
call newdoc.save(true,false)
call doc.save(true,false)      '对新旧文档进行保存
 楼主| 发表于 2003/3/28 17:26:20 | 显示全部楼层
可不可以用LS先?
因我才开始学。JS还没看到呢。
 楼主| 发表于 2003/3/31 15:00:48 | 显示全部楼层
在B表单中点了保存按钮后,怎么样可以打开调用此B表单的A表单啊。
发表于 2003/3/31 20:21:18 | 显示全部楼层
the same way!
发表于 2003/4/1 09:05:06 | 显示全部楼层
NotesDocument类中又一个函数,是拷贝一个文档的所有域到另一个文档中,你看看帮助!~
 楼主| 发表于 2003/4/1 09:23:17 | 显示全部楼层
我在你的这个网站上找到这样的资料:
Set uidoc = ws.editdocument(doc)
可是却不能用啊。提示:
NOTES错误--无法由工作区使用所指定的指令。
为什么呢?
 楼主| 发表于 2003/4/2 09:03:19 | 显示全部楼层

我在你的这个网站上找到这样的资料:
Set uidoc = ws.editdocument(true,doc)    '这样就可以了。
所以我的问题已经解决了。
发表于 2003/4/7 15:23:17 | 显示全部楼层
使用ui.Dialogbox(FormB,True, True, False, True, False, False).祝你成功。
发表于 2003/4/13 00:12:17 | 显示全部楼层
我打个岔
我怎么从A表单取一个域的值到B表单?
比如我的A表单中有"工程名称"这个域,我的B表单中也有"工程名称"这个域
我怎么从A表单中取呢?
两个域的名字要一样吗?
我的B表单用的是计算域
那计算的域值设为什么好呢?他本身?
 楼主| 发表于 2003/4/14 09:02:47 | 显示全部楼层
我是先得到A中想要域的值然后把A关闭掉了。
同时打开了B表单,那么B就是uidoc.然后又把B中想要得到值的域值设为刚才A中那个值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 17:46 , Processed in 0.021930 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表