1

Microsoft Dynamics AX 2009でレポートを作成して、製造オーダーに携わったすべての従業員を表示したいと考えています。

このレポートのデータソースに、ProdIDとDataAreaIDによって内部結合された
ProdTable(pt)をEmplIDとDataAreaIDによって内部結合された
ProdJournalRoute(pjr)にドラッグアンドドロップし、
EmplTable(et)で従業員の名前を検索します。name()メソッド。

このレポートは、いくつかの面白い出力を生成します。

pjr.TransDate pjr.EmplID   et.EmplID    et.name()
2010-07-20    05820
2010-07-20    05820        05820        Doe, John
2010-07-20    05820        05820        Doe, John
2010-07-21    00341        05820        Doe, John
2010-07-21    00007        00341        Snow, Jon
...           ...          ...          ...

(Columns and rows snipped)

見る?ProdJournalRouteEmplTableEmplIDの間の結合のどこかで、 1行のオフセットが得られます。

name()もちろん、メソッドをEmplTableテーブルにProdJournalRouteコピーして結合を完全に削除することEmplTableもできますが、これは問題を延期するだけです。結合を機能させるにはどうすればよいですか。手作りのクエリを使用して、これをレポートのデータソースとして使用する必要がありますか?

追記:必要なユーザー権限を持つ誰かがこれらすべてのタグをクリーンアップできるでしょうか
[[[microsoft] dynamics] AX] ?ありがとうございます!)

4

3 に答える 3

0

ProdJournalRouteテーブルとの関係を確認してくださいEmplTable

[はい]に設定ProdJournalRoute.relationsするか、リレーションを手動で追加します。

于 2010-09-22T08:19:58.667 に答える
0

動作しました。

解決策が単純だったことを認めるのは少し気が進まない。手がかりからすべてを最初から再構築するときに、すべてのProdJournalRouteフィールドとEmplTableフィールドを、ProdJournalRoute_BodyのようにデザインのEmplTable_Bodyに追加した。初めて、そしてそれはすべての違いを生みました。

レポートが表示されるデータをリンクする方法と場所がまだよくわかりません。クエリは全体として実行され、関連するすべてのテーブルを結合して、テーブル間でこの種のデータの不一致が発生しないようにする必要があると思いますが、データソースはデザインの_Bodyで<DS>のみ更新されます。 <DS>。クエリのさらに上で結合されたデータソースのデザインボディでこのデータソースを使用すると、初期化されていないか、前のレコードへの結合から取得した古いデータが表示されるという奇妙な結果が得られます。

考えてくれてありがとう、Kjeldsenさん。

于 2010-09-22T09:20:38.177 に答える
0

テーブルは実際にはクエリで結合されていないように見えますが、基になるクエリを作成する抽象化レベルでは、最初に最も外側のテーブルで単一の選択を実行し、次に「結合された」テーブルのクエリを実行します。これは、最初の行にEmplTableからのデータがない理由を説明している可能性があります。私の推測では、EmplTableへのクエリは、フレームワークに十分な速さでデータを返しませんでした。データソースのFirstFastプロパティと、MSDNでの機能を確認してください:http://msdn.microsoft.com/en-us/library/aa842737(AX.10).aspx

しかし、私は間違っているかもしれません。実際に知る唯一の方法は、データベースで実行されているSQLをスニッチすることです。

于 2010-09-23T17:29:50.110 に答える