0

AR303000の画面でお客様を検索しています。複数のフィルターを追加すると、最初のフィルターのみが適用されます。また、結果セットには GeneralInfoMainAddress 行は含まれません。これが、フィルターが機能しない理由である可能性があります。

AR303000Content AR303000 = context.AR303000GetSchema(); context.AR303000Clear();

        List<Command> cmds = new List<Command>();
        cmds.Add(AR303000.CustomerSummary.ServiceCommands.EveryCustomerID);

        cmds.Add(AR303000.CustomerSummary.CustomerID);
        cmds.Add(AR303000.CustomerSummary.CustomerName);
        cmds.Add(AR303000.GeneralInfoMainAddress.AddressLine1);
        cmds.Add(AR303000.GeneralInfoMainAddress.City);
        cmds.Add(AR303000.GeneralInfoMainAddress.State);
        cmds.Add(AR303000.GeneralInfoMainAddress.PostalCode);

        List<Filter> filters = new List<Filter>();
        filters.Add(new Filter()
        {
            Field = new Field()
            {
                FieldName = AR303000.CustomerSummary.CustomerName.FieldName,
                ObjectName = AR303000.CustomerSummary.CustomerName.ObjectName
            },
            Condition = FilterCondition.Contain,
            Value = "DOE, JOHN",
            Operator = FilterOperator.And
        });
        filters.Add(new Filter()
        {
            Field = new Field()
            {
                FieldName = AR303000.GeneralInfoMainAddress.AddressLine1.FieldName,
                ObjectName = AR303000.GeneralInfoMainAddress.AddressLine1.ObjectName
            },
            Condition = FilterCondition.Contain,
            Value = "255",
            Operator = FilterOperator.And
        });

        var AR303000Export = context.AR303000Export(cmds.ToArray(), filters.ToArray(), 0, false, false);

        return AR303000Export[0][0];
4

1 に答える 1

0

Web サービスは、画面のプライマリ ビュー (この場合は AR303000.CustomerSummary) のフィールドでのみフィルタリングできます。他のものをフィルター処理しようとすると、システムは例外をスローしませんが、代わりにサイレントにフィルターを破棄します。

この情報でフィルタリングできるようにする必要がある場合は、必要なテーブルに結合する一般的な照会を作成し、他の照会画面と同様に Web サービスを介して GI 画面を使用することをお勧めします。

于 2014-10-30T20:46:25.843 に答える