日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
報表參數(shù)的獲取與配置詳解

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

蒙山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

為報表設(shè)計創(chuàng)建一個參數(shù)定義任務

一個IGetParameterDefinitionTask對象提供鏈接到報表設(shè)計所有參數(shù)的接口。通過調(diào)用 ReportEngine.createGetParameterDefinitionTask( )創(chuàng)建一個參數(shù)定義對象,使用結(jié)束后調(diào)用他的close方法關(guān)閉。

測試報表設(shè)計是否有參數(shù)

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

獲取報表設(shè)計的參數(shù)

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

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

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

獲取報表參數(shù)的默認值

這個任務是可選的。調(diào)用IGetParameterDefinitionTask.getDefaultValue( )獲取一個已知參數(shù)的默認值,它返回的是一個Object??梢酝ㄟ^調(diào)用IScalarParameterDefn.getDataType( )來獲取Object的有效類型,它返回一個IScalarParameterDefn定義的int類型的靜態(tài)變量。調(diào)用 IGetParameterDefinitionTask.getDefaultValues( )來獲取報表設(shè)計的所有參數(shù)的默認值,它返回一個HashMap對象存儲了從參數(shù)名到默認值的映射。

使用常量列表提供的效值

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

獲取每個報表參數(shù)的屬性

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

為參數(shù)設(shè)置值

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

報表參數(shù)設(shè)置實例

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

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

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

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

使用級聯(lián)參數(shù)

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

使用報表引擎實現(xiàn)級聯(lián)參數(shù),要進行如下工作:

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

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

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

下面的代碼展示了如何通過查詢實現(xiàn)級聯(lián)參數(shù):

 
 
 
  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. }  

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


新聞名稱:報表參數(shù)的獲取與配置詳解
當前鏈接:http://www.dlmjj.cn/article/dppoooc.html