电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

5步搞定!超实用的EAS通用报表开发教程

来源:金蝶云社区作者:金蝶2024-09-164

5步搞定!超实用的EAS通用报表开发教程

# 一、需求背景 在实际工作中经常会遇到用户需要一些报表的场景,这时,可以考虑采用金蝶EAS标准模块扩展报表进行开发,也可以使用金蝶BOS进行开发,当然,也可以使用金蝶DEP进行开发。 本次方案就主要采用金蝶EAS DEP+网页版实现一个通用的报表查询工具。 # 二、实现思路 采用金蝶EAS动态扩展平台KScript+WAFⅡ的Rhino脚本实现 1. 在金蝶EAS客户端动态扩展平台新建方案 2. 在金蝶EAS客户端服务端实现查询方法 3. 在金蝶EAS客户端编辑界面利用表格实现数据展示 4. 在金蝶EAS Web端使用Rhino加Waf Ⅱ表格实现网页端展示 # 三、适用版本 客户端版本应该EAS所有版本通用,网页版的我是在8.5做的测试,不确定8.5以下版本是否支持。 ***备注:自己使用,只要改动步骤三中的sql语句即可实现报表*** # 四、实现步骤-客户端实现方式 步骤一:在金蝶EAS客户端进入企业建模,从模板复制一个新的方案通用查询报表。 ![image.webp](/download/010048103ea165434367855cc7881f07ff4f.webp) ![image.webp](/download/0100706ae292cb96403db9804455bed65ac4.webp) ![image.webp](/download/010091d50218246c4640930bce1613af4907.webp) **步骤二:**实体新创建业务方法、事件。 ![image.webp](/download/010070f324bc837647408a1d4c7d773f33fa.webp) ![image.webp](/download/0100529f8f5f4a3440ba85281327c9573ebe.webp) 步骤三:实现扩展定义中的脚本。 ![image.webp](/download/01002a34ad9c53ec4d0d9c478fc7b0ac0f4b.webp) ```java //截图的中代码,后续可以替换getDataSql中的Sql语句 关键代码: var imp = JavaImporter(); imp.importPackage(Packages.com.kingdee.eas.util.app); imp.importPackage(Packages.java.sql); imp.importPackage(Packages.com.kingdee.eas.util.client); imp.importPackage(Packages.com.kingdee.bos.dao.query); with(imp){ var ctx = pluginCtx.getContext(); var getDataSql = ""; var queryType = methodCtx.getParamValue(0); var otherParams = methodCtx.getParamValue(1); if(queryType.equals("companylist")){ getDataSql = "select FName_L2 AS 公司名称,FNumber AS 公司编码 from T_ORG_BaseUnit"; } var row = DbUtil.executeQuery(ctx, getDataSql); methodCtx.setResultValue(row); } ``` 步骤四:新加功能和工具栏。 ![image.webp](/download/010072f92908be184682910bb8d51b763625.webp) ![image.webp](/download/01005ff4f7e51c3546a1af7272bc0d50390c.webp) 步骤五:实现工具栏功能。 ![image.webp](/download/0100ad5d958707f142e78827bfa5f6996a75.webp) ```java var imp = JavaImporter(); imp.importPackage(Packages.com.kingdee.bos.ctrl.kdf.table); imp.importPackage(Packages.java.text); with(imp){ var metaPK = com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.custom.mytestbill.app.GEQueryReport"); var methodSignature = "com.kingdee.bos.dao.IObjectCollection getDateMethod(String arg1, String arg2)"; var args = [companylist,""]; var dataCollection = com.kingdee.bos.framework.BOClientTool.callCmethod(metaPK,methodSignature,args); var table = pluginCtx.getKDTable("kdtEntrys"); table.removeRows(); table.removeColumns(); var j = 0; var metaData = dataCollection.getMetaData(); var columnsCount = metaData.getColumnCount() table.addHeadRow(0); table.addColumns(columnsCount); for(j;j<columnsCount;j++){ table.getHeadRow(0).getCell(j).setValue(metaData.getColumnName(j+1)); KDTableHelper.autoFitRowHeight(table, j); } //table.getHeadRow(0).getCell().setValue(); var i = 0; var k = 0; for(i;i<dataCollection.size() ;i++){ dataCollection.next(); table.addRow(); k = 0; for(k;k<columnsCount;k++){ table.getRow(i).getCell(k).setValue(dataCollection.getString(metaData.getColumnName(k+1))); } } } ``` 关键代码部分说明: var metaPK = com.kingdee.bos.metadata.MetaDataPK.create("com.kingdee.eas.custom.mytestbill.app.GEQueryReport"); var methodSignature = "com.kingdee.bos.dao.IObjectCollection getDateMethod(String arg1, String arg2)"; var args = ["companylist",""]; com.kingdee.bos.framework.BOClientTool.callCmethod(metaPK,methodSignature,args); 以上这部分通过选择调用自定义业务方法,选择对应的获得sql查询的结果即可。 通过以上方式就已经实现了客户端上查询sql,并且以表格形式展现。 ![image.webp](/download/01006f3d7717b0304f7389ee3574c99f77ff.webp) # 五、实现步骤-网页端实现方式 步骤一:Portal端创建业务单元 ![image.webp](/download/0100bc19f045307b411fadb04e7710c7bc74.webp) ![image.webp](/download/01006022ad9e0bca4ccba84f352004b768aa.webp) 步骤二:进入编辑页面,设置功能 ![image.webp](/download/0100f4dac9d93732460a98a1ead63e8e2853.webp) 步骤三:新增页面功能 ![image.webp](/download/0100247b530f3ac24be8a75a3b2e21e19b71.webp) 步骤四:增加后台脚本: ![image.webp](/download/01000bbc97ca8ddb4e909f17e320109eff2c.webp) ```java var imp=JavaImporter(); imp.importPackage(Packages.com.kingdee.bos.webframework.json); imp.importPac

5步搞定!超实用的EAS通用报表开发教程

# 一、需求背景在实际工作中经常会遇到用户需要一些报表的场景,这时,可以考虑采用金蝶EAS标准模块扩展报表进行开发,也可以使用金蝶BOS...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信