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

📄 gsgzxm.pas

📁 有需要的同仁载回去慢慢研究
💻 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 + -