1、问题描述
在定时任务完成之后,在导出文件之前可能需要进行进一步处理,比如说修改某些数据,或者是将导出文件固定导出在某个目录下等等后续操作,这时候就可以用自定义附件处理来实现。2、解决思路
编写java类文件,在类文件中实现对数据进行处理操作,然后在定时任务的第四步勾选是否自定义附件处理,并正确填写类名。(一)自定义上传文件至磁盘
1.问题描述
在定时任务完成之后,有时候需要将文件导出至自定义位置,而不是系统默认位置%FR%WebReport\\WEB-INF\\schedule,这时候就可以通过自定义附件来处理,通过自定义类文件修改文件导出的位置。2.示例
导出excel和pdf,并把生成的对应文件保存在指定路径中去,本例中的路径是放在D盘中。3.实现步骤
3.1编写类文件定义一个OutputExcel类文件,实现AbstractOutputFileAction接口,具体代码如下:packagecom.fr.output;importjava.io.*;importcom.fr.json.JSONException;importcom.fr.json.JSONObject;importcom.fr.schedule.output.AbstractOutputFileAction;importcom.fr.schedule.output.OutputFileAction;publicclassOutputExcelextendsAbstractOutputFileAction{@OverridepublicFile[]getFilesToDealWith(File[]files){returnfiles;}@OverridepublicvoiddoFileAction(File[]files){//OutputStreamout=newBufferedOutputStream(newFileOutputStream(newFile(files.)));;System.out.println(files[0].getName());for(inti=0;i 执行完定时任务之后,如果不需要判断结果,将导出文件都上传至ftp,则可直接使用ftp上传附件,但是需要根据执行结果判断是否将该结果文件导出并上传至ftp站点,这是就可以通过自定义附件处理来实现,即定义一个java类文件,在类文件中进行结果判断,符合条件的则上传至ftp服务器,下面讲解怎么在java中实现文件上传至ftp服务器上,至于结果判断的代码这里将不进行讲述。2、解决方案 2.1编写类文件编写java类,继承AbstractOutputFileAction接口,通过下面两个方法实现上传附件至ftp的功能:第一个方法:getFilesToDealWith(File[]files),主要功能是筛选要处理的文件,参数files是传进来的文件,其中根据所选可能包括报表生成的pdf和excel文件。示例中直接返回传进来的文件,没有进行任何操作,用户可根据需要自行修改编辑。第二个方法:doFileAction(File[]files),主要功能是实现FTP上传附件的功能,需根据实际情况设置FTP服务器的相关参数。代码如下:packagecom.fr.output;importjava.io.File;importcom.fr.json.JSONException;importcom.fr.json.JSONObject;importcom.fr.schedule.output.AbstractOutputFileAction;importcom.fr.schedule.output.FTPTransmission;importcom.fr.schedule.output.OutputFileAction;publicclassFTPUploadextendsAbstractOutputFileAction{@OverridepublicFile[]getFilesToDealWith(File[]files){returnfiles;}@OverridepublicvoiddoFileAction(File[]files){FTPTransmissionftp=newFTPTransmission();ftp.setServerAddress(\"192.168.100.100\");ftp.setPort(21);ftp.setSavePath(\"test\");ftp.setUsername(\"1\");ftp.setPassword(\"1\");try{ftp.doFTP(files);}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}@OverridepublicbooleanisEmailNotification(){//TODOAuto-generatedmethodstubreturnfalse;}@OverridepublicOutputFileActionanalyzeJSON(JSONObjectarg0){//TODOAuto-generatedmethodstubreturnnull;}@OverridepublicJSONObjectcreateJSONConfig()throwsJSONException{//TODOAuto-generatedmethodstubreturnnull;}@OverridepublicStringgetJsonTag(){//TODOAuto-generatedmethodstubreturnnull;}}编译类文件,将生成的FTPUpload.class放在%FineReport_home%\\WebReport\\WEB-INF\\classes\\com\\fr\\output文件夹下。注:类文件放的位置只需要与编写类文件里面的package位置对应即可。2.2定时任务操作过程请参照上一节。2.3效果查看 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务