📄 ygxx.pas
字号:
unit YGXX;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids, Buttons, ComCtrls,
ActnList, Spin;
type
TFrmYgxx = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
Panel2: TPanel;
BtnAppend: TBitBtn;
BtnDelete: TBitBtn;
BtnEdit: TBitBtn;
BtnSure: TBitBtn;
BtnCancel: TBitBtn;
BtnExit: TBitBtn;
SbLbsz: TStatusBar;
DBNavigator1: TDBNavigator;
Label1: TLabel;
CbBm: TComboBox;
Label3: TLabel;
EditGh: TEdit;
Label4: TLabel;
EditXm: TEdit;
RGXb: TRadioGroup;
RGLB: TRadioGroup;
procedure BtnAppendClick(Sender: TObject);
procedure BtnSureClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure BtnEditClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnCancelClick(Sender: TObject);
procedure BtnDeleteClick(Sender: TObject);
private
MyBmbh : TStrings;
procedure EditToTable();
public
InputStatus : string;
procedure TableToEdit();
procedure ShowMyButton();
end;
var
FrmYgxx: TFrmYgxx;
implementation
uses DGSDM;
{$R *.DFM}
procedure TFrmYgxx.TableToEdit();
begin
with DM_GSGL do
begin
EditGh.Text:=QryYgxx.FieldByName('工号').AsString;
EditXm.Text:=QryYgxx.FieldByName('姓名').AsString;
if QryYgxx.FieldByName('性别').IsNull then
RGXb.ItemIndex:=-1
else if QryYgxx.FieldByName('性别').AsBoolean=true then
RGXb.ItemIndex:=0
else if QryYgxx.FieldByName('性别').AsBoolean=false then
RGXb.ItemIndex:=1;
if QryYgxx.FieldByName('人员类别').IsNull then
RGLb.ItemIndex:=-1
else if QryYgxx.FieldByName('人员类别').AsBoolean=true then
RGLb.ItemIndex:=0
else if QryYgxx.FieldByName('人员类别').AsBoolean=false then
RGLb.ItemIndex:=1;
CbBm.ItemIndex:=MyBmbh.IndexOf(QryYgxx.FieldByName('部门编号').AsString);
end;
end;
procedure TFrmYgxx.EditToTable();
begin
with DM_GSGL do
begin
QryYgxx.FieldByName('工号').AsString:=EditGh.Text;
QryYgxx.FieldByName('姓名').AsString:=EditXm.Text;
if RGXB.ItemIndex=0 then
QryYgxx.Fieldbyname('性别').AsBoolean:=True;
if RGXb.ItemIndex=1 then
QryYgxx.Fieldbyname('性别').AsBoolean:=False;
if RGLB.ItemIndex=0 then
QryYgxx.Fieldbyname('人员类别').AsBoolean:=True;
if RGLb.ItemIndex=1 then
QryYgxx.Fieldbyname('人员类别').AsBoolean:=False;
QryYgxx.FieldByName('部门编号').AsString := MyBmbh[Cbbm.ItemIndex];
QryYgxx.FieldByName('部门名称').AsString := Cbbm.Items[cbbm.ItemIndex];
end;
end;
procedure TFrmYgxx.BtnAppendClick(Sender: TObject);
begin
InputStatus := '增加';
ShowMyButton;
// 初始化编辑框
EditGh.Text:='';
EditGh.MaxLength:=4;
Editxm.Text := '';
Editxm.MaxLength:=10;
RGXb.ItemIndex := -1;
RGLb.ItemIndex := -1;
Cbbm.ItemIndex := 0;
// 输入焦点定位
EditGh.SetFocus;
end;
procedure TFrmYgxx.ShowMyButton();
begin
if (InputStatus = '浏览') then
begin
// SbLbsz.SimpleText := '当前状态:浏览轮班信息(共有' + IntToStr(DMBW_KQ.QryYgxx.RecordCount) + '个轮班)';
//enable or disable Edits
EditGh.ReadOnly := True;
Editxm.ReadOnly := True;
RgXb.Enabled := False;
RgLb.Enabled := False;
CbBm.Enabled := False;
dbgrid1.Enabled := true;
DBNavigator1.Enabled := true;
//Enable or disable Buttons
BtnAppend.Enabled := True;
BtnEdit.Enabled := True;
BtnDelete.Enabled := True;
BtnExit.Enabled := True;
BtnSure.Enabled := False; //Sure Button
BtnCancel.Enabled := False; //Cancel Button
end
else
begin
if (InputStatus = '增加') then
SbLbsz.SimpleText := '当前状态:增加一个轮班'
else
SbLbsz.SimpleText := '当前状态:修改当前轮班';
//enable or disable Edits
EditGh.ReadOnly := False;
Editxm.ReadOnly := False;
RgXb.Enabled := True;
RgLb.Enabled := True;
CbBm.Enabled := True;
dbgrid1.Enabled := False;
DBNavigator1.Enabled := False;
BtnAppend.Enabled := False;
BtnEdit.Enabled := False;
BtnDelete.Enabled := False;
BtnExit.Enabled := False;
BtnSure.Enabled := True; //Sure Button
BtnCancel.Enabled := True; //Cancel Button
end;
end;
procedure TFrmYgxx.BtnSureClick(Sender: TObject);
var
tmpstring:string;
begin
tmpstring:=trim(Editxm.Text);
if (Length(tmpstring)=0) then
begin
MessageDlg('姓名不能为空!',mtError, [mbYes],0);
Editxm.SetFocus;
exit;
end;
tmpstring:=trim(Editgh.Text);
if (Length(tmpstring)=0) then
begin
MessageDlg('工号不能为空!',mtError, [mbYes],0);
Editgh.SetFocus;
exit;
end;
with DM_GSGL do
begin
if QryTemp.Active=true then
QryTemp.Close;
QryTemp.SQL.Clear;
QryTemp.SQL.Add('select 工号');
QryTemp.SQL.Add('from 员工信息 where 工号=:pgh');
QryTemp.ParamByName('pgh').asstring:=tmpstring;
QryTemp.Open;
if (not QryTemp.Eof) then
begin
if (InputStatus = '增加') then
begin
MessageDlg('该工号已被使用!.',mtInformation, [mbYes], 0);
EditGh.SetFocus;
Exit;
end
else
begin
if tmpstring<>trim(QryYgxx.FieldByName('工号').AsString) then
begin
MessageDlg('该工号已被使用!.',mtInformation, [mbYes], 0);
EditGh.SetFocus;
Exit;
end;
end;
end;
end;
if (InputStatus = '增加') then
begin
DM_GSGL.QryYgxx.Append;
EditToTable;
DM_GSGL.QryYgxx.Post;
DM_GSGL.QryYgxx.CommitUpdates;
end;
if (InputStatus = '修改') then
begin
DM_GSGL.QryYgxx.Edit;
EditToTable;
DM_GSGL.QryYgxx.Post;
DM_GSGL.QryYgxx.CommitUpdates;
end;
InputStatus := '浏览';
ShowMyButton;
end;
procedure TFrmYgxx.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
UserSelect : Word;
begin
if (InputStatus <> '浏览') then
begin
UserSelect := MessageDlg('是否保存改动的员工信息?',mtConfirmation, [mbYes, mbNo, mbCancel],0);
case UserSelect of
mrYes: BtnSureClick(Sender);
mrNo: BtnCancelClick(Sender);
mrCancel: CanClose := False ;
end;
end;
end;
procedure TFrmYgxx.BtnEditClick(Sender: TObject);
begin
InputStatus := '修改';
ShowMyButton;
// 输入焦点定位
EditGh.SetFocus;
end;
procedure TFrmYgxx.FormShow(Sender: TObject);
begin
with DM_GSGL.QryYgxx do
begin
if (Active = true) Then
close;
open;
end;
Mybmbh := TStringList.Create;
Cbbm.Items.Clear;
with DM_GSGL do
begin
if (Qrytemp.Active = True) Then
Qrytemp.Close;
Qrytemp.sql.clear;
Qrytemp.SQL.add('select * from 部门信息');
Qrytemp.Open;
while (not QryTemp.Eof) do
begin
Cbbm.Items.Add(QryTemp.FieldByName('部门名称').AsString);
Mybmbh.Add(QryTemp.FieldByName('部门编号').AsString);
QryTemp.Next;
end;
end;
cbbm.itemindex:=0;
InputStatus := '浏览';
TableToEdit;
ShowMyButton;
end;
procedure TFrmYgxx.BtnCancelClick(Sender: TObject);
begin
InputStatus := '浏览';
TableToEdit;
ShowMyButton;
end;
procedure TFrmYgxx.BtnDeleteClick(Sender: TObject);
begin
if MessageDlg('确认删除该员工以及对应该员工的工时信息吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
with DM_Gsgl do
begin
if QryTemp.Active=true then
QryTemp.Close;
QryTemp.SQL.Clear;
QryTemp.SQL.Add('delete from 每日工时');
QryTemp.SQL.Add('where 工号='+''''+EditGh.Text+'''');
QryTemp.ExecSQL;
QryYgxx.Delete;
DM_GSGL.QryYgxx.CommitUpdates;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -