首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

Domino7或8下怎么通过java取得种类为[显示时计算]字段

2012-02-13 
Domino7或8下如何通过java取得种类为[显示时计算]字段?问题描述如下:版本:Domino7或8Domino数据库文件(nsf

Domino7或8下如何通过java取得种类为[显示时计算]字段?
问题描述如下:
 版本:Domino7或8
 Domino数据库文件(nsf文件)里有个Form的某个字段的种类是"显示时计算",利用Java/CORBA 类库来取得这个字段,
发现根本取不到这个字段
 javaAgent代码如下

Java code
import java.io.*;import java.util.*;import lotus.domino.*;public class JavaAgent extends AgentBase {    public void NotesMain() {        System.out.println("Start!");        try {          Session session = getSession();          AgentContext agentContext =                session.getAgentContext();          Database database = session.getDatabase("", "computefordisp.nsf");                    View view = database.getView("MemoList");                    lotus.domino.Document doc = view.getLastDocument();          Vector vt = doc.getItems();          System.out.println("has item compuefordispFld:" + doc.hasItem("compuefordispFld"));          for (int i = 0, n = vt.size(); i < n; i++) {              Item item = (Item)vt.get(i);              System.out.print(item.getName());              System.out.print(":");              System.out.println(item.getText());          }                  } catch(Exception e) {          e.printStackTrace();        }            System.out.println("End!");      }}


上面的"compuefordispFld"这个字段就是 "显示时计算"种类的,
System.out.println("has item compuefordispFld:" + doc.hasItem("compuefordispFld"));这句代码的结果是
has item compuefordispFld:false
后面循环里也没有找到这个项目。

高手帮忙看看,如何取得这中字段?

[解决办法]
“显示时计算”域是只有当文档打开时才会有值,此值通常和打开时的环境有关系,例如时间,当前用户等。 后台文档(没有打开时)的“显示时计算”item是不存在的。所以你在java里面当然取不到。

除非你在程序里把后台文档打开,变成当前文档。不过,这个肯定违背你程序的意思。总之,对后台文档,在程序里要避免取“显示时计算”域值。


[解决办法]
已经不支持这种显示时计算在文档中有实际的值了。
[解决办法]
显示时计算的域(比如AAA)在Web端显示时,只显示了AAA的值,而没有在页面上生成<input type="text" name="AAA" value=".." />。在浏览器查看源文件就明白了。
另外如果想取得该域值,可以考虑把该域放到一个容器中,比如<span>、<div>中。。

热点排行