u_sys_wbs.pas

来自「建筑施工企业项目管理系统」· PAS 代码 · 共 282 行

PAS
282
字号
unit U_sys_wbs;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, Db, ADODB, Grids, DBGrids, StdCtrls, Buttons;

type
  TF_sys_wbs = class(TForm)
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    DBGrid1: TDBGrid;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    Label1: TLabel;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    DataSource2: TDataSource;
    ADOQuery2: TADOQuery;
    procedure FormActivate(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3Exit(Sender: TObject);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure Edit4Exit(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5Exit(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_sys_wbs: TF_sys_wbs;
  status:byte;
implementation
uses U_pub_data;
{$R *.DFM}

procedure TF_sys_wbs.FormActivate(Sender: TObject);
begin
  WITH ADOQUERY1 DO
  BEGIN
     CLOSE;
     sql.clear;
     sql.add('select wbs_no as 编码,wbs_means as 工程分项名称,wbs_balance as 权值,sum_fee as 费用,sum_labor as 人工时,description as 说明 from  wbs ' );
     sql.add(' order by wbs_no');
     open;
  END;
  speedbutton1.Enabled:=true;
  speedbutton2.Enabled:=true;
  speedbutton3.Enabled:=true;
  speedbutton4.Enabled:=false;

  GroupBox1.Enabled :=false;
  edit1.Text :=adoquery1.Fields[0].Text ;
  edit2.Text :=adoquery1.Fields[1].Text ;
  edit3.Text :=adoquery1.Fields[2].Text ;
  edit4.Text :=adoquery1.Fields[3].Text ;
  edit5.Text :=adoquery1.Fields[4].Text ;
  edit6.Text :=adoquery1.Fields[5].Text ;
end;

procedure TF_sys_wbs.DBGrid1CellClick(Column: TColumn);
begin
  edit1.Text :=adoquery1.Fields[0].Text ;
  edit2.Text :=adoquery1.Fields[1].Text ;
  edit3.Text :=adoquery1.Fields[2].Text ;
  edit4.Text :=adoquery1.Fields[3].Text ;
  edit5.Text :=adoquery1.Fields[4].Text ;
  edit6.Text :=adoquery1.Fields[5].Text ;
end;

procedure TF_sys_wbs.SpeedButton5Click(Sender: TObject);
begin
   close;
end;

procedure TF_sys_wbs.SpeedButton1Click(Sender: TObject);
begin
  speedbutton1.Enabled :=false;
  speedbutton2.Enabled :=false;
  speedbutton3.Enabled :=false;
  speedbutton4.Enabled :=true;
  groupbox1.Enabled :=true;
  edit1.Clear ;
  edit2.Clear;
  edit3.Clear ;
  edit4.Clear;
  edit5.Clear ;
  edit6.Clear;
  edit1.SetFocus ;
  status:=0;
end;

procedure TF_sys_wbs.SpeedButton4Click(Sender: TObject);
begin

if status=0 then          //按增加按纽时的保存
begin
  try
     with adoquery2 do
     begin
        close;
        sql.clear;
        sql.add('insert into wbs values(:p0,:p1,:p2,:p3,:p4,:p5)');
        parameters[0].Value :=edit1.Text ;
        parameters[1].Value :=edit2.Text ;
        parameters[2].Value :=strtoint(edit3.Text) ;
        parameters[3].Value :=strtofloat(edit4.Text) ;
        parameters[4].Value :=strtofloat(edit5.Text) ;
        parameters[5].Value :=edit6.Text ;
        if messagedlg('是否真的保存?',mtconfirmation,[mbYes,mbNo],1)=mryes then
            begin
               ExecSQL;
               showmessage('数据已经保存!');
               speedbutton4.Enabled :=false;
               speedbutton1.Enabled :=true;
               speedbutton2.Enabled :=true;
               speedbutton3.Enabled :=true;
               groupbox1.Enabled :=false;
               FormActivate(self);
            end
        else
            cancel;

     end;
  except
  end;
  end

  else  //按了修改按纽时的保存
  begin
    
        try
              begin
                 with adoquery1 do
                 begin

                   Fields[0].AsString :=edit1.Text ;
                   Fields[1].asstring:=edit2.Text ;
                   Fields[2].asinteger:=strtoint(edit3.Text) ;
                   Fields[3].asfloat:=strtofloat(edit4.Text) ;
                   Fields[4].asfloat:=strtofloat(edit5.Text) ;
                   Fields[5].AsString :=edit6.Text ;
                   Post;
                   showmessage('修改成功!');
                end;
                dbgrid1.Enabled :=true;
                speedbutton1.Enabled :=true;
                speedbutton2.Enabled :=true;
                speedbutton3.Enabled :=true;
                FormActivate(self);
              end;
         except
                showmessage('数据类型错误,保存失败!');
                dbgrid1.Enabled :=true;
         end;

  end;
end;

procedure TF_sys_wbs.SpeedButton2Click(Sender: TObject);
begin
  adoquery1.Edit;
  groupbox1.Enabled :=true;
  edit1.SetFocus ;
  speedbutton1.Enabled :=false;
  speedbutton2.Enabled :=false;
  speedbutton3.Enabled :=false;
  speedbutton4.Enabled :=true;
  status:=1;
  dbgrid1.Enabled :=false;
end; 

procedure TF_sys_wbs.SpeedButton3Click(Sender: TObject);
begin
  if messagedlg('是否真的删除?',mtconfirmation,[mbYes,mbNo],1)=mryes then
  adoquery1.delete;
  //DBGrid1CellClick(Column);

end;

procedure TF_sys_wbs.Edit3KeyPress(Sender: TObject; var Key: Char);
begin

if key<>chr(8) then

   if (key<'0') or (key >'9') then

       begin
            showmessage('只能输入数据!');
            edit3.SetFocus ;

       end;
end;

procedure TF_sys_wbs.Edit3Exit(Sender: TObject);
begin
  if (edit3.Text <>'') and ((strtoint(edit3.Text)>100) or (strtoint(edit3.Text) <0))  then
     begin
         showmessage('只能输入0~100的整数!');
         edit3.SetFocus ;
     end;
end;

procedure TF_sys_wbs.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
  if key<>chr(8) then

      if   (key<'0') or (key >'9') then

       begin
         if (key<>'.') and (key<>'-') then
         begin
             showmessage('只能输入数据!');
             edit4.SetFocus ;
         end;
       end;
end;




procedure TF_sys_wbs.Edit4Exit(Sender: TObject);
begin
    if (edit4.Text <>'') and ((strtoint(edit4.Text)>100) or (strtoint(edit4.Text) <0))  then
     begin
         showmessage('只能输入数值!');
         edit4.SetFocus ;
     end;
end;

procedure TF_sys_wbs.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
    if key<>chr(8) then

      if   (key<'0') or (key >'9') then

       begin
         if (key<>'.') and (key<>'-') then
         begin
             showmessage('只能输入数据!');
             edit5.SetFocus ;
         end;
       end;
end;

procedure TF_sys_wbs.Edit5Exit(Sender: TObject);
begin
   if (edit5.Text <>'') and ((strtoint(edit5.Text)>100) or (strtoint(edit5.Text) <0))  then
     begin
         showmessage('只能输入数值!');
         edit5.SetFocus ;
     end;
end;

end.

⌨️ 快捷键说明

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