pricemodelfm.~pas

来自「群星医药系统源码」· ~PAS 代码 · 共 234 行

~PAS
234
字号
unit PriceModelFm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton, StdCtrls, Mask, RzEdit, Grids, DBGridEh, DbUtilsEh, EhLibCDS, ExtCtrls, DB,
  DBClient, ComCtrls, MConnect,xBaseFrm, ActnList, ModuleAction,iMainFrm,
  xEhLibCtl, RzPanel, ckDBClient;

type
  TFmPriceModes = class(TxBaseForm)
    CdsPriceModes: TckClientDataSet;
    DsPriceodes: TDataSource;
    ActionList1: TActionList;
    ActNew: TModlAction;
    ActModify: TModlAction;
    ActSave: TModlAction;
    ActDel: TModlAction;
    ActClose: TModlAction;
    ActRefresh: TModlAction;
    Panel1: TRzPanel;
    Panel2: TPanel;
    BtnNew: TRzBitBtn;
    BtnDel: TRzBitBtn;
    BtnEdit: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn3: TRzBitBtn;
    RzPanel1: TRzPanel;
    Label1: TLabel;
    Label2: TLabel;
    RzBitBtn1: TRzBitBtn;
    edModeName: TRzEdit;
    edModeID: TRzNumericEdit;
    Label3: TLabel;
    DCOMConnection1: TDCOMConnection;
    CdsPriceModesModeNo: TIntegerField;
    CdsPriceModesModeName: TStringField;
    CdsPriceModesDataUsable: TBooleanField;
    CdsPriceModesCreater: TStringField;
    CdsPriceModesCreatTime: TDateTimeField;
    CdsPriceModesMender: TStringField;
    CdsPriceModesUpdateTime: TDateTimeField;
    CdsPriceModesGrup: TIntegerField;
    CdsPriceModesRemark: TStringField;
    dbgPriceModes: TxDBGridEh;
    procedure RzBitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ActNewExecute(Sender: TObject);
    procedure ActModifyExecute(Sender: TObject);
    procedure ActSaveExecute(Sender: TObject);
    procedure ActDelExecute(Sender: TObject);
    procedure ActCloseExecute(Sender: TObject);
    procedure ActRefreshExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure CdsPriceModesReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
  private
    IFmMain:IMainForm;
    SvrGoodses{, SvrCommon}: TDispatchConnection;
    CdsFieldProperty :TckClientDataSet;
  public
    { Public declarations }
  end;

var
  FmPriceModes: TFmPriceModes;

implementation

uses ShowProgress, ceGlobal, DBFuncs;

{$R *.dfm}

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

procedure TFmPriceModes.FormCreate(Sender: TObject);
begin
  inherited;
  Panel1.BorderColor := Color;
  IFmMain := Application.MainForm as IMainForm;
  SetGressHint('正在连接药品资料服务器...');
  CdsFieldProperty := TckClientDataSet.Create(Self);
  SvrGoodses:=IFmMain.GetConnection(Handle,'','CKGoodsBase.DmGoodses');
  cdsPriceModes.RemoteServer:=SvrGoodses;
  cdsPriceModes.Open;

  CdsFieldProPerty.RemoteServer:=SvrGoodses;
  CdsFieldProPerty.ProviderName:='dspPublic';
end;

procedure TFmPriceModes.FormShow(Sender: TObject);
var
  sTableNames: String;
begin
  Inherited;
  SetGressHint('初始化本地设置...');
  IFmMain.SetActionStatus(ActionList1, hInstance, ClassName);
  SetGridEhColor([dbgPriceModes]);
  FreeGressForm;

  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmPriceModes.Xml');
  sTableNames := 'PriceModes';
  SetFieldProperty(CdsFieldProPerty,cdsPriceModes,sTableNames);
end;

procedure TFmPriceModes.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Inherited;
  Action:=CaFree;
end;

procedure TFmPriceModes.RzBitBtn2Click(Sender: TObject);
begin
  Close;
end;

procedure TFmPriceModes.ActNewExecute(Sender: TObject);
var i: integer;
begin
  edModeId.ReadOnly:=False;
  edModeName.ReadOnly:=False;
  CdsPriceModes.Last;
  i := cdsPriceModesModeNo.Value;
  if i<100 then i:=100;
  CdsPriceModes.Append;
  edModeId.IntValue := i+1;
  edModeName.Text:='';
  edModeId.SetFocus;
end;

procedure TFmPriceModes.ActModifyExecute(Sender: TObject);
begin
  If cdsPriceModes.IsEmpty or (cdsPriceModesModeNo.Value<100) Then Exit;
  edModeId.ReadOnly:=False;
  edModeName.ReadOnly:=False;
  edModeId.IntValue:=cdsPriceModes.fieldbyname('ModeNo').AsInteger;
  edModeName.Text:=cdsPriceModes.fieldbyname('ModeName').AsString;
  cdsPriceModes.Edit;
  edModeId.SetFocus;
end;

procedure TFmPriceModes.ActSaveExecute(Sender: TObject);
begin
  Try
    If edModeId.ReadOnly Then exit;
    If (edModeId.Text='') Or (edModeName.Text='') Then
    Begin
      Messagebox(Handle,'价格体系代码和名称不能为空!','',64);
      edModeID.SetFocus;
      Exit;
    End;
    If CdsPriceModes.State in [DsInsert,DsEdit] then
    Begin
      CdsPriceModes.FieldByName('ModeNo').AsInteger:=edModeId.IntValue;
      CdsPriceModes.FieldByName('ModeName').AsString:=edModeName.Text;
      If CdsPriceModes.ApplyUpdates(0)>0 Then
      Begin
        Messagebox(Handle,'提交数据失败!','',16);
        CdsPriceModes.Edit;
        Exit;
      End Else Begin
        CdsPriceModes.RefreshRecord;
        edModeId.ReadOnly:=True;
        edModeName.ReadOnly:=True;
      End;
    End;
  Except
    On E:Exception Do
      Messagebox(handle,Pchar(E.Message),'',16);
  End;
end;

procedure TFmPriceModes.ActDelExecute(Sender: TObject);
Var
  iModeNo:Integer;
  LogText,Str:String;
begin
  If CdsPriceModes.IsEmpty Then Exit;
  If Application.MessageBox('确实要删除当前的价格体系吗?','提示',4+32)<>6 Then Exit;
  Try
    iModeNo:=CdsPriceModes.fieldbyname('ModeNo').Value;
    Str:='Delete From PriceModes Where ModeNo='''+InttoStr(iModeNo)+'''';
    CdsPriceModes.RemoteServer.AppServer.DelRecord(IFmMain.IFmMainEx.ClientID,Str,LogText);
  Except
    If LogText<>'' Then
      Messagebox(Handle,'提交数据失败!','',16)
    Else Begin
      CdsPriceModes.Refresh;
    End;
End;
end;


procedure TFmPriceModes.ActCloseExecute(Sender: TObject);
begin
  Close;
end;

procedure TFmPriceModes.ActRefreshExecute(Sender: TObject);
begin
  CdsPriceModes.Active:=False;
  CdsPriceModes.Open;
end;

procedure TFmPriceModes.FormResize(Sender: TObject);
begin
  {Panel1.Left := (Width-Constraints.MinWidth) div 2;
  Panel1.Top  := (Height-Constraints.MinHeight) div 2;}
  Panel1.Left := (ClientWidth - Panel1.Width) div 2;
  Panel1.Top := (ClientHeight - Panel1.Height) div 2;
end;

procedure TFmPriceModes.CdsPriceModesReconcileError(
  DataSet: TCustomClientDataSet; E: EReconcileError;
  UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  Messagebox(Handle,Pchar(E.Message),'',16);
  Action := RaAbort;
end;

initialization
  RegisterClass(TFmPriceModes);

finalization
  UnRegisterClass(TFmPriceModes);

end.

⌨️ 快捷键说明

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