みなさま、こんにちは。しむぅです。

過去(2001年~2003年)にメールニュースにて配信された「シーオーリポーツ的便利機能」を掲載していきます。
現行の製品と動作が異なる場合もあります。ご了承ください。

benri_title11

帳票を定形用紙サイズに印刷するの巻

フォームエディタの達人からシーオーリポーツの達人へと修行中の「きょ~こ」と、師匠「しむぅ」が繰り広げる「シーオーリポーツ的便利機能」も今回で三回目。またまた、問題が起きているようです。
あれぇ???帳票印刷がきちんとできてなぁ~い。フォームエディタでレイアウト設計をした時はA3用紙サイズなのに、印刷されてきたのはA4用紙。しかも印刷が切れてる???
ん?プログラムに「SetFormSize」の記述はちゃんとあるのか?
ほへっ?
「SetFormSize」を使い、出力先プリンタの用紙サイズを、作成したフォームファイルの用紙サイズに合わせないと、出力先プリンタの設定で印刷されてしまうんじゃよ。作成したフォームファイルと同じA3用紙で印刷したいなら、こんな感じじゃな。
SetFormSizeメソッド使用例
lRet = CrDraw1.Initialize
lRet = CrDraw1.StartPrinter("", "test")
Set ObjForm = CrDraw1.OpenForm("Form1.crf")
lRet = CrDraw1.Printer.SetFormSize(ObjForm)
フォームファイルの用紙サイズに合わせて印刷してくれればいいのに、なぜ?
それはシーオーリポーツの仕様だからじゃ(キッパリ)
どう・しよう。(「しよう」と「仕様」を引っ掛けたわけね)
さむっ。
たまにはボケてもいいでしょっ(開き直り)
ふぅ。プリンタによって使用できる用紙サイズが決まっているのはわかるじゃろ。ということはじゃ、作成したフォームファイルの用紙サイズを必ずしも出力先のプリンタがサポートしているとは限らない。で、特に指定がなければ出力先プリンタの設定を優先するようになってるんじゃ(・・・よな?・・・パラパラパラ・・・パタン)どうじゃ、わかったか?
なっ・とく。
・・・できない。じゃあ、フォームファイルの用紙サイズにプリンタが対応していない時はどうなるのぉ?例えばA3で作っちゃったけど、A4サイズしか印刷できないプリンタを使わなければいけない時とか。もしかして、フォームファイルをA4サイズで作り直し?!
えっと(パラパラパラ・・・)確かにその時は「SetFormSize」は無意味じゃ。その時は「CrPrinter」のプロパティを使うのじゃ。こんな感じじゃな。 
CrPrinterプロパティ使用例
lRet = CrDraw1.Initialize
lRet = CrDraw1.StartPrinter("", "test")
Set ObjForm = CrDraw1.OpenForm("Form1.crf")
CrDraw1.Printer.PaperSize = corPaperA4
CrDraw1.Printer.PaperScale = 70
まず、「PaperSize」で印刷出力したい用紙サイズを設定するのじゃな。そして、「PaperScale」で拡大縮小率を指定することで、A4サイズに収まった帳票にするんじゃ。(・・・パタン)
師匠、さっきから何を見ているのですか?まさか、マニュアル・・・。
きっ、気のせいじゃ。え~、コホンッ。とりあえず「SetFormSize」を実行してエラーだったら「CrPrinter」のプロパティを使えば、どわいじょぉ~ぶ!
ん~、なっ・とく。・・・かな。