.#pchsettleqry.pas.1.3

来自「医药连锁经营管理系统源码」· 3 代码 · 共 409 行

3
409
字号
unit PchSettleQry;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGridEh, xEhLibCtl, RzButton, RzRadChk, ComCtrls, RzDTP,
  StdCtrls, RzCmboBx, RzBtnEdt, Mask, RzEdit, RzLabel, RzPanel, RzSplit,
  TFlatSpeedButtonUnit, ExtCtrls, RzStatus, TFlatPanelUnit, Menus, ImgList,
  ActnList, ModuleAction, DB, DBClient, MConnect, ckDBClient, RzDBBnEd,
  RzDBCmbo, RzDBDTP, RzDBEdit, xBaseFrm, IMainFrm, uGlobal, uDataTypes,StrUtils;

type
  TFmPchSettleQry = class(TxBaseForm)
    dsStockCheckSurplus: TDataSource;
    cdsPchSettle: TckClientDataSet;
    DCOMConnection1: TDCOMConnection;
    ActionList1: TActionList;
    ActQuery: TModlAction;
    ActReport: TModlAction;
    ActFieldsLayout: TModlAction;
    ActDataExport: TModlAction;
    ActDesignReport: TModlAction;
    ActViewBill: TModlAction;
    ImageList1: TImageList;
    TopPopMenu: TPopupMenu;
    SetFields1: TMenuItem;
    refresh1: TMenuItem;
    ptBkPanel: TFlatPanel;
    ptCaption: TRzMarqueeStatus;
    FlatPanel2: TPanel;
    BtnWhatIs: TFlatSpeedButton;
    BtnHelp: TFlatSpeedButton;
    FlatPanel3: TPanel;
    BtnPopMenu: TFlatSpeedButton;
    RzSizePanel1: TRzSizePanel;
    RzGroupBox1: TRzGroupBox;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn3: TRzBitBtn;
    dbgPchSettle: TxDBGridEh;
    Label7: TLabel;
    RzLabel18: TRzLabel;
    RzLabel4: TRzLabel;
    RzLabel5: TRzLabel;
    RzLabel19: TRzLabel;
    RzLabel25: TRzLabel;
    cbPayModeNo: TRzComboBox;
    RzLabel17: TRzLabel;
    RzLabel3: TRzLabel;
    cbInOutKind: TRzComboBox;
    RzLabel20: TRzLabel;
    RzLabel8: TRzLabel;
    RzLabel23: TRzLabel;
    RzLabel24: TRzLabel;
    edAccountNo: TRzEdit;
    edTaxNo: TRzEdit;
    edDepartID: TRzEdit;
    edTelephone: TRzEdit;
    cbAccountBank: TRzComboBox;
    cbCompanyName: TRzComboBox;
    Label1: TLabel;
    edLinkman: TRzButtonEdit;
    ckMultiSelect: TRzCheckBox;
    edProvNo: TRzButtonEdit;
    edEmpNo: TRzButtonEdit;
    edAudit: TRzButtonEdit;
    edGoodsID: TRzButtonEdit;
    RzLabel1: TRzLabel;
    RzLabel26: TRzLabel;
    RzLabel6: TRzLabel;
    RzLabel2: TRzLabel;
    edBillNo1: TRzEdit;
    edPayDate1: TRzDateTimePicker;
    edInvoiceDate1: TRzDateTimePicker;
    edDate1: TRzDateTimePicker;
    Label2: TLabel;
    edBillNo2: TRzEdit;
    Label5: TLabel;
    edDate2: TRzDateTimePicker;
    Label6: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    edInvoiceDate2: TRzDateTimePicker;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    edPayDate2: TRzDateTimePicker;
    Label3: TLabel;
    Label4: TLabel;
    procedure ActQueryExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure RzBitBtn2Click(Sender: TObject);
    procedure RzBitBtn3Click(Sender: TObject);
    procedure edLinkmanButtonClick(Sender: TObject);
    procedure edProvNoButtonClick(Sender: TObject);
    procedure edEmpNoButtonClick(Sender: TObject);
    procedure edAuditButtonClick(Sender: TObject);
    procedure SetFields1Click(Sender: TObject);
    procedure refresh1Click(Sender: TObject);
    procedure edGoodsIDButtonClick(Sender: TObject);
    procedure ActReportExecute(Sender: TObject);
    procedure edBillNo1KeyPress(Sender: TObject; var Key: Char);
    procedure ActViewBillExecute(Sender: TObject);
  private
    { Private declarations }
    IFmMain: IMainForm;
    LocSetting: PLocSetting;
    iClientID: Integer;
    SvrPchSettle,SvrCommon: TDispatchConnection;
    CdsFieldProperty :TckClientDataSet;
    procedure GetPayModes;
  public
    { Public declarations }
  end;

var
  FmPchSettleQry: TFmPchSettleQry;

Const
  sFieldProPerty='Select * From SysFieldProperty '+' Where TableName=''PchSettle''';

  sPayModes='Select PayModeNo,PayModename,TimeLimit From PayModes order By PayModeNO';
  
implementation

uses SelectGoodsFrm,ceGlobal, ShowProGress, FieldsLayoutFrm, RepSelectFrm, DataExportFrm,
     SelectProvFrm,SelectEmpFrm,SelectDepartFrm,SelectPayMode,DBFuncs,SelectProvLinkManFrm;

{$R *.dfm}

procedure TFmPchSettleQry.FormCreate(Sender: TObject);
  function InitialDate: TDate;
  begin
    result := StrToDateTime(FormatDateTime('yyyy-mm-01', Date));
  end;
begin
  CdsFieldProperty := TckClientDataSet.Create(Self);
  edDate1.Date := InitialDate;
  edDate2.Date := Date;
  edinvoiceDate1.Date := InitialDate;
  edinvoiceDate2.Date := Date;
  edPayDate1.Date := InitialDate;
  edPayDate2.Date := Date;
  IFmMain := Application.MainForm as IMainForm;
  LocSetting := IFmMain.IFmMainEx.GetLocSetting;
  iClientID := IFmMain.IFmMainEx.ClientID;
  SetGressHint('正在连接到公用信息服务器...');
  SvrCommon := IFmMain.GetConnection(Handle, '', 'CommonSvr.CommonRDM');
  SvrPchSettle:=iFmMain.GetConnection(Handle,'','CKPurchInBase.PurchInRDM');
  cdsPchSettle.RemoteServer := SvrCommon;

  CdsFieldProPerty.ProviderName:='DspTemp';
  CdsFieldProPerty.RemoteServer:=SvrCommon;
end;

procedure TFmPchSettleQry.FormShow(Sender: TObject);
var sTableNames: string;
begin
  SetGressHint('初始化本地环境...');
  IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmPchSettleeQry.Xml');
  sTableNames:='PchSettle';
  SetFieldProperty(CdsFieldProPerty,CdsPchSettle,sTableNames);
  SetGridEhColor([dbgPchSettle]);
  GetPayModes;
  FreeGressForm;
end;

procedure TFmPchSettleQry.ActQueryExecute(Sender: TObject);
var  s,swMst,swDtl:string;
begin
  swMst:=swMst+' and FDate>='''+FormatDateTime('yyyy-mm-dd',edDate1.Date)
    +''' and FDate<='''+FormatDateTime('yyyy-mm-dd',edDate2.Date)+'''';
  swMst:=swMst+' and InvoiceDate>='''+FormatDateTime('yyyy-mm-dd',edInvoicedate1.Date)
    +''' and InvoiceDate<='''+FormatDateTime('yyyy-mm-dd',edInvoicedate2.Date)+'''';
  swMst:=swMst+' and PayDate>='''+FormatDateTime('yyyy-mm-dd',edPayDate1.Date)
    +''' and PayDate<='''+FormatDateTime('yyyy-mm-dd',edPayDate2.Date)+'''';
  s:=edBillNo1.Text;
  if s<>'' then
  begin
    if edBillNo2.Text<>'' then
      swMst:=swMst+' and BillNo>='''+s+''' and BillNo<=''' + edBillNo2.Text + ''''
    else
      swMst:=swMst+' BillNo='''+s+'''';
  end;
  s:=cbInOutKind.Text;
  if s<>'' then
  begin
    s:=copy(s,1,1);
    swMst:=swMst+' and InOutKind='+s;
  end;
  s:=cbAccountBank.Text;
  if s<>'' then
    swMst:=swMst+' and AccountBank='''+s+'''';
  s:=edLinkman.Text;
  if s<>'' then
    swMst:=swMst+' and Linkman='''+s+'''';
  s:=edDepartID.Text;
  if s<>'' then
    swMst:=swMst+' and DepartID='+s;
  s:=edTelephone.Text;
  if s<>'' then
    swMst:=swMst+' and Telephone='''+s+'''';
  s:=edAccountNo.Text;
  if s<>'' then
    swMst:=swMst+' and AccountNo='''+s+'''';
  s:=edTaxNo.Text;
  if s<>'' then
    swMst:=swMst+' and TaxNo='''+s+'''';
  s:=cbPayModeNo.Text;
  if s<>'' then
    swMst:=swMst+' and PayModeNo='''+s+'''';
  s:=edEmpNo.Text;
  if s<>'' then
    swMst:=swMst+' and EmpNo='''+s+'''';
  s:=edAudit.Text;
  if s<>'' then
    swMst:=swMst+' and Audit='''+s+'''';
  s:=edProvNo.Text;
  if s<>'' then
    swMst:=swMst+' and ProvNo='''+s+'''';

  s:=edGoodsID.Text;
  if s<>'' then
  begin
    if AnsiPos(',', s)>0 then
      swDtl := swDtl + ' and GoodsID in(''' + AnsiReplaceText(swDtl, ',', ''',''') + ''')'
    else
      swDtl := ' AND GoodsID Like '''+edGoodsID.Text+'''';
  end;

  cdsPchSettle.Close;
  cdsPchSettle.Data := SvrCommon.AppServer.QueryBill(iClientID, 'PchSettle', swMst, swDtl);
  SetFieldProperty(CdsFieldProPerty,cdsPchSettle, 'PchSettle');
end;


procedure TFmPchSettleQry.RzBitBtn2Click(Sender: TObject);
begin
  SelRepPrint(self.Name, [cdsPchSettle], '采购结算单查询', ActDesignReport.Enabled);
end;

procedure TFmPchSettleQry.RzBitBtn3Click(Sender: TObject);
var Values: Variant;
    sBillNo, sBills: String;
    mark: TBookmark;
begin
  if cdsPchSettle.IsEmpty then Exit;
  with cdsPchSettle do begin
    sBillNo := FieldByName('BillNo').AsString;
    mark := GetBookmark;
    DisableControls;
    try
      First;
      while not Eof do begin
        sBills := sBills+FieldByName('BillNo').AsString+#13;
        Next;
      end;
    finally
      GotoBookmark(mark);
      FreeBookmark(mark);
      EnableControls;
    end;
  end;
  Values := VarArrayCreate([0,1], varOleStr);
  Values[0] := sBillNo;
  Values[1] := sBills;
  IFmMain.DoSome(ActViewBill.ModuleFile, 'ViewBill', Values);
  Values := NULL;
end;

procedure TFmPchSettleQry.edLinkmanButtonClick(Sender: TObject);
var sProvNo,sLinkMan:string;
begin
  sProvNo:=edProvNo.Text;
  {if sProvNo='' then
    Application.MessageBox('请先选择供应厂商!','提示',MB_OK+MB_ICONINFORMATION);}
  If SelectProvLinkMan(sProvNo,sLinkMan) Then
    edLinkman.Text:=sLinkman;
  
end;

procedure TFmPchSettleQry.GetPayModes;
Var
  A:Variant;
  iClientID, i, k:Integer;
begin
  iClientID := IFmMain.IFmMainEx.ClientID;
  A:=SvrPchSettle.AppServer.GetNeedValue(iClientID,3,sPayModes);
  If (Not VarIsNull(A)) And (VarIsArray(A)) Then
  Begin
    cbPayModeNo.Items.Clear;
    k := VarArrayHighBound(A,2);
    for i:=VarArrayLowBound(A,2) to k do
      cbPayModeNo.Items.Add(A[0,i]+':'+A[1,i]+'('+A[2,i]+')');
  End;
end;

procedure TFmPchSettleQry.edProvNoButtonClick(Sender: TObject);
Var
  ProvNo :String;
  ProvName :String;
begin
  ProvNo := '';
  ProvName := '';
  if SelectProv(ProvNo,ProvName) then
  edProvNo.Text := ProvNo;
end;

procedure TFmPchSettleQry.edEmpNoButtonClick(Sender: TObject);
Var
  EmpNo :String;
  EmpName :String;
begin
  EmpNo := '';
  EmpName := '';
  if SelectEmp(EmpNo,EmpName) then
  edEmpNo.Text := EmpNo;
end;

procedure TFmPchSettleQry.edAuditButtonClick(Sender: TObject);
Var
  EmpNo :String;
  EmpName :String;
begin
  EmpNo := '';
  EmpName := '';
  if SelectEmp(EmpNo,EmpName) then
  edAudit.Text := EmpNo;
end;

procedure TFmPchSettleQry.SetFields1Click(Sender: TObject);
begin
  SetFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [dbgPchSettle], '采购结算单查询');
end;

procedure TFmPchSettleQry.refresh1Click(Sender: TObject);
begin
	ExportData([cdsPchsettle], '采购结算单查询', '');
end;

procedure TFmPchSettleQry.edGoodsIDButtonClick(Sender: TObject);
var
  sGoodsId :String;
begin
  sGoodsID := '';
  if ckMultiSelect.Checked then
  begin
    if SelectGoodsID(sGoodsID, true) then
      If edGoodsID.Text<>'' Then
        edGoodsId.Text := edGoodsId.Text+','+sGoodsId
      else
        edGoodsId.Text := sGoodsID;
  End
  else if SelectGoodsID(sGoodsID, false) then
    edGoodsID.text := sGoodsID;
end;

procedure TFmPchSettleQry.ActReportExecute(Sender: TObject);
begin
  SelRepPrint(self.Name, [cdsPchSettle], '采购结算单查询', ActDesignReport.Enabled);
end;

procedure TFmPchSettleQry.edBillNo1KeyPress(Sender: TObject;
  var Key: Char);
begin
  if key = #13 then
    actQuery.Execute;
end;

procedure TFmPchSettleQry.ActViewBillExecute(Sender: TObject);
var Values: Variant;
    sBillNo, sBills: String;
    mark: TBookmark;
begin
  if cdsPchSettle.IsEmpty then Exit;
  with cdsPchSettle do begin
    sBillNo := FieldByName('BillNo').AsString;
    mark := GetBookmark;
    DisableControls;
    try
      First;
      while not Eof do begin
        sBills := sBills+FieldByName('BillNo').AsString+#13;
        Next;
      end;
    finally
      GotoBookmark(mark);
      FreeBookmark(mark);
      EnableControls;
    end;
  end;
  Values := VarArrayCreate([0,1], varOleStr);
  Values[0] := sBillNo;
  Values[1] := sBills;
  IFmMain.DoSome(ActViewBill.ModuleFile, 'ViewBill', Values);
  Values := NULL;
end;

initialization
  RegisterClass(TFmPchSettleQry);

finalization
  UnRegisterClass(TFmPchSettleQry);

end.

⌨️ 快捷键说明

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