CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  企业开发 >  Lotus

请问在FORM中增加一个新的计算域,老文档怎么处理才能让其有该FIELD的值?

楼主CriedSky()2006-03-16 15:01:39 在 企业开发 / Lotus 提问

就是我在FORM中增加一个新的计算域,该域是通过如下公式来获取值的:  
  Db:=@LeftBack(@Subset(@DbName;-1);"\\")   +   "\\XXX.nsf";  
  @If(@IsError(@DbLookup("";@Subset(@DbName;1):Db;"vw_XXX";Fd_XXX;32));"";  
  @Unique(@DbLookup("";@Subset(@DbName;1):Db;"vw_XXX";Fd_XXX;32)))  
   
  如果是新建的文档的话,新文档是有该域的值的,但是是老文档的话,在IE上打开老文档是看得到该域的值的,但是老文档实际上是不存在该值的,因为我通过试图把这个新增加的域作为WHERE条件的时候(即:SELECT   Form   =   "Fm_XXX"   &   Fd_YYY="3",其中Fd_YYY就是新增加的FIELD)   搜索不出文档来.但是老文档通过IE显示的时候,Fd_YYY确实是为3.  
   
  如果我把老文档通过NOTES打开,然后认为保存一下,Fd_YYY的值就保存进去了,但是有很多老文档,我不可能一个个认为去保存,请问有什么批处理一起让Fd_YYY的值保存进老文档中吗? 问题点数:50、回复次数:4Top

1 楼CriedSky()回复于 2006-03-16 15:03:32 得分 0

 
   
  不好意思,是"人为保存",不是"认为保存",打错了Top

2 楼cgs1999(深渊)回复于 2006-03-16 15:15:35 得分 50

编写一个处理旧文档代理,手工执行一下即可,以下为随手写的代码供参考  
   
  On   Error   Goto   ErrHandle  
  Dim   ss   As   New   NotesSession  
  Dim   db   As   NotesDatabase  
  Dim   doc   As   NotesDocument  
  Dim   view   As   NotesView  
  Dim   vdoc   As   NotesDocument  
   
  Set   db=ss.CurrentDatabase  
  Set   doc=ss.DocumentContext  
  Set   view=db.GetView("视图名称")  
   
  Set   vdoc=view.GetFirstDocument  
  view.AutoUpdate=False  
  While   Not(vdoc   is   nothing)  
        vdoc.Fd_YYY=Evaluate({Db:=@LeftBack(@Subset(@DbName;-1);"\\")   +   "\\XXX.nsf";  
  @If(@IsError(@DbLookup("";@Subset(@DbName;1):Db;"vw_XXX";Fd_XXX;32));"";  
  @Unique(@DbLookup("";@Subset(@DbName;1):Db;"vw_XXX";Fd_XXX;32)))}  
        call   vdoc.save(true,true)  
        set   vdoc=view.GetNextDocument(vdoc)  
  Wend  
  view.AutoUpdate=True  
  Exit   Sub  
  ErrHandle:  
  Msgbox   "Error:"   &   Err   &   "   Erl:"   &   ErlTop

3 楼cgs1999(深渊)回复于 2006-03-16 15:18:15 得分 0

上面代码中,以下语句有误,更正为:  
  vdoc.Fd_YYY=Evaluate({Db:=@LeftBack(@Subset(@DbName;-1);"\\")   +   "\\XXX.nsf";  
  @If(@IsError(@DbLookup("";@Subset(@DbName;1):Db;"vw_XXX";Fd_XXX;32));"";  
  @Unique(@DbLookup("";@Subset(@DbName;1):Db;"vw_XXX";Fd_XXX;32)))},vdoc)Top

4 楼CriedSky()回复于 2006-03-16 15:37:41 得分 0

wasai,厉害的啊,谢谢Top

相关问题

  • 是不是用代理保存的文档不记录文档form的值?
  • 和值计算
  • 如何计算一个文档中文本的行数?
  • 不能存取当前正在计算的文档?
  • 【重谢】计算文档中出现scalar如何翻译 内详
  • HTMl文档窗口form中的隐含hidden的参数值如何传递到服务器端校验呢?
  • SQL与差值计算
  • 计算型域的取值
  • 计算型域的取值
  • 计算值的问题……

关键词

  • 文档
  • db
  • 值
  • yyy
  • 保存
  • 处理
  • subset
  • 增加
  • fd
  • xxx

得分解答快速导航

  • 帖主:CriedSky
  • cgs1999

相关链接

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

广告也精彩

反馈

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