0

C#でQueryRunオブジェクトを使用できるかどうか疑問に思っていました。使用できる場合は、どの名前空間をインポートして使用しますか。AXクラスでQueryRunオブジェクトを返すメソッドがあり、C#コードで次のように呼び出します。それで:

CallStaticClassMethod("OnlineUsers", "findMultipleProducts", user, id);

findMultipleProductsは問題のメソッドです。.next()メソッドを使用して製品を反復処理する必要があるため、QueryRunオブジェクトとしてアクセスする必要があります。ヘルプや例をいただければ幸いです。

4

1 に答える 1

3

BC.NET 経由で Axe にアクセスしていますか? その場合、BC.NET から QueryRun を使用する方法のサンプルを次に示します。

    using (var ax = new Axapta())
    {
        ax.Logon(null, null, null, null);
        int tableId = ax.GetTableId("TaxTable");
        var query = ax.CreateAxaptaObject("Query");
        var qbd = (AxaptaObject)query.Call("addDataSource", tableId);

        var qr = ax.CreateAxaptaObject("QueryRun", query); 

        while ((bool)qr.Call("next"))
        {
            var record = (AxaptaRecord)qr.Call("Get", tableId); 

            Console.WriteLine("TaxCode: {0}", record.get_Field("TaxCode"));
            Console.WriteLine("TaxName: {0}", record.get_Field("TaxName"));
        }
        ax.Logoff();
    } 

GetTableId 拡張メソッドがこの投稿から取得された場所:

    public static class AxaptaExtensions
    {
        public static int GetTableId(this Axapta ax, string table)
        {
            return (int)ax.CallStaticClassMethod("Global", "tableName2Id", table);
        }
    }
于 2012-03-13T05:41:40.583 に答える