unit U_YSCRSEL2; 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, MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu; type TfrmYSCRSEL2 = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; v2Column6: TcxGridDBColumn; v2Column5: TcxGridDBColumn; cxTabControl1: TcxTabControl; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; CDS_YFS: TClientDataSet; DS_YFS: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; v2Column1: TcxGridDBColumn; Label5: TLabel; CPName: TEdit; Label7: TLabel; sktt: TEdit; v2Column11: TcxGridDBColumn; v2Column12: TcxGridDBColumn; v2Column13: TcxGridDBColumn; v2Column16: TcxGridDBColumn; v2Column17: TcxGridDBColumn; v2Column19: TcxGridDBColumn; v2Column20: TcxGridDBColumn; v2Column21: TcxGridDBColumn; v2Column22: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column4: TcxGridDBColumn; FactoryName: TComboBox; Label1: TLabel; MXORDERNO: TEdit; Tv2Column1: TcxGridDBColumn; Tv2Column2: TcxGridDBColumn; ToolButton1: TToolButton; Tv2Column3: TcxGridDBColumn; 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 ToolButton1Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure TchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure YFGSTypeChange(Sender: TObject); procedure v2Column7PropertiesEditValueChanged(Sender: TObject); procedure v2Column8PropertiesEditValueChanged(Sender: TObject); procedure v2Column19PropertiesEditValueChanged(Sender: TObject); procedure v2Column21PropertiesEditValueChanged(Sender: TObject); procedure kkreasonKeyPress(Sender: TObject; var Key: Char); procedure begdateChange(Sender: TObject); private { Private declarations } procedure InitGrid(); public { Public declarations } FCYID: string; fmanage: string; end; var frmYSCRSEL2: TfrmYSCRSEL2; implementation uses U_DataLink, U_Fun; {$R *.dfm} procedure TfrmYSCRSEL2.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' select a.*,b.*,MXMONEYX=(ISNULL(B.QTY,0)*ISNULL(B.PRICE,0)) '); SQL.Add(',MXMONEYZ=(ISNULL(B.QTY,0)*ISNULL(B.PRICE,0)+isnull(B.xiaogangfei,0)+isnull(B.shangjifei,0))'); SQL.ADD(' ,sktt=(SELECT SELLNAME FROM SalesContract_Main'); SQL.Add(' WHERE ConNo=(SELECT ConNo FROM JYOrder_Main WHERE OrderNo=B.MXOrderNo) ) '); //SQL.Add(',CKDATE=(SELECT CRTIME FROM CK_SXPB_CR E WHERE E.SPID=B.YFPZNO )'); sql.Add('from YF_Money_CR A inner join YF_Money_CR_sub B ON A.YFID=B.YFID'); // sql.Add('left join CK_SXPB_CR E on E.SPID=B.YFPZNO'); sql.Add(' where b.dzdate>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); sql.Add(' and b.dzdate<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1) + ''' '); sql.Add(' and A.CRType=''应收款登记'' '); sql.Add(' and b.DZFLAG=1 '); sql.Add(' and a.STATUS=1 '); if cxTabControl1.TabIndex = 0 then SQL.Add(' and not exists(select DZDNO from FD_InvoiceSub X where X.DZDNO=B.YFSID ) ') else SQL.Add(' and exists(select DZDNO from FD_InvoiceSub X where X.DZDNO=B.YFSID)'); // if cxTabControl1.TabIndex < 2 then // sql.Add(' and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' '); SQL.Add('ORDER BY DZDATE'); // ShowMessage(sql.Text); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; end; end; procedure TfrmYSCRSEL2.FormDestroy(Sender: TObject); begin frmYSCRSEL2 := nil; end; procedure TfrmYSCRSEL2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYSCRSEL2.TBCloseClick(Sender: TObject); begin // WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '财务管理'); WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '财务管理667'); Close; end; procedure TfrmYSCRSEL2.TBDelClick(Sender: TObject); var FBBMoney, CRID: string; begin if CDS_HZ.IsEmpty then Exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin if Fieldbyname('kxtype').AsString = '扣款' then begin with ADOQueryCmd do begin close; sql.Clear; // sql.Add('delete YF_Money_CR where YFID=' + Quotedstr(Trim(CDS_HZ.fieldbyname('YFID').AsString))); sql.Add('delete YF_Money_CR_Sub where YFSID=''' + Trim(CDS_HZ.fieldbyname('YFSID').AsString) + ''''); sql.Add('UPDATE YF_MONEY_CR SET Money=(SELECT SUM(MXMONEY) FROM YF_Money_CR_sub a where a.yfid=YF_MONEY_CR.yfid)'); sql.Add(',bbmoney=(SELECT SUM(MXMONEY) FROM YF_Money_CR_sub a where a.yfid=YF_MONEY_CR.yfid)'); SQL.Add('where yfid=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + ''''); execsql; end; end else begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('delete YF_Money_CR where YFID=''' + Trim(CDS_HZ.fieldbyname('YFID').AsString) + ''''); sql.Add('delete YF_Money_CR_Sub where YFID=''' + Trim(CDS_HZ.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('单号:' + trim(CDS_HZ.FieldByName('YFPZNO').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; end; end; next; end; First; EnableControls; end; InitGrid(); ADOQueryCmd.Connection.CommitTrans; except CDS_HZ.EnableControls; ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYSCRSEL2.FormShow(Sender: TObject); var fsj: string; begin // ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '财务管理'); ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '财务管理667'); Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime; // fsj := 'select distinct(YFGSType) name from YF_Money_CR where CRType=''应收款登记'' '; // SInitComBoxBySql(ADOQueryCmd, YFGSType, False, fsj); fsj := 'select distinct(FactoryName) Name from YF_Money_CR where CRType=''应收款登记'' order by FactoryName '; SInitComBoxBySql(ADOQueryCmd, FactoryName, False, fsj); InitGrid(); end; procedure TfrmYSCRSEL2.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYSCRSEL2.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 TfrmYSCRSEL2.FactoryNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSCRSEL2.ToolButton1Click(Sender: TObject); begin ModalResult := 1; end; procedure TfrmYSCRSEL2.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmYSCRSEL2.FormCreate(Sender: TObject); begin cxGrid2.Align := alclient; end; procedure TfrmYSCRSEL2.TchkClick(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ 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 SET status=''1'' '); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); execsql; end; end; next; end; First; EnableControls; end; InitGrid(); ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYSCRSEL2.TnochkClick(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin DisableControls; First; while not eof do begin if Fieldbyname('ssel').AsBoolean then begin if Fieldbyname('HZFPHX').AsFloat > 0 then begin ADOQueryCmd.Connection.RollbackTrans; EnableControls; application.MessageBox('不能撤销已核销数据!', '提示信息', 0); exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YF_Money_CR SET status=''0'' '); sql.Add('where YFID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFID').AsString))); execsql; end; end; next; end; First; EnableControls; end; InitGrid(); ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYSCRSEL2.N1Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; with CDS_HZ do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value := TRUE; post; next; end; First; EnableControls; end; end; procedure TfrmYSCRSEL2.N2Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; with CDS_HZ do begin DisableControls; first; while not eof do begin edit; fieldbyname('ssel').Value := FALSE; post; next; end; First; EnableControls; end; end; procedure TfrmYSCRSEL2.Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select * from YF_Money_CR_SUB A'); sql.Add('where YFID=' + Quotedstr(Trim(CDS_HZ.fieldbyname('YFID').AsString))); Open; end; SCreateCDS20(ADOQueryTemp, CDS_YFS); SInitCDSData20(ADOQueryTemp, CDS_YFS); end; procedure TfrmYSCRSEL2.YFGSTypeChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYSCRSEL2.v2Column7PropertiesEditValueChanged(Sender: TObject); var mvalues, FFieldName: string; begin mvalues := TCXTextEdit(Sender).Text; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); if mvalues = '' then begin mvalues := ''; end; with CDS_HZ do begin edit; fieldbyname(FFieldName).Value := mvalues; post; end; // tv2.Controller.EditingController.ShowEdit(); // if trim(mvalues) <> '' then // begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CR_Sub set KKREASON=' + QuotedStr((mvalues)) + ' '); sql.Add(' where YFSID=''' + Trim((CDS_HZ.fieldbyname('yfsid').AsString)) + ''''); ExecSQL; end; with CDS_HZ do begin Edit; CDS_HZ.fieldbyname('KKREASON').AsString := Trim(mvalues); end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmYSCRSEL2.v2Column8PropertiesEditValueChanged(Sender: TObject); var mvalues, FFieldName: string; begin mvalues := TCXTextEdit(Sender).Text; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); if mvalues = '' then begin mvalues := '0'; end; with CDS_HZ do begin edit; fieldbyname(FFieldName).Value := mvalues; post; end; tv2.Controller.EditingController.ShowEdit(); // if trim(mvalues) <> '' then // begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CR_Sub set '); sql.Add('KKMONEY=' + Trim(mvalues)); sql.Add(' where YFSID=''' + Trim(CDS_HZ.fieldbyname('yfsid').AsString) + ''''); sql.Add('Update YF_Money_CR_Sub set MXMONEY=(ISNULL(QTY,0)*ISNULL(PRICE,0)+isnull(xiaogangfei,0)+isnull(shangjifei,0))-KKMONEY'); sql.Add(' where YFSID=''' + Trim(CDS_HZ.fieldbyname('yfsid').AsString) + ''''); sql.Add('Update YF_Money_CR set MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID group by yfid)'); sql.Add(' ,BBMONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID group by yfid)'); sql.Add(' where YFID=''' + Trim(CDS_HZ.fieldbyname('yfid').AsString) + ''''); ExecSQL; end; with CDS_HZ do begin Edit; CDS_HZ.fieldbyname('KKMONEY').value := Trim(mvalues); CDS_HZ.fieldbyname('MXMONEY').value := StrToFloatDef(CDS_HZ.fieldbyname('MXMONEYZ').value, 0) - StrToFloatDef(mvalues, 0); end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmYSCRSEL2.v2Column19PropertiesEditValueChanged(Sender: TObject); var mvalues, FFieldName: string; begin mvalues := TCXTextEdit(Sender).Text; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); if mvalues = '' then begin mvalues := '0'; end; with CDS_HZ do begin edit; fieldbyname(FFieldName).Value := mvalues; post; end; tv2.Controller.EditingController.ShowEdit(); // if trim(mvalues) <> '' then // begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CR_Sub '); SQL.Add(' Set ' + FFieldName + '=' + Trim(mvalues)); sql.Add(' where YFSID=''' + Trim(CDS_HZ.fieldbyname('yfsid').AsString) + ''''); sql.Add('Update YF_Money_CR_Sub set MXMONEY=(ISNULL(QTY,0)*ISNULL(PRICE,0)+isnull(xiaogangfei,0)+isnull(shangjifei,0))-KKMONEY'); sql.Add(' where YFSID=''' + Trim(CDS_HZ.fieldbyname('yfsid').AsString) + ''''); sql.Add('Update YF_Money_CR set MONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID group by yfid)'); sql.Add(' ,BBMONEY=(SELECT SUM(MXMONEY) FROM YF_Money_CR_Sub A WHERE A.YFID=YF_Money_CR.YFID group by yfid)'); sql.Add(' where YFID=''' + Trim(CDS_HZ.fieldbyname('yfid').AsString) + ''''); ExecSQL; end; tv2.Controller.EditingController.ShowEdit(); with CDS_HZ do begin Edit; // CDS_HZ.fieldbyname('KKMONEY').value := Trim(mvalues); CDS_HZ.fieldbyname('MXMONEYX').value := StrToFloatDef(CDS_HZ.fieldbyname('qty').asstring, 0) * StrToFloatDef(CDS_HZ.fieldbyname('price').asstring, 0); CDS_HZ.fieldbyname('MXMONEYZ').value := StrToFloatDef(CDS_HZ.fieldbyname('qty').asstring, 0) * StrToFloatDef(CDS_HZ.fieldbyname('price').asstring, 0) + StrToFloatDef(CDS_HZ.fieldbyname('xiaogangfei').asstring, 0) + StrToFloatDef(CDS_HZ.fieldbyname('shangjifei').asstring, 0); CDS_HZ.fieldbyname('MXMONEY').value := StrToFloatDef(CDS_HZ.fieldbyname('qty').asstring, 0) * StrToFloatDef(CDS_HZ.fieldbyname('price').asstring, 0) + StrToFloatDef(CDS_HZ.fieldbyname('xiaogangfei').asstring, 0) + StrToFloatDef(CDS_HZ.fieldbyname('shangjifei').asstring, 0) - StrToFloatDef(CDS_HZ.fieldbyname('kkmoney').asstring, 0); end; end; procedure TfrmYSCRSEL2.v2Column21PropertiesEditValueChanged(Sender: TObject); var mvalues, FFieldName: string; begin mvalues := TCXTextEdit(Sender).Text; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); if mvalues = '' then begin mvalues := '0'; end; with CDS_HZ do begin edit; fieldbyname(FFieldName).Value := mvalues; post; end; tv2.Controller.EditingController.ShowEdit(); // if trim(mvalues) <> '' then // begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update YF_Money_CR_Sub '); SQL.Add(' Set ' + FFieldName + '=' + QuotedStr((mvalues))); sql.Add(' where YFSID=''' + Trim(CDS_HZ.fieldbyname('yfsid').AsString) + ''''); ExecSQL; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmYSCRSEL2.kkreasonKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin Key := #0; SelectNext(ActiveControl as TWinControl, True, True); end; end; procedure TfrmYSCRSEL2.begdateChange(Sender: TObject); begin Enddate.DateTime := begdate.DateTime; cpname.SetFocus(); InitGrid(); end; end.