- このトピックは空です。
-
投稿者投稿
-
2021年6月29日 4:51 PM #711
(有)クレスト長岡
ゲスト続けての質問で申し訳有りません。
2つ程質問させて下さい。
Delphi5で開発してます。
1)Ver2.0ではWingrpt.pasがあったのですがVer3.0では見あたらないようです。自分で作るようでしょうか?
現在OCX、APIのどちらを使うか迷っています。
Ver2.0のコードを変更するなら断然APIと思うのですが。2)OCX利用でレポートファイルを実行時に作成しようとしてるのですが、うまく作れません。
CreateReport()やLayer[1].Create()
を使うと思うのですが、簡単なサンプルを書いていただけないでしょうか?
もし、どこかにサンプルがあれば場所を教えて下さい。
勉強不足で済みません。2021年6月29日 4:52 PM #712中嶋@ソフトウィング
ゲストお世話になっております。
質問1についてですが、大変恐縮ではありますが定義ファイルの提供は予定に含まれておりません。
質問2についてですが デルファイサンプルを元に
{‘レポートオブジェクトの設定}
{‘レポートファイルを読み込み、レポートオブジェクトを作成します}
//waxReport := Form1.WR3AXCL1.LoadReport(ExtractFilePath(Application.ExeName) + ‘送付状.w30’);waxReport := Form1.WR3AXCL1.CreateReport();
これで、レポートオブジェクトを実行時に生成することが可能です。
このあとに、レイヤーに対しオブジェクトを生成することになりますが、Delphiでは省略可能な引数を定義することが出来ないようですので 以下のような修正を行ってください。
自動生成される WRAXCLLib_TLB.PAS を適当なエディタにより開き
Create を検索
function CreateNonFrame(ObjectType: wrOBJECTTYPE; Left: Double; Top: Double; Width: Double;
Height: Double): IWRObject; dispid 501;上記関数を追加する。
これにより、Frameを省略しオブジェクトを生成することが可能です。
以上よろしくお願いいたします。
2021年6月29日 4:52 PM #713(有)クレスト長岡
ゲストご回答ありがとうございました。
ご指示とうりにDelphiホルダ\info\WR3AXCLLib_TLB.pasを開き
IWRLayer = dispinterface
[‘{1A5B3766-929E-11D3-81CD-00902710EA39}’]
property ZOrderNumber: wrLAYERZORDERNUM dispid 1;
property Visible: WordBool dispid 2;
property ObjectCount: Integer dispid 3;
function WRObject(Name: OleVariant): IWRObject; dispid 500;
function Create(ObjectType: wrOBJECTTYPE; Left: Double; Top: Double; Width: Double;
Height: Double; FrameObject: OleVariant): IWRObject; dispid 501;
function Copy(const SrcObject: IWRObject; FrameObject: OleVariant): IWRObject; dispid 502;
procedure ClearData; dispid 503;
procedure OffsetObject(X: Double; Y: Double); dispid 504;
function CreateNonFrame(ObjectType: wrOBJECTTYPE; Left: Double; Top: Double; Width: Double;
Height: Double): IWRObject; dispid 501;
end;上記のようにCreateNonFrameを追加し
var
BmpObj:WRObject;
begin
BmpObj:=waxReport.Layer[1].CreateNonFrame()でオブジェクト生成に成功しました。
ありがとうございました。最後に9/8日質問への回答はどうなってるでしょうか?
月末の請求書印刷に間に合わしたいのですが... -
投稿者投稿
- フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。