1

rallymultiobjectpicker (単一のオブジェクト ピッカーがない理由がわからない) を使用して、ポートフォリオ アイテムのリストを取得しようとしています。ただし、「ポートフォリオ アイテム タイプ」フィールドで結果をフィルタリングしたいと思います。改訂された storeCfg のパラメーターを認識できませんでした。「名前」フィールドのソートを「ASC」から「DESC」に変更するだけの単純なものであっても、変更は無視されるようです。

以下に基本的な例を示します。

this.pis = Ext.widget('rallymultiobjectpicker', {
    items: [{
        modelType: 'portfolio item'
    }],
    storeCfg: {
        autoLoad: false,
        fetch: "Name, PortfolioItemType",
        pageSize: 200,
        filters: [
            {
                property: 'PortfolioItemType',
                value: 'Initiative'
            }
        ],
        sorters: [
            {
                property: 'Name',
                direction: 'DESC'
            }
        ],
        remoteGroup: false,
        remoteSort: false,
        remoteFilter: false,
        limit: Infinity
    }
});
4

1 に答える 1

1

あなたが書いたように、私はあなたの質問に対処しようとします。

multi-object-picker の単一オブジェクト バージョンは、コンボボックスです。任意の種類のポートフォリオ アイテムを選択する際の注意点として、私はおそらくセレクターコンポーネントを使用します。ピッカーとコンボボックスのコンポーネントは、オプションが多すぎない限りうまく機能します。セレクターは、ユーザーが何百万もの長いリストを表示することなく、探しているオブジェクトを正確に見つけられるようにするための優れた方法です。

また、PortfolioItemType は単なる文字列値ではなくオブジェクトです。ただし、以下に示す名前でクエリを実行できます。

<!DOCTYPE html>

<script type="text/javascript" src="/apps/2.0p/sdk.js"></script>

<script type="text/javascript">
    Rally.onReady(function() {
        Ext.define('CustomApp', {
            extend: 'Rally.app.App',
            componentCls: 'app',

            launch: function() {

                Ext.create('Rally.ui.dialog.ChooserDialog', {
                    artifactTypes: ['portfolioitem'],
                    autoShow: true,
                    listeners: {
                        artifactChosen: function(selectedRecord) {
                            Ext.Msg.alert('Chooser', selectedRecord.get('Name') + ' was chosen');
                        },
                        scope: this
                    },
                    storeConfig : {
                        filters: [
                            {

                                property: 'PortfolioItemType.Name',
                                value: 'Initiative'
                            }
                        ]
                    }
                });
            }
        });

        Rally.launchApp('CustomApp', {
            name: 'Tacos'
        });
    });
</script>

これがマルチオブジェクトピッカーです

<!DOCTYPE html>

<script type="text/javascript" src="https://rally1.rallydev.com/apps/2.0p/sdk.js"></script>

<script type="text/javascript">
    Rally.onReady(function() {
        Ext.define('CustomApp', {
            extend: 'Rally.app.App',
            componentCls: 'app',

            launch: function() {
                this.add({
                    xtype: 'rallymultiobjectpicker',
                    modelType: 'portfolioitem',
                    storeConfig : {
                        filters: [
                            {

                                property: 'PortfolioItemType.Name',
                                value: 'Initiative'
                            }
                        ]
                    },
                    listeners:{
                        collapse:function(picker){
                            console.log(picker.getValue());
                        }
                    }
                });
            }
        });

        Rally.launchApp('CustomApp', {
            name: 'Tacos'
        });
    });
</script>
于 2012-06-08T17:13:38.617 に答える