0
設置報告的默認參數值

我的業務對象服務器上發佈了所有我的水晶報表。通過代碼

所有這些都連接到業務視圖對象。

所有這些業務視圖都使用相同的動態數據連接。

這使我的報告有這個動態數據連接參數。

我可以通過中央管理控制檯更改此參數。

但是現在我希望能夠通過代碼與BO的SDK進行更改。

我有這種方法,我認爲是接近實現我想要的,我只能保存更改。

 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(); 
    } 


} 

任何想法?謝謝,

+0

發現了什麼,我想看看:[鏈接](http://www.sdn.sap.com/irj/boc/go/portal/ prtroot/docs/library/uuid/b0e87da0-833f-2b10-f2a7-a3c5b00008ea?QuickLink = index&overridelayout = true&30949534351040) –

回答

0

由於您已經設置了參數,您只需要調用IReport本身的保存方法即可。您不會直接保存參數,因爲它們是屬於該報告的數據。

因此,要完成你的例子後的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(); 
} 
+0

不能使這項工作..我認爲我不夠清楚。我不想在安排報告後設置參數。我想更新您可以在CMC上找到的默認參數(文件夾 - > myFolder - > myPubliedReport/Tab Process - 參數 –

+0

Nervermind,我發現動態數據連接參數是隻讀的... –