selectempfrm.pas
来自「医药连锁经营管理系统源码」· PAS 代码 · 共 181 行
PAS
181 行
unit SelectEmpFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, TFlatSpeedButtonUnit, ExtCtrls, RzStatus, TFlatPanelUnit,
ActnList, ModuleAction, DB, DBClient, ckDBClient, MConnect, Grids,
DBGridEh, DbUtilsEh, EhLibCDS, xEhLibCtl, StdCtrls, RzCmboBx, Mask, RzEdit, RzButton, ImgList,
iMainFrm, DBCtrls, RzDBNav, RzPanel;
type
TFrmSelectEmp = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
TopPopMenu: TPopupMenu;
SetFields1: TMenuItem;
refresh1: TMenuItem;
DComm: TDCOMConnection;
DsSelectEmp: TDataSource;
CdsSelectEmp: TckClientDataSet;
Label1: TLabel;
edValue: TRzEdit;
dbgSelectEmpNo: TxDBGridEh;
RzPanel3: TRzPanel;
RzDBNavigator1: TRzDBNavigator;
RzBitBtn2: TRzBitBtn;
ImageList1: TImageList;
RzBitBtn1: TRzBitBtn;
CdsSelectEmpEmpNo: TStringField;
CdsSelectEmpName: TStringField;
CdsSelectEmpSex: TStringField;
CdsSelectEmpDepartName: TStringField;
CdsSelectEmpDuty: TStringField;
CdsSelectEmpState: TStringField;
CdsSelectEmpBirthDay: TDateTimeField;
CdsSelectEmpTel: TStringField;
CdsSelectEmpMobile: TStringField;
CdsSelectEmpRemark: TStringField;
procedure FormCreate(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure dbgSelectEmpNoDblClick(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure edValueChange(Sender: TObject);
procedure edValueKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dbgSelectEmpNoKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
IFmMain:iMainForm;
SvrEmployees:TDispatchConnection;
CdsFieldProperty :TckClientDataSet;
{ Private declarations }
public
{ Public declarations }
end;
var
FrmSelectEmp: TFrmSelectEmp;
Function SelectEmp(Var sEmpNo:String) : Boolean; overLoad;
Function SelectEmp(Var sEmpNo,sEmpName:String) : Boolean; overLoad;
implementation
uses DBFuncs;
Const
sFieldProPerty='Select * From SysFieldProperty Where TableName=''Employees''';
{$R *.dfm}
Function SelectEmp(Var sEmpNo:String) : Boolean;
Var Str1:String;
Begin
Result := SelectEmp(sEmpNo,Str1);
End;
Function SelectEmp(Var sEmpNo,sEmpName:String) : Boolean; overLoad;
Begin
Result := false;
with TFrmSelectEmp.Create(NIl) do begin
If Not(CdsSelectEmp.Active) Then CdsSelectEmp.Open;
edValue.Text := sEmpNo;
if ShowModal=mrOk then begin
sEmpNo := CdsSelectEmp.FieldByName('EmpNo').AsString;
sEmpName := CdsSelectEmp.FieldByName('Name').AsString;
Result := true;
End;
End;
End;
procedure TFrmSelectEmp.FormCreate(Sender: TObject);
begin
IFmMain := (Application.MainForm as IMainForm);
SvrEmployees := IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
CdsSelectEmp.RemoteServer := SvrEmployees;
CdsFieldProperty := TckClientDataSet.Create(Self);
CdsFieldProPerty.ProviderName:='DspTemp';
CdsFieldProPerty.RemoteServer:=SvrEmployees;
end;
procedure TFrmSelectEmp.FormShow(Sender: TObject);
var
sTableNames: string;
begin
SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFrmSelectEmp.Xml');
sTableNames := 'Employees';
if cdsFieldProperty.Active then
SetFieldProperty(CdsFieldProPerty,cdsSelectEmp,sTableNames);
end;
procedure TFrmSelectEmp.RzBitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TFrmSelectEmp.dbgSelectEmpNoDblClick(Sender: TObject);
begin
if not cdsSelectEmp.IsEmpty then
RzBitBtn2Click(Nil);
end;
procedure TFrmSelectEmp.RzBitBtn2Click(Sender: TObject);
begin
If dbgSelectEmpNo.SelectedRows.Count<0 Then Begin
Application.MessageBox('请先选择员工编号!', '警告', MB_ICONINFORMATION);
Exit;
end;
ModalResult := mrOK;
end;
procedure TFrmSelectEmp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TFrmSelectEmp.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=27 then close;
end;
procedure TFrmSelectEmp.edValueChange(Sender: TObject);
const
MatchFields: array[0..5] of string=('EmpNo','Name','Sex','DepartName','Duty','State');
var
i: integer;
begin
i := 0;
try
if edValue.Text = '' then exit;
while (i<6)and(not CdsSelectEmp.Locate(MatchFields[i],edValue.Text,[loPartialKey,loCaseInsensitive])) do
inc(i);
except
end;
end;
procedure TFrmSelectEmp.edValueKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_UP)or(Key=VK_DOWN) then
PostMessage(dbgSelectEmpNo.Handle,WM_KEYDOWN,Key,0);
end;
procedure TFrmSelectEmp.dbgSelectEmpNoKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=13 then begin
edValue.SetFocus ;
key :=0;
end;
end;
End.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?