CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  企业开发 >  Lotus

表单中域值如何在未提交时从Session中取到?

楼主Xray2004(鸟蛋(孵化中))2004-12-04 11:54:36 在 企业开发 / Lotus 提问

我看了许多代理,  
  Set   Doc=session.DocumentContext  
  year   =   Doc.year(0)  
  这样即可取到当前表单中的域值,但是我怎么试也取不到,请问取这个值需要什么条件?  
  修改表单属性?还是admin端设置?还是程序里需要加什么别的? 问题点数:20、回复次数:19Top

1 楼EANFS(我的爱是折下自己的翅膀 送给你飞翔)回复于 2004-12-04 13:53:00 得分 10

dim   session   as   new   NotesSession  
  dim   doc   as   NotesDocument  
  set   doc   =   session.DocumentContext  
  print   doc.year(0)  
  一定可以的Top

2 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-04 16:11:02 得分 0

我又试了几次,找到问题了.  
  楼上的大侠,你的代理时怎么激活的?用公式还是JS啊?我用JS总是没法保留Session。  
  用公式倒是可以:@Command([ToolsRunMacro];"test")   ,test就是这个代理,  
  但是这时又有一个问题,就是我在测试库中可以正常运行,print   doc.year(0)也确定打印出了数据。可是当我在应用库比如我们做的档案库和发文库里就出错了,代理与表单是最简单的,不行,改用测试库中的代理与表单拷贝过来也不行,我把这两个库的数据库属性都改成和测试库差不多了还是不行(除了两个应用库有模板库)。  
  结果就是用JS保留不了session,用公式直接就出错了,页面错误,后台提示:  
  HTTP   Web   Server:   Corrupt   Data   Exception   [/lfoa/dangan.nsf/years?openform&seq=1]Top

3 楼kingchang2000(骠骑大将)回复于 2004-12-04 18:32:16 得分 0

你用js是用什么方法呀,一般用url的方法打开对应的代理是可以的,  
  你报的这个错误好像是你修改了years这个表单后再作代理操作发生的。  
   
  EAFNS的方法是正确的。Top

4 楼EANFS(我的爱是折下自己的翅膀 送给你飞翔)回复于 2004-12-04 22:56:31 得分 0

JS应该是不能调用代理的吧,没有试过,  
  有用过一个控件倒是可以的Top

5 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-05 12:29:28 得分 0

js我用的是window.open();和location.replace();一个是新开一页,一个是当前页换了,都保留不了session,     公式@Command([ToolsRunMacro];"test")有时无法用,报上面说的错,有时也是打开空白页这时当前的地址栏显示的是test?openagent,只有在测试库中对过几次,print   doc.year(0)能打印出来,地址栏是years?openform&seq=1;各位大侠,这到底是怎么回事啊?  
  (痛苦中!!)Top

6 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-06 08:48:34 得分 0

沉了,顶一下。没人遇到过这样郁闷的问题吗?Top

7 楼gzxiaohao()回复于 2004-12-06 09:06:38 得分 0

可以取到的。你把代理用公式写在一个按钮里面,然后用JS去点击他就OK了。这个是最常用的办法。结帐。呵呵!Top

8 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-06 09:27:37 得分 0

楼上的大侠,你能说的具体点吗?你说的和做个按钮放入@Command([ToolsRunMacro];"test")有什么样的区别?能够保留session?  
  我最苦恼的是测试库中这样做有时好用,有时不行,而应用库根本不行,能告诉我原因吗?  
  万分感谢!!Top

9 楼xaser(繁星似火)回复于 2004-12-06 09:56:15 得分 0

什么叫保留session???在notes中没有这样的概念,不要把asp中的思路带到notes中来。  
  在notes中每次都是在代理中这样取session  
  dim   session   as   new   NotesSessionTop

10 楼xaser(繁星似火)回复于 2004-12-06 09:58:00 得分 0

在未提交时取域值是什么意思呢?不明白,  
  想用js取域值就这样  
  alert(document.forms[0].fieldname.value)Top

11 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-06 10:41:41 得分 0

"在未提交时"那是我开始的一个误解,JS这样取值我知道,但是通过url传参,在url里时中文,在代理中就变成乱码了,不知道怎么处理?  
  “保留session”我是说为什么有时通过调用代理取session中的DOC.year(0)取不到值的问题。  
  呵呵,用词不准。Top

12 楼xaser(繁星似火)回复于 2004-12-06 11:14:40 得分 10

1.url传参数不要使用中文,js使用escape(),将中文转换后再带入url,公式则使用@URLEncode,同样先转换中文。  
   
  2.检查year这个域的属性,不要为显示时计算。Top

13 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-06 11:42:52 得分 0

大大,year域确实是个可编辑的域啊,谢谢老大对中文处理的解释^-^Top

14 楼zhanyunpeng(大鸟)回复于 2004-12-06 12:52:15 得分 0

如果用openagnet调用代理的话,取出的session是   agent的,就是说,你的documentcontext是代理程序的,而不是文档Top

15 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-06 15:36:20 得分 0

楼上的   zhanyunpeng(大鸟),请问你是怎么调用代理的呢?Top

16 楼xaser(繁星似火)回复于 2004-12-06 16:36:40 得分 0

要对当前文档进行操作,不要使用url带参数的方式去打开agent,  
  直接使用按钮、或者热点,  
  这些按钮或者热点的点击事件可以执行公式@command([toolsrunmacro];"AgentName")  
  不过,看你写的内容(years?openform&seq=1)来看应该是这样做的。  
   
  或者js触发这些按钮或热点的点击事件  
  比如按钮有个id   (button123),  
  则js:document.all.button123.click().  
  Top

17 楼zhanyunpeng(大鸟)回复于 2004-12-06 16:48:32 得分 0

Xray2004(鸟蛋(孵化中))   :  
      用xaser(繁星似火)的方法调用代理就可以Top

18 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-06 18:14:43 得分 0

发现一个问题,公式命令@command([toolsrunmacro];"AgentName")在数据库A表单中打开web页浏览,点击按钮激活公式命令后,系统确去找数据库B中的代理?这是为什么?代理名字也不对,是很久以前改的代理名字。  
  再次谢谢大家的热心!!Top

19 楼Xray2004(鸟蛋(孵化中))回复于 2004-12-07 08:55:28 得分 0

代理没动,表单与数据库没动,就把按钮删了,重建了一个一摸一样的就好了,不知道是不是lotus的BUG。呵呵Top

相关问题

  • 表单提交
  • 提交表单
  • 表单提交
  • 表单提交
  • 提交表单
  • 提交表单
  • 提交表单
  • 利用session该怎样才能限制表单重复提交
  • 急:表单通过js提交表单。
  • 关于提交表单,和跨域访问的问题

关键词

  • js
  • 数据库
  • 测试
  • 中文
  • 属性
  • 应用
  • notes
  • 表单
  • 代理
  • 公式

得分解答快速导航

  • 帖主:Xray2004
  • EANFS
  • xaser

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo