現在、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 フォームに表示されても、手動で選択したままになります。