[WR3.0]レポートファイルの実行時作成について

HOME › フォーラム › 旧サポート掲示板 › [WR3.0]レポートファイルの実行時作成について

  • このトピックは空です。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #711
    (有)クレスト長岡
    ゲスト

    続けての質問で申し訳有りません。
    2つ程質問させて下さい。
    Delphi5で開発してます。
    1)Ver2.0ではWingrpt.pasがあったのですがVer3.0では見あたらないようです。自分で作るようでしょうか?
    現在OCX、APIのどちらを使うか迷っています。
    Ver2.0のコードを変更するなら断然APIと思うのですが。

    2)OCX利用でレポートファイルを実行時に作成しようとしてるのですが、うまく作れません。
    CreateReport()やLayer[1].Create()
    を使うと思うのですが、簡単なサンプルを書いていただけないでしょうか?
    もし、どこかにサンプルがあれば場所を教えて下さい。
    勉強不足で済みません。

    #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を省略しオブジェクトを生成することが可能です。

    以上よろしくお願いいたします。

    #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日質問への回答はどうなってるでしょうか?
    月末の請求書印刷に間に合わしたいのですが...

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。