用紙を設定する

クリスタルレポート上で設定

なんと、プリンタの設定で行うしかないようだ。
「右クリック」 - 「デザイナ」 - 「プリンタ 」で設定する。

プログラムから設定する

方向

横にする場合

HiraCryRepo1 cr = new HiraCryRepo1();

cr.PrinterOptions.PaperOrientation =  CrystalDecisions.Shared.PaperOrientation.Landscape

縦にする場合

cr.PrinterOptions.PaperOrientation =  CrystalDecisions.Shared.PaperOrientation.Portrait

サイズ

A4にする場合、
cr.PrinterOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4

アプリから印刷する

HiraCryRepo1 cr = new HiraCryRepo1();

cr.PrintToPrinter(1, false, 0, 0);

詳細に挿入したとき、ページヘッダに勝手に出てきてうざったい

詳細のところに記述すれば、勝手にページヘッダーにテキストでカラム名が書かれる。 よけいなお世話だ、と感じるときは、「右クリック」-「デザイナ」-「デフォルト設定」-「レイアウト」にある、

「詳細フィールドのタイトルを挿入」のチェックをはずす

デザイナ上のオブジェクトをプログラムから変更する

クリスタルレポート上に「Text1」という名前のテキストオブジェクトがあり、この内容を「うひひ」にする場合。
HiraCryRepo1 cr = new HiraCryRepo1();

((CrystalDecisions.CrystalReports.Engine.TextObject)cr.ReportDefinition.ReportObjects["Text1"]).Text = "うひひ";
みたいな感じ。
テキストオブジェクトなので、(CrystalDecisions.CrystalReports.Engine.TextObject) でキャストしてやらないといけない。
ちなみに、Text以外のプロパティもいろいろある。 Border, Color, Fontなど、詳しくはヘルプを見よう。
ReportObjectはTextObjectのほかには、BlobFieldObject、ChartObject、CrossTabObject、DrawingObject、FieldObject、GraphicObject、MapObject、OlapGridObject、SubreportObject というような具合だ。 VS2003.NETでは使えないのもある。

グループがページをまたがるとき分断されないようにしたい

グループを作成するとき、または、「グループを右クリック」 - 「グループの変更」 - 「オプション」で出てくる

の画面の「グループごとにまとめて表示」で設定する。 この日本語はなんか意味がわからないのだが、英語版では、「Keep Group Together」だ。 要はページをまたがるときでも、グループの固まりはキープしてくれよ、と。

「グループごとにまとめて表示」を「チェック」しなかった場合



こんな感じで6番目のグループはフッタだけが次のページに来てしまっている。

「グループごとにまとめて表示」を「チェック」した場合



こんな感じで6番目の項目は全体が次のページに移動した。

グループごとにページを分けたい

「グループフッター」の「セクションの書式」で、「出力後に改ページ」をチェックする。

罫線をセクションのきっちり下に置きたい、きっちり下まで伸ばしたい

「線の書式」の「出力時にセクションの下部へ移動」または「出力時にセクションの下部まで拡張」をチェックする。
プロパティの「ExtendToBottomOfSection」を「True」にしても同じ。

センタリングをしたい。均等割付をしたい。

書式エディタでも出来るのもあるのだが、項目自体が出てこないものもある。
そんなときは、プロパティの「動作」のところに

「HorAlignment」という項目があるので、これを設定すればよい。
ここで、例えば、「crHorCenterAlign」を選ぶとセンタリングされる。
均等割付であるが、「crJustified」なんていう思わせぶりな項目があるのだが、どうもうまく反映できない。 どなたか、どなたかやり方をご存じの方は、ぜひ、掲示板にでも書き込んで頂きたい。

[home] [クリスタルレポートトップ]
ひらちゃんのページ