zoukankan      html  css  js  c++  java
  • 將FastReport存入數據庫,讀出并更新

     

    以下代碼在D7+ACCESS+FastReport 3.15版中測試通過.

    1.將FastReport存入數據庫中:

    在窗體的"Insert"按鈕的OnClick事件中插入下面代碼:
    (Insert_rep: TADOQuery.設置SQL語句:select * from reportdata.
    注:ReportData為放置數據庫的表,其中有字段ID(標志),REPORT(報表內容))
    procedure TForm1.Button4Click(Sender: TObject);
    var
    template : TStream;
    begin
    template := TMemoryStream.Create;
    template.Position := 0;
    frxReport1.SaveToStream(template);
    Insert_rep.Insert;
    try
        Insert_rep.Active := true;
        Insert_rep.Edit;
        Insert_rep.DisableControls;
        Insert_rep.FieldByName('rptname').AsString := ExtractFileName(OpenDialog1.FileName);//報表名稱,作為報表數據的標志
        (Insert_rep.FieldByName('rptdata') as TBlobField).LoadFromStream(template);
        Insert_rep.FieldByName('uptime').AsDateTime := now;
        Insert_rep.Append;
        ShowMessage('Insert OK!');
    finally
        Insert_rep.EnableControls;
        template.Free;
    end;
    end;

    2.將報表從數據庫中讀取出來:
    在Button的OnClick事件中添加下面代碼:
    (qr_report: ADOQuery)
    procedure TForm1.Button4Click(Sender: TObject);
    var
    template : TStream;
    begin
    try
        g_filename := ...;//報表名稱
        qr_report.Close;
        qr_report.SQL.Clear;
        qr_report.SQL.Add('select * from reportdata where id =:id');
        qr_report.Parameters.ParamByName('id').Value := g_filename;
        qr_report.Open;
        try
          template := qr_report.CreateBlobStream(qr_report.FieldByName('report'), bmRead);
          template.Position := 0;
          frxReport1.LoadFromStream(template);
        finally
          template.Free;
        end;
    end;
    end;

    3修改報表,并寫入數據庫.
    在frxDesigner1控件的OnSaveReport事件中,加入下面代碼:
    (設計報表后,單擊報表中的 "save" 圖標,觸發該事件)
    function TForm1.frxDesigner1SaveReport(Report: TfrxReport;
    SaveAs: Boolean): Boolean;
    var template : TStream;
    begin
    template := TMemoryStream.Create;
    template.Position := 0;
    frxReport1.SaveToStream(template);
    qr_report.Edit;
    try
        qr_report.DisableControls;
        (qr_report.FieldByName('Report') as TBlobField).LoadFromStream(template);
        qr_report.Post;
    finally
        qr_report.EnableControls;
        template.Free;
    end;
    end;

  • 相关阅读:
    git命令评测
    so文件成品评论【整理】
    Codeforces 85B. Embassy Queue【段树、馋】
    JPEG图像扩展信息读取和修改
    【 D3.js 入门系列 --- 0 】 简介及安装
    unity3d 学习笔记(三)
    ListView 泛利
    [React] Create an Auto Resizing Virtualized List with react-virtualized
    [PReact] Integrate Redux with Preact
    [Preact] Integrate react-router with Preact
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940801.html
Copyright © 2011-2022 走看看