Xpages中的两个组合框使用@DbLookup确定其他计算字段的值

Xpages中的两个组合框使用@DbLookup确定其他计算字段的值,xpages,Xpages,我有一个表单,它有几个基于组合框更新的字段。第一个组合框使用@DbColumn来拉取视图中的第一列。第二个组合框根据第一个组合框的选择在同一视图中拉取第二列。那很好。问题是,;我有几个后续的计算字段,它们使用第二个组合框中的选择从同一视图的后续列中提取。这些计算字段不起作用。我以为我可以只使用Javascript中的@DbLookup命令从视图中调用值,但它不起作用。 下面是第一个组合框的javascript代码(非常简单): 下面是第二个组合框代码: var vendor = getCompo

我有一个表单,它有几个基于组合框更新的字段。第一个组合框使用@DbColumn来拉取视图中的第一列。第二个组合框根据第一个组合框的选择在同一视图中拉取第二列。那很好。问题是,;我有几个后续的计算字段,它们使用第二个组合框中的选择从同一视图的后续列中提取。这些计算字段不起作用。我以为我可以只使用Javascript中的@DbLookup命令从视图中调用值,但它不起作用。
下面是第一个组合框的javascript代码(非常简单):

下面是第二个组合框代码:

var vendor = getComponent("POVendor").getValue();
var items = @DbLookup(@DbName(), "PLBV", vendor, 2);
if (@IsError(items))
return "Please select a Vendor first";
else
return items;
这两个例程都完全按照我的要求工作。问题就在这里。我还有三个字段应该根据第二个组合框的值填充。它不起作用。我会给你代码,但它是非常基本的

var item = document1.getItemValue("Item_1");
var cost = @DbLookup(@DbName(), "PLBV", item, 3);

return cost;

此代码返回一个空白值(字段中未显示任何内容)。我做错了什么?

如果您试图在保存文档之前访问该项目,则需要使用以下代码:

var item = getComponent("Item_1").getValue();
var cost = @DbLookup(@DbName(), "PLBV", item, 3);
根据文档的验证设置,可能需要使用getSubmittedValue()而不是getValue()

希望这有帮助


Matt

问题源于我试图调用第二个组合框中填充的同一视图中的列的值。该视图的第一列按供应商名称分类。第二列(我用来填充第二个组合框的列)是该供应商提供的产品列表。那部分很好用。然而;当我试图根据第二个组合框(产品)的值从同一视图调用第三列m的值时,我什么也没有得到。

我有一个单独的视图,它是一个完整的产品列表,没有被提供产品的供应商分类。我根据第二个组合框中的产品名称从该视图中调用了colunms&我所有的计算字段都有效。现在我唯一的问题是,当两个不同的供应商为两个不同的产品使用相同的产品名称时会发生什么?我到桥头就过那座桥。谢谢大家的帮助。它可能没有解决Surface的问题,但它让我对幕后发生的事情有了更深入的了解

我会试试的&让你知道。更改第二个组合框时,验证已完成,因为它必须一次刷新5个字段。刚刚尝试了您建议的代码,但返回了500个错误(我知道没有多少帮助)。我将使用这些代码,看看是否可以让它工作。我尝试使用getComponent().getValue()或getSubmittedValue()的任何操作都会破坏页面。还有其他想法吗?是否进入应用程序属性并打开XPages运行时错误?这可能会提供更多信息。马克,不要和组件说话,要和数据说话。例如:
var item=document1.getValue(“item_1”)
var item = getComponent("Item_1").getValue();
var cost = @DbLookup(@DbName(), "PLBV", item, 3);