⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 DELPHI的报表控件
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  RDReport, Menus, BitBtnGrid, StdCtrls, ActnList, Buttons, Db, DBTables,
  ScrollCustomControl, ShapeEx ,RDConsts, ComCtrls, ToolWin, MyColorComboBox,
  Grids;

type
  TForm1 = class(TForm)
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn1: TBitBtn;
    RDReport1: TRDReport;
    RDReport3: TRDReport;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    Query1: TQuery;
    RDReport4: TRDReport;
    Table1: TTable;
    Table3: TTable;
    Query2: TQuery;
    RDReport2: TRDReport;
    BitBtn7: TBitBtn;
    Table2: TTable;
    procedure BitBtn1Click(Sender: TObject);
    procedure RDReport1NeedData(Sender: TObject; AreaType: TAreaType;
      Area: TGridArea; RecordNo: Integer; var HasData: Boolean);
    procedure BitBtn2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure RDReport2NeedData(Sender: TObject; AreaType: TAreaType;
      Area: TGridArea; RecordNo: Integer; var HasData: Boolean);
    procedure BitBtn6Click(Sender: TObject);
    procedure RDReport2GetedData(Sender: TObject; AreaType: TAreaType;
      Area: TGridArea);
    procedure BitBtn4Click(Sender: TObject);
    procedure RDReport4BeforePrint(Sender: TObject; AreaType: TAreaType);
    procedure RDReport4NeedData(Sender: TObject; AreaType: TAreaType;
      Area: TGridArea; RecordNo: Integer; var HasData: Boolean);
    procedure RDReport3BeforePrint(Sender: TObject; AreaType: TAreaType);
    procedure RDReport3AfterPrint(Sender: TObject; AreaType: TAreaType);
    procedure RDReport3NeedData(Sender: TObject; AreaType: TAreaType;
      Area: TGridArea; RecordNo: Integer; var HasData: Boolean);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    shapeex1:TShapeex;
    preview: TRDPreview;
    RDReport22: TRDReport;
  end;

var
  Form1: TForm1;
  FF : TextFile;

implementation

{$R *.DFM}
uses Unit_AreasEditor;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  RDReport2.EditReportAreas;
end;


procedure TForm1.BitBtn2Click(Sender: TObject);
var
  a: TGridArea;
begin
  a:= RDReport2.GetReportArea(atTitle);
  if a<>nil then a.Items[1,1]:= '周针织服装加工、制造';
  RDReport2.AlignArea(atColumnHeader,atDetail);
  RDReport2.FillFieldNames(atDetail);
  RDReport2.Preview;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//  RDReport2:= TRDReport.Create(self);
//  RDReport2.AreaTypes := [atDetail,atSummary];
end;

procedure TForm1.RDReport2NeedData(Sender: TObject; AreaType: TAreaType;
  Area: TGridArea; RecordNo: Integer; var HasData: Boolean);
begin
  if (AreaType=atDetail) and (RecordNo=9)
  then RDReport2.NewPage;
end;

procedure TForm1.BitBtn6Click(Sender: TObject);
begin
  if preview=nil then preview:= TRDPreview.Create(self);
  preview.Align := alClient;
  preview.RDReport := RDReport2;
  preview.Prepare;
end;

procedure TForm1.RDReport2GetedData(Sender: TObject; AreaType: TAreaType;
  Area: TGridArea);
begin
  if (AreaType=atSummary)
    then begin
      Area.Strings[3] := Area.Strings[3]+'元';
    end;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
  RDReport4.Preview;
end;

procedure TForm1.RDReport4BeforePrint(Sender: TObject;
  AreaType: TAreaType);
begin
  if (AreaType=atSubDetail) then
  begin
    Query2.Close;
    Query2.Params[0].AsInteger := Table3.FieldByName('CustNo').AsInteger;
    Query2.Open;
  end;   
end;

procedure TForm1.RDReport4NeedData(Sender: TObject; AreaType: TAreaType;
  Area: TGridArea; RecordNo: Integer; var HasData: Boolean);
begin
//  if (AreaType=atDetail) and (RecordNo=3) then RDReport4.NewPage;
end;

procedure TForm1.RDReport3BeforePrint(Sender: TObject;
  AreaType: TAreaType);
begin
  if (AreaType=atDetail) then
  begin
    AssignFile(FF, 'cnsetup.log');
    Reset(FF);
  end;
end;

procedure TForm1.RDReport3AfterPrint(Sender: TObject; AreaType: TAreaType);
begin
  if (AreaType=atDetail) then CloseFile(ff);
end;

procedure TForm1.RDReport3NeedData(Sender: TObject; AreaType: TAreaType;
  Area: TGridArea; RecordNo: Integer; var HasData: Boolean);
var
  Str : string;
begin
  if (AreaType=atDetail) then
  begin
    HasData := not Eof(FF);
    if HasData then
    begin
      Readln(FF,str);
      Area.Items[0,0] := Str;
    end;
  end;
end;

procedure TForm1.BitBtn5Click(Sender: TObject);
begin
  RDReport3.Preview;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
  RDReport1.LoadFromFile(ExtractFilePath(Paramstr(0))+'RDR\FP.RDR');
  with RDReport1.GetReportArea(atDetail) do
  begin
    Items[0,0] := 'XX票据';
    Items[1,0] := '客户名称:江苏大家发有限公司';
    Items[1,3] := FormatDateTime('"开票日期"yyyy"年"mm"月"dd"日"',date);
  end;
  RDReport1.Preview;
end;

procedure TForm1.BitBtn7Click(Sender: TObject);
begin
  RDReport1.LoadFromFile(ExtractFilePath(Paramstr(0))+'RDR\FPEmpty.RDR');
  with RDReport1.GetReportArea(atDetail) do
  begin
    Items[1,0] := '          江苏大家发有限公司';
    Items[1,3] := FormatDateTime('yyyy"  "mm"  "dd"  "',date);
  end;
  RDReport1.Preview;
end;

procedure TForm1.RDReport1NeedData(Sender: TObject; AreaType: TAreaType;
  Area: TGridArea; RecordNo: Integer; var HasData: Boolean);
begin
  // 只有 atDetail 区域,不用判断  AreaType
  if Table2.Active then Table2.First else Table2.Open;
  Area.FillWithRecord(Table2,3,0);
  Table2.Next;
  Area.FillWithRecord(Table2,4,0);
  with Area do
  begin
    Items[7,2] := '周伟国';
    Items[6,1] := '贰万零叁佰元整';
  end;
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -