过滤器不适用于特定的工作区集会

时间:2015-02-06 15:10:14

标签: rally

我有两个工作区 当我在一个工作区上加载我的应用程序时,它可以使用过滤器,但是当我使用相同的代码时它不起作用。 然后我尝试评论过滤器,然后它给了我整个记录。无法确定其中的区别, 我正在使用Rally sdk2.0rc3 下面是我的代码片段

this._startDate值为2014-09-10

this._endDate值为2015-03-03

当我打印操作时,它会给出错误的

iterations = []

@nickm帮帮我

            _onDataLoaded: function() {
                console.log("this.getContext().getProject()._ref", this.getContext().getProject()._ref);
                console.log("this._startDate", this._startDate);
                console.log("this._endDate", this._endDate);
                var project_oid = this.getContext().getProject()._ref;

                var startDateFilter = Ext.create('Rally.data.QueryFilter', {
                    property: 'StartDate',
                    operator: '>',
                    value: this._startDate
                });
                startDateFilter = startDateFilter.and({
                    property: 'StartDate',
                    operator: '<',
                    value: this._endDate
                });
                startDateFilter = startDateFilter.and({
                    property: 'StartDate',
                    operator: '!=',
                    value: null
                });
                var endDateFilter = Ext.create('Rally.data.QueryFilter', {
                    property: 'EndDate',
                    operator: '<',
                    value: this._endDate
                });
                endDateFilter = endDateFilter.and({
                    property: 'EndDate',
                    operator: '>',
                    value: this._startDate
                });
                endDateFilter = endDateFilter.and({
                    property: 'EndDate',
                    operator: '!=',
                    value: null
                });
                var filter = startDateFilter.or(endDateFilter);
                //filter.toString();
                Ext.create('Rally.data.WsapiDataStore', {
                    model: 'Iteration',
                    limit: Infinity,
                    context: {
                        project: project_oid,
                        projectScopeDown: true,
                        projectScopeUp: false
                    },                          
                    fetch: ['Name','Project', 'StartDate', 'EndDate', 'Parent', 'Children'],
                    autoLoad: true,
                    filters: [
                        filter
                    ],
                    listeners: {
                        load: this._loadGrid,
                        scope:this
                    }                   
                }, this);   
            },
            _loadGrid: function(store, iterations, operation) {
                console.log("hi there", operation);

1 个答案:

答案 0 :(得分:1)

我的第一个猜测是,如果相同的代码在一个工作区中工作而在另一个工作区中不起作用,并且罪魁祸首是基于日期值的过滤器,请检查您的工作区是否具有不同的日期格式。例如:

enter image description here

或者像这样:

enter image description here

但我测试了2015-02-06&#39;使用mm / dd / yyyy格式的工作空间中的值,并且它起作用。

在任何情况下,如果它在一个工作区中工作而在另一个工作区中不起作用,则这不是代码问题,而是数据问题。也许在第二个工作区中,相同的查询返回0结果。此外,根据代码中使用的日期的含义,可以避免硬编码日期。例如,要获得当前迭代,请尝试以下操作:

var today = new Date().toISOString();
filters: [
                {
                    property: 'StartDate',
                    operator: '<=',
                    value: today
                },
                {
                    property: 'EndDate',
                    operator: '>=',
                    value: today
                }
            ]