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

📄 mainunit.pas

📁 放弃了先前的采用报表实现
💻 PAS
字号:
unit mainUnit;

interface

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, DB, ADODB, Grids, DBGridEh, LbSpeedButton, ExtCtrls, AAFont,
    AACtrls, jpeg, StdCtrls, LbButton;

type
    TForm1 = class(TForm)
        Panel1: TPanel;
        Panel2: TPanel;
        LbSpeedButton1: TLbSpeedButton;
        DBGridEh1: TDBGridEh;
        DataSource1: TDataSource;
        AALabel1: TAALabel;
        LbSpeedButton2: TLbSpeedButton;
        LbSpeedButton4: TLbSpeedButton;
        LbSpeedButton5: TLbSpeedButton;
        ADOQuery1: TADOQuery;
        Panel3: TPanel;
        LbButton1: TLbButton;
        LbButton2: TLbButton;
        LbButton3: TLbButton;
        LbButton4: TLbButton;
        LbButton5: TLbButton;
        LbButton6: TLbButton;
        LbButton7: TLbButton;
        LbButton8: TLbButton;
        LbButton9: TLbButton;
        LbButton10: TLbButton;
        LbButton11: TLbButton;
        LbButton12: TLbButton;
        LbButton14: TLbButton;
        LbButton15: TLbButton;
        LbButton16: TLbButton;
        LbButton17: TLbButton;
        Image1: TImage;
        Label1: TLabel;
        AALabel2: TAALabel;
        LbSpeedButton3: TLbSpeedButton;
        LbButton13: TLbButton;
        LbSpeedButton6: TLbSpeedButton;
    AAText1: TAAText;
    LbSpeedButton7: TLbSpeedButton;
    LbButton18: TLbButton;
        procedure LbSpeedButton1Click(Sender: TObject);
        procedure ADOTable1AfterOpen(DataSet: TDataSet);
        procedure LbSpeedButton5Click(Sender: TObject);
        procedure LbSpeedButton2Click(Sender: TObject);
        procedure DBGridEh1CellClick(Column: TColumnEh);
        procedure LbSpeedButton3Click(Sender: TObject);
        procedure LbSpeedButton4Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure LbButton1Click(Sender: TObject);
        procedure LbSpeedButton6Click(Sender: TObject);
    procedure LbSpeedButton7Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    private
    { Private declarations }
        procedure FlashREC;
        procedure DelAnotherTable(Sid: string);
        procedure AppendMB2005(SID:string);
    public
    { Public declarations }
    end;

var
    Form1: TForm1;

implementation
uses DM, EDITMAIN, Unit100s, Unit101s, Unit102s, Unit103s,
    Unit104s, Unit105s, Unit106s, unit107s, Unit108s, unit109s,
    unit110s, Unit1111213s, Unit114s, Unit115s, Unit1617s,
    Unit18_24s,UNITF3,  UnitPreview;
{$R *.dfm}

procedure TForm1.LbSpeedButton1Click(Sender: TObject);
begin
    FlashREC;
end;

procedure TForm1.ADOTable1AfterOpen(DataSet: TDataSet);
begin
    AALabel1.Caption := '共有' + IntToStr(ADOQuery1.RecordCount) + '条记录。';
end;

procedure TForm1.LbSpeedButton5Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.LbSpeedButton2Click(Sender: TObject);
begin
    ADOQuery1.Append;
    IDForm := TIDForm.Create(SELF);
    IDForm.bAppend := true;
    IDForm.ShowModal;
    FlashREC; //刷新
end;

procedure TForm1.FlashREC;
var
    currrec: Integer;
begin
    if ADOQuery1.Active then
        currrec := adoquery1.RecNo
    else
        currrec := 0;
    ADOquery1.CLOSE;
    ADOquery1.SQL.Text :=
        'select TID.合同编号,T0.出卖人,T0.买受人 FROM TID,T0 WHERE TID.合同编号=T0.合同编号 and TID.合同编号<>''MD2005''';
    ADOQuery1.Open;
    Panel3.Visible := (adoquery1.RecordCount > 0);
    AALabel1.Caption := '共有' + inttostr(ADOQuery1.recordcount) + '条记录。';
    if ADOQuery1.RecordCount = 0 then
        Exit
    else if currrec > ADOQuery1.RecordCount then
        ADOQuery1.Last
    else if currrec < 1 then
        adoquery1.First
    else
        adoquery1.RecNo := currrec;

end;

procedure TForm1.DBGridEh1CellClick(Column: TColumnEh);
begin
    Panel3.Visible := (adoquery1.RecordCount > 0);
end;

procedure TForm1.LbSpeedButton3Click(Sender: TObject);
begin
    ADOQuery1.edit;
    IDForm := TIDForm.Create(SELF);
    IDForm.bAppend := false;
    IDForm.ShowModal;
    FlashREC; //刷新
end;

procedure TForm1.LbSpeedButton4Click(Sender: TObject);
begin
    if Application.MessageBox('删除选定合同后将无法恢复,是否真的删除记录?',
        '询问', MB_YESNO or MB_ICONQUESTION) = idyes then begin
        DelAnotherTable(ADOQuery1.fieldbyname('合同编号').AsString);

        FlashREC;
    end;
end;

procedure TForm1.DelAnotherTable(Sid: string);
var
    I: Integer;
    ADOQ: TADOQUERY;

begin
    ADOQ := TADOQUERY.Create(SELF);
    with ADOQ do begin
        CONNECTION := dm.DataModule2.ADOConnection1;
        dm.DataModule2.ADOConnection1.BeginTrans;
        try
            for I := sTablename.Count - 1 downto 0 do begin
                SQL.Text := 'delete  from ' + sTablename[I] +
                    ' where  合同编号=''' + sid + '''';
                ExecSQL;

            end;
            DM.DataModule2.ADOConnection1.CommitTrans;
        except
            DM.DataModule2.ADOConnection1.RollbackTrans;
        end;
        free;
    end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    FlashREC;
end;

procedure TForm1.LbButton1Click(Sender: TObject);
begin

    case TLbButton(Sender).Tag of
        200: begin
                sID := adoquery1.fieldbyname('合同编号').Text;
                PreviewForm := TPreviewForm.Create(SELF);
                PreviewForm.ShowModal;
            end;
        100: begin
                sSQL := 'select * from T0 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form100s := TFORM100S.Create(SELF);
                Form100S.ShowModal;
            end;
        101: begin
                sSQL := 'select * from T1 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form101s := TFORM101S.Create(SELF);
                Form101S.ShowModal;
            end;
        102: begin
                sSQL := 'select * from T2 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form102s := TFORM102S.Create(SELF);

                Form102S.ShowModal;
            end;
        103: begin
                sSQL := 'select * from T3 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form103s := TFORM103S.Create(SELF);

                Form103S.ShowModal;
            end;
        104: begin
                sSQL := 'select * from T4 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form104s := TFORM104S.Create(SELF);

                Form104S.ShowModal;
            end;
        105: begin
                sSQL := 'select * from T5 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form105s := TFORM105S.Create(SELF);
                Form105S.ShowModal;
            end;
        106: begin
                sSQL := 'select * from T6 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form106s := TFORM106S.Create(SELF);
                Form106S.ShowModal;
            end;
        107: begin
                sSQL := 'select * from T7 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form107s := TFORM107S.Create(SELF);
                Form107S.ShowModal;
            end;
        108: begin
                sSQL := 'select * from T8 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form108s := TFORM108S.Create(SELF);
                Form108S.ShowModal;
            end;
        109: begin
                sSQL := 'select * from T9 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form109s := TFORM109S.Create(SELF);
                Form109S.ShowModal;
            end;
        110: begin
                sSQL := 'select * from T10 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form110s := TFORM110S.Create(SELF);
                Form110S.ShowModal;
            end;
        1111213: begin
                sSQL := 'select * from T11T12T13 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form1111213s := TFORM1111213S.Create(SELF);
                Form1111213S.ShowModal;
            end;
        114: begin
                sSQL := 'select * from T14 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form114s := TFORM114S.Create(SELF);
                Form114S.ShowModal;
            end;
        115: begin
                sSQL := 'select * from T15 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form115s := TFORM115S.Create(SELF);
                Form115S.ShowModal;
            end;
        11617: begin
                sSQL := 'select * from T16t17 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form1617s := TFORM1617S.Create(SELF);
                Form1617S.ShowModal;
            end;
        118192224: begin
                sSQL := 'select * from T18T19T22T24 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                form18_24s := TFORM18_24S.Create(SELF);
                Form18_24S.ShowModal;
            end;
        300:  begin
                sSQL := 'select * from F3 where 合同编号=''' +
                    adoquery1.fieldbyname('合同编号').Text + '''';
                sID := adoquery1.fieldbyname('合同编号').Text;
                formTF3 := TFORMTF3.Create(SELF);
                FormTF3.ShowModal;
            end;

    end;
    FlashREC;
end;

procedure TForm1.LbSpeedButton6Click(Sender: TObject);
begin
    LbButton13.Click;
end;

procedure TForm1.LbSpeedButton7Click(Sender: TObject);
var
  ADOMB:TADOQuery;
begin
  if adoquery1.RecordCount =0 then BEGIN
       Application.MessageBox('没有源记录,请先输入一个合同数据再建立模板!',
          '提示',MB_OK OR MB_ICONERROR );
       exit;
  end ELSE begin
       if Application.MessageBox('是否真的根据当前合同建立模板?新模板将覆盖旧模板!','提示',
          MB_yesno OR MB_ICONQUESTION )=7 THEN
          Exit;
  END;
  DelAnotherTable('MD2005');
  ADOMB:=TADOQuery.Create(SELF);
  WITH ADOMB DO begin
    Connection:=DM.DataModule2.ADOConnection1 ;
    dm.DataModule2.ADOConnection1.BeginTrans;
    TRY
        SQL.Text :='delete * FROM TID WHERE 合同编号=''MD2005''';
        ExecSQL ;
        DM.DataModule2.ADOConnection1.CommitTrans;
    except
        DM.DataModule2.ADOConnection1.RollbackTrans;
    end;
    AppendMB2005 (ADOQuery1.FIELDBYNAME('合同编号').Text );
    free;
   END;
   Application.MessageBox('模板已保存完毕!','提示',MB_OK OR MB_ICONINFORMATION);
end;

procedure TForm1.AppendMB2005(SID: string);

  function getfields( stn:string;VAR svn:String):string ;
  var
    j:integer;
    adotemp:TADOQuery;
  begin
    result:='';
    svn:='';
    adotemp:=TADOQuery.Create(self);
    with adotemp do begin
      Connection :=dm.DataModule2.ADOConnection1 ;
      SQL.Text :='select * from '+ stn;
      open;
      for j :=0  to FieldCount-1 do begin
         result:=Result+ adotemp.Fields[j].DisplayName +',';
         if adotemp.Fields[j].DisplayName='合同编号' then
            svn:=svn+'''MD2005'','
         else
            svn:=svn+''''+VarToStr( adotemp.Fields[j].AsVariant) +'''' +',';

      end;
      free;
      result:= Copy(result,0,Length (Result)-1);
      svn := Copy(SVN,0,Length (SVN)-1);
    end;

  end;
var
  I:Integer;
  sf,sv:string;
  ADOMBSQL:TADOQuery;
begin
  ADOMBSQL:=TADOQUERY.Create(SELF);
  with ADOMBSQL do begin
    Connection :=DM.DataModule2.ADOConnection1;
    dm.DataModule2.ADOConnection1.BeginTrans;
    try

        for I := sTablename.Count - 1 downto 0 do begin
            Application.ProcessMessages ;
            sf:=getfields(sTablename[i],sv);
            //ShowMessage(sTablename[i]+#13+ sf+#13+sv);
            SQL.Text := 'insert into ' + sTablename[I] +
                        '('+sF+')VALUES ('+SV+')';

            ExecSQL;

        end;
        DM.DataModule2.ADOConnection1.CommitTrans;
    except
        DM.DataModule2.ADOConnection1.RollbackTrans;
    end;
    FREE;
  END;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action:=cafree;
  form1:=nil;
end;

end.

⌨️ 快捷键说明

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