📄 getfundunit.pas
字号:
unit getfundunit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ExtCtrls, Buttons,
ToolWin, ComCtrls, ADODB;
type
Tgetfundform = class(TForm)
ToolBar1: TToolBar;
sb_add: TSpeedButton;
sb_edit: TSpeedButton;
sb_del: TSpeedButton;
sb_save: TSpeedButton;
sb_cancel: TSpeedButton;
sb_close: TSpeedButton;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
MaskEdit1: TMaskEdit;
MaskEdit2: TMaskEdit;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
procedure sb_closeClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure sb_addClick(Sender: TObject);
procedure sb_editClick(Sender: TObject);
procedure sb_delClick(Sender: TObject);
procedure sb_saveClick(Sender: TObject);
procedure sb_cancelClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure PageControl1Change(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit1Enter(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure MaskEdit1Enter(Sender: TObject);
procedure MaskEdit1Exit(Sender: TObject);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit2DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
getfundform: Tgetfundform;
implementation
uses dmunit,code_seleunit;
{$R *.dfm}
procedure Tgetfundform.sb_closeClick(Sender: TObject);
begin
if sb_save.Enabled=true then
begin
messagebox(self.Handle,'请确定是保存还是取消数据!','提示信息',mb_iconinformation);
exit;
end;
dm.detail.Active:=false;
dm.person.Active:=false;
close;
end;
procedure Tgetfundform.FormCreate(Sender: TObject);
begin
keypreview:=true;
pagecontrol1.ActivePageIndex:=1;
sb_add.Enabled :=false;
sb_edit.Enabled :=true;
sb_del.Enabled :=true;
sb_save.Enabled :=false;
sb_cancel.Enabled :=false;
dm.detail.Close;
dm.detail.CommandText:='select * from 明细表 where 类别=''2''';
dm.detail.Open ;
end;
procedure Tgetfundform.sb_addClick(Sender: TObject);
begin
try
dm.detail.Append ;
edit1.Text:='提取住房公积金';
edit1.ReadOnly:=true;
maskedit1.SetFocus;
maskedit1.ReadOnly :=false; maskedit2.ReadOnly:=false;
edit5.ReadOnly:=false;
maskedit1.Text:='';maskedit2.Text:='';
edit2.Text:='';edit3.Text:='';edit4.Text:='';
edit5.Text:='';
sb_add.Enabled :=false;
sb_save.Enabled :=true;
sb_cancel.Enabled :=true;
except
messagebox(self.Handle,'增加数据失败','提示信息',mb_iconinformation);
end;
end;
procedure Tgetfundform.sb_editClick(Sender: TObject);
var i:integer;
begin
if dm.detail.RecordCount =0 then
exit;
try
dm.detail.Edit;
dbgrid1.ReadOnly:=false;
for i:=0 to 5 do
dbgrid1.Columns[i].ReadOnly:=true;
sb_edit.Enabled :=false;
sb_del.Enabled :=false; sb_save.Enabled :=true;
sb_cancel.Enabled :=true;
except
messagebox(self.Handle,'编辑数据失败','提示信息',mb_iconinformation);
end;
end;
procedure Tgetfundform.sb_delClick(Sender: TObject);
begin
if dm.detail.RecordCount=0 then
exit;
try
if messagebox(self.Handle,'确定要删除当前数据吗?','提示信息',mb_yesno+mb_iconquestion)=idyes then
dm.detail.Delete ;
except
messagebox(self.Handle,'删除当前数据失败','提示信息',mb_iconinformation);
end;
end;
procedure Tgetfundform.sb_saveClick(Sender: TObject);
begin
if pagecontrol1.ActivePageIndex=0 then
begin
if (edit1.Text='')or(edit2.Text='')or(edit3.Text='')or(edit4.Text='')or(edit5.Text='')then
begin
messagebox(self.Handle,'信息填写不完全,请检查','提示信息',mb_iconinformation);
exit;
end;
if length(trim(maskedit2.Text))<2 then
begin
messagebox(self.Handle,'月份信息填写不正确,请检查','提示信息',mb_iconinformation);
exit;
end;
if (strtoint(maskedit1.Text)>3000)or (strtoint(maskedit1.Text)<1900) or(strtoint(maskedit2.Text)<1)or (strtoint(maskedit2.Text)>12) then
begin
messagebox(self.Handle,'日期信息填写不正确,请检查','提示信息',mb_iconinformation);
exit;
end;
try
dm.detail.FieldValues['类别']:='2';
dm.detail.FieldValues['摘要']:=edit1.Text ;
dm.detail.FieldValues['年']:=maskedit1.Text ;
dm.detail.FieldValues['月']:=maskedit2.Text ;
dm.detail.FieldValues['职工编号']:=edit2.Text ;
dm.detail.FieldValues['账号']:=edit3.Text ;
dm.detail.FieldValues['职工姓名']:=edit4.Text ;
dm.detail.FieldValues['减少总系数']:=edit5.Text ;
dm.detail.Post ;
edit1.ReadOnly:=true;
maskedit1.ReadOnly :=true; maskedit2.ReadOnly:=true;
edit5.ReadOnly:=true;
sb_add.Enabled :=true;
sb_save.Enabled :=false;
sb_cancel.Enabled :=false;
except
messagebox(self.Handle,'保存数据失败','提示信息',mb_iconinformation);
end;
end;
if pagecontrol1.ActivePageIndex=1 then
begin
try
dm.detail.Post ;
dbgrid1.ReadOnly:=true;
sb_edit.Enabled :=true;sb_del.Enabled :=true;
sb_save.Enabled :=false; sb_cancel.Enabled :=false;
except
messagebox(self.Handle,'保存数据失败','提示信息',mb_iconinformation);
end;
end;
end;
procedure Tgetfundform.sb_cancelClick(Sender: TObject);
begin
if pagecontrol1.ActivePageIndex =1 then //当为编辑界面时
begin
try
dm.detail.Cancel;
dbgrid1.Enabled:=true;
sb_edit.Enabled :=true;
sb_del.Enabled :=true; sb_save.Enabled :=false;
sb_cancel.Enabled :=false;
except
messagebox(self.Handle,'取消数据失败','提示信息',mb_iconinformation);
end;
end;
if pagecontrol1.ActivePageIndex=0 then
begin
try
dm.detail.Cancel ;
edit1.ReadOnly:=true;
maskedit1.ReadOnly :=true; maskedit2.ReadOnly:=true;
edit5.ReadOnly:=true;
edit1.Text:='';
maskedit1.Text:='';maskedit2.Text:='';
edit2.Text:='';edit3.Text:='';edit4.Text:='';
edit5.Text:='';
sb_add.Enabled :=true;
sb_save.Enabled :=false;
sb_cancel.Enabled :=false;
except
messagebox(self.Handle,'取消数据失败','提示信息',mb_iconinformation);
end;
end;
end;
procedure Tgetfundform.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=113 then
if sb_add.Enabled =true then
sb_add.Click ;
if key=114 then
if sb_edit.Enabled =true then
sb_edit.Click ;
if key=115 then
if sb_del.Enabled =true then
sb_del.Click ;
if key=116 then
if sb_save.Enabled =true then
sb_save.Click ;
if key=117 then
if sb_cancel.Enabled =true then
sb_cancel.Click ;
if key=119 then
sb_close.Click ;
end;
procedure Tgetfundform.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
if sb_save.Enabled =true then
begin
messagebox(self.Handle,'请确定是否保存数据','提示信息',mb_iconinformation);
allowchange:=false;
end;
end;
procedure Tgetfundform.PageControl1Change(Sender: TObject);
begin
case pagecontrol1.ActivePageIndex of
0:
begin
sb_add.Enabled :=true;
sb_edit.Enabled :=false;
sb_del.Enabled :=false;
sb_save.Enabled :=false;
sb_cancel.Enabled :=false;
end;
1:
begin
dm.detail.Close;
dm.detail.CommandText:='select * from 明细表 where 类别=''2''';
dm.detail.Open ;
sb_add.Enabled :=false;
sb_edit.Enabled :=true;
sb_del.Enabled :=true;
sb_save.Enabled :=false;
sb_cancel.Enabled :=false;
end;
end;
end;
procedure Tgetfundform.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
selectnext(sender as twincontrol,true,true);
end;
procedure Tgetfundform.Edit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
edit2.OnDblClick(sender);
edit5.SetFocus;
end;
procedure Tgetfundform.Edit1Enter(Sender: TObject);
begin
(sender as tedit).Color:=clwhite;
end;
procedure Tgetfundform.Edit1Exit(Sender: TObject);
begin
(sender as tedit).Color:=$00FFB824;
end;
procedure Tgetfundform.MaskEdit1Enter(Sender: TObject);
begin
(sender as tmaskedit).Color:=clwhite;
end;
procedure Tgetfundform.MaskEdit1Exit(Sender: TObject);
begin
(sender as tmaskedit).Color:=$00FFB824;
end;
procedure Tgetfundform.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#8,#13,'.']) then
key:=#0;
end;
procedure Tgetfundform.Edit2DblClick(Sender: TObject);
begin
application.CreateForm(tcode_seleform,code_seleform);
dm.person.Close;
dm.person.CommandText:='select * from 职工';
dm.person.Open ;
if code_seleform.ShowModal =mrok then
begin
edit2.Text:=dm.person.FieldValues['职工编号'];
edit3.Text:=dm.person.FieldValues['账号'];
edit4.Text:=dm.person.FieldValues['职工姓名'];
end;
code_seleform.Free;
Edit5.SetFocus ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -