unit U_YSCRLZ; 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 TfrmYSCRLZ = 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; FactoryName: TEdit; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn3: 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; VHL: TcxGridDBColumn; VBZ: TcxGridDBColumn; VYB: TcxGridDBColumn; VBB: TcxGridDBColumn; v2Column6: TcxGridDBColumn; VOrderNo: TcxGridDBColumn; v2PS: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2KP: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column5: TcxGridDBColumn; Label4: TLabel; OrderNo: TEdit; ToolButton4: TToolButton; v2ZFTT: TcxGridDBColumn; v2Column7: TcxGridDBColumn; Label5: 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 FactoryNameChange(Sender: TObject); procedure Button2Click(Sender: TObject); procedure cxGridDBColumn8PropertiesEditValueChanged(Sender: TObject); procedure cxGridDBColumn5PropertiesEditValueChanged(Sender: TObject); procedure cxGridDBColumn1PropertiesEditValueChanged(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure v2Column7PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2PSPropertiesEditValueChanged(Sender: TObject); procedure v2Column2PropertiesEditValueChanged(Sender: TObject); procedure v2KPMoneyPropertiesEditValueChanged(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure v2Column7PropertiesEditValueChanged(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); private { Private declarations } procedure InitGridHZ(); procedure InitGrid(); function SaveData():Boolean; function YSData(Order_Main10:TClientDataSet):Boolean; public { Public declarations } RKFlag,FCYID:String; end; var frmYSCRLZ: TfrmYSCRLZ; implementation uses U_DataLink,U_Fun,U_ZDYHelp, U_ProductOrderNewList; {$R *.dfm} procedure TfrmYSCRLZ.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; sql.Add(' select C.Filler,A.*,C.OrderNo,C.MPRTCodeName '); sql.Add(',PIPayMent=(select Top 1 PayMent from JYOrderCon_Main AA where AA.ConNo=C.OrderNo) '); sql.Add(' from YF_Money_CR A'); sql.Add(' inner join YF_Money_KC B on A.CRID=B.CRID'); SQL.Add(' left join JYOrder_Main C on A.MainId=C.MainId'); sql.Add('where A.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',begdate.DateTime))+''''); sql.Add('and A.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',Enddate.DateTime+1))+''''); sql.Add('and A.CRType=''应收款登记'''); Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYSCRLZ.InitGridHZ(); begin end; procedure TfrmYSCRLZ.FormDestroy(Sender: TObject); begin frmYSCRLZ:=nil; end; procedure TfrmYSCRLZ.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYSCRLZ.TBCloseClick(Sender: TObject); begin WriteCxGrid('应收款登记',Tv2,'财务管理'); {with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete CK_YP_CR where isnull(CRTime,'''')='''' and CYID='''+Trim(FCYID)+''' and CRType='''+Trim(RKFlag)+''''); ExecSQL; end;} Close; end; procedure TfrmYSCRLZ.TBDelClick(Sender: TObject); var FBBMoney,CRID:string; begin if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin if Application.MessageBox('此数据是自动生成,确定要执行操作吗?','提示',32+4)<>IDYES then Exit; end; if CDS_HZ.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select isnull(BBMoney,0) BBMoney from YF_Money_CR where YFID='''+Trim(cds_hz.fieldbyname('YFID').AsString)+''''); Open; end; FBBMoney:=ADOQueryTemp.fieldbyname('BBMoney').AsString; 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)+''''); SQL.Add('Update YF_Money_KC Set KCBBMoney=KCBBMoney-'+FBBMoney); sql.Add(' where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+''''); ExecSQL; end; CRID:=Trim(CDS_HZ.fieldbyname('CRID').AsString); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where CRID='+CRID); Open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete YF_Money_KC where CRID='+CRID); ExecSQL; end; end; end; CDS_HZ.Delete; end; procedure TfrmYSCRLZ.FormShow(Sender: TObject); var fsj:string; begin ReadCxGrid('应收款登记',Tv2,'财务管理'); Enddate.DateTime:=SGetServerDate(ADOQueryTemp); begdate.DateTime:=Enddate.DateTime-50; fsj:='select Name=ZdyName,code='''' from KH_Zdy where Type=''OrdDefStr2'' '; SInitCxGridComboBoxBySql(ADOQueryTemp,v2ZFTT,fsj,0,False,''); if Trim(DParameters1)='无订单号' then begin VOrderNo.Hidden:=True; VOrderNo.Visible:=False; label4.Visible:=False; OrderNo.Visible:=False; end; if Trim(DParameters2)='人民币' then begin VHL.Hidden:=True; VHL.Visible:=False; VBZ.Hidden:=True; VBZ.Visible:=False; VYB.Hidden:=True; VYB.Visible:=False; VBB.Caption:='金额'; end; if Trim(DParameters5)<>'开票' then begin v2KP.Hidden:=True; v2KP.Visible:=False; end else begin v2KP.Hidden:=False; v2KP.Visible:=True; end; if Trim(DParameters7)<>'匹数' then begin v2PS.Hidden:=True; v2PS.Visible:=False; end else begin v2PS.Hidden:=False; v2PS.Visible:=True; end; //InitGrid(); end; procedure TfrmYSCRLZ.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYSCRLZ.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 TfrmYSCRLZ.FactoryNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSCRLZ.Button2Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; if Trim(CDS_HZ.fieldbyname('SubID').AsString)<>'' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete YCL_SG_HZ where SubID='''+Trim(CDS_HZ.fieldbyname('SubID').AsString)+''''); ExecSQL; end; end; CDS_HZ.Delete; end; function TfrmYSCRLZ.SaveData():Boolean; var maxId,CRID:String; begin try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd,maxId,'YS','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)+''''); 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('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 TfrmYSCRLZ.cxGridDBColumn8PropertiesEditValueChanged( 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 YCL_SG_HZ '); 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 SubId='''+Trim(CDS_HZ.fieldbyname('SubId').AsString)+''''); ExecSQL; end; end; procedure TfrmYSCRLZ.cxGridDBColumn5PropertiesEditValueChanged( Sender: TObject); var mvalue,FQty,FPrice,FMoney,FHuiLv,FBBMoney,FKCBB,FFieldName:String; begin {if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; } 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); if Trim(DParameters2)='人民币' then begin FieldByName('HuiLv').Value:=1; end; Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select isnull(BBMoney,0) BBMoney from YF_Money_CR where YFID='''+cds_hz.fieldbyname('YFID').AsString+''''); Open; end; FKCBB:=ADOQueryTemp.fieldbyname('BBMoney').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'; FMoney:=Trim(CDS_HZ.fieldbyname('Money').AsString); if Trim(FMoney)='' then FMoney:='0'; FHuiLv:=Trim(CDS_HZ.fieldbyname('HuiLv').AsString); if Trim(FHuiLv)='' then FHuiLv:='0'; {FBBMoney:=Trim(CDS_HZ.fieldbyname('BBMoney').AsString); if Trim(FBBMoney)='' then FBBMoney:='0'; } if Trim(FFieldName)<>'Money' then begin if Trim(FFieldName)<>'HuiLv' then begin FBBMoney:=FloatToStr(StrToFloat(FQty)*StrToFloat(FPrice)*StrToFloat(FHuiLv)); FMoney:=FloatToStr(StrToFloat(FQty)*StrToFloat(FPrice)); end else begin FBBMoney:=FloatToStr(StrToFloat(FMoney)*StrToFloat(FHuiLv)); end; end else begin FBBMoney:=FloatToStr(StrToFloat(FMoney)*StrToFloat(FHuiLv)); end; with CDS_HZ do begin Edit; FieldByName('Money').Value:=StrToFloat(FMoney); FieldByName('BBMoney').Value:=StrToFloat(FBBMoney); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set '+FFieldName+'='+Trim(mvalue)); if Trim(FFieldName)<>'Money' then begin sql.Add(',Money='+FMoney); end; sql.Add(',BBMoney='+FBBMoney); 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 KCBBMoney=KCBBMoney-'+FKCBB+'+'+FBBMoney); sql.Add(' where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+''''); ExecSQL; end; end; procedure TfrmYSCRLZ.cxGridDBColumn1PropertiesEditValueChanged( Sender: TObject); var mvalue,FFieldName:String; begin {if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; } 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 TfrmYSCRLZ.ToolButton3Click(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='CustomerNoName'; flagname:='对方单位'; if Trim(DParameters4)='对方单位分开' then MainType:='收款'; if ShowModal=1 then begin with Self.CDS_HZ do begin Append; FieldByName('FactoryNo').Value:=Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString); FieldByName('FactoryName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); FieldByName('CRTime').Value:=SGetServerDate(ADOQueryTemp); if Trim(DParameters2)='人民币' then begin FieldByName('HuiLv').Value:=1; end; Post; end; Self.SaveData(); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmYSCRLZ.cxGridDBColumn3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='YFName'; flagname:='项目及摘要'; if Trim(DParameters3)='项目分开' then MainType:='收款'; if ShowModal=1 then begin with Self.CDS_HZ do begin Edit; FieldByName('YFCode').Value:=Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString); FieldByName('YFName').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set YFCode='''+Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)+''''); sql.Add(' ,YFName='''+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 TfrmYSCRLZ.cxGridDBColumn6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; 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 TfrmYSCRLZ.v2Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能更改!','提示',0); Exit; end; try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='BZType'; flagname:='币种'; if ShowModal=1 then begin Self.CDS_HZ.Edit; Self.CDS_HZ.FieldByName('BZType').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set BZType='''+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 TfrmYSCRLZ.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv2,ADOQueryMain,'应收款列表'); end; procedure TfrmYSCRLZ.v2Column7PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'' then begin Application.MessageBox('自动生成数据不能删除!','提示',0); Exit; end; try frmProductOrderNewList:=TfrmProductOrderNewList.Create(Application); with frmProductOrderNewList do begin DParameters1:='高权限'; //frmProductOrderList.v1Column4.Visible:=True; if ShowModal=1 then begin with Self.CDS_HZ do begin Edit; FieldByName('MainId').Value:=Trim(frmProductOrderNewList.Order_Main.fieldbyname('MainId').AsString); FieldByName('OrderNo').Value:=Trim(frmProductOrderNewList.Order_Main.fieldbyname('OrderNo').AsString); FieldByName('MPRTCodeName').Value:=Trim(frmProductOrderNewList.Order_Main.fieldbyname('MPRTCodeName').AsString); FieldByName('Filler').Value:=Trim(frmProductOrderNewList.Order_Main.fieldbyname('Filler').AsString); FieldByName('ComTaiTou').Value:=Trim(frmProductOrderNewList.Order_Main.fieldbyname('OrdDefStr2').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); sql.Add(' Set MainId='''+Trim(frmProductOrderNewList.Order_Main.fieldbyname('MainId').AsString)+''''); SQL.Add(',ComTaiTou='''+Trim(frmProductOrderNewList.Order_Main.fieldbyname('OrdDefStr2').AsString)+''''); //sql.Add(' ,SubId='''+Trim(frmProductOrderList.Order_Main.fieldbyname('SubId').AsString)+''''); SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; end; end; finally frmProductOrderNewList.Free; end; end; procedure TfrmYSCRLZ.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 TfrmYSCRLZ.v2Column2PropertiesEditValueChanged(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 TfrmYSCRLZ.v2KPMoneyPropertiesEditValueChanged(Sender: TObject); var mvalue,FBBMoney,FKCBB,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 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; FKCBB:=ADOQueryTemp.fieldbyname('KPMoney').AsString; FBBMoney:=CDS_HZ.fieldbyname('KPMoney').AsString; 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)+''''); SQL.Add('Update YF_Money_KC Set KCKPMoney=KCKPMoney-'+FKCBB+'+'+FBBMoney); sql.Add(' where CRID='''+Trim(CDS_HZ.fieldbyname('CRID').AsString)+''''); ExecSQL; end; end; procedure TfrmYSCRLZ.OrderNoChange(Sender: TObject); begin if Length(Trim(OrderNo.Text))<3 then Exit; ToolButton2.Click; end; function TfrmYSCRLZ.YSData(Order_Main10:TClientDataSet):Boolean; var CRID,YFID,Price,PriceUnit,OrderUnit,FFactoryName:String; CRTime:TDateTime; begin Result:=False; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 1* from CK_BanCP_CR where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin CRTime:=ADOQueryTemp.fieldbyname('CRTime').Value; end else begin Result:=False; Application.MessageBox('没有发货不能同步应收款!','提示',0); Exit; end; with ADOQueryTemp do begin close; SQL.Clear; sql.Add('select Case when isnull(CustomerNoName,'''')='''' then '); sql.Add(' OrderNo else CustomerNoName end as KHName from JYOrder_Main'); sql.Add(' where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); Open; end; FFactoryName:=Trim(ADOQueryTemp.fieldbyname('KHName').AsString); with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select Top 1 * from JYOrder_Sub Where Mainid='''+Trim(Order_Main10.fieldbyname('MainId').AsString)+''''); //sql.Add(' and PRTPrice>0'); Open; end; {Price:=ADOQueryTemp.fieldbyname('PRTPrice').AsString; if Trim(Price)='' then begin Price:='0'; end; } PriceUnit:=Trim(ADOQueryTemp.fieldbyname('PriceUnit').AsString); OrderUnit:=Trim(ADOQueryTemp.fieldbyname('OrderUnit').AsString); with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select * from YF_Money_KC where FactoryName='''+Trim(FFactoryName)+''''); Open; end; if ADOQueryTemp.IsEmpty=False then begin CRID:=ADOQueryTemp.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('FactoryName').Value:=Trim(FFactoryName); FieldByName('ZdyStr1').Value:='应收收'; Post; end; end; {with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where FactoryName='''+Trim(FFactoryName)+''''); sql.Add(' and YFTypeId='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); Open; end;} //if ADOQueryTemp.IsEmpty then begin {if GetLSNo(ADOQueryCmd,YFID,'CS','YF_Money_CR',3,1)=False then begin Application.MessageBox('取坯布应付最大号失败!','提示',0); Exit; end;} with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where YFID='''+Trim(CDS_HZ.fieldbyname('YFID').AsString)+''''); Open; end; with ADOQueryCmd do begin Edit; // FieldByName('YFID').Value:=Trim(YFID); FieldByName('YFTypeId').Value:=Trim(Order_Main10.fieldbyname('MainId').AsString); FieldByName('CRID').Value:=StrToInt(CRID); FieldByName('Filler').Value:=Trim(DName); FieldByName('CRType').Value:='应收款登记'; FieldByName('CRFlag').Value:='应收收'; FieldByName('QtyFlag').Value:=1; FieldByName('FactoryName').Value:=Trim(FFactoryName); FieldByName('CRTime').Value:=Trim(FormatDateTime('yyyy-MM-dd',CRTime)); FieldByName('YFType').Value:='自动生成'; FieldByName('Price').Value:=Order_Main10.fieldbyname('Price').Value; //FieldByName('HuiLv').Value:=1; FieldByName('BZType').Value:=Trim(PriceUnit); FieldByName('QtyUnit').Value:=Trim(OrderUnit); FieldByName('YFName').Value:='销售金额'; FieldByName('MainId').Value:=Trim(Order_Main10.fieldbyname('Mainid').AsString); Post; end; YFID:=Trim(CDS_HZ.fieldbyname('YFID').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR Set CRTime='''+Trim(FormatDateTime('yyyy-MM-dd',CRTime))+''''); SQL.Add(',BZType='''+Trim(PriceUnit)+''''); SQL.Add(',QtyUnit='''+Trim(OrderUnit)+''''); sql.Add(' where YFID='''+Trim(YFID)+''''); ExecSQL; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update YF_Money_CR Set Qty=(select isnull(Sum(Qty),0) from CK_BanCP_CR A '); sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); SQL.Add(' A.MainId=YF_Money_CR.YFTypeId and A.CRType=''正常出库'' and CPType=''正品'' '); SQL.Add(' and B.PRTPrice=YF_Money_CR.Price)'); sql.Add(',PS=(select isnull(count(*),0) from CK_BanCP_CR A '); sql.Add(' inner join JYOrder_Sub B on A.SubId=B.SubId where'); SQL.Add(' A.MainId=YF_Money_CR.YFTypeId and A.CRType=''正常出库'' and CPType=''正品'' '); SQL.Add(' and B.PRTPrice=YF_Money_CR.Price)'); sql.Add(' where YFTypeId='''+Trim(Order_Main10.fieldbyname('Mainid').AsString)+''''); sql.Add(' and Price='+Order_Main10.fieldbyname('Price').AsString); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CR Set Money=Price*Qty,BBMoney=Price*Qty*HuiLv'); sql.Add(' where YFID='''+Trim(YFID)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_KC Set KCMoney=(select isnull(Sum(Money*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(',KCBBMoney=(select isnull(Sum(BBMoney*QtyFlag),0) from YF_Money_CR A where A.CRID=YF_Money_KC.CRID)'); sql.Add(' where CRID='+CRID); ExecSQL; end; Result:=True; end; procedure TfrmYSCRLZ.ToolButton4Click(Sender: TObject); var FYFID:String; begin if Trim(CDS_HZ.fieldbyname('Price').AsString)='' then begin Application.MessageBox('单价不能为空!','提示',0); Exit; end; if Trim(CDS_HZ.fieldbyname('MainId').AsString)='' then begin Application.MessageBox('订单号不能为空!','提示',0); Exit; end; if Trim(CDS_HZ.fieldbyname('YFType').AsString)<>'自动生成' then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from YF_Money_CR where MainId='''+Trim(CDS_HZ.fieldbyname('MainId').AsString)+''''); sql.Add(' and YFTypeId='''+Trim(CDS_HZ.fieldbyname('MainId').AsString)+''''); sql.Add(' and CRType=''应收款登记'' '); SQL.Add(' and YFType=''自动生成'' '); sql.Add(' and Price='+CDS_HZ.fieldbyname('Price').AsString); Open; end; if ADOQueryTemp.IsEmpty=False then begin Application.MessageBox('当前数据存在自动生成的数据无需同步!','提示',0); Exit; end; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Sub where Mainid='''+Trim(CDS_HZ.fieldbyname('MainId').AsString)+''''); sql.Add(' and PRTPrice='+CDS_HZ.fieldbyname('Price').AsString); Open; end; if ADOQueryTemp.IsEmpty then begin Application.MessageBox('生产指示单没有相对应的价格不能同步!','提示',0); Exit; end; if Application.MessageBox('确定要同步数据吗?','提示',32+4)<>IDYES then Exit; FYFID:=Trim(CDS_HZ.fieldbyname('YFID').AsString); try ADOQueryCmd.Connection.BeginTrans; if YSData(CDS_HZ)=false then begin ADOQueryCmd.Connection.RollbackTrans; //Application.MessageBox('同步失败!','提示',0); Exit; end; ADOQueryCmd.Connection.CommitTrans; Application.MessageBox('同步成功!','提示',0); TBRafresh.Click; ToolButton2.Click; //FactoryName.SetFocus; CDS_HZ.Locate('YFID',FYFID,[]); except ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('同步失败!','提示',0); end; end; procedure TfrmYSCRLZ.v2Column7PropertiesEditValueChanged(Sender: TObject); var FFieldName:String; mvalue:Boolean; begin //mvalue:=TcxTextEdit(Sender).EditingText; mvalue:=TcxCheckBox(Sender).EditingValue; FFieldName:=Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; if mvalue=True then FieldByName('YFDefFlag1').Value:=1 else FieldByName('YFDefFlag1').Value:=0; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate YF_Money_CR '); if mvalue=True then begin sql.Add(' Set YFDefFlag1=1'); end else begin sql.Add(' Set YFDefFlag1=0'); end; SQL.Add(',Editer='''+Trim(DName)+''''); SQL.Add(',Edittime=getdate() '); SQL.Add(' where YFId='''+Trim(CDS_HZ.fieldbyname('YFId').AsString)+''''); ExecSQL; end; end; procedure TfrmYSCRLZ.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Length(Trim(OrderNo.Text))<4 then Exit; ToolBar1.SetFocus; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; sql.Add(' select C.Filler,A.*,C.OrderNo,C.MPRTCodeName '); sql.Add(',PIPayMent=(select Top 1 PayMent from JYOrderCon_Main AA where AA.ConNo=C.OrderNo) '); sql.Add(' from YF_Money_CR A'); sql.Add(' inner join YF_Money_KC B on A.CRID=B.CRID'); SQL.Add(' left join JYOrder_Main C on A.MainId=C.MainId'); sql.Add('where C.orderNo like '''+'%'+Trim(OrderNo.Text)+'%'+''''); sql.Add('and A.CRType=''应收款登记'''); Open; end; SCreateCDS20(ADOQueryMain,CDS_HZ); SInitCDSData20(ADOQueryMain,CDS_HZ); finally ADOQueryMain.EnableControls; end; end; end; end.