2014-01-20 39 views
1

我想在使用DynamicJasper生成報告時隱藏一列。
我不知道如何做到這一點。我試圖得到一些功能,但我不明白,因爲我是一個技術。在DynamicJasper中自動隱藏列

這是我的基本代碼:

AbstractColumn myColumn = ColumnBuilder.getNew().setColumnProperty(ConstantsClass.REPORT_COLUMN_PROPERTY[0], String.class.getName()) 
     .setFixedWidth(true) 
     .setTitle(ConstantsClass.REPORT_COLUMN_COLUMN_HEAD[0]).setWidth(new Integer(100)) 
     .setHeaderStyle(myStyle) 
     .build(); 

FastReportBuilder drb = new FastReportBuilder(); 
drb.addColumn(myColumn); 
DynamicReport dr = drb.build(); 

return dr; 

假設如果此列excel表的B列,應當在產生報告自動隱藏。列A後只應顯示C.取消隱藏時,應顯示B.

+0

什麼是問題?您可以使用方法'FastReportBuilder.addColumn'添加列 - 它取決於邏輯。 –

+0

示例是[這裏](http://dynamicjasper.com/documentation-examples/getting-started/) –

+0

嗨亞歷克斯,這裏的問題是列必須建立和保持隱藏。只有當他們取消隱藏時,它纔會顯示出來。如果我要在代碼中使用條件,我可以選擇僅決定是否構建列。 – prabhath

回答

0

你可以試試這個。因爲這是用java編寫的,所以你可以試試這個。

if(ConditionForBColumn) { 
AbstractColumn myColumn = ColumnBuilder.getNew().setColumnProperty(ConstantsClass.REPORT_COLUMN_PROPERTY[0], ValueOfB String.class.getName()) 
    .setFixedWidth(true) 
    .setTitle(ConstantsClass.REPORT_COLUMN_COLUMN_HEAD[0]).setWidth(new Integer(100)) 
    .setHeaderStyle(myStyle) 
    .build(); 
} else { 
AbstractColumn myColumn = ColumnBuilder.getNew().setColumnProperty(ConstantsClass.REPORT_COLUMN_PROPERTY[0], String.class.getName()) 
    .setFixedWidth(true) 
    .setTitle(ConstantsClass.REPORT_COLUMN_COLUMN_HEAD[0]).setWidth(new Integer(100)) 
    .setHeaderStyle(myStyle) 
    .build(); 
} 

FastReportBuilder drb = new FastReportBuilder(); 
drb.addColumn(myColumn); 
DynamicReport dr = drb.build(); 

return dr; 
+0

謝謝你的建議。但是這並不能幫助我,因爲它只允許我根據條件決定是否需要構建列。我的要求是列必須建立並保持在Excel中隱藏在打印中。稍後,只有當我們取消隱藏時纔會顯示。 – prabhath