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

📄 mainunit.pas

📁 用delphi编写的针对商品房销售合同格式
💻 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, GridsEh;

type
    TForm1 = class(TForm)
        Panel1: TPanel;
        Panel2: TPanel;
        LbSpeedButton1: TLbSpeedButton;
        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;
        LbSpeedButton3: TLbSpeedButton;
        LbButton13: TLbButton;
        LbSpeedButton6: TLbSpeedButton;
        LbSpeedButton7: TLbSpeedButton;
        LbButton18: TLbButton;
        LbSpeedButton8: TLbSpeedButton;
    AAText1: TAAText;
    DBGridEh1: TDBGridEh;
    LbButton19: 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);
        procedure LbSpeedButton8Click(Sender: TObject);
    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, StatUnit  , Unit3;
{$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
        400: begin
              sID := adoquery1.fieldbyname('合同编号').Text;
                  Form3:= TForm3.Create(SELF);
                 Form3.ShowModal;
            end;
        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;

procedure TForm1.LbSpeedButton8Click(Sender: TObject);
begin

    StatForm := TStatForm.Create(SELF);
    StatForm.ShowModal;
end;

end.

⌨️ 快捷键说明

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