.#goodsesfm.pas.1.36

来自「群星医药系统源码」· 36 代码 · 共 800 行 · 第 1/2 页

36
800
字号
unit GoodsesFm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, RzButton, RzBorder, ExtCtrls, DB, DBClient, MConnect,
  Grids, DBGridEh, DbUtilsEh, EhLibCDS, ActnList, ComCtrls, RzSplit, RzPanel,
  ModuleAction, ImgList,xEhLibCtl, TFlatSpeedButtonUnit, RzRadChk, RzStatus,
  TFlatTabControlUnit,ckDBClient, Buttons, Menus, TFlatPanelUnit, Mask, RzEdit,
  xBaseFrm, iMainFrm, uDataTypes;

type
  TFmGoodses = class(TxBaseForm)
//  TFmGoodses = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    BtnNew: TRzBitBtn;
    BitBtn2: TRzBitBtn;
    BtnPrint: TRzBitBtn;
    BtnEdit: TRzBitBtn;
    BtnCopy: TRzBitBtn;
    BtnDel: TRzBitBtn;
    BtnFind: TRzBitBtn;
    edQuickSearch: TRzEdit;
    dsGoodses: TDataSource;
    DCom1: TDCOMConnection;
    ActionList1: TActionList;
    ActNew: TModlAction;
    ActModify: TModlAction;
    ActCopy: TModlAction;
    ActDel: TModlAction;
    ActQuery: TModlAction;
    RzSplitter1: TRzSplitter;
    cdsGoodsPrices: TckClientDataSet;
    dsGoodsPrices: TDataSource;
    RzBitBtn1: TRzBitBtn;
    Actrefresh: TModlAction;
    RzBitBtn3: TRzBitBtn;
    CkAllRecords: TRzCheckBox;
    ImageList1: TImageList;
    ActMore: TModlAction;
    ActPrint: TModlAction;
    ActExit: TModlAction;
    cdsGoodses: TckClientDataSet;
    RzSizePanel1: TRzSizePanel;
    Tab1: TFlatTabControl;
    Notebook1: TNotebook;
    Panel6: TPanel;
    RzBitBtn2: TRzBitBtn;
    dbgBatchRebate: TxDBGridEh;
    DsGoodsBatchRebate: TDataSource;
    cdsGoodsBatchRebate: TckClientDataSet;
    cdsGoodsBatchRebateGoodsID: TStringField;
    cdsGoodsBatchRebateBatMinQty: TBCDField;
    cdsGoodsBatchRebateBatMaxQty: TBCDField;
    cdsGoodsBatchRebateUNIT: TStringField;
    cdsGoodsBatchRebateRebate: TBCDField;
    cdsGoodsBatchRebateprice: TFloatField;
    cdsGoodsPricesGoodsId: TStringField;
    cdsGoodsPricesModeNo: TIntegerField;
    cdsGoodsPricesModeName: TStringField;
    cdsGoodsPricesPrice1: TFloatField;
    cdsGoodsPricesPrice2: TFloatField;
    dbgGoodses: TxDBGridEh;
    Timer1: TTimer;
    ckAutoViewPrice: TRzCheckBox;
    ActViewPrice: TModlAction;
    ActModifyPrice: TModlAction;
    ActViewPriceModes: TModlAction;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn5: TRzBitBtn;
    ckViewPriceOnDbclick: TRzCheckBox;
    ptBkPanel: TFlatPanel;
    ptCaption: TRzMarqueeStatus;
    FlatPanel2: TPanel;
    BtnWhatIs: TFlatSpeedButton;
    BtnHelp: TFlatSpeedButton;
    FlatPanel3: TPanel;
    BtnPopMenu: TFlatSpeedButton;
    TopPopMenu: TPopupMenu;
    SetFields1: TMenuItem;
    refresh1: TMenuItem;
    ActFieldsLayout: TModlAction;
    ActDataExport: TModlAction;
    ActDesignReport: TModlAction;
    cdsTemp: TckClientDataSet;
    chkAutoMatch: TRzCheckBox;
    RzPanel1: TRzPanel;
    RzBitBtn6: TRzBitBtn;
    RzBitBtn7: TRzBitBtn;
    RzBitBtn8: TRzBitBtn;
    RzBitBtn9: TRzBitBtn;
    ActAddBatchRebate: TModlAction;
    ActEdtBatchRebate: TModlAction;
    ActDelBatchRebate: TModlAction;
    ActChkBatchRebate: TModlAction;
    cdsGoodsBatchRebateRetailAble: TBooleanField;
    chkAutoShowBatRebate: TRzCheckBox;
    ActViewBatchRebate: TModlAction;
    cdsGoodsesGoodsID: TStringField;
    cdsGoodsesEName: TStringField;
    cdsGoodsesAlias: TStringField;
    cdsGoodsesBarCode: TStringField;
    cdsGoodsesBarCode2: TStringField;
    cdsGoodsesPym: TStringField;
    cdsGoodsesSpecs: TStringField;
    cdsGoodsesDoseType: TStringField;
    cdsGoodsesMainKind: TIntegerField;
    cdsGoodsesKindNo: TStringField;
    cdsGoodsesKindName: TStringField;
    cdsGoodsesHypoKind: TStringField;
    cdsGoodsesABCKind: TStringField;
    cdsGoodsesUnit1: TStringField;
    cdsGoodsesUnit2: TStringField;
    cdsGoodsesConvRate1: TIntegerField;
    cdsGoodsesConvRate2: TIntegerField;
    cdsGoodsesCanSplit: TBooleanField;
    cdsGoodsesUsefullife: TBCDField;
    cdsGoodsesUsefulUnit: TStringField;
    cdsGoodsesWarnAhead: TIntegerField;
    cdsGoodsesTaxRate: TBCDField;
    cdsGoodsesPDCADDR: TStringField;
    cdsGoodsesMAKER: TStringField;
    cdsGoodsesMakerName: TStringField;
    cdsGoodsesBrand: TStringField;
    cdsGoodsesPassNo: TStringField;
    cdsGoodsesQuality: TStringField;
    cdsGoodsesStoreClaim: TStringField;
    cdsGoodsesGuise: TStringField;
    cdsGoodsesGMPProperty: TStringField;
    cdsGoodsesProvNo: TStringField;
    cdsGoodsesBaseBerthNo: TStringField;
    cdsGoodsesPurchMode: TSmallintField;
    cdsGoodsesMedicare: TBooleanField;
    cdsGoodsesSpecial: TBooleanField;
    cdsGoodsesGspCheckType: TSmallintField;
    cdsGoodsesGSPTypeName: TStringField;
    cdsGoodsesFlag: TStringField;
    cdsGoodsesRemark: TStringField;
    cdsGoodsesDataUsable: TBooleanField;
    cdsGoodsesGrade: TStringField;
    cdsGoodsesMidPackQty: TIntegerField;
    cdsGoodsesBigPackQty: TIntegerField;
    cdsGoodsesBidVariety: TBooleanField;
    cdsGoodsesClarityCheck: TBooleanField;
    cdsGoodsesNewGoods: TBooleanField;
    cdsGoodsesBuyerEmpNo: TStringField;
    cdsGoodsesBuyerName: TStringField;
    cdsGoodsesPchCycle: TIntegerField;
    cdsGoodsesPchMinQty: TBCDField;
    cdsGoodsesPchMultiple: TIntegerField;
    cdsGoodsesPausePurch: TBooleanField;
    cdsGoodsesSellerEmpNo: TStringField;
    cdsGoodsesSellerName: TStringField;
    cdsGoodsesSellBatchQty: TBCDField;
    cdsGoodsesPauseSell: TBooleanField;
    cdsGoodsesMinStock: TBCDField;
    cdsGoodsesMaxStock: TBCDField;
    cdsGoodsesCreater: TStringField;
    cdsGoodsesCreatTime: TDateTimeField;
    cdsGoodsesMarkUp: TBooleanField;
    cdsGoodsesMender: TStringField;
    cdsGoodsesUpdateTime: TDateTimeField;
    cdsGoodsesGrup: TIntegerField;
    RzBitBtn10: TRzBitBtn;
    cdsGoodsesConvRate: TStringField;
    cdsGoodsesName: TStringField;
    dbgGoodsPrices: TxDBGridEh;
    mnAutoPinYin: TMenuItem;
    procedure ActNewExecute(Sender: TObject);
    procedure ActModifyExecute(Sender: TObject);
    procedure ActDelExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ActrefreshExecute(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ActExitExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure ActQueryExecute(Sender: TObject);
    procedure cdsGoodsesBeforeGetRecords(Sender: TObject;
      var OwnerData: OleVariant);
    procedure cdsGoodsesAfterOpen(DataSet: TDataSet);
    procedure cdsGoodsesBeforeOpen(DataSet: TDataSet);
    procedure ActMoreExecute(Sender: TObject);
    procedure Tab1TabChanged(Sender: TObject);
    procedure cdsGoodsesReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
    procedure CdsGoodsesPurchModeGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure CdsGoodsesPurchModeSetText(Sender: TField;
      const Text: String);
    procedure cdsGoodsBatchRebateNewRecord(DataSet: TDataSet);
    procedure cdsGoodsesAfterGetRecords(Sender: TObject;
      var OwnerData: OleVariant);
    procedure cdsGoodsPricesNewRecord(DataSet: TDataSet);
    procedure FormShow(Sender: TObject);
    procedure cdsGoodsesAfterScroll(DataSet: TDataSet);
    procedure ActViewPriceModesExecute(Sender: TObject);
    procedure ActViewPriceExecute(Sender: TObject);
    procedure ActModifyPriceExecute(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure cdsGoodsesCalcFields(DataSet: TDataSet);
    procedure Button1Click(Sender: TObject);
    procedure dbgGoodsesDblClick(Sender: TObject);
    procedure BtnPopMenuClick(Sender: TObject);
    procedure ActFieldsLayoutExecute(Sender: TObject);
    procedure ActDataExportExecute(Sender: TObject);
    procedure cdsGoodsesNewRecord(DataSet: TDataSet);
    procedure ActCopyExecute(Sender: TObject);
    procedure cdsGoodsesUnit2Change(Sender: TField);
    procedure edQuickSearchChange(Sender: TObject);
    procedure edQuickSearchKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormActivate(Sender: TObject);
    procedure dbgGoodsesKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ActAddBatchRebateExecute(Sender: TObject);
    procedure ActViewBatchRebateExecute(Sender: TObject);
    procedure ActEdtBatchRebateExecute(Sender: TObject);
    procedure ActDelBatchRebateExecute(Sender: TObject);
    procedure ActChkBatchRebateExecute(Sender: TObject);
    procedure cdsGoodsBatchRebateBeforeRefresh(DataSet: TDataSet);
    procedure cdsGoodsBatchRebatePostError(DataSet: TDataSet;
      E: EDatabaseError; var Action: TDataAction);
    procedure mnAutoPinYinClick(Sender: TObject);
  private
    IFmMain: IMainForm;
    PacketRecs: Integer;
    vOwnerData:Variant;
    bTrueEof:Boolean;
    LocSetting: PLocSetting;
    sUnitList, sDosetypeList, sHypoKinds: TStrings;
    CdsFieldProperty :TckClientDataSet;
    SvrGoodses,SvrCommon:TDispatchConnection;
    PublicMark:TBookMark;
    iClientID: integer;
  public
    { Public declarations }
  end;
Const
  sFieldProPerty='Select * From SysFieldProperty '+
        ' Where TableName In(''Goodses'',''GoodsBatchRebate'',''GoodsGspProperty'',''GoodsPrices'')';

var
  FmGoodses: TFmGoodses;

implementation

uses GoodsEdFm, PriceModelFm, GoodsKindsFm,RepSelectFrm,EditBatchRebateFrm,
  DBPopupForm, DataExportFrm, FieldsLayoutFrm, ceGlobal, ShowProGress,DbFuncs;

{$R *.dfm}
procedure TFmGoodses.FormCreate(Sender: TObject);
//var i: Dword;
begin
//  i := GetTickCount;
  sUnitList := TStringList.Create;
  sDosetypeList := TStringList.Create;
  sHypoKinds := TStringList.Create;
  CdsFieldProperty:=TCkClientDataSet.Create(Self);
  IFmMain := Application.MainForm as IMainForm;
  iClientID:=IFmMain.IFmMainEx.ClientID;
  LocSetting := IFmMain.IFmMainEx.GetLocSetting;
  SetGressHint('正在连接药品资料服务器...');
  SvrGoodses:=IFmMain.GetConnection(Handle,'','CKGoodsBase.DmGoodses');
  CdsGoodses.RemoteServer:=SvrGoodses;
  cdsGoodsPrices.RemoteServer:=SvrGoodses;
  cdsTemp.RemoteServer := SvrGoodses;
  CdsGoodsBatchRebate.RemoteServer:=SvrGoodses;
  SetGressHint('正在连接公用信息服务器...');
  SvrCommon:=iFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
  CdsFieldProPerty.ProviderName:='DspTemp';
  CdsFieldProPerty.RemoteServer:=SvrCommon;
  SetGressHint('读取用户操作权限...');
  IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
  SetGressHint('读取药品资料...');
  PacketRecs := LocSetting^.PacketRecs;
  CdsGoodses.PacketRecords := PacketRecs;
  CdsGoodses.Open;
  Tab1.ActiveTab :=0;
//  i := GetTickCount-i;
//  Caption := Caption+'('+IntToStr(i)+')';
end;

procedure TFmGoodses.FormShow(Sender: TObject);
Var sTableNames:String;
begin
  SetGressHint('初始化本地环境...');
  ptBkPanel.Color := TitlePanelColor;
  ptCaption.FillColor := TitlePanelColor;
  SetGridEhColor([dbgGoodses,dbgGoodsPrices,dbgBatchRebate]);
  LoadFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name,
                   [dbgGoodses,dbgGoodsPrices]);
  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmGoodses.Xml');
  sTableNames:='Goodses';
  SetFieldProperty(CdsFieldProPerty,CdsGoodses,sTableNames);
  sTableNames:='GoodsPrices';
  SetFieldProperty(CdsFieldProPerty,cdsGoodsPrices,sTableNames);
  sTableNames:='GoodsBatchRebate';
  SetFieldProperty(CdsFieldProPerty,CdsGoodsBatchRebate,sTableNames);
  sTableNames:='GoodsGspProperty';
  SetFieldProperty(CdsFieldProPerty,CdsGoodsBatchRebate,sTableNames);
  GetInfoValues(cdsTemp, 'DoseType', sDoseTypeList);
  GetInfoValues(cdsTemp, 'Units', sUnitList);
  GetInfoValues(cdsTemp, 'HypoKind', sHypoKinds);
  FreeGressForm;
end;

procedure TFmGoodses.ActNewExecute(Sender: TObject);
begin
  Try
    cdsGoodses.Append;
    with TFmGoodsEd.Create(self) do begin
      SvrGoodsEd:=SvrGoodses;
      cmbUnit1.Items.Assign(sUnitList);
      cmbUnit2.Items.Assign(sUnitList);
      cmbDosetype.Items.Assign(sDosetypeList);
      cmbHypoKind.Items.Assign(sHypoKinds);
      ShowModal;
      Free;
    end;
  Except
    On E:Exception Do
      Messagebox(Handle,Pchar(E.Message),'',16);
  End;
end;

procedure TFmGoodses.ActCopyExecute(Sender: TObject);
begin
  Try
    CopyRecSelf(cdsGoodses, 'GoodsID', false);
    with TFmGoodsEd.Create(self) do begin
      SvrGoodsEd:=SvrGoodses;
      cmbUnit1.Items.Assign(sUnitList);
      cmbUnit2.Items.Assign(sUnitList);
      cmbDosetype.Items.Assign(sDosetypeList);
      cmbHypoKind.Items.Assign(sHypoKinds);
      ShowModal;
      Free;
    end;
  Except
    On E:Exception Do
      Messagebox(Handle,Pchar(E.Message),'',16);
  End;
end;

procedure TFmGoodses.ActModifyExecute(Sender: TObject);
begin
  Try
    if cdsGoodses.IsEmpty then Exit;
    cdsGoodses.Edit;
    with TFmGoodsEd.Create(self) do begin
      edGoodsID.ReadOnly := true;
      SvrGoodsEd:=SvrGoodses;
      iKindId:=CdsGoodses.FieldbyName('MainKind').asInteger;
      cmbUnit1.Items.Assign(sUnitList);
      cmbUnit2.Items.Assign(sUnitList);
      cmbDosetype.Items.Assign(sDosetypeList);
      cmbHypoKind.Items.Assign(sHypoKinds);
      ShowModal;
      Free;
    end;
  Except
    On E:Exception Do
      Messagebox(Handle,Pchar(E.Message),'',16);
  End;
end;

procedure TFmGoodses.ActDelExecute(Sender: TObject);
begin
  If CdsGoodses.IsEmpty Then Exit;
  If Application.MessageBox('确实要删除当前药品吗?','提示:',4+32)<>6 Then Exit;
  cdsGoodses.Delete;
  cdsGoodses.ApplyUpdates(0);
end;



procedure TFmGoodses.ActrefreshExecute(Sender: TObject);
Var iRecords,iTotal:Integer;
begin
  If CkAllRecords.Checked Then
  Begin
    vOwnerData:=Null;
    iRecords:=PacketRecs;
    iTotal:=CdsGoodses.RecordCount;
    CdsGoodses.PacketRecords:=iTotal;
    CdsGoodses.Active:=False;
    CdsGoodses.Active:=True;
    bTrueEof:=False;
    PacketRecs:=iRecords;
  End Else
    CdsGoodses.RefreshRecord;
end;

procedure TFmGoodses.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Inherited;

⌨️ 快捷键说明

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