selectprovfrm.pas

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

PAS
185
字号
unit SelectProvFrm;

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
  TFrmSelectProv = class(TForm)
    dbgSelectProvNo: TxDBGridEh;
    Panel1: TPanel;
    Panel2: TPanel;
    DComm: TDCOMConnection;
    CdsSelectProv: TckClientDataSet;
    DsSelectProv: TDataSource;
    Label1: TLabel;
    edValue: TRzEdit;
    RzPanel3: TRzPanel;
    RzDBNavigator1: TRzDBNavigator;
    RzBitBtn2: TRzBitBtn;
    ImageList1: TImageList;
    RzBitBtn1: TRzBitBtn;
    CdsSelectProvProvNo: TStringField;
    CdsSelectProvProvName: TStringField;
    CdsSelectProvFullName: TStringField;
    CdsSelectProvTrade: TStringField;
    CdsSelectProvSubjectDept: TStringField;
    CdsSelectProvWorkingMode: TStringField;
    CdsSelectProvAddress: TStringField;
    CdsSelectProvLinkMan: TStringField;
    CdsSelectProvMobile: TStringField;
    CdsSelectProvRemark: TStringField;
    CdsSelectProvEmpNo: TStringField;
    CdsSelectProvPayModeNo: TStringField;
    CdsSelectProvProvPyCode: TStringField;
    procedure FormCreate(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure dbgSelectProvNoDblClick(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure edValueChange(Sender: TObject);
    procedure edValueKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure dbgSelectProvNoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    IFmMain:iMainForm;
    SvrProviders:TDispatchConnection;
    CdsFieldProperty :TckClientDataSet;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmSelectProv: TFrmSelectProv;

Function SelectProv(Var sProvNo:String) : Boolean;  overload;
Function SelectProv(Var sProvNo,sProvName:String) : Boolean;  overload;
function SelectProv(Var sProvNo,sProvName,sEmpNo,sPayModeNo:String): Boolean; overload;

implementation

uses DBFuncs;

Const
  sFieldProPerty='Select * From SysFieldProperty Where TableName=''Providers''';

{$R *.dfm}

Function SelectProv(Var sProvNo:String) : Boolean;
var s:String;
Begin
  Result := SelectProv(sProvNo, s);
End;

Function SelectProv(Var sProvNo,sProvName:String) : Boolean;  overload;
var s: String;
begin
  Result := SelectProv(sProvNo, sProvName, s, s);
end;

function SelectProv(Var sProvNo,sProvName,sEmpNo,sPayModeNo:String): Boolean; overload;
Begin
  Result := false;
  with TFrmSelectProv.Create(NIl) do begin
    If Not(CdsSelectProv.Active) Then CdsSelectProv.Open;
    edValue.Text := sProvNo;
    if ShowModal=mrOk then begin
      sProvNo := CdsSelectProv.FieldByName('ProvNo').AsString;
      sProvName := CdsSelectProv.FieldByName('ProvName').AsString;
      sEmpNo := cdsSelectProv.FieldByName('EmpNo').AsString;
      sPayModeNo := cdsSelectProv.FieldByName('PayModeNo').AsString;
      Result := true;
    End;
  End;
End;

procedure TFrmSelectProv.FormCreate(Sender: TObject);
begin
  IFmMain := (Application.MainForm as IMainForm);
  SvrProviders := IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
  CdsSelectProv.RemoteServer := SvrProviders;

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

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

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

procedure TFrmSelectProv.dbgSelectProvNoDblClick(Sender: TObject);
begin
  if not CdsSelectProv.IsEmpty then
    RzBitBtn2Click(Nil);
end;

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

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

procedure TFrmSelectProv.edValueChange(Sender: TObject);
const
  MatchFields: array[0..6] of string=('ProvNo','ProvName','FullName','ProvPyCode','LinkMan','Mobile','Address');
var
  i: integer;
begin
  i := 0;
  try
    if edValue.Text = '' then exit;
    while (i<7)and(not CdsSelectProv.Locate(MatchFields[i],edValue.Text,[loPartialKey,loCaseInsensitive])) do
      inc(i);
  except
  end;
end;

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

procedure TFrmSelectProv.dbgSelectProvNoKeyDown(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 + -
显示快捷键?