[[PrimeKarte]] > [[PkReport]] > CrystalReports #contents *概要 [#p1f10325] [[SAP BUSINESSOBJECTS:http://www.sap.com/japan/solutions/sapbusinessobjects/sme/reporting/crystalreports/index.epx]]社の帳票作成ツール *インストール方法 [#ufee0074] [[こちら>開発環境セットアップ手順#reb022ba]] [[こちら>開発環境セットアップ手順#d6f3e455]] 新CrystalReport導入時調査、検証作業結果が以下のフォルダに入っています。~ \\eagle01b\SEC2\作業履歴\kawamura\32_開発調査\20170830 新CrystalReport **他の設定 [#q38aee46] ***app.configへの記述追加 [#p1dfa4d9] 以下の記述を書かないと印刷エラーとなります。 <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> ***レジストリ登録 [#ka7dbc5b] 主にラベル印刷時に自動縮小がされて印字がずれますので、自動縮小を無効とします。 32bitOS [HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\DesignerOptions] "DealWithMinimalMarginsWhenPrinting"="0" 64bitOS [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\DesignerOptions] "DealWithMinimalMarginsWhenPrinting"="0" 調査結果は以下のフォルダに入っています。 \\eagle01b\SEC2\作業履歴\kawamura\32_開発調査\20171213 .Net4.0でラベルを印字するとずれる *見本 [#b605728d] 印刷処理:$/H102Toro/01Source/PrimeKarte2/PkReport/PkReportTestApp/Helper/RptOther.csのPrintStudyChohyo()メソッド~ レポートファイル:$/H102Toro/01Source/PrimeKarte2/PkReportFile/Report/000/9999/99990002_A4P.rpt~ PkReportのテストアプリで社内H012に接続していれば印刷ができます。(学習用印刷ボタンクリック)~ **出力結果 [#ob7bde38] #ref(pdf.png)~ **レポートファイル [#l1a6a5d4] #ref(report.png)~ *クリスタルレポート操作方法 [#h68ed857] [[こちら>http://www.balard.sakura.ne.jp/vb/net/index.php]]ページが参考になります。~ 詳細は開発担当まで **固定フィールドの入れ方 [#nbf4d2e5] [[こちら(テキストオブジェクトの挿入)>http://www.balard.sakura.ne.jp/vb/net/formula.php#txtinsert]] **詳細フィールドの入れ方 [#ya1c354f] 繰り返しフィールドを作ります。~ [[こちら(レポートのデザインを作ります付近)>http://www.balard.sakura.ne.jp/vb/net/index.php]] **罫線の入れ方 [#mb781908] [[こちら>http://www.balard.sakura.ne.jp/vb/net/formula.php#line]] **他のフィールドと位置を揃えたい [#kc892069] [[こちら>http://www.balard.sakura.ne.jp/vb/net/formula.php#soroeru]] * 印刷処理の書き方 [#z8e634a8] //基本的な流れ //各オブジェクトを宣言 SosaCrpe crpeObj = new SosaCrpe(); RptDataset dataset = new RptDataset(); //印刷する帳票を指定 crpeObj.SetChohyoCode((int)PkChohyoCode.ChemoBumonTherapyKanjaIchiran) crpeObj.JobOpen(); //固定フィールドに値をセット crpeObj.SetFieldData("BUMON_NAME", "部門名"); /*繰り返し(詳細フィールド)に値をセット データセットを使用します。*/ //行の開始 RptDataset.RptDataRow rptRowObj = dataset.RptData.NewRow() as RptDataset.RptDataRow; rptRowObj.BeginEdit(); //各値をセット rptRowObj.FLG = 1; rptRowObj.STR_01 = kanjaId.ToString(); //行の終了 rptRowObj.EndEdit(); dataset.RptData.Rows.Add(rptRowObj); //データセットを登録 crpeObj.SetDetailData(dataset); //印刷処理 crpeObj.Print() *レポートファイル編集時の注意点 [#h641f2a8] **用紙サイズ [#af824b74] A4以外の時は実際に使用するプリンタで開発をしてください。~ またレポートファイル内にある用紙サイズとプリンタ名は必ず実際に使用するプリンタと合わせてください。~ **改行はエラーとなる [#j2896efa] 改行を含む文字をレポートのフィールドに入れるとエラーとなります。~ 改行で区切って複数行のフィールドを用意する、または改行を半角スペース等の別文字に置換して入れるが主な代替案です。 **斜線はできない [#ed16cb7c] 斜線を引くことができません。~ 「/」で強引にはできますが・・・。 **点線,破線 [#d91cb4ce] 点線,破線は太さを変えることができません。常に極細となります。 **ヘッダーとフッター [#ye545347] ヘッダーとフッターの領域の高さが用紙サイズの高さより大きいとエラーとなります。 **詳細フィールドの*印刷順番 [#h92c32ee] 基本ソースでの記述順ですが、~ レポートファイルで指定することもできます。~ (詳細フィールドをグループ化し、データセットのあるカラムの値順にすることができます。) **等間隔配置 [#u61ddd4d] 恐らく機能がありません。~ 座標計算またはグリッド数で合わせるしかないようです。 *印刷できなかったとき [#rf7c9897] 以下のことを確認してください。 -クリスタルレポートランタイムがインストールされているか(ランタイムのビットは端末ではなくexeのビットに合わせる必要があります) -app.configの<startup>が以下のようになっているか <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> -オフラインまたは存在しないプリンタで印刷しようとしていないか -レポートファイルにエラーはないか [[こちら>#h641f2a8]] -帳票のマスタはあるか(CONTROL[00020017][00020018].CODE(帳票コード)のレコードがあるか) -データを取得できたかどうか(PrimeKarteログのSQLから確認) -PrimeKarteに例外が発生していないか -その他は[[こちら>帳票ヘルプ#l7dcb123]] *リンク [#h68ed857] +[[CrystalReportsウィキペディア:http://ja.wikipedia.org/wiki/Crystal_Reports]] +[[むかむか クリスタルレポート入門:http://www.hirano.cc/crystalreports/]]~ 関連書籍やメーリングリスト等の紹介、Tips、掲示板等 +[[SAPホームページ:https://www.sap.com/japan/index.html]] *旧ページ [#p4b1c036] [[こちら>旧CrystalReport]]