.#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 + -
显示快捷键?