unit U_YFMXlist; 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, RM_e_Xls, cxGridBandedTableView, cxGridDBBandedTableView, BtnEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, MovePanel, Menus, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter; type TfrmYFMXlist = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; Label1: TLabel; MPRTCodeName: TEdit; ADOQueryMain: TADOQuery; ToolButton1: TToolButton; Label3: TLabel; OrderNo: TEdit; cxGrid2: TcxGrid; cxGridLevel1: TcxGridLevel; Label2: TLabel; Label6: TLabel; begdate: TDateTimePicker; Enddate: TDateTimePicker; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; Label4: TLabel; OrdDefNote3: TComboBox; Label5: TLabel; ToolButton3: TToolButton; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; ADOQueryPrint: TADOQuery; Panetime: TPanel; TV1: TcxGridDBBandedTableView; V1Column1: TcxGridDBBandedColumn; V1Column2: TcxGridDBBandedColumn; V1Column4: TcxGridDBBandedColumn; V1Column5: TcxGridDBBandedColumn; V1Column6: TcxGridDBBandedColumn; V1Column7: TcxGridDBBandedColumn; V1Column8: TcxGridDBBandedColumn; V1Column9: TcxGridDBBandedColumn; V1Column12: TcxGridDBBandedColumn; V1Column15: TcxGridDBBandedColumn; V1Column3: TcxGridDBBandedColumn; factoryName: TBtnEditA; V1Column10: TcxGridDBBandedColumn; V1Column11: TcxGridDBBandedColumn; V1Column13: TcxGridDBBandedColumn; V1Column14: TcxGridDBBandedColumn; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; Label7: TLabel; YFGSType: TComboBox; cxTabControl1: TcxTabControl; Label8: TLabel; ishs: TComboBox; V1Column16: TcxGridDBBandedColumn; V1Column17: TcxGridDBBandedColumn; V1Column18: TcxGridDBBandedColumn; V1Column19: TcxGridDBBandedColumn; V1Column20: TcxGridDBBandedColumn; V1Column21: TcxGridDBBandedColumn; V1Column22: TcxGridDBBandedColumn; ToolButton4: TToolButton; ToolButton5: TToolButton; TV1Column1: TcxGridDBBandedColumn; MXORDERNO: TEdit; lbl1: TLabel; TV1Column2: TcxGridDBBandedColumn; ToolButton6: TToolButton; ToolButton7: TToolButton; MovePanel1: TMovePanel; Label9: TLabel; dzdate: TDateTimePicker; Button1: TButton; Button2: TButton; TV1Column3: TcxGridDBBandedColumn; TV1Column4: TcxGridDBBandedColumn; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; TV1Column5: TcxGridDBBandedColumn; ComboBox1: TComboBox; TV1Column6: TcxGridDBBandedColumn; TV1Column7: TcxGridDBBandedColumn; Label10: TLabel; gangno: 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 P_OrderNo_YSK(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure factoryNameBtnClick(Sender: TObject); procedure V1Column9CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); procedure TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure YFGSTypeChange(Sender: TObject); procedure V1Column8PropertiesEditValueChanged(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure MXORDERNOChange(Sender: TObject); procedure V1Column14PropertiesEditValueChanged(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ToolButton7Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); private { Private declarations } procedure InitGrid(); public { Public declarations } RKFlag, FCYID: string; fType: string; canshu1: string; end; var frmYFMXlist: TfrmYFMXlist; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_ProductOrderNewList, U_ZdyAttachGYS; {$R *.dfm} procedure TfrmYFMXlist.InitGrid(); begin if trim(factoryName.Text) = '' then begin application.MessageBox('请输入供应商,以便提高查询速度!', '提示信息', MB_ICONERROR); exit; end; screen.Cursor := crsqlwait; Panetime.Visible := true; Panetime.Left := (Width - Panetime.Width) div 2; Panetime.top := (Height - Panetime.Height - 200) div 2; application.ProcessMessages; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; Filtered := False; if CANSHU1 = '查询' then begin sql.Add(' exec P_YFFK_List_mx_dqx '); end else begin sql.Add(' exec P_YFFK_List_mx '); end; sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime)))); sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1)))); sql.Add(',@factoryName=' + quotedstr(Trim(factoryName.Text))); case cxTabControl1.TabIndex of 0: begin sql.Add(',@flag=''全部'' '); end; 1: begin sql.Add(',@flag=''0'' '); end; 2: begin sql.Add(',@flag=''1'' '); end; end; sql.Add(',@YFGSType=' + quotedstr(Trim(YFGSType.Text))); sql.Add(',@ISHS=' + quotedstr(Trim(ISHS.Text))); if CANSHU1 = '查询' then begin sql.Add(',@dname=' + quotedstr(Trim(DName))); end; // ShowMessage(SQL.Text); Open; end; SCreateCDS20(ADOQueryMain, CDS_HZ); SInitCDSData20(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; ToolButton2.Click; Panetime.Visible := false; screen.Cursor := crdefault; end; end; procedure TfrmYFMXlist.FormDestroy(Sender: TObject); begin frmYFMXlist := nil; end; procedure TfrmYFMXlist.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYFMXlist.TBCloseClick(Sender: TObject); begin WriteCxBandedGrid(trim(self.Caption), Tv1, '财务管理'); Close; end; procedure TfrmYFMXlist.FormShow(Sender: TObject); begin readCxBandedGrid(trim(self.Caption), Tv1, '财务管理'); end; procedure TfrmYFMXlist.TBRafreshClick(Sender: TObject); begin begdate.SetFocus; InitGrid(); end; procedure TfrmYFMXlist.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 TfrmYFMXlist.P_OrderNo_YSK(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYFMXlist.ToolButton1Click(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel(self.Caption, cxgrid2); end; procedure TfrmYFMXlist.OrderNoChange(Sender: TObject); begin if Length(Trim(OrderNo.Text)) < 3 then Exit; ToolButton2.Click; end; procedure TfrmYFMXlist.FormCreate(Sender: TObject); var fsj: string; begin cxGrid2.Align := AlClient; Enddate.DateTime := SGetServerDate(ADOQueryTemp); begdate.DateTime := Enddate.DateTime; fsj := 'select distinct(YFGSType) name from YF_Money_CR where CRType=''应付款登记'' '; SInitComBoxBySql(ADOQueryCmd, YFGSType, False, fsj); end; procedure TfrmYFMXlist.ToolButton3Click(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; wsql, wsql2: string; FMAINID: string; begin // if CDS_HZ.IsEmpty then // exit; // try // // filepath := ExtractFilePath(Application.ExeName) + 'report\应收款对账单.rmf'; // // if not FileExists(Pchar(filepath)) then // begin // application.MessageBox(pchar('文件[' + filepath + ']不存在!'), '提示信息', MB_IConError); // exit; // end; // // RmVariables['begDate'] := FormatDateTime('yyyy-mm-dd', begDate.Date); // RmVariables['enddate'] := FormatDateTime('yyyy-mm-dd', enddate.Date); // RmVariables['ishs'] := Trim(ishs.Text); // RMVariables['zdr'] := trim(DName); // RmVariables['begDate'] := FormatDateTime('yymmdd', begDate.Date) + '-' + FormatDateTime('yymmdd', enddate.Date); // // RMGridReport1.LoadFromFile(filepath); // // RMGridReport1.PrintReport; // RMGridReport1.ShowReport; // // finally // // end; if CDS_HZ.IsEmpty then Exit; //if Trim(CDS_Main.fieldbyname('CRType').AsString)<>'检验出库' then Exit; if CDS_HZ.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; ExportFtErpFile('应付款对账单.rmf', ADOQueryTemp); fPrintFile := ExtractFilePath(Application.ExeName) + 'report\应付款对账单.rmf'; with CDS_HZ do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete TBSubID where DName=''' + Trim(DCode) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('SELECT * FROM TBSubID where 1=2 '); open; end; CDS_HZ.DisableControls; try ADOQueryCmd.Connection.BeginTrans; with CDS_HZ do begin First; while not Eof do begin if Fieldbyname('Ssel').AsBoolean then begin ADOQueryCmd.append; ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_HZ.fieldbyname('YFSID').AsString); ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode); ADOQueryCmd.post; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; end; CDS_HZ.EnableControls; with ADOQueryPrint do begin Close; sql.Clear; sql.Add(' exec P_PRINT_YFFK_List_mx '); sql.Add(' @begdate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', begdate.DateTime)))); sql.Add(',@Enddate=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 1)))); sql.Add(',@factoryName=' + quotedstr(Trim(CDS_HZ.fieldbyname('FACTORYNAME').AsString))); case cxTabControl1.TabIndex of 0: begin sql.Add(',@flag=''全部'' '); end; 1: begin sql.Add(',@flag=''已审核'' '); end; end; sql.Add(',@YFGSType=' + quotedstr(Trim(YFGSType.Text))); sql.Add(',@ISHS=' + quotedstr(Trim(ISHS.Text))); sql.add(',@spid=' + quotedstr(Trim(DCode))); // ShowMessage(SQL.Text); Open; end; // SCreateCDS20(ADOQueryPrint, CDS_HZ); // SInitCDSData20(ADOQueryPrint, CDS_HZ); RMXLSExport1 := TRMXLSExport.Create(RMXLSExport1); if FileExists(fPrintFile) then begin RmVariables['GSTT'] := Trim(ComboBox1.Text); // RmVariables['djmoney'] := Trim(CDS_HZ.fieldbyname('djmoney').AsString); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin CDS_HZ.EnableControls; Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\应收款对账单.rmf'), '提示', 0); Exit; end; // Edit; // FieldByName('SSel').Value := False; // Post; // end; end; CDS_HZ.EnableControls; end; procedure TfrmYFMXlist.factoryNameBtnClick(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin FactoryName.Text := Trim(CDS_HZ.fieldbyname('CoName').AsString); InitGrid(); end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmYFMXlist.V1Column9CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); begin if ARow1.Values[V1Column11.Index] = ARow2.Values[V1Column11.Index] then AAreEqual := True else AAreEqual := False; end; procedure TfrmYFMXlist.TV1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('keyNO').Index]) mod 2 = 0 then begin ACanvas.Brush.Color := $EEF5FF; end else begin ACanvas.Brush.Color := $FFF8F0; end; if AViewInfo.GridRecord.Values[TV1Column4.Index] = '1' then begin ACanvas.Font.Color := clRed; end; end; procedure TfrmYFMXlist.YFGSTypeChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmYFMXlist.V1Column8PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin if CDS_HZ.FieldByName('crtype').AsString = '应付款登记' then begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); if mvalue = '' then begin mvalue := '0'; end; with CDS_HZ 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_HZ.fieldbyname('YFSID').AsString))); sql.Add('update YF_Money_CR_Sub set '); sql.Add('MXMONEY=ISNULL(SHANGJIFEI,0)+ISNULL(XIAOGANGFEI,0)+ISNULL(PRICE,0)*QTY'); sql.Add('where YFSID=' + quotedstr(Trim(CDS_HZ.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_HZ.fieldbyname('YFID').AsString))); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); end; end; procedure TfrmYFMXlist.ToolButton4Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if cxTabControl1.TabIndex = 2 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 // // 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; // ADOQueryCmd.Connection.CommitTrans; // InitGrid(); // except // ADOQueryCmd.Connection.RollbackTrans; // application.MessageBox('操作失败!', '提示信息', 0); // end; 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; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYFMXlist.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmYFMXlist.ToolButton5Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if cxTabControl1.TabIndex = 1 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 // // 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; // ADOQueryCmd.Connection.CommitTrans; // application.MessageBox('操作成功!', '提示信息', 0); // InitGrid(); // except // ADOQueryCmd.Connection.RollbackTrans; // application.MessageBox('操作失败!', '提示信息', 0); // end; 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 CDS_HZ.fieldbyname('DZFLAG').AsString = '1' then begin Application.MessageBox('请先撤销标记对账!', '提示', 0); EnableControls; 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; ADOQueryCmd.Connection.CommitTrans; application.MessageBox('操作成功!', '提示信息', 0); InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYFMXlist.MXORDERNOChange(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 TfrmYFMXlist.V1Column14PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin if CDS_HZ.FieldByName('crtype').AsString = '应付款登记' then begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update YF_Money_CR_Sub set MXMONEY=' + (Trim(mvalue))); sql.Add('where YFSID=' + quotedstr(Trim(CDS_HZ.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_HZ.fieldbyname('YFID').AsString))); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); InitGrid(); end; end; procedure TfrmYFMXlist.ToolButton6Click(Sender: TObject); begin if CDS_HZ.IsEmpty then exit; if CDS_HZ.Locate('ssel', true, []) = false then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; with CDS_HZ do begin First; while not Eof do begin if CDS_HZ.fieldbyname('status').AsString <> '1' then begin Application.MessageBox('请先对账!', '提示', 0); Exit; end; Next; end; end; MovePanel1.Visible := True; dzdate.DateTime := Now; end; procedure TfrmYFMXlist.Button1Click(Sender: TObject); var mvalue, FFieldName: string; begin 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_SUB SET DZFLAG=''1'' '); sql.Add(',dzdate=' + quotedstr(FormatDateTime('yyyy-MM-dd', dzdate.DateTime))); sql.Add('where YFSID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFSID').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); MovePanel1.Visible := False; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYFMXlist.Button2Click(Sender: TObject); begin MovePanel1.Visible := False; end; procedure TfrmYFMXlist.ToolButton7Click(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_SUB SET DZFLAG=NULL,DZDATE=NULL '); sql.Add('where YFSID =' + quotedstr(trim(CDS_HZ.fieldbyname('YFSID').AsString))); execsql; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; InitGrid(); except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYFMXlist.N1Click(Sender: TObject); begin SelOKNo(CDS_HZ, True); end; procedure TfrmYFMXlist.N2Click(Sender: TObject); begin SelOKNo(CDS_HZ, False); end; end.