每次订单属性发现变化时,有没有办法分开?

时间:2015-07-02 14:03:51

标签: rally

我正在使用缺陷列表自定义应用程序,该应用程序使用queryConfig来填充缺陷的结果。我目前正在使用order属性对结果进行排序。

我的问题是:是否有可能以某种方式检测order排序的标准何时发生变化并暂停?

例如 - 让我们说填充的列表是按分类排序的食物列表。在我们的订单属性中,我们将对这些DESC进行排序它可能看起来像这样:

Apples Bananas Strawberries Carrots Lettuce

现在在食品分类中,有水果类和蔬菜类。问题再一次,我能以某种方式知道蔬菜排序何时发生,然后执行一次以使结果看起来分组?

使用上面的例子,我们希望实现:

Apples Bananas Strawberries

Carrots Lettuce

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

通过Order参数进行排序是在服务器端完成的,因此我认为没有办法在不检查数据的情况下识别客户端分组中的更改。

由于您使用的是AppSDK 1.x,因此使用queryConfig数组可能有助于获得与所需分组匹配的结果分组。然后你可以做类似以下的事情:

 var queryConfig = [];
 queryConfig[0] = {
  type : 'HierarchicalRequirement', 
  key : 'fruit_stories',
  query: '(c_FoodCategory = "Fruits")', 
  fetch: 'Name,FormattedID,Description,c_FoodCategory'
 };
 queryConfig[1] = {
  type : 'HierarchicalRequirement',
  key : 'veggie_stories',
  query: '(c_FoodCategory = "Vegetables")', 
  fetch: 'Name,FormattedID,Description,c_FoodCategory'
 };

  var rallyDataSource;
  rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__', 
                           '__PROJECT_OID__',
                           '__PROJECT_SCOPING_UP__', 
                           '__PROJECT_SCOPING_DOWN__'); 
  rallyDataSource.findAll(queryConfig, processResults);
}

var processResults = function(results) {
    var fruit_stories = results['fruit_stories'];
    var veggie_stories = results['veggie_stories'];
    var aDiv = document.getElementById("aDiv");

    // Output fruit stories
    for (var i=0; i<fruit_stories.length; i++) {
       story = fruit_stories[i];
       storyInfo += story.Name + 
                   ', ' + story.FormattedID + 
                   ', ' + story.c_FoodCategory + '<br>';
     }
     aDiv.innerHTML = '<strong>Name, State, Food Category</strong><br/>';
     aDiv.innerHTML += storyInfo;

     // Add break
     aDiv.innerHTML += "<br/>

    // Output veggie stories
    for (var i=0; i<veggie_stories.length; i++) {
       story = veggie_stories[i];
       storyInfo += story.Name + 
                   ', ' + story.FormattedID + 
                   ', ' + story.c_FoodCategory + '<br>';
     }
     aDiv.innerHTML = '<strong>Name, State, Food Category</strong><br/>';
     aDiv.innerHTML += storyInfo;

     // Add break
     aDiv.innerHTML += "<br/>               
};

您可能希望考虑使用rally.sdk.ui.Table来显示输出结果 - 它可以更清晰地显示柱状信息。

此外,如果您对考虑AppSDK 2.0感兴趣,其Grid component包含自动分组的配置属性。见这个例子:

https://help.rallydev.com/apps/2.0/doc/#!/example/groupable-grid