0

現在、AX 2012 R2 を使用しています。現在、カスタム SSRS レポートにデータを提供するために使用している AOT にカスタム クエリ オブジェクトがあります。

SalesTable フォームには、SalesTable フォームにカスタム ボタンがあり、クリックされたメソッドをオーバーライドしてカスタム出力メニュー項目を呼び出し、SalesTable.CustAccount と SalesTable.SalesId のパラメーターを指定します。

ただし、SalesTable フォームで別のレコードを選択してカスタム ボタンをクリックすると、クエリ ダイアログ (正確な値を選択するためのダイアログ) が通常どおり表示されますが、パラメーターに対して最後に選択した値はそのままです。使用データによると思います。

クエリを使用して SSRS レポートを作成する場合、使用状況データに保持されているものではなく、フォームから現在選択されているレコードの値をパラメーターとしてダイアログに提供する方法はありますか?

あらかじめご了承ください。

void clicked()
{
    MenuFunction            jobCardReport;
    Args                    args = new Args();
    Query                   query = new Query();
    QueryRun                queryRun;
    QueryBuildDataSource    qbds;
    QueryBuildRange         queryBuildRange;
    SalesTable              salesTableRecord;
    ;

    salesTableRecord = element.args().record();
    qbds = query.addDataSource(tableNum(SalesTable));
    queryBuildRange = qbds.addRange(fieldNum(SalesTable, CustAccount));
    queryBuildRange.value(salesTableRecord.CustAccount);

    queryBuildRange = qbds.addRange(fieldNum(SalesTable, SalesId));
    queryBuildRange.value(salesTableRecord.SalesId);
    queryRun = new QueryRun(query);

    jobCardReport = new MenuFunction(menuitemOutputStr(TestCard), MenuItemType::Output);
    args.parm(strFmt("TestCard_DynamicParameter=%1, %2", salesTableRecord.CustAccount, salesTableRecord.SalesId));
    jobCardReport.run(args);        

    super();
}

最後の 3 行のコードにより、[選択] ボタンを使用してクエリ ダイアログから手動で選択を渡すことができました。ただし、その後の実行では、どのレコードが SalesTable フォームに表示されても、手動で選択したままになります。

4

2 に答える 2

0

コード例を教えてください。

今は query() で作業していると思いますが、ランタイム フィルター値を取得するには、queryRun() を使用する必要があります。どちらもデータソースから入手できます。

于 2013-11-22T09:30:56.830 に答える