unit U_ZZYSFP; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxDropDownEdit; type TfrmZZYSFP = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBDel: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; Label1: TLabel; YFName: TEdit; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; FactoryName10: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; ToolButton3: TToolButton; v2Column1: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v2KP: TcxGridDBColumn; v2Note: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column2: TcxGridDBColumn; Label4: TLabel; ComTaiTou: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure FactoryName10Change(Sender: TObject); procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject); procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure v2Column2PropertiesEditValueChanged(Sender: TObject); procedure v2PSPropertiesEditValueChanged(Sender: TObject); procedure v2BatchNoPropertiesEditValueChanged(Sender: TObject); procedure v2Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2KPPropertiesEditValueChanged(Sender: TObject); private { Private declarations } procedure InitGridHZ(); procedure InitGrid(); function SaveData():Boolean; public { Public declarations } RKFlag,FCYID:String; end; var frmZZYSFP: TfrmZZYSFP; implementation uses U_DataLink,U_Fun,U_ZDYHelp, U_ProductOrderList, U_ProductOrderNewList, U_ZdyAttachGYS, U_ProductOrderListSel,U_ZdyAttachment; {$R *.dfm} procedure TfrmZZYSFP.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; sql.Add(' select A.* '); sql.Add(',FactoryName10=RTrim(dbo.getPinYin(A.FactoryName))+RTrim(A.FactoryName)'); sql.Add(' from YF_Money_CR A'); sql.Add(' inner join YF_Money_KC B on A.CRID=B.CRID'); sql.Add('where A.CRTime>=:begdate and A.CRTime<:Enddate and A.CRType=''应收款发票登记'' '); Parameters.ParamByName('begdate').Value:=Trim(FormatDateTime('yyyy-MM-dd',begdate.DateTime)); Parameters.ParamByName('Enddate').Value:=Trim(FormatDateTime('yyyy-MM-dd',Enddate.DateTime+1)); Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmZZYSFP.InitGridHZ(); begin end; procedure TfrmZZYSFP.FormDestroy(Sender: TObject); begin frmZZYSFP:=nil; end; procedure TfrmZZYSFP.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmZZYSFP.TBCloseClick(Sender: TObject); begin WriteCxGrid('应收款发票',Tv2,'财务管理'); Close; end; procedure TfrmZZYSFP.TBDelClick(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; if Trim(CDS_HZ.fieldbyname('YFID').AsString)<>'' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete YF_Money_CR where YFID='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+''''); ExecSQL; end; end; CDS_HZ.Delete; end; procedure TfrmZZYSFP.FormShow(Sender: TObject); var fsj:string; begin ReadCxGrid('应收款发票',Tv2,'财务管理'); Enddate.DateTime:=SGetServerDate(ADOQueryTemp); begdate.DateTime:=Enddate.DateTime-7; InitGrid(); end; procedure TfrmZZYSFP.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmZZYSFP.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); end; end; procedure TfrmZZYSFP.FactoryName10Change(Sender: TObject); begin ToolButton2.Click; end; function TfrmZZYSFP.SaveData():Boolean; var maxId,CRID:String; begin try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd,maxId,'KP','YF_Money_CR',4,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(CDS_HZ.fieldbyname('FactoryName').AsString)+''''); sql.Add(' and KCType=''KH'' '); Open; end; if ADOQueryCmd.IsEmpty=False then begin CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; end else begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CRID set CRID=CRID+1'); sql.Add('select * from YF_Money_CRID '); Open; end; CRID:=ADOQueryCmd.fieldbyname('CRID').AsString; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('FactoryNo').Value:=Trim(CDS_HZ.fieldbyname('FactoryNo').AsString); FieldByName('FactoryName').Value:=Trim(CDS_HZ.fieldbyname('FactoryName').AsString); FieldByName('ZdyStr1').Value:='应收收'; Post; end; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from YF_Money_CR where 1<>1'); Open; end; with ADOQueryCmd do begin Append; FieldByName('YFID').Value:=Trim(maxId); FieldByName('CRID').Value:=StrToInt(CRID); //SSetSaveDataCDSNew(ADOQueryCmd,Tv2,CDS_HZ,'YF_Money_CR',3); FieldByName('Filler').Value:=Trim(DName); FieldByName('CRType').Value:='应收款发票登记'; FieldByName('CRFlag').Value:='应收收'; FieldByName('QtyFlag').Value:=1; FieldByName('KPFlag').Value:=0; FieldByName('FactoryNo').Value:=Trim(CDS_HZ.fieldbyname('FactoryNo').AsString); FieldByName('FactoryName').Value:=Trim(CDS_HZ.fieldbyname('FactoryName').AsString); FieldByName('CRTime').Value:=SGetServerDate(ADOQueryTemp); Post; end; with CDS_HZ do begin Edit; FieldByName('YFId').Value:=Trim(maxId); FieldByName('CRID').Value:=StrToInt(CRID); end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except Result:=True; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('增行失败!','提示',0); end; end; procedure TfrmZZYSFP.cxGridDBColumn5PropertiesEditValueChanged( Sender: TObject); var mvalue,FQty,FPrice,FMoney,FHuiLv,FKPMoney,FKPNow,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); FieldByName('HuiLv').Value:=1; Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select isnull(KPMoney,0) KPMoney from YF_Money_CR where YFID='''+cds_hz.fieldbyname('YFID').AsString+''''); Open; end; FKPMoney:=ADOQueryTemp.fieldbyname('KPMoney').AsString; FQty:=Trim(CDS_HZ.fieldbyname('Qty').AsString); if Trim(FQty)='' then FQty:='0'; FPrice:=Trim(CDS_HZ.fieldbyname('Price').AsString); if Trim(FPrice)='' then FPrice:='0'; FQty:=Trim(CDS_HZ.fieldbyname('Qty').AsString); if Trim(FQty)='' then FQty:='0'; FHuiLv:=Trim(CDS_HZ.fieldbyname('HuiLv').AsString); if Trim(FHuiLv)='' then FHuiLv:='1'; if Trim(FFieldName)<>'KPMoney' then begin FKPNow:=FloatToStr(StrToFloat(FQty)*StrToFloat(FPrice)*StrToFloat(FHuiLv)); end else begin FKPNow:=CDS_HZ.fieldbyname('KPMoney').AsString; end; with CDS_HZ do begin Edit; FieldByName('KPMoney').Value:=StrToFloat(FKPNow); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); if Trim(FFieldName)<>'KPMoney' then begin sql.Add(',KPMoney='+FKPNow); end; SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); SQL.Add('Update YF_Money_KC Set KCKPMoney=KCKPMoney-'+FKPMoney+'+'+FKPNow); sql.Add(' where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+''''); ExecSQL; end; end; procedure TfrmZZYSFP.cxGridDBColumn1PropertiesEditValueChanged( Sender: TObject); var mvalue,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); if Trim(mvalue)<>'' then begin sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); end else begin sql.Add(' Set '+FFieldName+'=NULL'); end; SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; procedure TfrmZZYSFP.ToolButton3Click(Sender: TObject); begin try frmZdyAttachment:=TfrmZdyAttachment.Create(Application); with frmZdyAttachment do begin if ShowModal=1 then begin with Self.CDS_HZ do begin Append; FieldByName('FactoryNo').Value:=Trim(CDS_HZ.fieldbyname('ZdyCode').AsString); FieldByName('FactoryName').Value:=Trim(CDS_HZ.fieldbyname('ZdyName').AsString); FieldByName('CRTime').Value:=SGetServerDate(ADOQueryTemp); FieldByName('BZType').Value:='RMB'; FieldByName('HuiLv').Value:=1; Post; end; Self.SaveData(); end; end; finally frmZdyAttachment.Free; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmZZYSFP.cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='OrderUnit'; flagname:='数量单位'; if ShowModal=1 then begin Self.CDS_HZ.Edit; Self.CDS_HZ.FieldByName('QtyUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set QtyUnit='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmZZYSFP.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv2,ADOQueryMain,'销项发票列表'); end; procedure TfrmZZYSFP.v2Column2PropertiesEditValueChanged(Sender: TObject); var mvalue,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; procedure TfrmZZYSFP.v2PSPropertiesEditValueChanged(Sender: TObject); var mvalue,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; procedure TfrmZZYSFP.v2BatchNoPropertiesEditValueChanged(Sender: TObject); var mvalue,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set '+FFieldName+'='''+Trim(mvalue)+''''); SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; procedure TfrmZZYSFP.v2Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='GSTT'; flagname:='公司抬头'; V1Name.Caption:='中文名称'; if ShowModal=1 then begin with Self.CDS_HZ do begin Edit; FieldByName('ComTaiTou').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set ComTaiTou='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmZZYSFP.v2KPPropertiesEditValueChanged(Sender: TObject); var mvalue,FFieldName:String; begin mvalue:=TcxTextEdit(Sender).EditingText; if Trim(mvalue)='' then begin mvalue:='0'; end; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value:=Trim(mvalue); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; end.