使用eclipse在jsp上顯示水晶報表(六)參數的簡單實用用法

來源:互聯網
上載者:User

在很多時候, 你會向報表中傳遞一些比較零散的資料, 並且這些資料是動態, 有些可以從資料庫中取得, 有些是自己自訂的. 而水晶報表的資料來源不允許自訂的欄位,  這個時候你就可以中參數來解決這個問題了, 你可以在後台把 值 傳遞給 報表中的對應參數.  (ps.參數名字不分大小寫)

            // STRING VALUE PARAMETER.  
            String stringValue = "my title33";    // TODO: Fill in value
            //HashMap變數中的元素的key值對應報表中參數的名字
            HashMap map = new HashMap();
            map.put("p1",stringValue);    
            map.put("p2","abx");
            map.put("p3","abc");            
            
            //報表參數的Controller
            ParameterFieldController parameterFieldController = 
                        clientDoc.getDataDefController().getParameterFieldController();
            if(parameterFieldController == null)...{
                
                throw new NullPointerException("Can't get ParameterFieldController!!");
            
            }
                
            //HashMap對象的迭次        
            Iterator it = map.keySet().iterator();    
            
                                    
        while(it.hasNext())...{
                
                String key = (String)it.next();    
                
            try...{
                
                    if(!"".equals(key) && key != null)//下面這個方法最重要, 對參數賦值
                    parameterFieldController
                         .setCurrentValue("", key.trim(), map.get(key));
                         
             }catch(ReportSDKException rde)...{
                    //處理出現沒對應的參數或其他原因的異常
                    System.out.println("Parameter:" + key + " throw Exception!!: " + rde);
              }
                
         }

我的報表檔案中有2個參數, 分別是p1和p2, 沒有p3, 所以拋出異常, 不過我不想介面上顯示異常的資訊, 也不想異常中斷我的程式, 所以我只是把異常的相關資訊顯示在控制台裡面.

運行後我的報表的參數p1和p2都被成功賦值, 控制台也顯示了空參數的異常, 當然那是沒有p3的緣故.

是不是很簡單, 由於這隻是個小小的例子, 所以寫得很簡單. 但在實際運用中要加以完善才行, 對方法更好的封裝, 對資料更加完善的判斷.

//例子中用到的類, 想把下面的東西插入到代碼中, 死活沒反映!!!!!

java.util.HashMap,
java.util.Iterator,
com.crystaldecisions.reports.sdk.ParameterFieldController,
com.crystaldecisions.sdk.occa.report.lib.ReportSDKException,
java.lang.NullPointerException

(有誰知道在csdn的blog中怎麼上傳圖片嗎? 唉, 有些東西用文字還真是難說清楚啊!)

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.