⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 selretdemandfrm.pas

📁 医药连锁经营管理系统源码
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit SelRetDemandFrm;

interface

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

type
  TFmSelRetDemand = class(TceBaseBillForm)
    DComConn: TDCOMConnection;
    CdsSelRetDemand: TckClientDataSet;
    DsSelRetDemand: TDataSource;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label10: TLabel;
    Label9: TLabel;
    DBEdit1: TRzDBEdit;
    DBEdit4: TRzDBEdit;
    DBEdit5: TRzDBEdit;
    DBEdit6: TRzDBEdit;
    DBEdit10: TRzDBEdit;
    DBEdit9: TRzDBEdit;
    Lab_State: TLabel;
    dbgSelRetDemandDtl: TxDBGridEh;
    DBEdit2: TRzDBDateTimePicker;
    RzDBEdit1: TRzDBEdit;
    edProvName: TRzDBButtonEdit;
    RzDBButtonEdit1: TRzDBButtonEdit;
    DsSelRetDemandDtl: TDataSource;
    CdsSelRetDemandDtl: TckClientDataSet;
    DBCheckBox1: TRzDBCheckBox;
    RzLabel7: TRzLabel;
    RzDBLabel1: TRzDBLabel;
    RzLabel16: TRzLabel;
    RzDBLabel2: TRzDBLabel;
    RzDBButtonEdit2: TRzDBButtonEdit;
    CdsSelRetDemandBillNo: TStringField;
    CdsSelRetDemandFDate: TDateTimeField;
    CdsSelRetDemandContractNo: TStringField;
    CdsSelRetDemandEmpNo: TStringField;
    CdsSelRetDemandEmpName: TStringField;
    CdsSelRetDemandAudit: TStringField;
    CdsSelRetDemandLinkMan: TStringField;
    CdsSelRetDemandGoodsQty: TBCDField;
    CdsSelRetDemandGoodsSum: TBCDField;
    CdsSelRetDemandTaxSum: TBCDField;
    CdsSelRetDemandAmount: TBCDField;
    CdsSelRetDemandRemark: TStringField;
    CdsSelRetDemandFungible: TBooleanField;
    CdsSelRetDemandTransfer: TBooleanField;
    CdsSelRetDemandAbated: TBooleanField;
    CdsSelRetDemandCreater: TStringField;
    CdsSelRetDemandMender: TStringField;
    CdsSelRetDemandGrup: TIntegerField;
    CdsSelRetDemandCreatTime: TDateTimeField;
    CdsSelRetDemandUpdateTime: TDateTimeField;
    CdsSelRetDemandAdsSelRetDemandDtl: TDataSetField;
    CdsSelRetDemandDtlBillNo: TStringField;
    CdsSelRetDemandDtlItemNo: TIntegerField;
    CdsSelRetDemandDtlGoodsID: TStringField;
    CdsSelRetDemandDtlName: TStringField;
    CdsSelRetDemandDtlSpecs: TStringField;
    CdsSelRetDemandDtlUnit: TStringField;
    CdsSelRetDemandDtlQty: TBCDField;
    CdsSelRetDemandDtlOPrice: TFloatField;
    CdsSelRetDemandDtlRebate: TBCDField;
    CdsSelRetDemandDtlPrice: TFloatField;
    CdsSelRetDemandDtlTaxRate: TBCDField;
    CdsSelRetDemandDtlUnTaxPrice: TFloatField;
    CdsSelRetDemandDtlGoodsSum: TBCDField;
    CdsSelRetDemandDtlTaxSum: TBCDField;
    CdsSelRetDemandDtlAmount: TBCDField;
    CdsSelRetDemandDtlBatchNo: TStringField;
    CdsSelRetDemandDtlProdDate: TDateTimeField;
    CdsSelRetDemandDtlValidDate: TDateTimeField;
    Label11: TLabel;
    RzDBEdit2: TRzDBEdit;
    Label12: TLabel;
    RzDBEdit3: TRzDBEdit;
    Label13: TLabel;
    RzDBEdit4: TRzDBEdit;
    CdsSelRetDemandCustNo: TStringField;
    CdsSelRetDemandCustName: TStringField;
    procedure FormCreate(Sender: TObject);
    procedure ActDeleteExecute(Sender: TObject);
    procedure ActSaveExecute(Sender: TObject);
    procedure CdsSelRetDemandNewRecord(DataSet: TDataSet);
    procedure CdsSelRetDemandDtlBeforeInsert(DataSet: TDataSet);
    procedure CdsSelRetDemandDtlNewRecord(DataSet: TDataSet);
    procedure CdsSelRetDemandReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
    procedure ActAddSubItemExecute(Sender: TObject);
    procedure ActDelSubItemExecute(Sender: TObject);
    procedure CdsSelRetDemandDtlAfterPost(DataSet: TDataSet);
    procedure edProvNameButtonClick(Sender: TObject);
    procedure RzDBButtonEdit1ButtonClick(Sender: TObject);
    procedure CdsSelRetDemandEmpNoChange(Sender: TField);
    procedure CdsSelRetDemandDtlGoodsIDChange(Sender: TField);
    procedure dbgSelRetDemandDtlEditButtonClick(Sender: TObject);
    procedure ActUpdateExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure CdsSelRetDemandAfterScroll(DataSet: TDataSet);
    procedure ActAuditExecute(Sender: TObject);
    procedure ActRevertExecute(Sender: TObject);
    procedure ActFieldLayoutExecute(Sender: TObject);
    procedure ActDataExportExecute(Sender: TObject);
    procedure RzDBButtonEdit2ButtonClick(Sender: TObject);
    procedure ActBillTurnExecute(Sender: TObject);
    procedure ActQueryExecute(Sender: TObject);
    procedure CdsSelRetDemandCustNoChange(Sender: TField);
    procedure CdsSelRetDemandDtlQtyChange(Sender: TField);
    procedure CdsSelRetDemandDtlPriceChange(Sender: TField);
    procedure CdsSelRetDemandDtlTaxRateChange(Sender: TField);
    procedure CdsSelRetDemandDtlUnTaxPriceChange(Sender: TField);
  private
    FlagGoodsID,BeforeGoodsID,BeforeEmpNo,BeforeCustNo:String;
    bBrowGoods,CanAudit, CanRevert:Boolean;
    SvrCommon,SvrSelRetDemand:TDispatchConnection;
    iClientID,iLastItemNO:Integer;
    LocSetting: PLocSetting;
    CdsFieldProperty :TckClientDataSet;
    procedure ParseGoodsInfo;
  public

  protected
    Function DoSome(cType: PChar; Values: Variant): Variant; override;    
  end;
Const
  sFieldProPerty='Select * From SysFieldProPerty '+
      ' Where TableName in(''SelRetDemand'',''SelRetDemandDtl'', ''Goodses'')';
var
  FmSelRetDemand: TFmSelRetDemand;

implementation
Uses SelectGoodsFrm,FieldsLayoutFrm,DataExportFrm,ViewGoodsPriceFrm;

{$R *.dfm}

procedure TFmSelRetDemand.FormCreate(Sender: TObject);
begin
  inherited;
  CdsFieldProperty:=TCkClientDataSet.Create(Self);
  IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
  LocSetting := IFmMain.IFmMainEx.GetLocSetting;
  LoadFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [dbgSelRetDemandDtl]);
  SetGressHint('正在登录到销售退回申请服务器...');
  CanAudit := ActAudit.Enabled;
  CanRevert:= ActCancel.Enabled;
  iClientID:=logonInfo^.ClientID;
  RepDataSetNames := '销售退回申请;销售退回申请明细';
  sRepSection := '销售退回申请';
  SvrSelRetDemand:=iFmMain.GetConnection(Handle,'','ckSalesBase.SalesBase');
  sBillNoList.Text := SvrSelRetDemand.AppServer.GetCurrMonthBills(iClientID, 'SelRetDemand');
  CdsSelRetDemand.RemoteServer:=SvrSelRetDemand;
  SetGressHint('正在连接到公用信息服务器...');
  SvrCommon:=IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
  CdsFieldProPerty.ProviderName:='DspTemp';
  CdsFieldProperty.RemoteServer:=SvrCommon;
  SetGressHint('读取用户操作权限...');
  MasterDataSet:=CdsSelRetDemand;
  SetLength(FDetailDataSets, 1);
  BillType :='SelRetDemand';
  FDetailDataSets[0] := CdsSelRetDemandDtl;
  dbgSelRetDemandDtl.SetAutoSort('');   
end;

procedure TFmSelRetDemand.FormShow(Sender: TObject);
Var
  sTableNames:String;
begin
  SetGressHint('初始化本地环境...');
  SetGridEhColor(dbgSelRetDemandDtl);
  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmSelRetDemand.Xml');
  SetFieldProperty(CdsFieldProPerty,CdsSelRetDemandDtl,'SelRetDemand');
  SetFieldProperty(CdsFieldProPerty,CdsSelRetDemandDtl,'SelRetDemandDtl,Goodses');
  SetGressHint('读取历史单据...');
  SetCurrBillIdx(0);
  inherited;
  FreeGressForm;
end;

procedure TFmSelRetDemand.ActDeleteExecute(Sender: TObject);
begin
  If CdsSelRetDemandTransfer.Value Then Begin
    Messagebox(Handle,Pchar('当前单据已[复核],不能执行删除操作!'),'警告:',64);
    Exit;
  End;
  inherited;
end;

procedure TFmSelRetDemand.ActSaveExecute(Sender: TObject);
begin
  If FEditMode=0 Then Exit;
  If (CdsSelRetDemandDtl.State In dsEditModes) Then
    CdsSelRetDemandDtl.Post;
  Inherited;
End;

procedure TFmSelRetDemand.CdsSelRetDemandNewRecord(DataSet: TDataSet);
begin
  BeforeCustNo:='';
  BeforeEmpNo :='';
  edProvName.Button.Click;
  CdsSelRetDemandBillNo.Value := BuildBillNo('SelRetDemand');
  CdsSelRetDemandCreater.Value := LogonInfo^.UserID;
  CdsSelRetDemandGrup.Value := LogonInfo^.UserGrupID;
  CdsSelRetDemandFDate.Value:=Date;
end;

procedure TFmSelRetDemand.CdsSelRetDemandDtlBeforeInsert(
  DataSet: TDataSet);
begin
  iLastItemNO:=GetFieldMaxInt(CdsSelRetDemandDtl,'ItemNO')+1;
end;

procedure TFmSelRetDemand.CdsSelRetDemandDtlNewRecord(DataSet: TDataSet);
begin
  BeforeGoodsID:='';
  CdsSelRetDemandDtlBillNo.Value:=CdsSelRetDemandBillNo.Value;
  CdsSelRetDemandDtlProdDate.Value:=Date;
  CdsSelRetDemandDtlValidDate.Value:=IncMonth(Date,1);    
  CdsSelRetDemandDtlItemNo.Value:=iLastItemNO;
end;

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

procedure TFmSelRetDemand.ActAddSubItemExecute(Sender: TObject);
begin
  IF FEditMode=0 Then Exit;
  If Not(CdsSelRetDemand.State In dsEditModes) Then Exit;
  CdsSelRetDemandDtl.Append;
end;

procedure TFmSelRetDemand.ActDelSubItemExecute(Sender: TObject);
begin
  IF FEditMode=0 Then Exit;
	if CdsSelRetDemandDtl.IsEmpty then Exit;
  CdsSelRetDemandDtl.Delete;
end;

procedure TFmSelRetDemand.CdsSelRetDemandDtlAfterPost(DataSet: TDataSet);
var dQty,dTaxSum,dGoodsSum,dAmount:Double;
		mark1: TBookmark;
begin
  BeforeGoodsID:='';
  dQty:=0;
	with CdsSelRetDemandDtl do begin
  	Mark1 := GetBookmark;
    DisableControls;
    try
    	First;
      while not Eof do begin
        dQty:=dQty+FieldByName('Qty').AsFloat;
        dTaxSum := dTaxSum+FieldByName('TaxSum').AsFloat;
        dGoodsSum := dGoodsSum+FieldByName('GoodsSum').AsFloat;
        dAmount := dAmount+FieldByName('Amount').AsFloat;
        next;
      end;
      CdsSelRetDemandGoodsQty.Value := dQty;
      CdsSelRetDemandGoodsSum.Value := dGoodsSum;
      CdsSelRetDemandTaxSum.Value := dTaxSum;
      CdsSelRetDemandAmount.Value := dAmount;
    finally
    	GotoBookmark(Mark1);
      FreeBookmark(Mark1);
    	EnableControls;
    end;
  end;
end;

procedure TFmSelRetDemand.edProvNameButtonClick(Sender: TObject);
Var
  sCustNo,sCustName : String;
begin
  If FEditMode=0 Then Exit;
  sCustNo := cdsSelRetDemandCustNo.Value;
  If SelectCust(sCustNo,sCustName) Then
  Begin
    cdsSelRetDemandCustNo.Value:= sCustNo;
    cdsSelRetDemandCustName.Value := sCustName;
  End;
End;

procedure TFmSelRetDemand.RzDBButtonEdit1ButtonClick(Sender: TObject);
Var sEmpNo,sEmpName:String;
begin
  If FEditMode=0 Then Exit;
  sEmpNo := CdsSelRetDemandEmpNo.Value;
  If SelectEmp(sEmpNo,sEmpName) Then
  begin
    CdsSelRetDemandEmpNo.Value := sEmpNo;
    CdsSelRetDemandEmpName.Value := sEmpName;
  End;
end;

procedure TFmSelRetDemand.CdsSelRetDemandEmpNoChange(Sender: TField);
Var
  sEmpNo,sEmpName,LogText:String;
begin
  IF FEditMode=0 Then Exit;
  sEmpNo:=CdsSelRetDemandEmpNo.Value;
  If sEmpNo='' Then Exit;
  if sEmpNo=BeforeEmpNo Then Exit;
  BeforeEmpNo:=sEmpNO;
  sEmpName:=VarToStr(SvrCommon.AppServer.GetEmpInfo(iClientID,sEmpNo,1,'Name',LogText));
  CdsSelRetDemandEmpName.Value:=sEmpName;
  If LogText<>'' Then Begin
    Messagebox(Handle,Pchar(LogText),nil,16);
    DBEdit5.SetFocus;
    Abort;
  End;
end;

procedure TFmSelRetDemand.CdsSelRetDemandDtlGoodsIDChange(Sender: TField);
Var
  LogText,Flag,sGoodsID,sSetFields:String;
Begin
  IF FEditMode=0 Then Exit;
  IF FlagGoodsID<>'' Then Begin
    FlagGoodsID:='';
    Exit;
  End;
  If bBrowGoods then Exit;
  sGoodsID:=CdsSelRetDemandDtlGoodsID.AsString;
  If sGoodsID='' Then Exit;

⌨️ 快捷键说明

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