我希望这是一个简单的修复,但我没有xPages经验......
我有一个订单应用。我输入客户ID,查找并显示信息。然后在前面的类型中输入客户订购的产品。它查找它,显示适用的信息,并允许我输入订购的数量。我有一个保存/更新按钮,按下此按钮将此项目保存在自己的记录中,并将订单ID作为密钥。我在下面有一个视图控件,按此订单ID过滤(但是没有显示)。订购的商品已保存。然后我输入另一个项目编号来订购第二个项目。它显示,我输入数量并单击保存。在保存按钮中,它设置该文档所需的所有字段,然后保存。第二次,它只更新第一次,而不是创建第二次。我把一个createdocument命令放入其中并且它出错了。是否有一些命令我可以用来清除第一项的系统?在视图控件中,用户可以单击某个项目,它将显示在我创建新项目时显示的“当前工作项”区域中。这令人困惑吗?谢谢你的帮助。
麦克
这是按钮的代码。表单是xPage(docItem)上的数据源。我还尝试在包含项目信息和视图的面板上放置数据源。结果相同。我的字段从viewScope变量获取数据,如下所示... document1是存储客户信息的主要订单文档,等等。我不保存,直到用户第一次订购项目....
document1.save();
vItemPrice = viewScope.vsItemCsPricing1;
viewScope.vsItemPrice = vItemPrice;
viewScope.vsItemExtPrice = vItemPrice * 3;
docItem.setValue("ItemPartNbr", viewScope.vsItemPartNbr);
docItem.setValue("ItemOrderUNID", viewScope.vsOrderUNID);
docItem.setValue("ItemPrice", viewScope.vsItemPrice);
docItem.setValue("ItemExtPrice", viewScope.vsItemExtPrice);
docItem.setValue("ItemDesc", viewScope.vsItemDesc);
docItem.setValue("ItemQty", getComponent("ItemQty").getValue())
docItem.save();
viewScope.vsItemFullDesc = "";
viewScope.vsItemDesc = "";
viewScope.vsItemPartNbr = "";
viewScope.vsItemCatNbr = "";
viewScope.vsItemUPCCode = "";
viewScope.vsItemCartUPCCode = "";
viewScope.vsItemCsPricing1 = "";
viewScope.vsItemCsPricing2 = "";
viewScope.vsItemCsPricing3 = "";
viewScope.vsItemQtyAvail = "";
viewScope.vsItemDiscInd = "";
viewScope.vsItemQtySold12 = "";
viewScope.vsItemCsQty = "";
viewScope.vsItemQty = "";
viewScope.vsItemPrice = "";
viewScope.vsItemExtPrice = "";
viewScope.vsItemStatus = "";
答案 0 :(得分:2)
docItem
似乎是一个文档数据源。只要你打开XPage,它就会保持不变。每个docItem.save()
都会将值保存到同一个文档中。
不要将docItem定义为数据源。使用
在您的保存按钮代码中创建文档
var docItem = database.createDocument()
并将viewScope变量值应用于它。
示例:
var docItem = database.createDocument();
docItem.replaceItemValue("Form", "fOrderLineItem");
docItem.replaceItemValue("ItemPartNbr", viewScope.vsItemPartNbr);
...
docItem.save();
然后你会得到不同的物品文件。