报表设置超链接和点击事件原创
9人赞赏了该文章
3,637次浏览
编辑于2021年10月14日 09:19:58
看完文章,请点赞收藏,谢谢您嘞
在报表上添加超链接,并且响应点击事件。
1.打开报表上的字段的“显示为超链”开关
2.选择根节点,添加报表页面插件
3.编写插件,添加超链点击事件
package kd.demo.platform.form; import kd.bos.algo.DataSet; import kd.bos.algo.Row; import kd.bos.entity.report.*; import kd.bos.form.control.events.FilterContainerInitEvent; import kd.bos.form.events.FilterContainerSearchClickArgs; import kd.bos.form.events.HyperLinkClickEvent; import kd.bos.form.events.HyperLinkClickListener; import kd.bos.form.field.events.BeforeFilterF7SelectEvent; import kd.bos.report.ReportList; import kd.bos.report.events.CreateColumnEvent; import kd.bos.report.events.CreateFilterInfoEvent; import kd.bos.report.plugin.AbstractReportFormPlugin; import kd.bos.servicehelper.QueryServiceHelper; import java.util.*; public class SimpleReportFormPlugin extends AbstractReportFormPlugin { @Override public void registerListener(EventObject e) { super.registerListener(e); ReportList reportList = getControl("reportlistap"); reportList.addHyperClickListener(new HyperLinkClickListener() { @Override public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) { DataSet cDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "kdec_fruit_bill", "billno as kdec_billno, kdec_fruit_pro.name as proname, kdec_entryentity.kdec_fruits as kdec_fruits", null, "billno asc"); Iterator<Row> iterator = cDataSet.iterator(); int index = 0; String billno = ""; while (iterator.hasNext()) { index++; Row row = iterator.next(); if (index == hyperLinkClickEvent.getRowIndex()) { billno = row.getString(hyperLinkClickEvent.getFieldName()); break; } } System.out.println(billno + "HyperLinkClick"); } }); } }
4.效果展示
依次点击002、004、009这几个超链,后台也打印了对应的单据编码
赞 9
9人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!