精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

報表參數的獲取與配置詳解

開發 后端
本文介紹報表參數的獲取和配置方法,從而實現通過程序進行設計。參數是報表生成之前想報表設計文件輸入的報表元素。報表的應用程序可以訪問報表的參數的屬性,最常用的屬性是name和value。

報表是有參數的,通過報表參數可以使用程序進行獲取和配置。參數是報表生成之前想報表設計文件輸入的報表元素。報表的應用程序可以訪問報表的參數的屬性,最常用的屬性是name和value,你可以使用參數名或通用編碼來獲取參數。

為報表設計創建一個參數定義任務

一個IGetParameterDefinitionTask對象提供鏈接到報表設計所有參數的接口。通過調用 ReportEngine.createGetParameterDefinitionTask( )創建一個參數定義對象,使用結束后調用他的close方法關閉。

測試報表設計是否有參數

IGetParameterDefinitionTask.getParameterDefns( )可以測試報表設計是否有參數,它返回一個參數集合,調用集合的isEmpty( )方法可以測試集合中是否有元素。

獲取報表設計的參數

通過IGetParameterDefinitionTask.getParameterDefn( )方法獲取一個已知名字的參數,它返回一個IParameterDefnBase類型對象,也可以調用getParameterDefns( )方法返回一個參數集合。

getParameterDefns( )需要一個boolean參數,如果為false返回一個未分組的參數集合,如果為true返回報表設計中定義的參數組。

調用IParameterDefnBase.getParameterType( )可以檢驗參數是否是一個組。如果是一個組則返回IParameterDefnBase.PARAMETER_GROUP,如果是一個級聯參數組則返回 IParameterDefnBase.CASCADING_PARAMETER_GROUP。為獲取一組報表參數,使用方法 IParameterGroupDefn.getContents( ),它返回一個數據類型是IScalarParameterDefn的ArrayList對象。

獲取報表參數的默認值

這個任務是可選的。調用IGetParameterDefinitionTask.getDefaultValue( )獲取一個已知參數的默認值,它返回的是一個Object。可以通過調用IScalarParameterDefn.getDataType( )來獲取Object的有效類型,它返回一個IScalarParameterDefn定義的int類型的靜態變量。調用 IGetParameterDefinitionTask.getDefaultValues( )來獲取報表設計的所有參數的默認值,它返回一個HashMap對象存儲了從參數名到默認值的映射。

使用常量列表提供的效值

許多報表參數只接受常量列表的值,這些值可能是靜態常量,也可能是數據庫里查出來的數據list。使用 IGetParameterDefinitionTask.getSelectionList( )可以返回參數所能接受的參數(IParameterSelectionChoice)的集合,如果集合為null,則可以接受任何值。 IParameterSelectionChoice的getLabel( )方法返回現實的文本,getValue( )返回值。

獲取每個報表參數的屬性

這個任務是可選的。使用IScalarParameterDefn的方法可以獲取表參數的屬性。應用程序使用屬性生成用戶自定義接口。例如,獲取參數的數據類型使用getDataType( )方法。

為參數設置值

調用IGetParameterDefinitionTask.setParameterValue( )為參數設置值。如果你是通過應用程為日期數值等參數返回一個字符串,要把他們轉化成和本地無關的格式。調用方法 ReportParameterConverter.parse( )方法可以完成這項工作。getParameterValues( )方法返回一個HashMap包含了已經設置的所有參數。

報表參數設置實例

下面的代碼展示了如何設置一個已知參數名的參數值:

  1. // Create a parameter definition task.    
  2. IGetParameterDefinitionTask task = engine.createGetParameterDefinitionTask( runnable );    
  3. // Instantiate a scalar parameter.    
  4. IScalarParameterDefn param = (IScalarParameterDefn)     
  5. task.getParameterDefn( "customerID" );    
  6. // Get the default value of the parameter. In this case,     
  7. // the data type of the parameter, customerID, is Double.    
  8. int customerID = ((Double) task.getDefaultValue( param )).intValue( );    
  9. // Get a value for the parameter. This example assumes that     
  10. // this step creates a correctly typed object, inputValue.    
  11. // Set the value of the parameter.    
  12. task.setParameterValue( "customerID", inputValue );    
  13. // Get the values set by the application for all parameters.    
  14. HashMap parameterValues = task.getParameterValues( );    
  15. // Close the parameter definition task.    
  16. task.close( );    
  17. // Create a parameter definition task.  
  18. IGetParameterDefinitionTask task = engine.createGetParameterDefinitionTask( runnable );  
  19. // Instantiate a scalar parameter.  
  20. IScalarParameterDefn param = (IScalarParameterDefn)   
  21. task.getParameterDefn( "customerID" );  
  22. // Get the default value of the parameter. In this case,   
  23. // the data type of the parameter, customerID, is Double.  
  24. int customerID = ((Double) task.getDefaultValue( param )).intValue( );  
  25. // Get a value for the parameter. This example assumes that   
  26. // this step creates a correctly typed object, inputValue.  
  27. // Set the value of the parameter.  
  28. task.setParameterValue( "customerID", inputValue );  
  29. // Get the values set by the application for all parameters.  
  30. HashMap parameterValues = task.getParameterValues( );  
  31. // Close the parameter definition task.  
  32. task.close( );  

下面的代碼展示了如何使用報表參數集合,例子中使用ReportParameterConverter將字符串轉化成用戶接口接受的參數格式。

  1. // Create a parameter definition task.    
  2. IGetParameterDefinitionTask task = engine.createGetParameterDefinitionTask( runnable );    
  3. // Create a collection of the parameters in the report design.    
  4. Collection params = task.getParameterDefns( false );    
  5. // Get the default values of the parameters.    
  6. HashMap parameterValues = task.getDefaultValues( );    
  7. // Get values for the parameters. Later code in this example    
  8. // assumes that this step creates a HashMap object,    
  9. // inputValues. The keys in the HashMap are the parameter    
  10. // names and the values are those that the user provided.    
  11. // Iterate through the report parameters, setting the values     
  12. // in standard locale-independent format.    
  13. Iterator iterOuter = params.iterator( );    
  14. ReportParameterConverter cfgConverter =    
  15.         new ReportParameterConverter( "", Locale.getDefault() );    
  16. while ( iterOuter.hasNext( ) ) {    
  17. IParameterDefnBase param = (IParameterDefnBase) iterOuter.next( );    
  18. String value = (String) inputValues.get( param.getName( ));    
  19. if ( value != null ) {    
  20. parameterValues.put( param.getName( ),     
  21. cfgConverter.parse( value, param.getDataType( ) ) );    
  22. }    
  23. }    
  24. // Close the parameter definition task.    
  25. task.close( );    
  26. // Create a parameter definition task.  
  27. IGetParameterDefinitionTask task = engine.createGetParameterDefinitionTask( runnable );  
  28. // Create a collection of the parameters in the report design.  
  29. Collection params = task.getParameterDefns( false );  
  30. // Get the default values of the parameters.  
  31. HashMap parameterValues = task.getDefaultValues( );  
  32. // Get values for the parameters. Later code in this example  
  33. // assumes that this step creates a HashMap object,  
  34. // inputValues. The keys in the HashMap are the parameter  
  35. // names and the values are those that the user provided.  
  36. // Iterate through the report parameters, setting the values   
  37. // in standard locale-independent format.  
  38. Iterator iterOuter = params.iterator( );  
  39. ReportParameterConverter cfgConverter =  
  40.         new ReportParameterConverter( "", Locale.getDefault() );  
  41. while ( iterOuter.hasNext( ) ) {  
  42. IParameterDefnBase param = (IParameterDefnBase) iterOuter.next( );  
  43. String value = (String) inputValues.get( param.getName( ));  
  44. if ( value != null ) {  
  45. parameterValues.put( param.getName( ),   
  46. cfgConverter.parse( value, param.getDataType( ) ) );  
  47. }  
  48. }  
  49. // Close the parameter definition task.  
  50. task.close( );  

使用級聯參數

級聯參數參數是一組可供用戶選擇的參數值的集合。第一個參數的選擇會影響到第二個參數中的值。參數使用一個或多個查詢來從數據集把數據展示給用戶。參數定義任務根據前面的選擇以行為單位過濾參數組中的數據。

使用報表引擎實現級聯參數,要進行如下工作:

■使用IGetParameterDefinitionTask.evaluateQuery( )方法為級聯參數準備數據,它需要參數group的名字作為參數。

■調用IGetParameterDefinitionTask.getSelectionListForCascadingGroup( )獲取參數組的第一個參數的值,它需要兩個參數,參數名和對象數組,對第一個參數來說這個數組是空的。該方法返回一個 IParameterSelectionChoice集合。

■ 再次調用getSelectionListForCascadingGroup( )方法獲取后面的參數,這次Object[ ]中放的是前面獲取的參數值。

下面的代碼展示了如何通過查詢實現級聯參數:

  1. // Create a grouped collection of the design’s parameters.    
  2. Collection params = task.getParameterDefns( true );    
  3. // Iterate through the parameters to find the cascading group.    
  4. Iterator iter = params.iterator( );    
  5. while ( iter.hasNext( ) ) {    
  6. IParameterDefnBase param = (IParameterDefnBase) iter.next();    
  7. if ( param.getParameterType() ==     
  8. IParameterDefnBase.CASCADING_PARAMETER_GROUP ) {    
  9. ICascadingParameterGroup group = (ICascadingParameterGroup) param;    
  10. Iterator i2 = group.getContents( ).iterator( );    
  11. // Run the query for the cascading parameters.    
  12. task.evaluateQuery( group.getName() );    
  13. Object[ ] userValues = new Object[group.getContents( ).size( )];    
  14. // Get the report parameters in the cascading group.    
  15. int i = 0;    
  16. while ( i2.hasNext( ) ) {    
  17. IScalarParameterDefn member = (IScalarParameterDefn) i2.next( );    
  18. // Get the values for the parameter.    
  19. Object[ ] setValues = new Object[i];    
  20. if ( i > 0 )  System.arraycopy( userValues, 0, setValues, 0, i );    
  21. Collection c = task.getSelectionListForCascadingGroup(    
  22.    group.getName(),setValues );    
  23. // Iterate through the values for the parameter.    
  24. Iterator i3 = c.iterator();    
  25. while ( i3.hasNext( ) ) {    
  26. IParameterSelectionChoice s =     
  27. ( IParameterSelectionChoice ) i3.next( );    
  28. String choiceValue = s.getValue( );    
  29. String choiceLabel = s.getLabel( );    
  30. }    
  31. // Get the value for the parameter from the list of    
  32. // choices. This example does not provide the code for    
  33. // this task.    
  34. userValues[i] = inputChoiceValue;    
  35. i++;    
  36. }    
  37. }    
  38. }    

以上就是用程序處理報表參數的配置方法。

【編輯推薦】

  1. Java報表工具FineRpeort特性概覽
  2. Java報表工具的簡約之美
  3. Java多線程編程實戰精要
  4. Java內部類使用的四點建議
  5. 深入核心 Java終止函數詳解
責任編輯:yangsai 來源: JavaEye博客
相關推薦

2010-11-29 13:33:00

sybase配置參數

2010-09-26 11:00:48

JVM參數配置

2018-11-01 10:34:37

JVM內存配置

2010-09-17 15:57:23

TomcatJVM

2023-09-01 08:18:53

Tomcat配置參數

2009-07-09 14:02:58

Tomcat JDK

2025-10-17 08:46:54

2025-10-17 11:30:00

Paimon大數據數據湖

2025-11-11 09:41:20

2025-11-20 09:00:11

2025-11-03 09:18:35

2025-11-19 09:14:59

2025-11-20 06:05:00

PaimonSQL大數據

2009-07-04 00:50:38

2024-01-15 16:46:35

Nginx服務器

2011-03-02 13:28:33

Vsftpd配置

2009-03-10 13:51:36

編譯器VS2010C#

2010-08-12 13:15:26

MySQL集群

2010-06-21 14:57:32

Linux apt

2010-06-03 15:04:31

NAP IPSEC配置
點贊
收藏

51CTO技術棧公眾號

北条麻妃在线一区二区免费播放 | 欧美日韩在线影院| 成人免费在线看片| 欧美三级一区二区三区| 夜夜春成人影院| 欧美午夜一区二区三区| 天天成人综合网| 欧美熟女一区二区| 久久激情中文| 久久精品福利视频| 精品人妻一区二区三区日产| 日韩精品三区| 樱花影视一区二区| 欧美高清视频一区| 亚洲天堂视频在线| 极品中文字幕一区| 在线不卡国产精品| 天天爽夜夜爽视频| 天堂中文最新版在线中文| 欧美极品aⅴ影院| 91一区二区三区| 国产伦精品一区二区三区视频我| 亚洲精品中文字幕乱码| 999精品嫩草久久久久久99| 免费高清视频精品| 高清欧美性猛交| 任我爽在线视频| 日韩欧美ww| 日韩午夜激情电影| 国产视频在线视频| 波多野结衣在线高清| 国产亚洲综合在线| 国产精品区二区三区日本| 中文字幕在线观看免费| 亚洲一区二区三区高清| 欧美日韩高清区| 91香蕉国产视频| 欧美男gay| 亚洲福利视频网| 色黄视频免费看| 久久久久久久性潮| 日本道免费精品一区二区三区| 成人污网站在线观看| 在线看免费av| 国产欧美日韩在线视频| 国产一区在线观| www.久久久久久| 国产一区二区视频在线播放| 国产精品久久久久久一区二区| 久久久久成人网站| 一本一道久久a久久精品蜜桃| 伊人久久男人天堂| 国产女主播喷水高潮网红在线| 国产精品自在| 亚洲精品一区二区三区香蕉 | 国产老妇另类xxxxx| 国产精品狼人色视频一区| 日本中文字幕久久| 国产一区二区高清| 8050国产精品久久久久久| 国产一级视频在线| 亚洲福利免费| 97人人爽人人喊人人模波多| 国产无遮挡免费视频| 国产精品vip| 欧美精品久久久久久久久久| 久久免费小视频| 激情婷婷亚洲| 午夜精品久久久久久99热| 久久久久久久久久久网| 黄色成人av网站| 97婷婷大伊香蕉精品视频| 亚洲黄色一区二区| 先锋影音国产一区| 国产成人精品电影久久久| 欧美日韩综合一区二区三区| 久久免费黄色| 国产免费一区二区三区香蕉精| 岳乳丰满一区二区三区| 激情亚洲综合在线| 99久久无色码| 亚州视频一区二区三区| 2017欧美狠狠色| 水蜜桃一区二区| 精品国产99久久久久久| 洋洋av久久久久久久一区| av女优在线播放| 台湾佬中文娱乐久久久| 精品视频在线免费| 中文字幕 欧美 日韩| 国产精品毛片av| 亚洲人在线视频| frxxee中国xxx麻豆hd| 欧美三级特黄| 日本午夜人人精品| 国产免费黄色网址| 99久精品国产| 正在播放91九色| 色婷婷av在线| 色婷婷精品久久二区二区蜜臀av | 黄页免费欧美| 精品国产网站在线观看| 亚洲理论片在线观看| 久久久久久久久久久久久久久久久久| 久久久久久久久久久成人| 黑人一级大毛片| 久久av中文字幕片| 国产在线欧美日韩| 日本a在线播放| 精品久久久久久中文字幕一区奶水 | 日韩欧美在线播放| 伊人五月天婷婷| 美日韩中文字幕| 九九九热精品免费视频观看网站| 国产精品视频123| 国产精品正在播放| 欧洲精品久久| 国产99在线观看| 欧美精选一区二区| ass精品国模裸体欣赏pics| 亚洲欧美综合久久久| 国产精品va在线播放| 亚洲黄色小说网| 国产精品三级av在线播放| 欧美在线一区视频| 精品国产一区二区三区性色av| 亚洲欧洲xxxx| www日韩精品| 国产精品1区二区.| 亚洲图片小说在线| 色综合一本到久久亚洲91| 精品国产乱码久久久久久1区2区| 蜜桃av免费观看| 可以看av的网站久久看| 国产日韩精品推荐| 在线观看男女av免费网址| 欧美日韩中文字幕一区| 中国女人特级毛片| 国产亚洲综合精品| 国产在线精品一区二区三区》| 18+视频在线观看| 欧美老年两性高潮| 精品日韩在线视频| 日韩精品一二三| 欧美亚洲另类久久综合| 中文字幕成在线观看| 亚洲白拍色综合图区| 久草中文在线视频| 国产精品系列在线观看| 国产精品美女在线播放| 欧美91在线|欧美| 色哟哟网站入口亚洲精品| 狠狠狠狠狠狠狠| 久久久久久久性| 国产裸体舞一区二区三区| 亚洲另类春色校园小说| 欧美一级淫片videoshd| 手机福利在线| 91久久久免费一区二区| 美女100%露胸无遮挡| 日本特黄久久久高潮| 欧美一二三四五区| 久久青青视频| 在线观看久久久久久| 这里只有精品国产| 国产精品天美传媒沈樵| 日韩高清第一页| 亚洲一级淫片| 国产日韩欧美亚洲一区| 超级碰碰久久| 最新国产精品亚洲| 国产一区二区网站| 亚洲最新在线观看| 99久久久久久久久久| 三级网在线观看| 手机av免费观看| 国产欧美精品一区二区色综合| 日韩欧美高清在线| 精品欧美一区二区久久久| 日日摸夜夜添夜夜添国产精品| 五月天综合网| 欧美大片91| 欧美亚洲日本网站| 最新97超碰在线| 欧美一级在线视频| 日本视频免费在线| 欧美激情中文字幕| 色噜噜狠狠一区二区三区狼国成人| 欧美在线高清| 久久久久天天天天| 国产精品久久久久久吹潮| 美女少妇精品视频| 亚洲三区在线播放| 色婷婷在线视频观看| 一区二区久久| 日韩av电影在线观看| 欧美xnxx| 欧美成人一区二区在线观看| 超碰在线97国产| 亚洲人成在线观看| 国产三级理论片| 中文字幕一区二区三区精华液| 激情成人在线观看| 乱码第一页成人| 一区二区三区四区| 在线播放一区二区精品视频| 欧美一区三区三区高中清蜜桃| www.av在线| 日韩三级视频在线看| 日本三级片在线观看| 久久精品水蜜桃av综合天堂| 日本xxxx免费| 日本色综合中文字幕| 一本色道久久88亚洲精品综合| 国产精品中文字幕制服诱惑| 国产精品视频播放| 性欧美猛交videos| 日韩精品中文字幕有码专区| 一级黄色a视频| 日韩欧美高清视频| 天天做夜夜爱爱爱| 97超碰欧美中文字幕| 最新天堂在线视频| 日韩av网站在线观看| 日韩中文在线字幕| 自拍欧美一区| 51精品国产人成在线观看| 久久野战av| 久久久久在线观看| av电影在线观看一区二区三区| 日韩欧美一级特黄在线播放| 中文字幕欧美人妻精品| 亚洲精品视频在线看| 日本50路肥熟bbw| 精品在线观看视频| 亚洲免费av一区二区三区| 国产精品av一区二区| 久久精品五月婷婷| 久久久久久久久成人| 成人高清视频观看www| 中日韩脚交footjobhd| 欧美日韩爱爱视频| 日本在线人成| 久久激情五月丁香伊人| 黄色片免费在线| 日韩av在线免费看| 国产综合在线播放| 精品国产电影一区二区| 国产精品自产拍| 欧美日韩一区二区电影| 在线免费观看毛片| 亚洲精品视频免费看| 国产一二三av| 欧美国产1区2区| 老司机精品免费视频| 久久精品视频网| 噜噜噜在线视频| 国产精品99久久久久久宅男| 日本成人xxx| 九色porny丨国产精品| 欧美性猛交久久久乱大交小说| 国产视频一区在线观看一区免费| 国产女教师bbwbbwbbw| 小说区亚洲自拍另类图片专区| 色综合电影网| 欧美超碰在线| 亚洲欧洲一二三| 色小子综合网| 中日韩在线视频| 欧美涩涩视频| 欧美成人精品免费| 国语精品一区| 看av免费毛片手机播放 | 成人av中文| 日韩视频一区二区三区四区| 91视频免费在线| 亚洲高清999| 国产精品久久精品国产| 偷拍亚洲精品| 日韩欧美一区二区三区四区| 日本欧美视频| 国产成人精品免费看在线播放| 最新精品国产| 国产婷婷一区二区三区| 午夜久久美女| 欧美黄网站在线观看| 日韩精品欧美成人高清一区二区| 亚洲精品中文字幕无码蜜桃| 日韩综合小视频| 99sesese| 国产激情视频一区二区在线观看| av电影在线播放| 国产欧美精品区一区二区三区 | 丝袜脚交一区二区| 高清av免费看| 国产成人av一区二区三区在线| 久久久久国产精品区片区无码| 久久精品亚洲一区二区三区浴池| 少妇视频在线播放| 亚洲午夜免费电影| av一级在线观看| 欧美精品电影在线播放| 天堂在线中文网| 一区二区福利视频| 中日韩高清电影网| 久久久久亚洲精品国产| 美女久久久久久| 国产亚洲欧美一区二区| 欧美精品一区二区三区中文字幕 | 色视频成人在线观看免| 一二区在线观看| 亚洲国产欧美自拍| 91香蕉在线观看| 国产成人一区二区三区| 久久三级中文| 久久五月天婷婷| 国模 一区 二区 三区| 国产a视频免费观看| 国产一区二区调教| www成人啪啪18软件| 亚洲sss视频在线视频| 国产精品露脸视频| 亚洲欧美中文日韩在线v日本| 成人av福利| 国产精品久久精品| 国内自拍欧美| 免费观看黄色的网站| 亚洲欧美日韩在线观看a三区| 久久精品一卡二卡| 国产亚洲精品资源在线26u| 麻豆亚洲av成人无码久久精品| 欧美日韩美女在线观看| 午夜精品一二三区| 色噜噜亚洲精品中文字幕| 中文在线资源| 国产伦精品一区二区三| 色喇叭免费久久综合| 日本爱爱免费视频| 99精品国产一区二区三区不卡| 久草视频手机在线| 欧美精品 国产精品| 国产日产精品久久久久久婷婷| 久久理论片午夜琪琪电影网| www.久久草.com| 亚洲国产欧洲综合997久久| 国产精品毛片一区二区三区| 欧美日韩一区二区三区四区五区六区| 中文字幕一区在线观看| 国产偷人爽久久久久久老妇app| 国产亚洲精品激情久久| 亚洲天堂手机| 国产一区二区三区四区五区在线 | 国产1区2区3区精品美女| 天美传媒免费在线观看| 欧美日韩国产另类不卡| 国产精品久久久久久久龚玥菲| 97视频免费在线看| 亚洲+变态+欧美+另类+精品| 亚洲色欲久久久综合网东京热| 国产一区欧美日韩| √天堂中文官网8在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 182在线视频| 色综合天天在线| 欧美日韩在线精品一区二区三区激情综 | 91精品久久久久久久久久久| 日韩aaaa| 亚洲色图久久久| 国产精品国产三级国产普通话99 | 婷婷在线免费观看| 欧美激情网友自拍| 黄色欧美网站| 国产精品50p| 久久麻豆一区二区| 久久久久女人精品毛片九一| 亚洲精品有码在线| 亚洲天堂导航| 五月婷婷综合色| 老司机精品视频一区二区三区| 五月婷婷综合激情网| 欧美成人激情免费网| 俺来俺也去www色在线观看| 国产精品一区二区不卡视频| 快she精品国产999| 日本激情视频一区二区三区| 欧美一区二区三区爱爱| 岛国av在线网站| 日本不卡一区二区三区在线观看| 天堂成人免费av电影一区| 大地资源高清在线视频观看| 日韩片之四级片| 九色porny视频在线观看| 日韩欧美精品一区二区| 久久精品女人天堂| 懂色av粉嫩av浪潮av| 欧美一级一区二区| www.精品| 青春草在线视频免费观看| 国产999精品久久久久久| 懂色av蜜臀av粉嫩av分享吧最新章节|