orderrep.~pas

来自「完整的delphi书籍源代码,大家有空的时候自己慢慢看看」· ~PAS 代码 · 共 141 行

~PAS
141
字号
unit OrderRep;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Buttons, RpCon, RpConDS,
  RpBase, RpSystem, RpDefine, RpRave,RVClass, RVProj, RVCsStd;

type
  TOrdRep = class(TForm)
    Database1: TDatabase;
    Query1: TQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Table1: TTable;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    OrderReport_RvProject: TRvProject;
    RvSystem1: TRvSystem;
    RvDataSetConnection1: TRvDataSetConnection;
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  OrdRep: TOrdRep;

implementation

{$R *.dfm}

procedure TOrdRep.FormShow(Sender: TObject);
Var QueryStr:string;
    i,Querycount:integer;
    StuNos,StuNames,ClassNames,BookNos,BookNames,Authors:array[1..100]of String;
begin
  With query1 do
    begin
      close;
      Sql.Clear;
      QueryStr:='Select StuNo,BookNo From Record Where Ordered=True';
      Sql.Add(QueryStr);
      Open;
      Querycount:=recordcount;
      first;
      for i:=1 to Querycount do
        begin
           StuNos[i]:=FieldByName('StuNo').asstring;
           BookNos[i]:=FieldByName('BookNo').asstring;
           next;
        end;
      for i:=1 to Querycount do
        begin
          close;
          Sql.Clear;
          QueryStr:='Select BookName,Author From Book Where BookNo='+''''+BookNos[i]+'''';
          Sql.Add(QueryStr);
          Open;
          BookNames[i]:=FieldByName('BookName').asstring;
          Authors[i]:=FieldByName('Author').asstring;
        end;
        for i:=1 to Querycount do
         begin
             close;
             Sql.Clear;
             QueryStr:='Select StuName,Class From Student Where StuNo='+''''+StuNos[i]+'''';
             Sql.Add(QueryStr);
             Open;
             StuNames[i]:=FieldByName('StuName').asstring;
             ClassNames[i]:=FieldByName('Class').asstring;
         end;
    end;
  With Table1 do
    begin
       close;
       open;
       Active:=True;
       First;
       for i:=1 to Recordcount do
           begin
             Delete;
             next;
           end;
       close;
       open;
       Active:=True;
       for i:=1 to Querycount do
           begin
             Last;
             Append;
             Fieldvalues['StuNo']:=StuNos[i];
             Fieldvalues['StuName']:=StuNames[i];
             Fieldvalues['Class']:=ClassNames[i];
             Fieldvalues['BookNo']:=BookNos[i];
             Fieldvalues['BookName']:=BookNames[i];
             Fieldvalues['Author']:=Authors[i];
             Post; 
           end;
    end;
    Table1.close;
    Table1.Open;
    Table1.Active:=True;
    Edit1.Text:=inttostr(Querycount);
    Edit2.Text:=Datetostr(Date);
end;

procedure TOrdRep.BitBtn2Click(Sender: TObject);
begin
 close;
end;

procedure TOrdRep.BitBtn1Click(Sender: TObject);
var  ReportPage: TRavePage;
	   DateText: TRaveText;
begin
   Table1.Active:=False;
   Table1.Active:=True;
   OrderReport_RvProject.ProjectFile:='.\ReportPages\OrderReport.rav';
   OrderReport_RvProject.Open;
   with OrderReport_RvProject.ProjMan do
      begin
        ReportPage:=FindRaveComponent('Report2.MainPage',nil) as TRavePage;
	      DateText:= FindRaveComponent('Text9',ReportPage) as TRaveText;
        DateText.Text:=datetostr(date);
      end;
   OrderReport_RvProject.Execute;
   OrderReport_RvProject.Close;
end;

end.

⌨️ 快捷键说明

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