.#selectvipcustfrm.pas.1.2

来自「医药连锁经营管理系统源码」· 2 代码 · 共 154 行

2
154
字号
unit SelectVIPCustFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton, DBCtrls, RzDBNav, RzPanel, StdCtrls, Mask, RzEdit,
  ExtCtrls, Menus, DB, DBClient, MConnect, ckDBClient, ImgList, Grids,
  DBGridEh, xEhLibCtl, iMainFrm;

type
  TFrmSelectVIPCust = class(TForm)
    dbgSelectVIPCust: TxDBGridEh;
    ImageList1: TImageList;
    DsSelectEmp: TDataSource;
    CdsSelectVIPCust: TckClientDataSet;
    DComm: TDCOMConnection;
    TopPopMenu: TPopupMenu;
    SetFields1: TMenuItem;
    refresh1: TMenuItem;
    Panel1: TPanel;
    Label1: TLabel;
    edValue: TRzEdit;
    RzPanel3: TRzPanel;
    RzDBNavigator1: TRzDBNavigator;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn1: TRzBitBtn;
    CdsSelectVIPCustVipNo: TStringField;
    CdsSelectVIPCustName: TStringField;
    CdsSelectVIPCustRebate: TBCDField;
    CdsSelectVIPCustIDCard: TStringField;
    CdsSelectVIPCustRegDate: TDateTimeField;
    CdsSelectVIPCustRemark: TStringField;
    CdsSelectVIPCustGrup: TIntegerField;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edValueChange(Sender: TObject);
    procedure edValueKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    IFmMain:iMainForm;
    SvrVIPCust:TDispatchConnection;
    CdsFieldProperty :TckClientDataSet;
  public
    { Public declarations }
  end;

var
  FrmSelectVIPCust: TFrmSelectVIPCust;

Function SelectVIPCust(Var sVIPCustNo,sVIPCustName:String) : Boolean;

implementation

uses DBFuncs;

{$R *.dfm}

const
  sFieldProPerty='Select * From SysFieldProperty Where TableName=''VIPCustomers''';

Function SelectVIPCust(Var sVIPCustNo,sVIPCustName:String) : Boolean;
begin
  result := false;
  with TFrmSelectVIPCust.Create(Nil) do begin
    If Not(CdsSelectVIPCust.Active) Then CdsSelectVIPCust.Open;
    CdsSelectVIPCust.Filtered := False;
    If sVIPCustNo<>'' Then Begin
      edValue.Text := sVIPCustNo;
      CdsSelectVIPCust.Filter := ' VIPNo ='''+sVIPCustNo+'''';
    End;
    CdsSelectVIPCust.Filtered := True;
    if ShowModal=mrOk then begin
      sVIPCustNo := CdsSelectVIPCust.FieldByName('VIPNo').AsString;
      sVIPCustName := CdsSelectVIPCust.FieldByName('Name').AsString;
      Result := true;
    End;
  End;
end;

procedure TFrmSelectVIPCust.FormCreate(Sender: TObject);
begin
  IFmMain := (Application.MainForm as IMainForm);
  SvrVIPCust := IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
  CdsSelectVIPCust.RemoteServer := SvrVIPCust;

  CdsFieldProperty := TckClientDataSet.Create(Self);
  CdsFieldProPerty.ProviderName:='DspTemp';
  CdsFieldProPerty.RemoteServer:=SvrVIPCust;
end;

procedure TFrmSelectVIPCust.FormShow(Sender: TObject);
var
  sTableNames: string;
begin
  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFrmSelectVIPCust.Xml');
  sTableNames := 'VIPCustomers';
  if cdsFieldProperty.Active then
    SetFieldProperty(CdsFieldProPerty,cdsSelectVIPCust,sTableNames);
end;

procedure TFrmSelectVIPCust.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TFrmSelectVIPCust.RzBitBtn1Click(Sender: TObject);
begin
  Close;
end;

procedure TFrmSelectVIPCust.RzBitBtn2Click(Sender: TObject);
begin
  If dbgSelectVIPCust.SelectedRows.Count<0 Then
  Begin
    Application.MessageBox('请先选择VIP客户编号!', '警告', MB_ICONINFORMATION);
    Exit;
  end;
  ModalResult := mrOK;
end;

procedure TFrmSelectVIPCust.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=27 then close;
end;

procedure TFrmSelectVIPCust.edValueChange(Sender: TObject);
const
  MatchFields: array[0..6] of string=('VIPNo','Name','IDCard','Tel','Mobile','Address','PostCode');
var
  i: integer;
begin
  i := 0;
  while (i<7)and(not CdsSelectVIPCust.Locate(MatchFields[i],edValue.Text,[loPartialKey,loCaseInsensitive])) do
    inc(i);
end;

procedure TFrmSelectVIPCust.edValueKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key=VK_UP)or(Key=VK_DOWN) then
    PostMessage(dbgSelectVIPCust.Handle,WM_KEYDOWN,Key,0);
end;

end.

⌨️ 快捷键说明

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