我的应用程序正在使用xpages,我尝试在视图中找到常用值。
想象一下view1具有以下值:(位置和官员是视图中的列名称)
Location | Officer
Australia | Peter
Belgium | John
Chile | Ben
Germany | Charlie
Italy | Mike
Singapore | Tom
想象一下view2具有以下值:(项目和位置是视图中的列名称)
Item | Location
Book | Brazil
Book | Italy
Fiction | Singapore
Journal | Australia
Magazine | Australia
Magazine | Austria
Movie | Portugal
Movie | Spain
为了增强应用程序,我必须比较两个视图之间的值,并定义该项是常用项或特定项。
在view2中,如果项目有多个位置,那么该项目是一个公共项目。如果项目具有一个位置,则该项目是特定项目。例如,在view2中,书籍,杂志和电影是常见项目,而小说和期刊是特定项目。
从下面的代码中,它可以显示view1和view2之间的比较。
var keyvalue = sessionScope.keyvalue;
var text = "";
var message = "";
var item_msg = ""; //show whether the item is common item or specific item
var view1 = @DbLookup(@DbName(), "view1", keyvalue , 0)); // use keyvalue to lookup in view1
var view2 = @DbLookup(@DbName(), "view2", view1 , 1)); // use view1 value to lookup in view2
text +="<table><tr><td><u><b>header</u></td></tr>"
for(var x = 0; x < view1.length; x++)
{
message = "value does not match";
for(var y = 0; y < view2.length; y++)
{
if(view1[x] == view2[y])
{
message = "value matches";
break;
}
}
text +=("<tr><td>" + view1[x] + "</td><td>" + message + "</td><td>"+item_msg+"</td></tr>");
}
return text +"</table>";
我想结果会是这样的:
Australia | value matches | common item
Belgium | value does not match | not available as value does not match
Chile | value matches | specific item
Germany | value does not match | not available as value does not match
Italy | value matches | common item
Singapore | value matches | common item
关于这个post,我可以使用for循环和@DbLookup来比较两个视图之间的值。
但是我不知道该项目是常用项目还是特定项目,因为我不确定哪个是我可以用于@DbLookup的关键。
我读了https://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesName_sample_JavaScript_code_for_XPages关于常用名称的内容,但我担心这不是我要寻找的共同价值。
如果有人让我知道如何从视图中获取共同价值,感激不尽。谢谢。
答案 0 :(得分:0)
重复控制会减少痛苦,这是该组件的主要优点之一。
创建一个重复控件,其源是view1,定义var
属性,这将是您如何获取当前迭代元素的句柄。其中包含一个查看view2的组件,并查找与正在迭代的当前元素的键匹配的条目数。从那里,您可以找到当前元素是否通用。
如果您不熟悉重复控制,请熟悉。找到资源来展示它们的使用应该不难,如果你不确定,我会建议你开始使用NotesIn9。
我怀疑你很难找到任何有使用XPages编写解决方案经验的人。
答案 1 :(得分:0)
如果您使用Java并创建Map或List对象,这可能是一件容易的事。循环遍历第一个视图,然后遍历第二个视图以确定它们是否是常见的,或者是否尝试将它们相互关联。然后将重复绑定到List以显示值。