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

📄 getfundunit.pas

📁 使用delphi语言
💻 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 + -