Java 按代码设置报表的默认参数值
我的所有crystal报表都发布在我的业务对象服务器上 它们都连接到业务视图对象 所有这些业务视图都使用相同的动态数据连接 这使得我的报表具有此动态数据连接参数 我可以通过中央管理控制台更改此参数 但现在我希望能够通过BO的SDK代码来更改它 我有这个方法,我认为接近实现我想要的,我只是可以保存更改Java 按代码设置报表的默认参数值,java,crystal-reports,business-objects,business-objects-sdk,Java,Crystal Reports,Business Objects,Business Objects Sdk,我的所有crystal报表都发布在我的业务对象服务器上 它们都连接到业务视图对象 所有这些业务视图都使用相同的动态数据连接 这使得我的报表具有此动态数据连接参数 我可以通过中央管理控制台更改此参数 但现在我希望能够通过BO的SDK代码来更改它 我有这个方法,我认为接近实现我想要的,我只是可以保存更改 public static void updateParameter(IInfoObject report){ // get all parameters try
public static void updateParameter(IInfoObject report){
// get all parameters
try {
IReport rpt = (IReport) report;
int i = 0;
IReportParameter params;
for(i=0;i<rpt.getReportParameters().size();i++){
params = (IReportParameter) rpt.getReportParameters().get(i);
int y = 0;
for(y=0;y<params.getCurrentValues().getValues(IReportParameter.ReportVariableValueType.STRING).size();y++){
IParameterFieldDiscreteValue val = (IParameterFieldDiscreteValue) params.getCurrentValues().getValues(IReportParameter.ReportVariableValueType.STRING).getValue(y);
if(val.getDescription().contains("Data Connection")){
val.setValue(boConstance.conn_EXAMPLE1);
val.setDescription(boConstance.desc_EXAMPLE1);
//save the new parameter ?????
System.out.println("report parameters modified");
}
}
}
} catch (SDKException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
publicstaticvoidupdateparameter(iinfo对象报告){
//获取所有参数
试一试{
IReport rpt=(IReport)报告;
int i=0;
IReportParameter参数;
对于(i=0;i由于您已经在设置参数,您只需在IReport本身上调用save方法。您不会直接保存参数,因为它们是属于报表的数据
在for循环之后完成您的示例
try {
IReport rpt = (IReport) report;
int i = 0;
IReportParameter params;
for(i=0;i<rpt.getReportParameters().size();i++){
// do for loop here setting the parameters
}
rpt.save();
} catch (SDKException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
试试看{
IReport rpt=(IReport)报告;
int i=0;
IReportParameter参数;
对于(i=0;我无法执行此操作..我想我不够清楚。我不想将参数设置为在计划报告之后。我想更新可以在CMC上找到的取消默认参数(文件夹->myFolder->myPubliedReport/Tab进程-Parameters)查找我想要查看的内容: