• 將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;

  • 相关阅读:
    Java使用google开源工具Thumbnailator实现图片压缩
    nginx基本配置
    CopyPropertis
    微服务(Microservices )简介
    jQuery ajax()使用serialize()提交form数据
    $.getJSON( )的使用方法简介
    理解 CSS 的 z-index 属性
    JS中的call()和apply()方法
    CSS文字换行详细解说
    如何实现JS函数的重载
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940801.html
Copyright © 2020-2023  润新知