📄 other_add.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 + -