"我这边有很多润乾报表的 raq 和 rpx 文件, 想通过官方的 api 接口分析这两种报表文件, 并输出报表的参数, 宏定义,sql 检索中的 sql 和参数, 后续我需要这些内容进行分析. .."
我这边有很多润乾报表的 raq 和 rpx 文件, 想通过官方的 api 接口分析这两种报表文件, 并输出报表的参数, 宏定义,sql 检索中的 sql 和参数, 后续我需要这些内容进行分析.不知道分别对应官方的哪些 java 类, 或者有没有案例可以参考呢. 求指教, 答谢可微信转账
之前有大佬给我提供了分析 sql 检索的类, 这部分已经没问题了. 但是参数和宏定义, 以及 sql 检索的参数还是想取出来, 请教一下各位.
参考下下边代码,rpx 是新版,现在不区分参数和宏了,使用时都用参数,然后像原来用到宏的地方用 ${参数名} 就行,下边是 rpx 版本中的代码ParamMetaData pmd=rd.getParamMetaData();// 获取报表参数对象
int pmcount=pmd.getParamCount();// 获取参数个数
for(int i=0;i<pmcount;i++) {// 按个数循环,从 0 开始
System.out.println(“报表中第”+(i+1)+“个参数是”+pmd.getParam(i).getParamName());
}
DataSetMetaData dm=rd.getDataSetMetaData();// 数据集元数据类
SQLDataSetConfig sds=(SQLDataSetConfig)dm.getDataSetConfig(0);// 获取报表中第一个数据集,实际按之前的循环就行, 并且将类型转成 sql 数据集
int sqlpmcount=sds.getParamCount();// 获 sql 数据集中参数个数
for(int m=0;m<sqlpmcount;m++) {// 按个数循环,从 0 开始
System.out.println(“数据集中第”+m+“个参数表达式是”+sds.getParamExp(m));
老版的 raq 中有宏,用这个 MacroMetaData, 其余的方法和 rpx 里的基本都一样
大佬, 真的太感谢了. 上次就是用的你提供的逻辑.
还有个疑问. 我们的润乾报表的数据源并不都是 sql 检索, 还有从集算器返回的数据集. 请问这个怎么判断呢. 因为我后面还要把集算器的内容解析出来, 所以需要判断一下这部分. 求指教
目前貌似没有获取数据集类型的方法,之前都是已知类型然后直接在 api 里转换,这个需要周一找研发再确认下看看
好的多谢, 有劳了
之前有大佬给我提供了分析 sql 检索的类, 这部分已经没问题了. 但是参数和宏定义, 以及 sql 检索的参数还是想取出来, 请教一下各位.
参考下下边代码,rpx 是新版,现在不区分参数和宏了,使用时都用参数,然后像原来用到宏的地方用 ${参数名} 就行,下边是 rpx 版本中的代码
ParamMetaData pmd=rd.getParamMetaData();// 获取报表参数对象
int pmcount=pmd.getParamCount();// 获取参数个数
for(int i=0;i<pmcount;i++) {// 按个数循环,从 0 开始
System.out.println(“报表中第”+(i+1)+“个参数是”+pmd.getParam(i).getParamName());
}
DataSetMetaData dm=rd.getDataSetMetaData();// 数据集元数据类
SQLDataSetConfig sds=(SQLDataSetConfig)dm.getDataSetConfig(0);// 获取报表中第一个数据集,实际按之前的循环就行, 并且将类型转成 sql 数据集
int sqlpmcount=sds.getParamCount();// 获 sql 数据集中参数个数
for(int m=0;m<sqlpmcount;m++) {// 按个数循环,从 0 开始
System.out.println(“数据集中第”+m+“个参数表达式是”+sds.getParamExp(m));
}
老版的 raq 中有宏,用这个 MacroMetaData, 其余的方法和 rpx 里的基本都一样
大佬, 真的太感谢了. 上次就是用的你提供的逻辑.
还有个疑问. 我们的润乾报表的数据源并不都是 sql 检索, 还有从集算器返回的数据集. 请问这个怎么判断呢. 因为我后面还要把集算器的内容解析出来, 所以需要判断一下这部分. 求指教
目前貌似没有获取数据集类型的方法,之前都是已知类型然后直接在 api 里转换,这个需要周一找研发再确认下看看
好的多谢, 有劳了