Tag Archives: CrystalReports

[Crystal Reports]特定の条件の時に,ラベルを非表示にする方法

2012年9月9日 (カテゴリ: 未分類:)

Crystal Reportsで帳票出力を行う際、印字データの前後に接頭語や接尾語として固定文字をつける場合があります(例えば名称の後に”様”をつける等)。 固定文字を常に印字する場合は、ラベルとしてテキストオブジェクトを貼り付ければよいのですが、データがない場合は固定文字を出したく無い場合も有ります。 対処療法として、プログラムから”印字データ+固定文字”を渡してあげるという逃げ道も有りますがプログラム的に美しくないので出来れば避けたいです。 このような場合、条件付印字を行う事で対応できます。 例えば以下の帳票で、PostalCodeに値がセッ…


続きを読む

[CrystalReports]データ長さに応じてフォントサイズを調整する

2012年4月26日 (カテゴリ: C#:)

CrystalReportsを使用して帳票印刷を行う際、印字するテキストが長すぎてフィールドの枠内に入りきらない場合、印字が欠けてしまいます。 このような場合、Excelだったら「縮小して全体を表示」という書式設定をしておくと、印字内容のデータ長に合わせて自動でフォントサイズを縮小させる事ができるのですが、残念ながらCrystal Reportsには、これと同じ機能は有りません。 そこで、今回はCrystal Reportsで、印字するデータの長さに応じてフォントサイズを調整させる方法を説明します。 データ長に応じたフォントサイズを指定する 今回の例では、下記帳票レイアウト(.rptファイル)…


続きを読む

[Crystal Reports]印刷時の余白(マージン)を変更させる

2012年4月13日 (カテゴリ: C#:)

Crystal Reportsで、印刷時に用紙の余白(マージン)を設定する方法です。 int marginLeft = 10; // 左マージンを10mmでセット   CrystalDecisions.Shared.PageMargins margin = cryReport.PrintOptions.PageMargins; margin.leftMargin = mmToTwip( marginLeft ); // mmの指定をtwip単位に変換する margin.topMargin = 0; margin.bottomMargin = 0; margin.rig…


続きを読む

[CrystalReports]プリンタのキューに、指定した帳票タイトルを表示させる

2012年4月13日 (カテゴリ: C#:)

Crystal Reportsを使用して帳票印刷時、プリンタのキューに表示されるドキュメント名(タイトル)を指定する方法です。 VS2010に付属のCrystal Reportsでは、SummaryInfoプロパティが持っているReportTitleに値をセットすれば設定可能です。 // 帳票のタイトルをセット cryReport.SummaryInfo.ReportTitle = "ピッキングリスト";   // プリンタに印刷 cryReport.PrintToPrinter( 0, false, 0, 0 ); 実際に印刷してみたときのキュー…


続きを読む

[CrystalReports]積算合計フィールドで,集計のタイプに”合計”が出ない場合

2012年4月9日 (カテゴリ: C#:, )

CrystalReportsで、合計値を印字しようとして積算合計フィールドを作成した際、集計のタイプに”合計”が出ない場合は、該当の列が数値型になっていない(String等になっているとダメ)。 で、該当の列をStringからInt32に変更した上で”データベースの照合”を行っても、列名が同じでデータ型だけ変更した場合は、定義が変更されたという事をrptファイルのデザイナが認識してくれないみたい。 このような場合は、一旦列名を他のものに変えてから、元に戻すと正しく認識してくれるようです。


続きを読む

CrystalReportsでデータセットを指定後、データセット定義が変更時のrpt更新方法

2012年4月9日 (カテゴリ: C#:, )

VisualStudioでCrystalReportsを使用する場合、プログラム側から帳票側へ印字情報を渡すにはDataSetを使用します。 どのDataSetを使用するかは、帳票レイアウトファイルであるrptを作成する際に指定します。 通常だとこれで問題ないのですが、一旦rptファイル作成した後で,DataSetに対して列の追加や削除などが行われ定義が変わった場合はどうなるでしょうか? 気になったので試してみました。 まずは、追加前の状態です。DataSetの内容が、rptのデータベースフィールドに表示されています。 [DataSetの定義] [*.rptファイル] この状態でDataSet…


続きを読む

“ファイルまたはアセンブリ ‘CrystalDecisions.CrystalReports.Engine … が読み込めません”エラーが出たときは

2012年3月30日 (カテゴリ: 未分類:)

Windowsでプログラムを実行しているときに、CrystalDecisions.CrystalReports.Engineが無いという、以下のようなエラーダイアログが表示される場合があります。 Just-In-Time (JIT) デバッグを呼び出すための詳細については、 ダイアログ ボックスではなく、このメッセージの最後を参照してください。   ************** 例外テキスト ************** System.IO.FileNotFoundException: ファイルまたはアセンブリ ‘CrystalDecisions.CrystalReports.Eng…


続きを読む

[C#]mmとtwipの相互変換を行う関数

2012年3月29日 (カテゴリ: 未分類:)

CrystalReportsで帳票の開発などを行っていると、印字位置(Top,Left)をtwip単位で指定する必要があります。 プログラムによっては印字位置をユーザに指定させたい場合がありますが、その場合に画面上では通常mm単位で指定する事が多いのでmmとtwipの単位系で相互変換を行う必要があります。 単位の変換は、以下の関数で行う事ができます。 //********************************************************************* /// <summary> mmの値をtwipに変換する /// </summary…


続きを読む

[C#]DataSet.xsdを作成すると、自動でデータセットクラスが生成される。

2012年3月20日 (カテゴリ: C#:, )

以前に、CrystalReportsで自作DataSetを元に帳票を印刷する方法を説明しましたが、説明の中に無駄な作業工程がありました。  参考記事:CrystalReportsで自作DataSetを元に帳票を印刷する どこに無駄があるかというと、下記のイベントハンドラ処理です。 private void button1_Click( object sender, EventArgs e ) { // レコード定義を行う DataTable table = new DataTable(); table.Columns.Add("id&…


続きを読む

[C#,VS2010]CrystalReportsで帳票レイアウト側にパラメータを渡す

2012年3月14日 (カテゴリ: C#:)

CrystalReportsではDataSetを使用して帳票に印字するデータを渡します。通常はこれで問題ないのですが、印字する帳票によってはDataSetに依存しないプログラム指定のパラメータ値を帳票に渡したい場合もあります。 このような場合CrystalReportsには「パラメータフィールド」というものを使用して、データを渡す事が可能です。パラメータフィールドは通常、特定のデータのみを印字する等のデータ絞込み用の式パラメータや、データセットに依存しない印字データ(ヘッダ印字項目等)で使用されます。 それでは、パラメータフィールドを使用した帳票作成の手順を確認して行きましょう。 rptファイ…


続きを読む

[C#,VS2010]CrystalReportsで宛名ラベルを印字する(横方向へ明細データの繰返し)

2012年3月13日 (カテゴリ: C#:)

前回は、CrystalReports作成したデータをPDF形式で出力させる方法を説明しました。 今回の記事では、宛名ラベルのような複数データを横方向に繰り返し印刷する帳票の作成方法を説明します。 今回のお題 印字内容は、純粋な宛名ラベルだったら「郵便番号+住所+氏名」程度ですが、今回は通販での注文配送をイメージして下記の項目を印字してみる事にします。 postalCode 郵便番号 region 都道府県 addressLine1 住所(1行目) addressLine2 住所(2行目) addressLine3 住所(3行目) name 氏名 orderId 注文ID sku 商品ID la…


続きを読む

[C#,VS2010]CrystalReportsでPDF出力を行う

2012年3月12日 (カテゴリ: C#:)

前回の記事では、作成した帳票をPrintToPrinter()メソッドでプリンタに出力しました。   参考:CrystalReportsで自作DataSetを元に帳票を印刷する。 帳票の結果を常に印刷したい場合は前回の方法で問題ないのですが、出力結果をメールしたい場合等においては結果をpdfの電子媒体として保存したい場合もあります。このような場合はCrystalReportDocumentクラスが持っているExportOptionsプロパティを指定する事によって、プリンタではなくPDFファイルへ出力する事が可能です。 PDF出力を行う処理は以下の通りです。 ※下記のコードは前回の記事で作成した…


続きを読む

[C#,VS2010]CrystalReportsで自作DataSetを元に帳票を印刷する。

2012年3月11日 (カテゴリ: C#:, )

前回はVisualStudio2010の環境で、C#を使用してCrystalReportsの帳票印刷のセットアップと、簡単な帳票発行の動作確認を行いました。 VS2010でCrystalReportsを使用して、帳票を作成する 今回は、プログラムから指定したデータ郡を複数レコード、印刷してみます。 帳票プログラムの場合、複数レコードの印刷は、データベースからデータを取得して、その内容を印刷する事がよくあるパターンです。C#ではDBから取得したデータは、通常DataSetクラスを使用して管理します。 いきなりDBを使用したパターンのプログラムを解説すると考慮すべき点(=説明する内容)が多くなって…


続きを読む

[C#]VS2010でCrystalReportsを使用して、帳票を作成する

2012年3月9日 (カテゴリ: C#:)

本記事では、VisualStudio2010、C#の環境でCrystalReportsを使用して印刷を行います。 CrystalReportsは、VisualStudio2010のProfessional以上でのみ使用可能です。 ちなみに、Expressエディションので印刷を行う場合はPrintDocument/PrintDialogコントロールを使用すれば可能ですが、キャンバスに文字や画像を配置するような形になるので、業務で使用するような帳票を作成するのは非常に手間が掛かります。 セットアップ VisualStudioをインストールしただけでは、CrystalReportsはセットアップされ…


続きを読む