.#selectprovlinkmanfrm.pas.1.5

来自「群星医药系统源码」· 5 代码 · 共 171 行

5
171
字号
unit SelectProvLinkManFrm;

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
  TFrmSelectProvLinkMan = class(TForm)
    dbgSelectProvLinkMan: TxDBGridEh;
    Panel1: TPanel;
    Panel2: TPanel;
    DComm: TDCOMConnection;
    CdsSelectProvLinkMan: TckClientDataSet;
    DsSelectProvLinkMan: TDataSource;
    Label1: TLabel;
    edValue: TRzEdit;
    RzPanel3: TRzPanel;
    RzDBNavigator1: TRzDBNavigator;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn1: TRzBitBtn;
    CdsSelectProvLinkManProvNo: TStringField;
    CdsSelectProvLinkManLinkMan: TStringField;
    CdsSelectProvLinkManNickName: TStringField;
    CdsSelectProvLinkManSex: TStringField;
    CdsSelectProvLinkManBirthDay: TDateTimeField;
    CdsSelectProvLinkManDept: TStringField;
    CdsSelectProvLinkManDuty: TStringField;
    CdsSelectProvLinkManAddress: TStringField;
    CdsSelectProvLinkManTel1: TStringField;
    CdsSelectProvLinkManMobile: TStringField;
    ImageList1: TImageList;
    procedure FormCreate(Sender: TObject);
    procedure RzBitBtn1Click(Sender: TObject);
    procedure dbgSelectProvLinkManDblClick(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CdsSelectProvLinkManBeforeGetRecords(Sender: TObject;
      var OwnerData: OleVariant);
    procedure FormShow(Sender: TObject);
    procedure edValueChange(Sender: TObject);
    procedure edValueKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    IFmMain:iMainForm;
    SvrProvLinkMan:TDispatchConnection;
    CdsFieldProperty :TckClientDataSet;
    { Private declarations }
  public
    sSendProvNo : String;
    { Public declarations }
  end;

var
  FrmSelectProvLinkMan: TFrmSelectProvLinkMan;

Function SelectProvLinkMan(Var sProvNo:String;Var sLinkMan:String) : Boolean;

implementation

uses DBFuncs;

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

{$R *.dfm}

Function SelectProvLinkMan(Var sProvNo:String;Var sLinkMan:String) : Boolean;
Begin
  Result := false;
  with TFrmSelectProvLinkMan.Create(NIl) do begin
    sSendProvNo := sProvNo;
    If Not(CdsSelectProvLinkMan.Active) Then CdsSelectProvLinkMan.Open;
    CdsSelectProvLinkMan.Filtered := False;
    if sLinkMan<>'' Then Begin
      edValue.Text := sLinkMan;
      CdsSelectProvLinkMan.Filter := ' LinkMan ='''+sLinkMan+'''';
    End;
    CdsSelectProvLinkMan.Filtered := True;
    if ShowModal=mrOk then begin
      sLinkMan  := CdsSelectProvLinkMan.FieldByName('LinkMan').AsString;
      Result := true;
    End;
  End;
End;

procedure TFrmSelectProvLinkMan.FormCreate(Sender: TObject);
begin
  IFmMain := (Application.MainForm as IMainForm);
  SvrProvLinkMan := IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
  CdsSelectProvLinkMan.RemoteServer := SvrProvLinkMan;

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

procedure TFrmSelectProvLinkMan.FormShow(Sender: TObject);
var
  sTableNames: string;
begin
  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFrmSelectProvLinkman.Xml');
  sTableNames := 'ProvLinkmans';
  if cdsFieldProperty.Active then
    SetFieldProperty(CdsFieldProPerty,cdsSelectProvLinkMan,sTableNames);
end;

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

procedure TFrmSelectProvLinkMan.dbgSelectProvLinkManDblClick(Sender: TObject);
begin
  if not CdsSelectProvLinkMan.IsEmpty then
    RzBitBtn2Click(Nil);
end;

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

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

procedure TFrmSelectProvLinkMan.CdsSelectProvLinkManBeforeGetRecords(Sender: TObject;
  var OwnerData: OleVariant);
var val: Variant;
begin
  val := OwnerData;
  OwnerData := VarArrayCreate([0,1], varVariant);
  OwnerData[0] := val;
  OwnerData[1] := sSendProvNo;
end;

procedure TFrmSelectProvLinkMan.edValueChange(Sender: TObject);
const
  MatchFields: array[0..2] of string=('LinkMan','Sex','Duty');
var
  i: integer;
begin
  i := 0;
  try
    if edValue.Text = '' then exit;
    while (i<3)and(not CdsSelectProvLinkMan.Locate(MatchFields[i],edValue.Text,[loPartialKey,loCaseInsensitive])) do
      inc(i);
  except
  end;
end;

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

End.

⌨️ 快捷键说明

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