私の例が少し曖昧であれば謝ります。残念ながら、私の例では、会社名とデータの目的の両方を明かさずに、同じフィールド名を使用することはできません。次を考えるCrystal ReportsのヘッダーサブレポートDataTableに新しいフィールドが追加されるとデータが消えます
:
A Crystalレポートデータセットによって移入し、XSDスキーマファイルに結合しています。
データセットを読み込んでレポートにバインドする.Net 1.1プログラム。
データテーブルFooとBar;
XSDスキーマ:
----Foo----
Stuff (pk)
Things
Gunk
----Bar----
Stuff (fk)
Details
Widget
関係:一つのFooは1つの以上のバーを持つことができ、インナーはスタッフに参加します。
このレポートは既に動作しています。契約に結びついた特定の価値を示すために、新しい「コード」フィールドをレポートに追加する要求がありました。コードのリストと特定のコードを持つ部品のリストがあります。これは、データベース側では、どのウィジェットとどのコードが対応するかを示す「ウィジェット」と「コードID」のテーブルをリンクテーブルとして追加し、コードとその定義を保持する「CodeID」と「CodeDescr」を持つテーブルを追加することを意味していました。私はBarに "CodeDescr"を追加し、 "ウィジェット"のその行の値に基づいて簡単なクエリを入力するようにスキーマファイルを変更して、フィールドを追加することができました。これも機能します。
問題は、ヘッダーを構成するサブレポートです。同じXSDファイルを使用しますが、レポートの本文を構成するサブレポートにCodeDescrフィールドを追加すると、ヘッダーのすべての値が消えます。これらの値の一部はリテラル(アイテムを識別する「Stuff」の値)であり、他のものは式(Gunkの値を使用して文字列または数値識別子を表示するかどうかを決定するなど)です。私は3日間頭の中で頭を叩いて、なぜこれが埋められなくなったのか把握しようとしたので、私はそれを修正することができます。助けて!
あなたは完全に関連性を得ました。すべてのサブレポートは詳細セクションを使用するため、一致します。しかし、唯一のエディタはVisual Studio 2003に組み込まれた奇妙なエディタだということを忘れてしまいました。私はリンクをチェックして、期待通りのものでした。私は、これらの問題が切り取られ、インナー・ジョイント以上の成功を収めた後、レフト・アウター・ジョイントを試しました。これは、従来の「Record Select」を持たず、データセット全体がVB.Netに組み込まれていることを意味します。変更されたのは、テーブルを呼び出すSQLステートメントの結果を取得する単一のメソッドだけです。 – CDove
。公正であるために、これはおそらく私の知識が落ちるところです。私たちはしばしば肘をこすりますが、VB.NETと私は近い言葉ではありません。これは、あまり複雑すぎるレポートのようには聞こえないので、Crystal ReportsのGUIで描画し、まだ問題がないかどうかを確認することができます。つまり、VB.NETのノウハウを持つ人は、より合理的な/望ましいソリューションを手に入れることができます。幸運にも、私はあなたの質問に目を留めて、それが私のエリアに向かって漂う – Jackson