掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
DelphiからCrystalReportsの用紙サイズを指定して出力させる (ID:41418)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になっております。 タイトル通りDelphiからCrystalReportsの用紙サイズを指定して出力する方法をご教授願いたいです。 以下、作成途中のソースコードです。 procedure TForm1.Button1Click(Sender: TObject); type // TBinNoArray = array[0..9999] of WORD; // PBinNoArray = ^TBinNoArray; // TBinName = array[0..23] of Char; // TBinNameArray = array[0..9999] of TBinName; // PBinNameArray = ^TBinNameArray; TPaperNoArray = array[0..9999] of WORD; PPaperNoArray = ^TPaperNoArray; TPaperName = array[0..63] of Char; TPaperNameArray = array[0..9999] of TPaperName; PPaperNameArray = ^TPaperNameArray; var Device, Driver, Port: array[0..79] of char; DeviceMode: THandle; i,j,pindex; S:String; pDevMode: PDeviceMode; begin S:= 'プリンター名'; pindex := Printer.Printers.IndexOf(S); if pindex < 0 then begin showmessage('プリンターが見つかりませんでした。'); exit; end; Printer.PrinterIndex := pindex; Printer.GetPrinter(Device, Driver, Port, DeviceMode); pDevMode := GlobalLock(DeviceMode); try //---------------------------------------- //用紙サイズのインデックス取得処理(省略) //・対象プリンタの用紙サイズ一覧を取得 // DeviceCapabilities使用 //・一覧から設定したい用紙サイズのインデックスを取得 //---------------------------------------- pDevMode^.dmPaperSize := 取得した用紙サイズインデックス; finally GlobalUnlock(DeviceMode); end; Printer.SetPrinter(Device, Driver, Port, DeviceMode); Crpe1.Printer.Name := StrPas(Device); Crpe1.Printer.Driver := StrPas(Driver); Crpe1.Printer.Port := StrPas(Port); Crpe1.Printer.Mode := DeviceMode; Crpe1.CloseWindow; Crpe1.ReportName:='\\"パス"\"レポート".rpt'; // Printer.PreserveRptSettings := [prOrientation, prPaperSize, prPaperSource]; Crpe1.Execute; try Crpe1.PrintWindow; except showmessage('error'); Exit; end; end; DeviceModeにて用紙サイズを指定しているのですが、うまく用紙サイズが変わってくれません。 ここを直せばいい、ここをこうしたほうがいいなどありましたら、どうかご教授ください。よろしくお願い致します。 ※ソースは抜粋してきたのでコンパイルが通るか確認しておりません。 ご了承ください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.