unit U_YGYPZZChkList_YGFJ; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxButtonEdit, cxDropDownEdit, cxPC, ActnMan, ActnColorMaps, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI,IniFiles; type TfrmYGYPZZChkList_YGFJ = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; Order_Main: TClientDataSet; TBView: TToolButton; Panel1: TPanel; TBADD: TToolButton; PopupMenu1: TPopupMenu; N2: TMenuItem; N1: TMenuItem; TCXTJ: TToolButton; BegDate: TDateTimePicker; Label3: TLabel; EndDate: TDateTimePicker; DataSource2: TDataSource; order_Sub: TClientDataSet; Label2: TLabel; TTiJiao: TToolButton; TUpdate: TToolButton; TDel: TToolButton; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; ADOQuery1: TADOQuery; Label4: TLabel; SQType: TEdit; cxTabControl1: TcxTabControl; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; V2Chker: TcxGridDBColumn; V2Chktime: TcxGridDBColumn; V2Chkstatus: TcxGridDBColumn; V2chkNote: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxStyle2: TcxStyle; TGHCL: TToolButton; Panel4: TPanel; Label6: TLabel; Panel5: TPanel; Image1: TImage; TSure: TButton; ETaiTou: TEdit; Label5: TLabel; SJEndDate: TDateTimePicker; ADOQuery2: TADOQuery; v1SQName: TcxGridDBColumn; v1SQBegDate: TcxGridDBColumn; v1SQEndDate: TcxGridDBColumn; v1SQDay: TcxGridDBColumn; v1TaiTou: TcxGridDBColumn; v1SQNote: TcxGridDBColumn; v1SQStatus: TcxGridDBColumn; v1SQType: TcxGridDBColumn; v1SJEndDate: TcxGridDBColumn; v1filltime: TcxGridDBColumn; v1SQXH: TcxGridDBColumn; TWJSC: TToolButton; TWJCK: TToolButton; IdFTP1: TIdFTP; ODPat: TOpenDialog; SaveDialog1: TSaveDialog; v1ZWName: TcxGridDBColumn; Label1: TLabel; ZWName: TEdit; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure TBViewClick(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure TBADDClick(Sender: TObject); procedure TCXTJClick(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure TUpdateClick(Sender: TObject); procedure TTiJiaoClick(Sender: TObject); procedure TDelClick(Sender: TObject); procedure N2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure CLNameChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure TGHCLClick(Sender: TObject); procedure TSureClick(Sender: TObject); procedure Image1Click(Sender: TObject); procedure TWJSCClick(Sender: TObject); procedure TWJCKClick(Sender: TObject); procedure ZWNameKeyPress(Sender: TObject; var Key: Char); private canshu1:string; DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; procedure setstatus(); procedure ReadINIFile(); { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmYGYPZZChkList_YGFJ: TfrmYGYPZZChkList_YGFJ; implementation uses U_DataLink,U_RTFun,U_ZDYHelp, U_YGYPInPut,U_FileUp_PZ, U_ZDYHelpSel,U_YGYPInPut_YGFJDJ,U_YGYPInPut_CLWXDJ; {$R *.dfm} procedure TfrmYGYPZZChkList_YGFJ.setstatus(); begin TUpdate.Visible:=False; TTiJiao.Visible:=False; TCXTJ.Visible:=False; Tdel.Visible:=False; TGHCL.Visible:=False; case cxTabControl1.TabIndex of 0:begin TUpdate.Visible:=True; TTiJiao.Visible:=True; Tdel.Visible:=true; end; 1:begin TCXTJ.Visible:=true; TGHCL.Visible:=true; end; 2:begin end; 3:begin end; end; end; procedure TfrmYGYPZZChkList_YGFJ.FormDestroy(Sender: TObject); begin frmYGYPZZChkList_YGFJ:=nil; end; procedure TfrmYGYPZZChkList_YGFJ.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYGYPZZChkList_YGFJ.FormCreate(Sender: TObject); begin canshu1:=Trim(DParameters1); end; procedure TfrmYGYPZZChkList_YGFJ.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('公司事务列表',Tv1,'OA管理'); end; procedure TfrmYGYPZZChkList_YGFJ.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select * '); sql.Add(' from OA_YG_CLGLSW '); sql.Add(' where filltime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+''''); sql.Add(' and filltime<='''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+''''); if cxTabControl1.TabIndex=0 then begin sql.Add(' and (SQStatus=''未提交'' or SQStatus=''不通过'') '); end else if cxTabControl1.TabIndex=1 then begin sql.add(' and (isnull(SQStatus,'''')=''已送审'' or isnull(SQStatus,'''')=''申请通过'')'); end; if cxTabControl1.TabIndex=2 then begin sql.add(' and isnull(SQStatus,'''')=''已回归'' '); end; if trim(canshu1)<>'高权限' then begin sql.Add(' and SQName='''+trim(DName)+''' '); end; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); with ADOQueryCmd do begin close; sql.clear; sql.add('select A.* from OA_Chk A '); sql.add('where A.Mainid='''+trim(Order_Main.fieldbyname('SWID').AsString)+''' '); sql.Add('and isnull(OAType,'''')=''事务管理'''); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYGYPZZChkList_YGFJ.InitForm(); begin EndDate.Date:=SGetServerDate(ADOQueryTemp); BegDate.Date:=EndDate.Date-7; ReadCxGrid('公司事务列表',Tv1,'OA管理'); //setstatus(); if trim(CanShu1)='查询' then begin TBADD.Visible:=False; TUpdate.Visible:=false; TDel.Visible:=False; end else begin TBADD.Visible:=true; TUpdate.Visible:=true; TDel.Visible:=true; end; InitGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.TBFindClick(Sender: TObject); begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; function TfrmYGYPZZChkList_YGFJ.DelData():Boolean; begin try Result:=false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Delete OA_YG_DangAn where YGId='''+Trim(Order_Main.fieldbyname('YGId').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Delete OA_YG_DangAn_Other where YGId='''+Trim(Order_Main.fieldbyname('YGId').AsString)+''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Delete TP_File where WBId='''+Trim(Order_Main.fieldbyname('YGId').AsString)+''''); sql.Add(' and TFType=''YG'' '); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('数据删除异常!','提示',0); end; end; procedure TfrmYGYPZZChkList_YGFJ.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel('员工加薪列表',cxGrid1); end; procedure TfrmYGYPZZChkList_YGFJ.TBRafreshClick(Sender: TObject); begin ToolBar1.SetFocus; InitGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmYGYPZZChkList_YGFJ.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmYGYPZZChkList_YGFJ.TBViewClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; frmYGYPInPut_YGFJDJ:=TfrmYGYPInPut_YGFJDJ.create(self); with frmYGYPInPut_YGFJDJ do begin ToolBar1.Visible:=False; FCLID:=trim(Order_Main.fieldbyname('SWID').AsString); frmYGYPInPut_YGFJDJ.canshu1:=self.canshu1; if showModal=1 then begin end; free; end; end; procedure TfrmYGYPZZChkList_YGFJ.CustomerNoNameChange(Sender: TObject); begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmYGYPZZChkList_YGFJ.TBADDClick(Sender: TObject); begin frmYGYPInPut_YGFJDJ:=TfrmYGYPInPut_YGFJDJ.create(self); with frmYGYPInPut_YGFJDJ do begin FCLID:=''; frmYGYPInPut_YGFJDJ.canshu1:=self.canshu1; if showModal=1 then begin end; free; end; initGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.TCXTJClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if trim(Order_Main.fieldbyname('SQName').AsString)<>trim(DName) then begin application.MessageBox('不能删除他人数据','提示'); exit; end; if Application.MessageBox('确定要执行撤销操作吗?','提示',32+4)<>IDYES then Exit; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete from OA_Chk '); sql.Add(' where Mainid='''+Order_Main.fieldbyname('SWID').AsString+''''); sql.Add(' and isnull(OAType,'''')=''事务管理'' '); ExecSQL; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('Update OA_YG_CLGLSW Set SQStatus=''未提交'' '); sql.Add(' where SWID='''+trim(Order_Main.fieldbyname('SWID').AsString)+''''); ExecSQL; end; initGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin TBView.Click; end; procedure TfrmYGYPZZChkList_YGFJ.TUpdateClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if trim(Order_Main.fieldbyname('SQName').AsString)<>trim(DName) then begin application.MessageBox('不能修改他人数据','提示'); exit; end; frmYGYPInPut_YGFJDJ:=TfrmYGYPInPut_YGFJDJ.create(self); with frmYGYPInPut_YGFJDJ do begin FCLID:=trim(Order_Main.fieldbyname('SWID').AsString); frmYGYPInPut_YGFJDJ.canshu1:=self.canshu1; if showModal=1 then begin end; free; end; initGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.TTiJiaoClick(Sender: TObject); var maxno: string; begin if Order_Main.IsEmpty then exit; if trim(Order_Main.fieldbyname('SQName').AsString)<>trim(DName) then begin application.MessageBox('不能删除他人数据','提示'); exit; end; if Order_Main.FieldByName('SQType').AsString='病假' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from TP_File '); sql.Add('where WBID='''+trim(Order_Main.fieldbyname('SWID').AsString)+''''); Open; end; if ADOQueryCmd.IsEmpty then begin if application.MessageBox('病假确定不上传图片吗','提示',1)=2 then exit; end; end; frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag:='SPR'; flagname:='审批人'; MainType:=Trim(DName); if ShowModal=1 then begin with ClientDataSet1 do begin first; while not Eof do begin if fieldbyname('Ssel').AsBoolean=True then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from SY_User where UserName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty then begin Application.MessageBox('审批人定义错误!','提示',0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from OA_Chk where MainId='''+Trim(Order_Main.fieldbyname('SWID').AsString)+''''); sql.Add(' and isnull(OAType,'''')=''事务管理'' '); sql.Add(' and isnull(Chker,'''')='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty then begin if GetLSNo(ADOQueryCmd,maxno,'SW','OA_Chk',4,1)=False then begin Application.MessageBox('取最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from OA_Chk where 1=2 '); Open; append; FieldByName('CKID').Value:=Trim(maxno); FieldByName('Mainid').Value:=Trim(Order_Main.fieldbyname('SWID').AsString); FieldByName('OAType').value:='事务管理'; FieldByName('Chker').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); Post; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update OA_YG_CLGLSW set SQStatus=''已送审'' '); sql.Add('where SWID='''+trim(Order_Main.fieldbyname('SWID').asstring)+''' '); ExecSQL; end; end; Next; end; end; end; Free; end; application.MessageBox('提交成功','提示'); InitGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.TDelClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if trim(Order_Main.fieldbyname('SQName').AsString)<>trim(DName) then begin application.MessageBox('不能删除他人数据','提示'); exit; end; if application.MessageBox('确定要删除吗','提示',1)=2 then exit; with ADOQueryMain do begin close; sql.Clear; sql.Add('delete from OA_YG_CLGLSW where SWID='''+trim(Order_Main.fieldbyname('SWID').AsString)+''''); execsql; end; initGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.N2Click(Sender: TObject); begin SelOKNo(Order_Main,True); end; procedure TfrmYGYPZZChkList_YGFJ.N1Click(Sender: TObject); begin SelOKNo(Order_Main,False); end; procedure TfrmYGYPZZChkList_YGFJ.CLNameChange(Sender: TObject); begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmYGYPZZChkList_YGFJ.cxTabControl1Change(Sender: TObject); begin setstatus(); initGrid(); end; procedure TfrmYGYPZZChkList_YGFJ.Tv1CellClick( Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin with ADOQueryCmd do begin close; sql.clear; sql.add('select A.* from OA_Chk A '); sql.add('where A.Mainid='''+trim(Order_Main.fieldbyname('SWID').AsString)+''' '); sql.Add('and isnull(OAType,'''')=''事务管理'''); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); end; procedure TfrmYGYPZZChkList_YGFJ.TGHCLClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if trim(Canshu1)<>'高权限' then begin if trim(Order_Main.fieldbyname('SQName').AsString)<>trim(DName) then begin application.MessageBox('不能修改他人数据','提示'); exit; end; end; if Order_Main.FieldByName('SQType').AsString='公章使用' then begin application.MessageBox('公章使用由财务回归','提示'); exit; end; if order_Main.FieldByName('SQStatus').AsString<>'申请通过' then begin application.MessageBox('单据未通过不能回归','提示'); exit; end; SJEndDate.DateTime:=SGetServerDate(ADOQueryTemp); Panel4.Visible:=true; end; procedure TfrmYGYPZZChkList_YGFJ.TSureClick(Sender: TObject); begin if application.MessageBox('确定执行此操作吗','提示',1)=2 then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update OA_YG_CLGLSW set SJEndDate='''+trim(formatdatetime('yyyy-MM-dd',SJEndDate.DateTime))+''',SQStatus=''已回归'' '); sql.Add('where SWID='''+trim(Order_Main.fieldbyname('SWID').asstring)+''' '); ExecSQL; end; initGrid(); Panel4.Visible:=False; end; procedure TfrmYGYPZZChkList_YGFJ.Image1Click(Sender: TObject); begin Panel4.Visible:=False; end; procedure TfrmYGYPZZChkList_YGFJ.TWJSCClick(Sender: TObject); begin try frmFileUpPZ:=TfrmFileUpPZ.Create(Application); with frmFileUpPZ do begin Code.Text:=Trim(Self.Order_Main.fieldbyname('SWID').AsString); CYID:=Trim(Self.Order_Main.fieldbyname('SWID').AsString); if ShowModal=1 then begin Self.InitGrid(); Self.Order_Main.Locate('SWID',CYID,[]); end; end; finally frmFileUpPZ.Free; end; end; procedure TfrmYGYPZZChkList_YGFJ.TWJCKClick(Sender: TObject); var fHandle:THandle; FInt:Integer; FFName,FPath:String; begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from XD_File where CYNO='''+Trim(Order_Main.fieldbyname('SWID').AsString)+''''); Open; if IsEmpty then begin Application.MessageBox('凭证图片未上传!','提示',0); Exit; end; end; try ReadINIFile(); server:=ReadINIFileStr('SYSTEMSET.INI','SERVER','服务器地址','127.0.0.1'); if Length(server)<6 then begin server:='127.0.0.1'; end; IdFTP1.Host :=server;//PicSvr; IdFTP1.Username := 'three'; IdFTP1.Password := '641010'; IdFTP1.Connect(); except IdFTP1.Quit; Application.MessageBox('无法连接到文件服务器,请检查!', '提示', MB_ICONWARNING); Exit; end; FPath:='D:\Right1209\'; if not DirectoryExists(ExtractFileDir(FPath)) then CreateDir(ExtractFileDir(FPath)); FFName:=Trim(ADOQueryTemp.fieldbyname('FileName').AsString); FFName:=FPath+FFName; if FileExists(FFName) then begin FInt:=1; end; if FInt<>1 then IdFTP1.Get('PZ\'+Trim(ADOQueryTemp.fieldbyname('FileName').AsString), FPath+Trim(ADOQueryTemp.fieldbyname('FileName').AsString)); if IdFTP1.Connected then IdFTP1.Quit; ShellExecute(Handle, 'open',PChar(FPath+Trim(ADOQueryTemp.fieldbyname('FileName').AsString)),'', '', SW_SHOWNORMAL); end; procedure TfrmYGYPZZChkList_YGFJ.ReadINIFile(); var programIni:Tinifile; //配置文件名 FileName:string; begin FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI'; programIni:=Tinifile.create(FileName); server:=programIni.ReadString('SERVER','服务器地址','127.0.0.1'); programIni.Free; end; procedure TfrmYGYPZZChkList_YGFJ.ZWNameKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select * '); sql.Add(' from OA_YG_CLGLSW '); sql.Add(' where 1=1'); sql.Add(' and ZWName='''+trim(ZWName.Text)+''' '); if cxTabControl1.TabIndex=0 then begin sql.Add(' and (SQStatus=''未提交'' or SQStatus=''不通过'') '); end else if cxTabControl1.TabIndex=1 then begin sql.add(' and (isnull(SQStatus,'''')=''已送审'' or isnull(SQStatus,'''')=''申请通过'')'); end; if cxTabControl1.TabIndex=2 then begin sql.add(' and isnull(SQStatus,'''')=''已回归'' '); end; if trim(canshu1)<>'高权限' then begin sql.Add(' and SQName='''+trim(DName)+''' '); end; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); with ADOQueryCmd do begin close; sql.clear; sql.add('select A.* from OA_Chk A '); sql.add('where A.Mainid='''+trim(Order_Main.fieldbyname('SWID').AsString)+''' '); sql.Add('and isnull(OAType,'''')=''事务管理'''); open; end; SCreateCDS20(ADOQueryCmd,Order_Sub); SInitCDSData20(ADOQueryCmd,Order_Sub); end; end; end.