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

📄 other_add.pas

📁 汽配前台收费,一个具有详细功能的小系统
💻 PAS
字号:
unit other_add;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, DBTables, Db, Buttons, Grids, DBGrids, Mask, DBCtrls;

type
  Tfrm_other_add = class(TForm)
    pe_bh: TPanel;
    Label1: TLabel;
    combo_bh: TComboBox;
    Panel2: TPanel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    txt_time: TDBEdit;
    txt_cph: TDBEdit;
    txt_cx: TDBEdit;
    txt_cz: TDBEdit;
    txt_wx: TDBEdit;
    txt_bx: TDBEdit;
    txt_dw: TDBEdit;
    pe_info: TPanel;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    cmd_new: TBitBtn;
    cmd_edit: TBitBtn;
    cmd_save: TBitBtn;
    cmd_cancel: TBitBtn;
    cmd_del: TBitBtn;
    ds_jy1: TDataSource;
    qe_jy1: TQuery;
    ds_gs_add: TDataSource;
    qe_gs_add: TQuery;
    sp_del_from_gs_ad: TStoredProc;
    qe_jy: TQuery;
    pe_edit: TPanel;
    Label2: TLabel;
    txt_name: TEdit;
    Label3: TLabel;
    txt_je: TEdit;
    pe_image: TPanel;
    Image1: TImage;
    procedure combo_bhChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    //
    procedure ControlChanged(Sender: TObject);
    procedure ControlKeyPress(Sender: TObject; var Key: Char);
    procedure cmd_newClick(Sender: TObject);
    procedure cmd_editClick(Sender: TObject);
    procedure cmd_saveClick(Sender: TObject);
    procedure cmd_cancelClick(Sender: TObject);
    procedure cmd_delClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    cur_bh: string;
    //
    procedure QueryResult;
    procedure EnabledComponent(intState: TDataSetState);
    procedure InitBHList;
    procedure controlSetFocus(intpos: integer);
    function RuleCheck: integer;
    procedure NewInit;
    procedure EditInit;
    procedure SaveInit;
    procedure CancelInit;
    procedure ExeDelandInit;
  public
    { Public declarations }
  end;

var
  frm_other_add: Tfrm_other_add;

implementation

{$R *.DFM}

uses
  log, main;

procedure Tfrm_other_add.ExeDelandInit;
begin
  if MessageBox(Handle, '确实要删除当前记录?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_OK then begin
    sp_del_from_gs_ad.ParamByName('@ipj_id').Value := qe_gs_add.FieldByName('pj_id').AsInteger;
    sp_del_from_gs_ad.ExecProc;
    //
    qe_gs_add.Close;
    qe_gs_add.Open;
    qe_gs_add.First;
  end;
  //
  EnabledComponent(dsBrowse);
end;

procedure Tfrm_other_add.CancelInit;
begin
  qe_gs_add.Cancel;
  //
  pe_bh.Enabled := True;
  pe_image.Visible := True;
  pe_info.Enabled := True;
  pe_edit.Visible := False;
  //
  EnabledComponent(dsBrowse);
end;

procedure Tfrm_other_add.SaveInit;
begin
  pe_bh.Enabled := True;
  pe_image.Visible := True;
  pe_info.Enabled := True;
  pe_edit.Visible := False;
  //
  EnabledComponent(dsBrowse);
end;

procedure Tfrm_other_add.EditInit;
begin
  pe_edit.Visible := True;
  pe_image.Visible := False;
  pe_info.Enabled := False;
  pe_bh.Enabled := False;
  //
  txt_name.Text := Trim(qe_gs_add.FieldByName('o_name').AsString);
  txt_je.Text := FloatToStr(qe_gs_add.FieldByName('o_je').Value);
  txt_name.SetFocus;
  //
  cmd_edit.Enabled := False;
  cmd_new.Enabled := False;
  cmd_save.Enabled := False;
  cmd_cancel.Enabled := True;
  cmd_del.Enabled := False;
  //
  qe_gs_add.Edit;
end;

procedure Tfrm_other_add.NewInit;
begin
  pe_bh.Enabled := False;
  pe_image.Visible := False;
  pe_info.Enabled := False;
  pe_edit.Visible := True;
  //
  cmd_new.Enabled := True;
  cmd_save.Enabled := False;
  cmd_cancel.Enabled := True;
  cmd_del.Enabled := False;
  cmd_edit.Enabled := False;
  //
  txt_name.Text := '';
  txt_je.Text := '';
  //
  txt_name.SetFocus;
  //
  qe_gs_add.Append;
end;

function Tfrm_other_add.RuleCheck: integer;
var
  strName: string;
  v: Double;
  code: integer;
begin
  Result := 0;
  //
  strName := Trim(txt_name.Text);
  if strName = '' then begin
    MessageBox(Handle, '修理项目名称不能为空', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_name.SetFocus;
    Result := 1;
    Exit;
  end;
  if Trim(txt_je.Text) = '' then begin
    MessageBox(Handle, '金额不能为空', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_je.SetFocus;
    Result := 1;
    Exit;
  end else begin
    Val(Trim(txt_je.Text), v, code);
    if (v < 0.01) or (code <> 0) then begin
      MessageBox(Handle, '金额无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
      txt_je.SetFocus;
      Result := 1;
      Exit;
    end else begin
      if qe_gs_add.State = dsInsert then
        qe_gs_add.FieldByName('dj_bh').AsString := cur_bh;
      qe_gs_add.FieldByName('o_name').AsString := strName;
      qe_gs_add.FieldByName('o_je').Value := v;
    end;
  end;
end;

procedure Tfrm_other_add.ControlKeyPress(Sender: TObject; var Key: Char);
begin
  if TWinControl(Sender).Tag = 2 then
    if not (((Key >= '0') and (Key <= '9')) or (Ord(Key) = 8) or (Ord(Key) = 46) or (Ord(Key) = 13)) then
      Key := Chr(0);
  //    
  if Ord(Key) = 13 then controlSetFocus(TWinControl(Sender).Tag);
end;

procedure Tfrm_other_add.ControlChanged(Sender: TObject);
begin
  if qe_gs_add.State = dsEdit then
    EnabledComponent(dsEdit)
  else if (qe_gs_add.State = dsInsert) then
    EnabledComponent(dsInsert);
end;

procedure Tfrm_other_add.controlSetFocus(intpos: integer);
begin
  case intpos of
    1: txt_je.SetFocus;
    2: begin
         if qe_gs_add.State = dsInsert then
           frm_other_add.cmd_newClick(nil);
       end;
  end;
end;

procedure Tfrm_other_add.InitBHList;
begin
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT DJ_BH FROM CL_DJ WHERE DJ_ZF_BS = 0 AND DJ_JS_BS = 0 ORDER BY DJ_BH');
  qe_jy.Open;
  qe_jy.First;
  //
  if (qe_jy.Bof) and (qe_jy.Eof) then begin
    //MessageBox(Handle, '未找到尚未结算的委托编号', '沈阳信德', MB_ICONQUESTION or MB_OK);
    Exit;
  end else begin
    combo_bh.Items.Clear;
    while not qe_jy.Eof do begin
      combo_bh.Items.Add(Trim(qe_jy.FieldByName('dj_bh').AsString));
      qe_jy.Next;
    end;
    combo_bh.ItemIndex := -1;
  end;
end;

procedure Tfrm_other_add.EnabledComponent(intState: TDataSetState);
begin
  case intState of
    dsBrowse: begin
                cmd_new.Enabled := True;
                cmd_save.Enabled := False;
                cmd_cancel.Enabled := False;
                cmd_del.Enabled := True;
                cmd_edit.Enabled := True;
                //
                if (qe_gs_add.Bof) and (qe_gs_add.Eof) then begin
                  cmd_del.Enabled := False;
                  cmd_edit.Enabled := False;
                end;
              end;
    dsEdit  : begin
                cmd_new.Enabled := False;
                cmd_save.Enabled := True;
                cmd_cancel.Enabled := True;
                cmd_del.Enabled := False;
                cmd_edit.Enabled := False;
              end;
    dsInsert: begin
                cmd_new.Enabled := True;
                cmd_save.Enabled := True;
                cmd_cancel.Enabled := True;
                cmd_del.Enabled := False;
                cmd_edit.Enabled := False;
              end;
  end;
end;

procedure Tfrm_other_add.QueryResult;
var
  intResult: integer;
begin
  intResult := 0;
  //
  qe_jy1.Close;
  qe_jy1.ParamByName('ibh').Value := Trim(combo_bh.Text);
  qe_jy1.Open;
  qe_jy1.First;
  //
  if (qe_jy1.Bof) and (qe_jy1.Eof) then begin
    MessageBox(Handle, '未找到此委托编号相关的登记信息', '沈阳信德', MB_ICONQUESTION or MB_OK);
    intResult := 1;
  end;
  //
  if intResult = 0 then begin
    qe_gs_add.Close;
    qe_gs_add.ParamByName('ibh').Value := Trim(combo_bh.Text);
    qe_gs_add.Open;
    qe_gs_add.First;
    //
    cur_bh := Trim(combo_bh.Text);
    //
    EnabledComponent(dsBrowse);
  end else if intResult = 1 then begin
    qe_gs_add.Close;
    qe_jy1.Close;
    //
    cmd_edit.Enabled := False;
    cmd_new.Enabled := False;
    cmd_save.Enabled := False;
    cmd_cancel.Enabled := False;
    cmd_del.Enabled := False;
  end;
end;

procedure Tfrm_other_add.combo_bhChange(Sender: TObject);
begin
  QueryResult;
end;

procedure Tfrm_other_add.FormShow(Sender: TObject);
begin
  qe_gs_add.Close;
  //
  frm_main.mu_yw_gl_o.Enabled := False;
  frm_main.cmd_o_add.Enabled := False;
  //
  frm_main.current_handle := Handle;
  //
  InitBHList;
  //
  cmd_new.Enabled := False;
  cmd_edit.Enabled := False;
  cmd_save.Enabled := False;
  cmd_cancel.Enabled := False;
  cmd_del.Enabled := False;
  //
  combo_bh.SetFocus;
end;

procedure Tfrm_other_add.cmd_newClick(Sender: TObject);
var
  intResult: integer;
begin
  if (qe_gs_add.State = dsInsert) and (cmd_save.Enabled) then begin
    intResult := RuleCheck;
    if intResult = 1 then
      Exit
    else begin
      qe_gs_add.Post;
      qe_gs_add.Close;
      qe_gs_add.Open;
      qe_gs_add.Last;
    end;
  end;
  //
  NewInit;
end;

procedure Tfrm_other_add.cmd_editClick(Sender: TObject);
begin
  EditInit;
end;

procedure Tfrm_other_add.cmd_saveClick(Sender: TObject);
var
  intResult: integer;
begin
  intResult := RuleCheck;
  if intResult = 1 then
    Exit
  else if intResult = 0 then begin
    if qe_gs_add.State = dsInsert then begin
      qe_gs_add.Post;
      qe_gs_add.Close;
      qe_gs_add.Open;
      qe_gs_add.Last;
    end else if qe_gs_add.State = dsEdit then begin
      qe_gs_add.Post;
    end;
  end;
  //
  SaveInit;
end;

procedure Tfrm_other_add.cmd_cancelClick(Sender: TObject);
begin
  CancelInit;
end;

procedure Tfrm_other_add.cmd_delClick(Sender: TObject);
begin
  ExeDelandInit;
end;

procedure Tfrm_other_add.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure Tfrm_other_add.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
var
  intResult: integer;
begin
  CanClose := True;
  //
  if (qe_gs_add.State = dsInsert) or (qe_gs_add.State = dsEdit) then begin
    if cmd_save.Enabled then begin
      intResult := MessageBox(Handle, '记录正被编辑, 是否在关闭窗体前保存所作修改?', '沈阳信德', MB_YESNOCANCEL or MB_ICONQUESTION);
      if intResult = ID_YES then begin
        intResult := RuleCheck;
        if intResult = 1 then begin
          CanClose := False;
          Exit;
        end;
        qe_gs_add.Post;
        CanClose := True;
      end else if intResult = ID_NO then begin
        qe_gs_add.Cancel;
        CanClose := True;
      end else if intResult = ID_CANCEL then
        CanClose := False;
    end;
  end;
  //
  if CanClose then begin
    qe_gs_add.Close;
    qe_jy.Close;
    qe_jy1.Close;
    //
    frm_main.mu_yw_gl_o.Enabled := True;
    frm_main.cmd_o_add.Enabled := True;
    frm_main.current_handle := 0;
    //
    frm_main.Tag := 1; //标识窗体能否关闭; 1-能关闭;2-不能关闭;
  end;
end;

procedure Tfrm_other_add.FormDestroy(Sender: TObject);
begin
  qe_jy := nil;
  qe_jy1 := nil;
  qe_gs_add := nil;
  //
  frm_other_add := nil;
end;

end.

⌨️ 快捷键说明

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