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

📄 opercode.pas

📁 一个典当行的业务管理系统程序
💻 PAS
字号:
unit OperCode;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Mask, DBCtrls, Grids, DBGrids;

type
  TfrmOperCode = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    lbPass: TLabel;
    cmdAdd: TBitBtn;
    cmdModify: TBitBtn;
    cmdSave: TBitBtn;
    txtWorkNo: TEdit;
    txtPass: TEdit;
    GroupBox2: TGroupBox;
    dgOper: TDBGrid;
    Label3: TLabel;
    cmbLimit: TComboBox;
    cmdExit: TButton;
    cmdDel: TButton;
    cmdQuery: TButton;
    Label4: TLabel;
    txtName: TEdit;
    procedure cmdQueryClick(Sender: TObject);
    procedure cmdExitClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cmdAddClick(Sender: TObject);
    procedure cmdSaveClick(Sender: TObject);
    procedure cmdModifyClick(Sender: TObject);
    procedure dgOperCellClick(Column: TColumn);
    procedure cmdDelClick(Sender: TObject);
    procedure txtWorkNoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtNameKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cmbLimitKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPassKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    procedure OperLimit;
  public
    { Public declarations }
  end;

var
  frmOperCode: TfrmOperCode;

implementation

uses dmPawn, Msg;

{$R *.DFM}
var
   EnterTimes:integer;
   QueryOpenMark:Boolean;
   
procedure TfrmOperCode.OperLimit;
begin
     with cmbLimit.Items do
     begin
          Add('系统操作员');
          Add('系统管理员');
     end;
     cmbLimit.ItemIndex :=0;
end;
procedure TfrmOperCode.cmdQueryClick(Sender: TObject);
var
   Sql:string;
begin
     if cmdAdd.Enabled=False then
        cmdAdd.Enabled:=True;
     if cmdSave.Enabled=True then
        cmdSave.Enabled:=False;
     if cmdModify.Enabled=False then
        cmdModify.Enabled:=True;
     if lbPass.Visible=True then
        lbPass.Visible:=False;
     if txtPass.Visible=True then
        txtPass.Visible:=False;
     if txtWorkNo.ReadOnly=True then
        txtWorkNo.ReadOnly:=False;
        
     dgOper.DataSource:=dmPawnFrm.dsQOper;
     Sql:='select * from OperCode_Tbl where True ';
     if txtWorkNo.Text<>'' then
     begin
          Sql:=Sql+ 'and WorkNo=:WorkNo ';
     end;
     with dmPawnFrm do
     begin
          dqOper.Close;
          dqOper.SQL.Clear;
          dqOper.SQL.Add(Sql);
          if txtWorkNo.Text<>'' then
          begin
               dqOper.ParamByName('WorkNo').asstring:=trim(txtWorkNo.text);
          end;
          dqOper.Open;
          if QueryOpenMark=False then
          begin
               QueryOpenMark:=True;
          end;
     end;
end;

procedure TfrmOperCode.cmdExitClick(Sender: TObject);
begin
     close;
end;

procedure TfrmOperCode.FormShow(Sender: TObject);
begin
     cmdSave.Enabled:=False;
     OperLimit;
     dmPawnFrm.dqOper.Close;
     if QueryOpenMark=True then
     begin
          QueryOpenMark:=False;
     end;
end;

procedure TfrmOperCode.cmdAddClick(Sender: TObject);
begin
     txtWorkNo.Text:='';
     txtName.Text:='';
     txtPass.Text:='';
     if txtWorkNo.ReadOnly=True then
        txtWorkNo.ReadOnly:=False;
     if lbPass.Visible=False then
        lbPass.Visible:=True;
     if txtPass.Visible=False then
        txtPass.Visible:=True;
     if cmdModify.Enabled=True then
        self.cmdModify.Enabled:=False;
     if cmdSave.Enabled=False then
        cmdSave.Enabled:=True;
     txtWorkNo.SetFocus ;
end;

procedure TfrmOperCode.cmdSaveClick(Sender: TObject);
begin
     if lbPass.Visible=True then
        lbPass.Visible:=False;
     if txtPass.Visible=True then
        txtPass.Visible:=False;
     if txtWorkNo.Text='' then
     begin
          messagedlg(Msg.MsgOperCode,mtWarning,[mbYes],0);
          exit;
     end;
     if txtName.Text='' then
     begin
          messagedlg(Msg.MsgOperName,mtWarning,[mbYes],0);
          exit;
     end;
     if txtPass.Text='' then
     begin
          messagedlg(Msg.MsgOperPass,mtWarning,[mbYes],0);
          exit;
     end;
     if cmdAdd.Enabled=False then  //是修改
     begin
          with dmPawnFrm do
          begin
               tblOperCode.Open;
               tblOperCode.SetKey;
               tblOperCode.FieldByName('WorkNo').Asstring:=trim(txtWorkNo.Text);
               if tblOperCode.GotoKey then
               begin
                    tblOperCode.DisableControls ;
                    tblOperCode.Edit;
                    tblOperCodeName.Value:=trim(txtName.text);
                    tblOperCodePassword.Value:=trim(txtPass.text);
                    tblOperCodeLimit.Value:=trim(cmbLimit.text);
                    tblOperCode.Post;
                    tblOperCode.EnableControls ;
               end
               else
                   messagedlg(Msg.MsgNoOper,mtWarning,[mbYes],0);
               tblOperCode.Close;
          end;
          cmdAdd.Enabled:=True;
     end;
     if cmdModify.Enabled=False then  //是新增
     begin
           with dmPawnFrm do
           begin
               tblOperCode.Open;
               tblOperCode.Insert;
               tblOperCode.DisableControls ;
               tblOperCodeWorkNo.Value:=trim(txtWorkNo.Text);
               tblOperCodeName.Value:=trim(txtName.text);
               tblOperCodePassword.Value:=trim(txtPass.text);
               tblOperCodeLimit.Value:=trim(cmbLimit.text);
               tblOperCode.Post;
               tblOperCode.EnableControls ;
               tblOperCode.Close;
          end;
          cmdModify.Enabled:=True;
     end;
     dgOper.DataSource:=dmPawnFrm.dsOperCode;
     dmPawnFrm.tblOperCode.Open;
     cmdSave.Enabled:=False;
end;

procedure TfrmOperCode.cmdModifyClick(Sender: TObject);
begin
     if lbPass.Visible=False then
        lbPass.Visible:=True;
     if txtPass.Visible=False then
        txtPass.Visible:=True;     
     if txtWorkNo.ReadOnly=False then
        txtWorkNo.ReadOnly:=True;
     if cmdAdd.Enabled=True then
          cmdAdd.Enabled:=False;
     if cmdSave.Enabled=False then
        cmdSave.Enabled:=True;
     txtName.SetFocus ;
end;

procedure TfrmOperCode.dgOperCellClick(Column: TColumn);
begin
     if QueryOpenMark=True then
     begin
          if dgOper.Columns[0].Field.IsNull then
             txtName.Text:=''
          else
              txtName.Text:=dgOper.Columns[0].Field.Value;
          if dgOper.Columns[1].Field.IsNull then
             txtWorkNo.Text:=''
          else
              txtWorkNo.Text:=dgOper.Columns[1].Field.Value;
          if dgOper.Columns[2].Field.IsNull then
             txtPass.Text:=''
          else
              txtPass.Text:=dgOper.Columns[2].Field.Value;
          if dgOper.Columns[3].Field.IsNull then
             cmbLimit.Text:=''
          else
              cmbLimit.Text:=dgOper.Columns[3].Field.Value;
     end
     else
     begin
          txtName.Text:='';
          txtWorkNo.Text:='';
          txtPass.Text:='';
          cmbLimit.ItemIndex:=0;
          txtWorkNo.SetFocus;
     end;
end;

procedure TfrmOperCode.cmdDelClick(Sender: TObject);
begin
     if cmdAdd.Enabled=False then
        cmdAdd.Enabled:=True;
     if txtWorkNo.Text='' then
     begin
          messagedlg(Msg.MsgOperWorkNo,mtWarning,[mbYes],0);
          exit;
     end;
     with dmPawnFrm do
     begin
           tblOperCode.Open;
           tblOperCode.SetKey;
           tblOperCode.FieldByName('WorkNo').Asstring:=trim(txtWorkNo.Text);
           if tblOperCode.GotoKey then
           begin
                tblOperCode.Delete;
                txtWorkNo.Text:='';
                txtName.Text:='';
           end;
           tblOperCode.Close;
     end;
     dgOper.DataSource:=dmPawnFrm.dsOperCode;
     dmPawnFrm.tblOperCode.Open;
end;

procedure TfrmOperCode.txtWorkNoKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if key=VK_RETURN then
        txtName.SetFocus;
end;

procedure TfrmOperCode.txtNameKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if key=VK_RETURN then
        cmbLimit.SetFocus ;                   
end;

procedure TfrmOperCode.cmbLimitKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if EnterTimes=0 then
     begin
          EnterTimes:=EnterTimes+1;
          if key=VK_RETURN then
          begin
            if SendMessage((Sender as TComBoBox).handle,CB_GetDroppedState,0,0)
               =0 then
               PostMessage((Sender as TComBoBox).handle,CB_SHOWDROPDOWN,1,0);
          end;
     end
     else
     begin
          EnterTimes:=0;
          if txtPass.Visible=True then
             txtPass.SetFocus
          else
              cmdAdd.SetFocus ;
     end;
end;

procedure TfrmOperCode.txtPassKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if key=VK_RETURN then
        cmdSave.SetFocus;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -