需求:
皕杰报表导出excel时怎么隐藏某一行,web端展示的时候这一行显示不隐藏?
解决方案:
1.设计一个实例报表tbf.brt
2.在这个示例报表中新增一个参数type、整数类型;然后 点击行数3,属性是否可见,写判断表达式if(@type=1,false,true),意思当type参数值是1的时候false,然后总计这一行不可见;type参数值不等于1时,总计这一行可见。
3.编写自定义工具条按钮
根据皕杰报表帮助文档-开发指南-javadoc中自定义工具条按钮工厂bios.report.api.factory.ToolbarButtonFactory重载excel导出按钮。
示例代码:
package bios.report.dev.examples.factory;
import bios.report.api.factory.ToolbarButtonFactory;
import bios.report.api.utils.ReportToolkits;
/**
* 自定义工具条按钮工厂示例
* @author Bijetsoft.com
*/
public class MyToolbarBtnFactory extends ToolbarButtonFactory {
/**
* 重载父类方法,替换导出Excel按钮
*/
@Override
public String replaceExportExcelButton1() {
if (reportMark.getRpt().equals("tbf.brt")) { //如果报表名为tbf.brt,那么使用自定义导出excel按钮
String rpt = reportMark.getRpt();
String params = ReportToolkits.encodeUrl(reportMark.getParams());
params+=";type=1;";
String vars = ReportToolkits.encodeUrl(reportMark.getVars());
StringBuffer str = new StringBuffer();
str.append("<td>");
str.append("<table cellspacing='0' cellpadding='0' title='导出整页EXCEL' onclick=");
str.append("openEmitter(\"").append(request.getContextPath()).append("/ReportEmitter?rpt=").append(rpt).append("&emitter=toxls¶ms=").append(params).append("&vars=").append(vars).append("\")");
str.append("><tr>");
str.append("<td class='button-img btn-excel'></td>"); //按钮图片
str.append("<td class='button-text' id='be_0'>整页</td>"); //按钮文字,id设置为be_n,可支持工具条长度不足时,自动隐藏文字
str.append("</tr></table>");
str.append("</td>");
return str.toString();
}
return null;
}
}
4.将自定义工具条按钮类MyToolbarBtnFactory打成jar包 ,然后复制到web报表环境的WEB-INF/lib下
5.打开web报表环境的WEB-INF/resources/report_config.xml,修改节点值为
<toolbarButtonFactory>bios.report.dev.examples.factory.MyToolbarBtnFactory </toolbarButtonFactory>
6.然后启动web应用,并访问实例报表tbf.brt;
点击这个报表的导出excel按钮。
7.如上图所示:总计这一行导出excel后不可见。