1

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

@DbColumn(@DbName(), "PLBV", 1)

这是第二个组合框代码:

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;

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

4

2 回答 2

2

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

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

根据文档的验证设置,您可能需要使用 getSubmittedValue() 而不是 getValue()。

希望这可以帮助。

马特

于 2013-05-30T13:27:28.367 回答
0

问题源于我试图从填充第二个组合框的同一视图中调用列的值。该视图的第一列按供应商名称分类。第二列(我用来填充第二个组合框的列)是该供应商提供的产品列表。那部分工作得很好。然而; 当我尝试根据第二个组合框(产品)的值从同一视图中调用第三列的值时,我什么也没得到。
我有一个单独的视图,它是一个完整的产品列表,没有被提供产品的供应商分类。我根据第二个组合框中的产品名称从该视图中调用了列,并且我的所有计算字段都有效。现在我唯一的问题是,当两个不同的供应商为两种不同的产品使用相同的产品名称时会发生什么?当我到达那里时,我会越过那座桥。感谢大家的帮助。它可能没有解决 surfase 问题,但它让我对幕后发生的事情有了更深入的了解。

于 2013-05-31T15:02:17.730 回答