unit U_WorkDeptList_DKCX; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, cxCalendar, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, ADODB, DBClient, cxButtonEdit, cxPC, StdCtrls, ExtCtrls, ExtDlgs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, jpeg, IniFiles, DelphiTwain, Buttons, cxContainer, cxImage, cxDBEdit, strutils, ShellAPI, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinDarkRoom, dxSkinOffice2013White, dxSkinSharpPlus, dxSkinSpringTime, dxSkinsDefaultPainters, dxSkinscxPCPainter, cxNavigator, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSilver, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue; type TFrmWorkDeptList_DKCX = class(TForm) cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1DKDate: TcxGridDBColumn; v1YGName: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Order_Main: TClientDataSet; ADOQueryMain: TADOQuery; DataSource1: TDataSource; ADOQueryDel: TADOQuery; Panel1: TPanel; OpenPictureDialog1: TOpenPictureDialog; IdFTP1: TIdFTP; adoqueryImage: TADOQuery; ADOQuery1: TADOQuery; SaveDialog1: TSavePictureDialog; ScrollBox1: TScrollBox; ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; TBExport: TToolButton; Label3: TLabel; BegDate: TDateTimePicker; Label1: TLabel; YGName: TEdit; Picture4: TcxDBImage; DataSource2: TDataSource; Panel2: TPanel; v1SXBStatus: TcxGridDBColumn; Label4: TLabel; SXBStatus: TEdit; TSBKQB: TToolButton; TXBKQB: TToolButton; Order_KQB: TClientDataSet; Label2: TLabel; EndDate: TDateTimePicker; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; procedure v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure YGNameChange(Sender: TObject); procedure Picture4DblClick(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure TSBKQBClick(Sender: TObject); private hWndC: THandle; CapturingAVI: bool; { Private declarations } ClickPos: TPoint; SelectedSource, PicLeft, PicTop, PicWidth, PicHeight: Integer; procedure initGrid(); procedure SetStatus(); procedure LookImage(FileName: string); { Private declarations } public FilePath: string; FileName: string; FTFType: string; pat1: string; pic1: string; fkeyNo: string; fFlileFlag: string; { Public declarations } MyJpeg: TJPEGImage; { Public declarations } end; var FrmWorkDeptList_DKCX: TFrmWorkDeptList_DKCX; implementation uses U_ZDYHelp, U_RTfun, U_DataLink; const WM_CAP_START = WM_USER; const WM_CAP_STOP = WM_CAP_START + 68; const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10; const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11; const WM_CAP_SAVEDIB = WM_CAP_START + 25; const WM_CAP_GRAB_FRAME = WM_CAP_START + 60; const WM_CAP_SEQUENCE = WM_CAP_START + 62; const WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20; const WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63; const WM_CAP_SET_OVERLAY = WM_CAP_START + 51; const WM_CAP_SET_PREVIEW = WM_CAP_START + 50; const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6; const WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2; const WM_CAP_SET_CALLBACK_STATUSA = WM_CAP_START + 3; const WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5; const WM_CAP_SET_SCALE = WM_CAP_START + 53; const WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52; function capCreateCaptureWindowA(lpszWindowName: PCHAR; dwStyle: longint; x: integer; y: integer; nWidth: integer; nHeight: integer; ParentWin: HWND; nId: integer): HWND; stdcall external 'AVICAP32.DLL'; {$R *.dfm} procedure TFrmWorkDeptList_DKCX.LookImage(FileName: string); var sFieldName: string; begin sFieldName := leftbstr(ExtractFilePath(Application.ExeName), 1) + ':\图片查看'; if not DirectoryExists(pchar(sFieldName)) then CreateDirectory(pchar(sFieldName), nil); sFieldName := sFieldName + '\' + trim(FileName); try IdFTP1.Host := ReadINIFileStr('SYSTEMSET.INI', 'SERVER', '服务器地址', '127.0.0.1'); IdFTP1.Username := 'three'; IdFTP1.Password := '641010'; IdFTP1.Connect(); except ; end; if IdFTP1.Connected then begin Panel2.Caption := '正在下载数据,请稍等...'; Panel2.Visible := true; application.ProcessMessages; try IdFTP1.Get(fFlileFlag + '\' + Trim(FileName), sFieldName, true, false); except Panel2.Visible := false; Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; end else begin Panel2.Visible := false; Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING); IdFTP1.Quit; Exit; end; Panel2.Visible := false; if IdFTP1.Connected then IdFTP1.Quit; ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL); end; procedure TFrmWorkDeptList_DKCX.SetStatus(); begin end; procedure TFrmWorkDeptList_DKCX.initGrid(); begin with ADOQueryMain do begin close; sql.Clear; sql.Add('select * from OA_YG_KQ '); sql.add('where filltime>=''' + trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + ''''); sql.add(' and filltime<''' + trim(FormatDateTime('yyyy-MM-dd', endDate.Date + 1)) + ''''); open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); SCreateCDS20(ADOQueryMain, Order_KQB); end; procedure TFrmWorkDeptList_DKCX.v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'PriceUnit'; flagname := '币种'; if ShowModal = 1 then begin with Order_Main do begin edit; fieldbyname('PriceUnit').AsString := trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TFrmWorkDeptList_DKCX.FormShow(Sender: TObject); begin ReadCxGrid('打卡', Tv1, '费用报销管理'); with ADOQueryMain do begin close; sql.Clear; sql.Add('select * from OA_YG_KQ '); sql.Add('where convert(varchar(10),DKDate,120)=convert(varchar(10),getdate(),120)'); open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); fFlileFlag := '123YP'; end; procedure TFrmWorkDeptList_DKCX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TFrmWorkDeptList_DKCX.FormDestroy(Sender: TObject); begin MyJpeg.Free; FrmWorkDeptList_DKCX := nil; end; procedure TFrmWorkDeptList_DKCX.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ClickPos.x := X; ClickPos.y := Y; end; procedure TFrmWorkDeptList_DKCX.FormCreate(Sender: TObject); begin MyJpeg := TJpegImage.Create; EndDate.Date := SGetServerDate(ADOQueryDel); begdate.Date := EndDate.Date; end; procedure TFrmWorkDeptList_DKCX.TBCloseClick(Sender: TObject); begin WriteCxGrid('打卡', Tv1, '费用报销管理'); close; end; procedure TFrmWorkDeptList_DKCX.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel('员工考勤', cxGrid1); end; procedure TFrmWorkDeptList_DKCX.TBRafreshClick(Sender: TObject); begin initgrid(); end; procedure TFrmWorkDeptList_DKCX.YGNameChange(Sender: TObject); begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TFrmWorkDeptList_DKCX.Picture4DblClick(Sender: TObject); var sFieldName: string; fileName: string; begin if TcxDBImage(Sender).Picture.Height = 0 then exit; LookImage(ADOQueryImage.fieldbyname(TcxDBImage(Sender).Hint).asstring); end; procedure TFrmWorkDeptList_DKCX.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if Order_Main.IsEmpty then exit; with ADOQueryImage do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('where WBID=' + quotedstr(trim(Order_Main.fieldbyname('KQID').AsString))); sql.Add('and TFType=' + quotedstr(trim('员工'))); open; end; end; procedure TFrmWorkDeptList_DKCX.TSBKQBClick(Sender: TObject); var fPrintFile: string; Txt, fImagePath: string; Moudle: THandle; Makebar: TMakebar; Mixtext: TMixtext; begin if Order_Main.IsEmpty then Exit; fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\上班考勤表.rmf'; with ADOQuery1 do begin close; sql.Clear; sql.Add('select YGName'); sql.Add(' ,one=(select cast(''是'' as varchar(10)) from OA_YG_KQ B where B.YGName=A.YGName and B.DKDate=''' + trim(FormatDateTime('yyyy-MM', BegDate.Date)) + '-01' + ''')'); sql.Add(' ,TWO=(select cast(''是'' as varchar(10)) from OA_YG_KQ B where B.YGName=A.YGName and B.DKDate=''' + trim(FormatDateTime('yyyy-MM', BegDate.Date)) + '-01' + ''')'); sql.Add(' from OA_YG_DangAn A '); // ShowMessage(sql.text); open; end; if FileExists(fPrintFile) then begin RM1.LoadFromFile(fPrintFile); RM1.PrintReport; end else begin Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\员工卡.rmf'), '提示', 0); Exit; end; end; end.