pchexclude.~pas

来自「医药连锁经营管理系统源码」· ~PAS 代码 · 共 516 行 · 第 1/2 页

~PAS
516
字号
unit PchExclude;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ceBaseBillFrm, ActnList, ModuleAction, ImgList, TB2Dock,
  ExtCtrls, RzPanel, TB2Item, TB2Toolbar, DB, DBClient, MConnect, RzDBBnEd,
  ComCtrls, RzDTP, RzDBDTP, StdCtrls, Mask, RzEdit, RzDBEdit, RzLabel,
  Grids, DBGridEh, DbUtilsEh, EhLibCDS, xEhLibCtl, RzCmboBx, RzDBCmbo,IMainFrm, Menus, Buttons,
  RzButton, ckDBClient,uGlobal,DbFuncs,ShowProGress,uDataTypes, ceGlobal,
  SelectProvFrm,SelectEmpFrm,SelectProvLinkManFrm,RzDBLbl;

type
  TFmPchExclude = class(TceBaseBillForm)
    DsPchExcludeDtl: TDataSource;
    CdsPchExcludeDtl: TckClientDataSet;
    DsPchExclude: TDataSource;
    CdsPchExclude: TckClientDataSet;
    RzLabel1: TRzLabel;
    RzDBEdit1: TRzDBEdit;
    RzLabel2: TRzLabel;
    RzDBDateTimePicker1: TRzDBDateTimePicker;
    RzLabel5: TRzLabel;
    RzLabel8: TRzLabel;
    Lab_State: TLabel;
    Comcnn: TDCOMConnection;
    Label7: TLabel;
    edProvName: TRzDBButtonEdit;
    RzDBEdit9: TRzDBEdit;
    RzDBEdit8: TRzDBEdit;
    dbgPchOrderDtl: TxDBGridEh;
    RzLabel21: TRzLabel;
    RzDBEdit6: TRzDBEdit;
    RzLabel7: TRzLabel;
    RzDBLabel1: TRzDBLabel;
    RzLabel16: TRzLabel;
    RzDBLabel2: TRzDBLabel;
    RzDBButtonEdit2: TRzDBButtonEdit;
    ActFinish: TModlAction;
    TBItem18: TTBItem;
    Label1: TLabel;
    RzDBEdit2: TRzDBEdit;
    RzDBButtonEdit1: TRzDBButtonEdit;
    RzLabel12: TRzLabel;
    RzLabel9: TRzLabel;
    RzDBEdit3: TRzDBEdit;
    RzDBEdit7: TRzDBEdit;
    CdsPchExcludeBillNo: TStringField;
    CdsPchExcludeFDate: TDateTimeField;
    CdsPchExcludeEmpNo: TStringField;
    CdsPchExcludeEmpName: TStringField;
    CdsPchExcludeProvNo: TStringField;
    CdsPchExcludeProvName: TStringField;
    CdsPchExcludeLinkMan: TStringField;
    CdsPchExcludeProvAddr: TStringField;
    CdsPchExcludeCarrKind: TStringField;
    CdsPchExcludeCarrAddr: TStringField;
    CdsPchExcludeRemark: TStringField;
    CdsPchExcludeInvoice: TStringField;
    CdsPchExcludeCreater: TStringField;
    CdsPchExcludeCreatTime: TDateTimeField;
    CdsPchExcludeMender: TStringField;
    CdsPchExcludeUpdateTime: TDateTimeField;
    CdsPchExcludeGrup: TIntegerField;
    CdsPchExcludeAdsPchExcludeDtl: TDataSetField;
    CdsPchExcludeDtlBillNo: TStringField;
    CdsPchExcludeDtlItemNo: TIntegerField;
    CdsPchExcludeDtlGoodsID: TStringField;
    CdsPchExcludeDtlName: TStringField;
    CdsPchExcludeDtlSpecs: TStringField;
    CdsPchExcludeDtlUnit: TStringField;
    CdsPchExcludeDtlCheckQty: TBCDField;
    CdsPchExcludeDtlExcludeQty: TBCDField;
    CdsPchExcludeDtlAmount: TBCDField;
    CdsPchExcludeDtlBatchNo: TStringField;
    CdsPchExcludeDtlValidDate: TDateTimeField;
    CdsPchExcludeDtlExcludeCause: TStringField;
    CdsPchExcludeDtlProvGoodsID: TStringField;
    CdsPchExcludeDtlRemark: TStringField;
    CdsPchExcludePBillNo: TStringField;
    CdsPchExcludeAudit: TStringField;
    CdsPchExcludeTransfer: TBooleanField;
    RzLabel3: TRzLabel;
    RzDBEdit10: TRzDBEdit;
    RzLabel10: TRzLabel;
    RzDBEdit4: TRzDBEdit;
    RzLabel11: TRzLabel;
    RzDBEdit5: TRzDBEdit;
    procedure ActAddSubItemExecute(Sender: TObject);
    procedure ActDelSubItemExecute(Sender: TObject);
    procedure CdsPchExcludeAfterScroll(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure CdsPchExcludeDtlNewRecord(DataSet: TDataSet);
    procedure CdsPchExcludeDtlBeforeInsert(DataSet: TDataSet);
    procedure RzDBButtonEdit1ButtonClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure CdsPchExcludeProvNOChange(Sender: TField);
    procedure ActSaveExecute(Sender: TObject);
    procedure CdsPchExcludeReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
    procedure CdsPchExcludeEmpNOChange(Sender: TField);
    procedure ActAuditExecute(Sender: TObject);
    procedure ActRevertExecute(Sender: TObject);
    procedure ActFieldLayoutExecute(Sender: TObject);
    procedure ActDataExportExecute(Sender: TObject);
    procedure edProvNameButtonClick(Sender: TObject);
    procedure RzDBButtonEdit2ButtonClick(Sender: TObject);
    procedure ActQueryExecute(Sender: TObject);
    procedure dbgPchOrderDtlEditButtonClick(Sender: TObject);
    procedure CdsPchExcludeDtlGoodsIDChange(Sender: TField);
    procedure CdsPchExcludeNewRecord(DataSet: TDataSet);
  private
    CdsFieldProperty :TckClientDataSet;
    iClientID :Integer;
    ItemId :Integer;
    bBrowGoods,CanAudit,CanRevert:Boolean;
    slPayModes:TStrings;
    LocSetting: PLocSetting;
    SvrPchExclude,SvrCommon:TDispatchConnection;
    BeforeEmpNo,BeforeGoodsID,FlagGoodsID,BeforeProvNo :String;
    procedure ParseGoodsInfo;
  protected
    Function DoSome(cType: PChar; Values: Variant): Variant; override;
  public

  end;

Const
  sFieldProPerty='Select * From SysFieldProperty '+
        ' Where TableName in (''PchExclude'', ''PchExcludeDtl'', ''Goodses'')';

var
  FmPchExclude :TFmPchExclude;

implementation

uses SelectGoodsFrm,FieldsLayoutFrm,DataExportFrm;
{$R *.dfm}

procedure TFmPchExclude.ActAddSubItemExecute(Sender: TObject);
begin
  If FEditMode=0 Then Exit;
  If Not(CdsPchExclude.State In dsEditModes) Then Exit;
  CdsPchExcludeDtl.Append;
End;

procedure TFmPchExclude.ActDelSubItemExecute(Sender: TObject);
begin
  If FEditMode=0 Then Exit;
  if CdsPchExcludeDtl.IsEmpty then Exit;
  CdsPchExcludeDtl.Delete;
end;

procedure TFmPchExclude.CdsPchExcludeAfterScroll(DataSet: TDataSet);
Var sModeNo:String;
    iIndex:Integer;
begin
  If CdsPchExcludeTransfer.Value Then Begin
    ActAudit.Enabled:=False And CanAudit;
    ActRevert.Enabled:=True And CanRevert;
    Lab_State.Caption:='单据状态:已审核';
    Lab_State.Font.Color:=clRed;
  End Else Begin
    ActAudit.Enabled:=True And CanAudit;
    ActRevert.Enabled:=False And CanRevert;
    Lab_State.Caption:='单据状态:未审核';
    Lab_State.Font.Color:=clHotLight;
  End;
end;

procedure TFmPchExclude.FormCreate(Sender: TObject);
begin
  inherited;
  slPayModes:=TStringList.Create;
  CdsFieldProperty:=TCkClientDataSet.Create(Self);
  LocSetting := IFmMain.IFmMainEx.GetLocSetting;
  SetGressHint('正在登录到来货拒收服务器...');
  SvrPchExclude:=iFmMain.GetConnection(Handle,'','CKPurchInBase.PurchInRDM');
  SetGressHint('正在连接到公用信息服务器...');
  SvrCommon:=iFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
  SetGressHint('读取用户操作权限...');
  CanAudit := ActAudit.Enabled;
  CanRevert:= ActCancel.Enabled;
  IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
  iClientID:=LogonInfo^.ClientID;
  sBillNoList.Text := SvrPchExclude.AppServer.GetCurrMonthBills(iClientID, 'PchExclude');
  CdsPchExclude.RemoteServer:=SvrPchExclude;
  CdsFieldProPerty.ProviderName:='DspTemp';
  CdsFieldProPerty.RemoteServer:=SvrCommon;
  MasterDataSet := CdsPchExclude;
  SetLength(FDetailDataSets, 1);
  FDetailDataSets[0] := CdsPchExcludeDtl;
  BillType := 'PchExclude';
  RepDataSetNames := '来货拒收;拒收明细';
end;

procedure TFmPchExclude.FormShow(Sender: TObject);
Var
  sTableNames:String;
begin
  SetGressHint('初始化本地环境...');
  SetGridEhColor([dbgPchOrderDtl]);
  LoadFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [dbgPchOrderDtl]);
  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmPchExclude.Xml');
  SetFieldProperty(CdsFieldProPerty,CdsPchExclude, 'PchExclude');
  SetFieldProperty(CdsFieldProPerty,CdsPchExcludeDtl, 'PchExcludeDtl,Goodses');
  SetGressHint('读取历史单据...');
  SetCurrBillIdx(0);
  inherited;
  FreeGressForm;
end;

procedure TFmPchExclude.CdsPchExcludeDtlNewRecord(DataSet: TDataSet);
begin
  BeforeGoodsID:='';
  CdsPchExcludeDtlBillNo.Value:=CdsPchExcludeBillNo.Value;
  CdsPchExcludeDtlItemNo.Value := ItemId+1;
end;

procedure TFmPchExclude.CdsPchExcludeDtlBeforeInsert(DataSet: TDataSet);
begin
  inherited;
  ItemId := GetFieldMaxInt(CdsPchExcludeDtl,'ItemNO')
end;

procedure TFmPchExclude.RzDBButtonEdit1ButtonClick(Sender: TObject);
Var sEmpNo,sEmpName:String;
begin
  If FEditMode=0 Then Exit;
  sEmpNo := CdsPchExcludeEmpNO.Value;
  If SelectEmp(sEmpNo,sEmpName) Then begin
    CdsPchExcludeEmpNO.Value := sEmpNo;
    CdsPchExcludeEmpName.Value := sEmpName;
  End;
End;

procedure TFmPchExclude.CdsPchExcludeProvNOChange(Sender: TField);
Var
  sProvNo,sProvName,LogText:String;
begin
  IF FEditMode=0 Then Exit;
  sProvNo:=CdsPchExcludeProvNo.Value;
  if sProvNo=BeforeProvNo Then Exit;
  If sProvNo='' Then Begin
    CdsPchExcludeProvName.Value:='';
    Exit;
  End;
  BeforeProvNo:=sProvNO;
  sProvName:=VarToStr(SvrCommon.AppServer.GetProvInfo(iClientID,sProvNo,1,'ProvName',LogText));
  CdsPchExcludeProvName.Value:=sProvName;
  If LogText<>'' Then Begin
    Messagebox(Handle,Pchar(LogText),nil,16);
    Abort;
  End;
end;

⌨️ 快捷键说明

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