1

関連するデータセットのすべてのレコードを出力するレポートの既存の Crystal Report (.rpt) を継承しました。

ここで、一致するチケット番号を持つ結果のみがレポートに印刷されるように、選択基準を追加したいと考えています。

私が入力した選択基準は次のとおりです。

{REGISTER.TICKET_NO} = {?sTicketNo}

sTicketNo は、C# のテキスト ボックスから読み取ったテキスト値を反映し、パラメータとして Crystal Reports に渡します。(パラメーターの受け渡しは確実に機能します。レポートに sTicketNo フ​​ィールドを追加すると、テキスト ボックスに入力した正しい値が出力されます)。

問題は、入力した選択基準に関係なく、レポートがフィルター処理されないことです。基準に関係なく、常にすべてのレコードを出力します。Null 以外の値を持つレコードのみを選択するなど、他のハードコードされた基準でテストしました。

また、 C# および Crystal Reports SDKからのアドバイス- 選択基準は無視されましたが成功しませんでした。

Crystal Reports で、すべてのレコードを印刷しないように指定しなければならない場所が他にあるでしょうか。メニュー「Crystal Reports」>「Report」>「Select Expert」>「Record」に選択基準を追加しました。私はクリスタルレポートに非常に慣れていません。レポートの作成者が選択基準を無視する設定を別の場所に追加したのかもしれませんが、どこを見ればよいかわかりません...

4

1 に答える 1

13

同じ問題がありました - この解決策を見つけました。VS 2005/2008について言及されていても、VS 2010で私たちのために働きました。

症状

Visual Studio .NET 2005 で Crystal Reports 2008 を使用するように VS .NET アプリケーションをアップグレードすると、選択式 (.RecordSelectionFormula) が無視されます。

原因

Visual Studio .NET 2005 では、Crystal Windows Form Viewer が Windows フォームに追加されると、自動生成されたコードによって、選択式を空の文字列 ("") に設定する 2 行のコードが追加されます。ビューアの SelectionFormulaViewTimeSelectionFormulaはデフォルトで "" に設定されているため、アプリケーションは選択式を無視します。これは、レポート デザイナーで選択されるか、実行時にレポートに渡されます。

解像度

この問題を解決するには、次の手順に従います。

展開Form1.vb|csして表示しForm1.Designer.vb|csます。(form1はビューアを含むフォームを示します)

をダブルクリックしForm1.Designer.vb|csて、そのコードを表示します。

InitializeComponent メソッドには、CrystalReportViewer1プロパティが設定されているコードがあります。

次の 2 行をコメント アウトまたは削除します。

me.crystalReportViewer.SelectionFormula = ""

me.crystalReportViewer.ViewTimeSelectionFormula = ""
于 2013-03-14T22:20:41.433 に答える