unit U_YSCRMXList; 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, cxPC, cxDropDownEdit, Menus, cxLookAndFeels, cxLookAndFeelPainters, dxBarBuiltInMenu, cxNavigator, cxCurrencyEdit; type TfrmYSCRMXList = class(TForm) ToolBar1: TToolBar; TBRafresh: 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; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; cxTabControl1: TcxTabControl; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; CDS_YFS: TClientDataSet; DS_YFS: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; chk1: TCheckBox; CPCode: TEdit; CheckBox1: TCheckBox; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column5: TcxGridDBColumn; v1P_Spec: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1Price: TcxGridDBColumn; v1Money: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; v1note: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Label4: TLabel; YWY: TEdit; ComboBox1: TComboBox; Tv1Column9: TcxGridDBColumn; Label5: TLabel; YFPZNO: TEdit; ToolButton3: TToolButton; Tv1Column10: TcxGridDBColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure YFGSTypeChange(Sender: TObject); procedure Tv1DblClick(Sender: TObject); procedure chk1Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure v1PricePropertiesEditValueChanged(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Tv1Column1PropertiesEditValueChanged(Sender: TObject); procedure Tv1Column2PropertiesEditValueChanged(Sender: TObject); procedure v1MoneyPropertiesEditValueChanged(Sender: TObject); private { Private declarations } procedure InitGrid(); procedure SetStatus(); public { Public declarations } FCYID: string; fmanage: string; end; var frmYSCRMXList: TfrmYSCRMXList; implementation uses U_DataLink, U_Fun, U_SXCKNewList, U_YSSCList, U_YsScXsList, U_YSKInput, U_XXFPHXList; {$R *.dfm} procedure TfrmYSCRMXList.SetStatus(); begin end; procedure TfrmYSCRMXList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' select A.*,B.* from YF_Money_CR A'); sql.Add(' inner join YF_Money_CR_SUB B on A.yfid=B.yfid'); sql.Add('where 1=1'); // sql.Add(' where A.CRTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); // sql.Add(' and CRTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' '); sql.Add(' and A.CRType=''应收款登记'' '); // sql.Add(' and A.CRTime>=''' + FormatDateTime('2022-08-01', begdate.DateTime) + ''' '); if cxTabControl1.TabIndex <> 0 then begin if ComboBox1.Text = '制单日期' then begin sql.Add(' and A.CRTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); sql.Add(' and CRTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' '); sql.Add('and (CRTime>=''2022-08-02'' '); sql.Add('or (ChkTime>=''2022-08-02'' and CRTime<''2022-08-02'' )'); sql.Add(')'); end else begin sql.Add(' and A.ChkTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); sql.Add(' and ChkTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' '); sql.Add(' and ChkTime>=''2022-08-02'' '); end; end; if chk1.Checked then begin sql.Add(' and B.Price=0 '); end; if cxTabControl1.TabIndex < 2 then sql.Add(' and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' '); Open; end; SCreateCDS20(ADOQueryMain, CDS_YFS); SInitCDSData20(ADOQueryMain, CDS_YFS); finally ADOQueryMain.EnableControls; ToolButton2.Click; end; end; procedure TfrmYSCRMXList.FormDestroy(Sender: TObject); begin frmYSCRMXList := nil; end; procedure TfrmYSCRMXList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYSCRMXList.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '财务管理'); Close; end; procedure TfrmYSCRMXList.FormShow(Sender: TObject); var fsj: string; begin ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '财务管理'); Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime - 7; SetStatus(); InitGrid(); end; procedure TfrmYSCRMXList.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYSCRMXList.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_YFS); SInitCDSData20(ADOQueryMain, CDS_YFS); end; end; procedure TfrmYSCRMXList.FactoryNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSCRMXList.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; procedure TfrmYSCRMXList.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1, ADOQueryMain, '应收款列表'); end; procedure TfrmYSCRMXList.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmYSCRMXList.N1Click(Sender: TObject); begin if CDS_YFS.IsEmpty then exit; with CDS_YFS do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value := TRUE; post; next; end; First; EnableControls; end; end; procedure TfrmYSCRMXList.N2Click(Sender: TObject); begin if CDS_YFS.IsEmpty then exit; with CDS_YFS do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value := FALSE; post; next; end; First; EnableControls; end; end; procedure TfrmYSCRMXList.YFGSTypeChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSCRMXList.Tv1DblClick(Sender: TObject); begin frmXXFPHXList := TfrmXXFPHXList.create(self); with frmXXFPHXList do begin FTONO := TRIM(CDS_YFS.Fieldbyname('YFSID').AsString); FFromNo := ''; if showmodal = 1 then begin end; free; end; end; procedure TfrmYSCRMXList.chk1Click(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYSCRMXList.CheckBox1Click(Sender: TObject); begin if CheckBox1.Checked then CPCode.Tag := 1 else CPCode.Tag := 2; ToolButton2.Click; end; procedure TfrmYSCRMXList.ComboBox1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmYSCRMXList.v1PricePropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_YFS do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YF_Money_CR_Sub set ' + FFieldName + '=' + (Trim(mvalue))); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR_Sub set '); sql.Add('MXMONEY=ISNULL(bgfee,0)+ISNULL(LSFEE,0)+ISNULL(PRICE,0)*QTY'); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR set '); sql.Add('MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add(',BBMONEY=HUILV*(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add('where YFID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('单价修改'))); sql.Add(',' + quotedstr(trim('财务子ID:' + trim(CDS_YFS.FieldByName('YFSID').AsString) + '修改原单价为:' + trim(CDS_YFS.FieldByName('price').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); end; procedure TfrmYSCRMXList.ToolButton3Click(Sender: TObject); var FValue, FFValue, FColumn, FFColumn: string; begin if CDS_YFS.IsEmpty then Exit; if CDS_YFS.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; FValue := CDS_YFS.FieldByName('PRICE').AsString; if Application.MessageBox(PChar('确定要将选中单价设为<' + CDS_YFS.FieldByName('PRICE').AsString + '>吗?'), '提示', 1) = 2 then exit; with CDS_YFS do begin DisableControls; First; while not Eof do begin if Fieldbyname('ssel').AsBoolean then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YF_Money_CR_Sub set price=' + (Trim(FValue))); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR_Sub set '); sql.Add('MXMONEY=ISNULL(bgfee,0)+ISNULL(LSFEE,0)+ISNULL(PRICE,0)*QTY'); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR set '); sql.Add('MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add(',BBMONEY=HUILV*(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add('where YFID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('单价修改'))); sql.Add(',' + quotedstr(trim('财务子ID:' + trim(CDS_YFS.FieldByName('YFSID').AsString) + '修改原单价为:' + trim(CDS_YFS.FieldByName('price').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; end; Next; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); EnableControls; end; end; procedure TfrmYSCRMXList.Tv1Column1PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_YFS do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YF_Money_CR_Sub set ' + FFieldName + '=' + (Trim(mvalue))); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR_Sub set '); sql.Add('MXMONEY=ISNULL(bgfee,0)+ISNULL(LSFEE,0)+ISNULL(PRICE,0)*QTY'); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR set '); sql.Add('MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add(',BBMONEY=HUILV*(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add('where YFID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('包缸费修改'))); sql.Add(',' + quotedstr(trim('财务子ID:' + trim(CDS_YFS.FieldByName('YFSID').AsString) + '修改原包缸费为:' + trim(CDS_YFS.FieldByName('BGFEE').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); end; procedure TfrmYSCRMXList.Tv1Column2PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_YFS do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YF_Money_CR_Sub set ' + FFieldName + '=' + (Trim(mvalue))); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR_Sub set '); sql.Add('MXMONEY=ISNULL(bgfee,0)+ISNULL(LSFEE,0)+ISNULL(PRICE,0)*QTY'); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR set '); sql.Add('MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add(',BBMONEY=HUILV*(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add('where YFID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('捞色费修改'))); sql.Add(',' + quotedstr(trim('财务子ID:' + trim(CDS_YFS.FieldByName('YFSID').AsString) + '修改原捞色费为:' + trim(CDS_YFS.FieldByName('LSFEE').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); end; procedure TfrmYSCRMXList.v1MoneyPropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_YFS do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YF_Money_CR_Sub set ' + FFieldName + '=' + (Trim(mvalue))); sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); // sql.Add('update YF_Money_CR_Sub set '); // sql.Add('MXMONEY=ISNULL(bgfee,0)+ISNULL(LSFEE,0)+ISNULL(PRICE,0)*QTY'); // sql.Add('where YFSID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR set '); sql.Add('MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add(',BBMONEY=HUILV*(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID GROUP BY YFID) '); sql.Add('where YFID=' + quotedstr(Trim(CDS_YFS.fieldbyname('YFID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('金额修改'))); sql.Add(',' + quotedstr(trim('财务子ID:' + trim(CDS_YFS.FieldByName('YFSID').AsString) + '修改原金额为:' + trim(CDS_YFS.FieldByName('mxmoney').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); end; end.