unit U_YFCRMXList; 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 TfrmYFCRMXList = 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; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; cxTabControl1: TcxTabControl; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; CDS_YFS: TClientDataSet; DS_YFS: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; chk1: TCheckBox; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column3: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1P_Spec: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Qty: TcxGridDBColumn; v1QtyUnit: TcxGridDBColumn; v1Price: TcxGridDBColumn; v1Money: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; v1note: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; Tv1Column2: TcxGridDBColumn; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; ComboBox1: TComboBox; Label2: TLabel; CPCode: TEdit; CheckBox2: TCheckBox; YWY: TEdit; Label5: TLabel; Label7: TLabel; CPGANGNO: TEdit; CPColor: TEdit; ToolButton3: TToolButton; Tv1Column10: TcxGridDBColumn; ToolButton4: TToolButton; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Label4: TLabel; CPBatchNO: TEdit; 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 ComboBox1Change(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure v1PricePropertiesEditValueChanged(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Tv1Column1PropertiesEditValueChanged(Sender: TObject); procedure v1MoneyPropertiesEditValueChanged(Sender: TObject); procedure ToolButton4Click(Sender: TObject); private { Private declarations } procedure InitGrid(); procedure SetStatus(); public { Public declarations } FCYID: string; fmanage: string; end; var frmYFCRMXList: TfrmYFCRMXList; implementation uses U_DataLink, U_Fun, U_SXCKNewList, U_YSSCList, U_YsScXsList, U_YSKInput, U_XXFPHXList; {$R *.dfm} procedure TfrmYFCRMXList.SetStatus(); begin end; procedure TfrmYFCRMXList.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 A.CRTime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); // sql.Add(' and CRTime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' '); sql.Add(' where A.CRType=''应付款登记'' '); 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) + ''' '); 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) + ''' '); end; 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 TfrmYFCRMXList.FormDestroy(Sender: TObject); begin frmYFCRMXList := nil; end; procedure TfrmYFCRMXList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYFCRMXList.TBCloseClick(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '财务管理'); Close; end; procedure TfrmYFCRMXList.FormShow(Sender: TObject); var fsj: string; begin ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '财务管理'); Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime - 3; SetStatus(); InitGrid(); end; procedure TfrmYFCRMXList.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYFCRMXList.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 TfrmYFCRMXList.FactoryNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYFCRMXList.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 TfrmYFCRMXList.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1, ADOQueryMain, '应收款列表'); end; procedure TfrmYFCRMXList.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmYFCRMXList.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 TfrmYFCRMXList.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 TfrmYFCRMXList.YFGSTypeChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYFCRMXList.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 TfrmYFCRMXList.chk1Click(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYFCRMXList.ComboBox1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmYFCRMXList.CheckBox2Click(Sender: TObject); begin if CheckBox2.Checked then CPCode.Tag := 1 else CPCode.Tag := 2; ToolButton2.Click; end; procedure TfrmYFCRMXList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYFCRMXList.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(XGFEE,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 TfrmYFCRMXList.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(xgfee,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 TfrmYFCRMXList.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(XGFEE,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('XGFEE').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); end; procedure TfrmYFCRMXList.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(XGFEE,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; procedure TfrmYFCRMXList.ToolButton4Click(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('xgfee').AsString; if Application.MessageBox(PChar('确定要将选中小缸费设为<' + CDS_YFS.FieldByName('xgfee').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 xgfee=' + (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(xgfee,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('XGFEE').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; end; Next; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); EnableControls; end; end; end.