📄 gsgzxm.pas
字号:
unit GsGzxm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, StdCtrls, DBCtrls, Buttons, ExtCtrls,Variants;
type
TFrmGsGzxm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
BtnAppend: TBitBtn;
BtnDelete: TBitBtn;
BtnEdit: TBitBtn;
BtnSure: TBitBtn;
BtnCancel: TBitBtn;
BtnExit: TBitBtn;
DBNavigator1: TDBNavigator;
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
Panel3: TPanel;
EditXmmc: TEdit;
CbZx: TCheckBox;
Label1: TLabel;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BtnAppendClick(Sender: TObject);
procedure BtnEditClick(Sender: TObject);
procedure BtnDeleteClick(Sender: TObject);
procedure BtnSureClick(Sender: TObject);
procedure BtnCancelClick(Sender: TObject);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
procedure EditToTable();
public
InputStatus : string;
procedure TableToEdit();
procedure ShowMyButton();
end;
var
FrmGsGzxm: TFrmGsGzxm;
implementation
uses DGSDM;
{$R *.DFM}
procedure TFrmGsGzxm.FormShow(Sender: TObject);
begin
InputStatus := '浏览';
if (DM_GSGL.TableGsGzxm.Active = True) Then
DM_GSGL.TableGsGzxm.Close;
DM_GSGL.TableGsGzxm.Open;
TableToEdit;
end;
procedure TFrmGsGzxm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (DM_GSGL.TableGsGzxm.Active = True) Then
DM_GSGL.TableGsGzxm.Close;
end;
procedure TFrmGsGzxm.BtnAppendClick(Sender: TObject);
begin
InputStatus := '增加';
ShowMyButton;
//初始化编辑框
DM_GSGL.TableGsGzxm.last;
EditXmmc.Text := '';
// 输入焦点定位
EditXmmc.SetFocus;
end;
procedure TFrmGsGzxm.BtnEditClick(Sender: TObject);
begin
InputStatus := '修改';
ShowMyButton;
// 输入焦点定位
EditXmmc.SetFocus;
end;
procedure TFrmGsGzxm.BtnDeleteClick(Sender: TObject);
begin
with DM_GSGL do
begin
if QryTemp.Active=true then
QryTemp.Close;
QryTemp.SQL.Clear;
QryTemp.SQL.Add('select 公司工作项目编号 from 部门工作项目');
QryTemp.SQL.Add('where 公司工作项目编号=:pbh');
QryTEmp.ParamByName('pbh').asstring:=TableGsGzxm.FieldByName('公司工作项目编号').AsString;
QryTemp.Open;
if not QryTemp.Eof then
begin
MessageDlg('部门工作项目中有该公司工作项目,不能删除该工作项目。',mtError, [mbYes],0);
exit;
end;
end;
if MessageDlg('确认删除该工作项目吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
DM_GSGL.TableGsGzxm.Delete;
end;
procedure TFrmGsGzxm.BtnSureClick(Sender: TObject);
var
tmpstring:string;
begin
tmpstring:=trim(Editxmmc.Text);
if (Length(tmpstring)=0) then
begin
MessageDlg('项目名称不能为空!',mtError, [mbYes],0);
Editxmmc.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 公司工作项目名称=:pxmmc');
QryTemp.ParamByName('pxmmc').asstring:=tmpstring;
QryTemp.Open;
if (not QryTemp.Eof) then
begin
if (InputStatus = '增加') then
begin
MessageDlg('同名的工作项目已经存在,不能增加,请输入新的公司工作项目名称。.',mtInformation, [mbYes], 0);
Editxmmc.SetFocus;
Exit;
end
else
begin
if tmpstring<>trim(TableGsGzxm.FieldByName('公司工作项目名称').AsString) then
begin
MessageDlg('该项目名称已经使用!.',mtInformation, [mbYes], 0);
Editxmmc.SetFocus;
Exit;
end;
end;
end;
end;
with DM_GSGL do
begin
if (InputStatus = '增加') then
begin
TableGsGzxm.Append;
EditToTable;
TableGsGzxm.Post;
TableGsGzxm.DisableControls;
TableGsGzxm.Close;
TableGsGzxm.Open;
TableGsGzxm.Locate('公司工作项目名称', VarArrayOf([EditXmmc.Text]), []);
TableGsGzxm.EnableControls;
end;
if (InputStatus = '修改') then
begin
TableGsGzxm.Edit;
EditToTable;
TableGsGzxm.Post;
end;
end;
InputStatus := '浏览';
ShowMyButton;
end;
procedure TFrmGsGzxm.BtnCancelClick(Sender: TObject);
begin
TableToEdit;
InputStatus := '浏览';
ShowMyButton;
end;
procedure TFrmGsGzxm.DBNavigator1Click(Sender: TObject;
Button: TNavigateBtn);
begin
ShowMyButton;
end;
procedure TFrmGsGzxm.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 TFrmGsGzxm.ShowMyButton();
begin
if (InputStatus = '浏览') then
begin
//enable or disable Edits
CbZx.Enabled := False;
EditXmmc.ReadOnly := True;
//Enable or disable Buttons
BtnAppend.Enabled := True;
BtnEdit.Enabled := True;
BtnDelete.Enabled := True;
BtnExit.Enabled := True;
if (DM_GSGL.TableGsGzxm.Eof) and (DM_GSGL.TableGsGzxm.Bof=True) then
begin
BtnEdit.Enabled := False;
BtnDelete.Enabled := False;
end;
BtnSure.Enabled := False; //Sure Button
BtnCancel.Enabled := False; //Cancel Button
end
else
begin
//enable or disable Edits
CbZx.Enabled := True;
EditXmmc.ReadOnly := False;
//enable or disable Buttons
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 TFrmGsGzxm.TableToEdit();
begin
with DM_GSGL do
begin
EditXmmc.Text := TableGsGzxm.FieldByName('公司工作项目名称').AsString;
CbZx.Checked := TableGsGzxm.FieldByName('是否在线').AsBoolean;
end;
end;
procedure TFrmGsGzxm.EditToTable();
begin
with DM_GSGL do
begin
TableGsGzxm.FieldByName('公司工作项目名称').AsString := EditXmmc.Text;
TableGsGzxm.FieldByName('是否在线').AsBoolean := CbZx.Checked;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -