javascript - 按 xpages 中的总值对文档集合进行排序

标签 javascript sorting xpages lotus-notes document

我正在开发一个 xpages 应用程序,我想在其中显示每个客户端总交易量的前 5 名。

我有一个购买任意数量产品的客户列表。我想根据购买的产品总量对客户进行分类。 我使用按客户分类的“Top5” View 。

我使用文档集合来计算客户的总数量。

我可以按降序对数量进行分类,并选择前 5 个。但这不允许我从 View 中检索产品和客户的名称。

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;

      }

最佳答案

您确实想为此使用托管 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>();

...你就完成了。 Treeset 将提供准备好的排序结果,您只需将其绑定(bind)到 5 行的重复即可显示

关于javascript - 按 xpages 中的总值对文档集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22456735/

相关文章:

xpages - 使用默认系统浏览器访问本地 IBM Notes 应用程序

javascript - 如何使用请求作为代理来向响应注入(inject) header

javascript - 再次关于如何在 ajax 调用后绘制谷歌图表

android - 如何对 Android 的 backendless 数据进行排序并隐藏(不删除)重复项?

asp.net-mvc - MVC3 - 使用 Include 时对数据库查询进行排序

python - 在 2 个列表中查找最接近的日期时间

java - 如何将 Java 对象设置为自定义控件上的数据源

xpages - 如何解决应用程序初始加载加载时间过长的问题

javascript - 为什么属性用 null 初始化的对象数组处理得更好

javascript - 正则表达式查找html标签