2014-09-04 42 views
5

基于此XPages adding @Formulas in dialogList,我的dialogList1从两个级联视图获取值:abxpages @IsMember函数在对话框列表项值

还有另一个dialogList2,这是呈现根据如果dialogList1值是空值或没有,其值应该是这样的:

dialogList1.value来自=> dialogList2.choices应该只有从B

dialogList1.value是从b => dialogList2.choices应该仅从

我尝试:

// Contr.txt_particontractcv_1 - is the value binded by dialogList1  
var dbname = session.getServerName() + "!!" + "mynsf.nsf"; 

    //var a = @Unique(@DbColumn(dbname, "vwNumeCompanii", 0)).sort(); 
    //var b = @Unique(@DbColumn(@DbName(),"vwA",0)); 

    //return a.concat(b); 
    if (@IsMember(Contr.txt_particontractcv_1,@Unique(@DbColumn(@DbName(),"vwA",0)))) 
    { return @Unique(@DbColumn(dbname, "vwNumeCompanii", 0)) } 

    else 
    { return @Unique(@DbColumn(@DbName(),"vwA",0)) } 

,但dialogList2仅从vwA(从b)获取值...我想我错过了一些东西。谢谢你的时间。

+0

什么样的控件是“dialogList1”?它是一个xe:对话框,还是一个组合框?请添加“dialogList1”和“dialogList2”的所有代码 – 2014-09-08 07:03:00

+0

同时检查值“Contr.txt_particontractcv_1”。在启动dialog2之前无法提交。 – 2014-09-08 07:08:34

+0

@PerHenrikLausten它是一个组合框。 – 2014-09-08 08:17:29

回答

2

是的,我只是修改Contr.txt_particontractcv_1Contr.getItemValueString("txt_particontractcv_1")和,现在,它works.`

3

Contr.txt_particontractcv_1不能在SSJS使用。点符号适用于LotusScript,但不适用于SSJS或Java,因为Java的运行时不是专有的,并且没有以这种方式扩展。这就是为什么Contr.getItemValueString("txt_particontractcv_1")是必需的。

某些SSJS全局变量允许使用点符号,例如, sessionScope。但那是因为它基于一个Map,所以sessionScope.myProperty只能映射到sessionScope.get(“myProperty”)。 Domino Document类不扩展Map接口(这是OpenNTF Domino API的增强功能之一),所以点符号不知道是否使用getItemValue(),getItemValueString(),getItemValueDateTimeArray()等。

这也是为什么范围变量的最佳实践也是使用例如sessionScope.get( “myVar的”)。当谈到移动到Java时,您将无法使用点符号,您将不得不使用相关的方法。因此,在SSJS中以这种方式工作会培养未来的良好习惯。