Javascript 按xpages中的合计值对文档集合进行排序
我正在开发一个xpages应用程序,在该应用程序中,我希望显示每个客户端总卷数的前5位 我有一个购买任意数量产品的客户列表。我想根据购买的产品总量对客户进行分类。 我使用按客户分类的“Top5”视图 我使用文档集合来计算客户的总数量 我可以按降序对卷进行分类,并选择前5名。但这不允许我从视图中检索产品和客户端的名称Javascript 按xpages中的合计值对文档集合进行排序,javascript,sorting,xpages,lotus-notes,document,Javascript,Sorting,Xpages,Lotus Notes,Document,我正在开发一个xpages应用程序,在该应用程序中,我希望显示每个客户端总卷数的前5位 我有一个购买任意数量产品的客户列表。我想根据购买的产品总量对客户进行分类。 我使用按客户分类的“Top5”视图 我使用文档集合来计算客户的总数量 我可以按降序对卷进行分类,并选择前5名。但这不允许我从视图中检索产品和客户端的名称 var cls3 = @DbColumn("","Top5",1); sessionScope.put("clientsList3",cls3); var db=session.ge
var cls3 = @DbColumn("","Top5",1);
sessionScope.put("clientsList3",cls3);
var db=session.getCurrentDatabase();
var view7=db.getView("Top5")
var dataa =[] ;
var top =[];
for(var r = 0; r < clientsList3.length; r++){
var Cli = @Trim(@Text(clientsList3[r]));
var VolumeTotal :NotesDocumentCollection = view7.getAllDocumentsByKey(Cli);
var vola = 0;
var array = new Array();
var prod = "";
if (VolumeTotal == 0) {array = 0;}
else{
var doca = VolumeTotal.getFirstDocument();
while (doca != null)
{vola = vola + doca.getItemValueInteger("TotalVolume_Intermediate");
doca = VolumeTotal.getNextDocument(doca);
}
array.push(vola);
}
dataa[r] = array;
dataa.sort(function(a, b) {return b - a;});
top = dataa.slice(0,5);
}
return dataa;
}
var cls3=@DbColumn(“,“Top5”,1);
sessionScope.put(“clientsList3”,cls3);
var db=session.getCurrentDatabase();
var view7=db.getView(“Top5”)
var dataa=[];
var-top=[];
for(var r=0;r
您确实希望使用托管bean来实现这一点,它使很多事情变得更加简单。创建一个自定义类,该类为您执行比较操作:
public Class TopSeller implements Comparable {
String product;
public String getProduct() {
return this.product;
}
public void setProduct(String product) {
this.product = product;
}
// Add properties as needed
public int compareTo(Topseller theOther) {
// Your ranking code goes here
}
}
在该类中,compareTo函数确实提供了排名和排序。那么你只需要:
Set<TopSeller> allSeller = new TreeSet<TopSeller>();
Set allSeller=new TreeSet();
。。。你就完了。树集将提供已排序的结果,您只需将其绑定到一个包含5行的repeat即可显示如果您确实想使用托管bean,它将使很多事情变得更加简单。创建一个自定义类,该类为您执行比较操作:
public Class TopSeller implements Comparable {
String product;
public String getProduct() {
return this.product;
}
public void setProduct(String product) {
this.product = product;
}
// Add properties as needed
public int compareTo(Topseller theOther) {
// Your ranking code goes here
}
}
在该类中,compareTo函数确实提供了排名和排序。那么你只需要:
Set<TopSeller> allSeller = new TreeSet<TopSeller>();
Set allSeller=new TreeSet();
。。。你就完了。树集将提供已排序的结果,您只需将其绑定到一个5行重复显示即可请尝试更具体地说明“top5”视图中的主要排序顺序、总计信息等。此外,您还需要更具体地说明正在处理的数据:您想知道产品的总量吗,无论是哪一种(牛奶+报纸+汽车),还是任何一位客户购买每种产品的数量?稍后可能会出现更多问题…top5视图包含按客户分类的所有卷。以及按客户计算总卷(不考虑产品)的列。我想按客户显示总销量的前5名,而不考虑产品。。我可以显示列表中的前5个卷,但排序会使我丢失文档中的信息(即与卷相对应的客户机)。请尝试更具体地查看关于主要排序顺序的“前5”视图,总计信息等。您还需要更具体地了解您正在处理的数据:您想知道产品的总量,无论是哪种产品(牛奶+报纸+汽车),还是任何一位客户每种产品的购买量?稍后可能会出现更多问题…top5视图包含按客户分类的所有卷。以及按客户计算总卷(不考虑产品)的列。我想按客户显示总销量的前5名,而不考虑产品。。我可以显示列表中前5个卷,但排序会使我丢失文档中的信息(即与卷对应的客户端)