unit U_CP_CRC; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, DBClient, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset, cxCheckBox, cxCalendar, cxGridBandedTableView, cxGridDBBandedTableView, Buttons; type TfrmCP_CRC = class(TForm) ToolBar1: TToolBar; Tqry: TToolButton; Tprint: TToolButton; Txls: TToolButton; tclose: TToolButton; Panel1: TPanel; Label1: TLabel; begdate: TDateTimePicker; enddate: TDateTimePicker; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; ADOQueryTmp: TADOQuery; DataSource1: TDataSource; Panetime: TPanel; cxGridPopupMenu1: TcxGridPopupMenu; RMDBDataSet1: TRMDBDataSet; RMGridReport1: TRMGridReport; RMXLSExport1: TRMXLSExport; Label7: TLabel; userID: TEdit; Label8: TLabel; userName: TEdit; Label3: TLabel; ComboBox1: TComboBox; begTime: TDateTimePicker; endTime: TDateTimePicker; Label2: TLabel; Label4: TLabel; dept: TComboBox; TV1: TcxGridDBBandedTableView; V1Column2: TcxGridDBBandedColumn; V1Column3: TcxGridDBBandedColumn; V1Column6: TcxGridDBBandedColumn; V1Column7: TcxGridDBBandedColumn; V1Column8: TcxGridDBBandedColumn; V1Column9: TcxGridDBBandedColumn; V1Column10: TcxGridDBBandedColumn; V1Column11: TcxGridDBBandedColumn; V1Column12: TcxGridDBBandedColumn; V1Column13: TcxGridDBBandedColumn; Label5: TLabel; Label6: TLabel; Label9: TLabel; C_Color: TEdit; C_CodeName: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TqryClick(Sender: TObject); procedure TxlsClick(Sender: TObject); procedure tcloseClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure TprintClick(Sender: TObject); procedure userIDChange(Sender: TObject); private fstr1:string; fstr2:string; procedure DoQuery(); procedure FilterData(); { Private declarations } public istyjp:boolean; fdept:string; { Public declarations } end; var frmCP_CRC: TfrmCP_CRC; implementation uses U_Fun10,U_DataLink; {$R *.dfm} procedure TfrmCP_CRC.DoQuery(); var mBegdate,mEnddate:string; i:integer; begin mbegdate:=FormatDateTime('yyyy-MM-dd',begdate.Date);//+' '+FormatDateTime('HH:nn',begTime.Time); menddate:=FormatDateTime('yyyy-MM-dd',enddate.Date+1);//+' '+FormatDateTime('HH:nn',endTime.Time); screen.Cursor:=crsqlwait; Panetime.Visible:=true; Panetime.Left:=(Width-Panetime.Width) div 2; Panetime.top:=(Height-Panetime.Height-200) div 2; application.ProcessMessages; try with adoqueryTmp do begin close; sql.Clear; filtered:=false; sql.Add(' exec P_Get_CP_CRC '); sql.Add(' @begdate='+quotedstr(trim(mbegdate))); sql.Add(',@Enddate='+quotedstr(trim(menddate))); sql.Add(',@otherwhere='+quotedstr(trim(''))); open; end; FilterData(); finally Panetime.Visible:=false; screen.Cursor:=crdefault; end; end; procedure TfrmCP_CRC.FilterData(); var filterStr:string; begin filterStr:=''; if trim(dept.Text)<>'' then filterStr:=filterStr+' and dept like '+quotedstr('%'+trim(dept.Text)+'%'); if trim(userID.Text)<>'' then filterStr:=filterStr+' and userID like '+quotedstr('%'+trim(userID.Text)+'%'); if trim(userName.Text)<>'' then filterStr:=filterStr+' and UserName like '+quotedstr('%'+trim(userName.Text)+'%'); if trim(C_Color.Text)<>'' then filterStr:=filterStr+' and C_Color like '+quotedstr('%'+trim(C_Color.Text)+'%'); if trim(C_Codename.Text)<>'' then filterStr:=filterStr+' and C_Codename like '+quotedstr('%'+trim(C_Codename.Text)+'%'); try ADOQueryTmp.DisableControls ; if trim(filterStr)='' then begin ADOQueryTmp.Filtered:=false; ADOQueryTmp.EnableControls; exit; end; filterStr:=trim(Copy(filterStr,5,length(filterStr)-4)); with ADOQueryTmp do begin filtered:=false; filter:=filterStr; filtered:=true; end; finally ADOQueryTmp.EnableControls; end; end; procedure TfrmCP_CRC.FormDestroy(Sender: TObject); begin frmCP_CRC:=nil; end; procedure TfrmCP_CRC.FormClose(Sender: TObject; var Action: TCloseAction); begin writeCxBandedGrid(self.Caption+tv1.Name,tv1,'综合查询'); action:=cafree; end; procedure TfrmCP_CRC.TqryClick(Sender: TObject); begin DoQuery(); end; procedure TfrmCP_CRC.TxlsClick(Sender: TObject); begin if adoquerytmp.IsEmpty then exit; TcxGridToExcel(self.Caption,cxgrid1); end; procedure TfrmCP_CRC.tcloseClick(Sender: TObject); begin close; end; procedure TfrmCP_CRC.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; enddate.Date:=date(); begdate.Date:=date(); end; procedure TfrmCP_CRC.FormShow(Sender: TObject); begin writeCxBandedGrid(self.Caption+tv1.Name,tv1,'综合查询'); end; procedure TfrmCP_CRC.TprintClick(Sender: TObject); var filepath:string; mBegdate,mEnddate:string; begin mbegdate:=FormatDateTime('yyyy-MM-dd',begdate.Date)+' '+FormatDateTime('HH:nn',begTime.Time); menddate:=FormatDateTime('yyyy-MM-dd',enddate.Date)+' '+FormatDateTime('HH:nn',endTime.Time); if ADOQueryTmp.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.Clear; RMVariables['dtxz'] :=FormatDateTime('yyyy-mm-dd',DServerDate); RmVariables['begDate'] :=FormatDateTime('yyyy-mm-dd',begDate.Date); RmVariables['enddate'] :=FormatDateTime('yyyy-mm-dd',enddate.Date); RMVariables['zdr'] :=trim(DName); RMVariables['fstr1'] :=trim(fstr1); RMVariables['fstr2'] :=trim(fstr2); RmVariables['begDate'] :=mbegdate+' - '+menddate; RmVariables['Title'] :=trim(dept.Text); RMGridReport1.LoadFromFile(filepath); // RMGridReport1.PrintReport; RMGridReport1.ShowReport; finally end; end; procedure TfrmCP_CRC.userIDChange(Sender: TObject); begin FilterData(); end; end.