报表导出文件的时候,有部分需求是让文件只读,但默认的标签导出没有对应属性设置,所以就会涉及api的处理。
解决方式:润乾报表导出文件可以是输出流方式,在java的file类中可以设置文件属性,因此我们可以结合此方式导出文件并设置想要的文件属性。
以下是代码说明:
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.OutputStream;
importcom.raqsoft.dm.Sequence;
importcom.raqsoft.report.model.ReportDefine;
importcom.raqsoft.report.usermodel.Context;
importcom.raqsoft.report.usermodel.Engine;
importcom.raqsoft.report.usermodel.IReport;
importcom.raqsoft.report.util.ReportUtils;
public class Test {
public static void main(String[] args) throws Throwable {
//------设置授权文件路径
File flic = new File("D:/server.lic");
FileInputStream lis = new FileInputStream(flic);
Sequence.readLicense( Sequence.P_RPT, lis);
String reportFile = "D:\\aaaa.rpx"; //该文件名为绝对路径
//------读入报表文件,生成rd对象
ReportDefine rd =(ReportDefine)ReportUtils.read(reportFile);
//上下文环境
Context ctx = new Context();
Engine engine = new Engine(rd, ctx); //构造报表引擎
IReport iReport = engine.calc(); //运算报表
//输出doc文件
File outFile = new File("D:/outfile6.docx");
OutputStream ous = null;
try {
ous = new FileOutputStream(outFile,true);
//输出文档
ReportUtils.exportToDOCX(ous, iReport);
//设置文件只读
outFile.setReadOnly();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}