新手报表开发必看系列(一):直接SQL账表开发原创
金蝶云社区-依然如昨
依然如昨
17人赞赏了该文章 3360次浏览 未经作者许可,禁止转载编辑于2023年08月24日 13:53:34
封面

       直接SQL账表是报表开发中相对简单实用的,因此掌握好此种报表开发是每个金蝶云星空维护人员必备的技能。接下来就让我们开始学习如何顺利完成一张直接SQL账表开发吧。

    必须的前提技能:(1)SQL查询语句熟练 (2)了解BOS后台和管理员管理功能


一、数据字典

       在开发SQL账表之前首要是在数据库工具里先把报表内容涉及的SQL查询语句调试好,那么对涉及表单数据库后台的存储表名、字段名、关联关系等的数据字典就至关重要了。

        目前官方给出的云星空数据字典是7.6版本,和目前云星空最新8.1版具体的差异还不清楚,应该不会对二次开发带来明显的困扰,唯一稍显遗憾的是字典中未对视图和存储过程给与说明。

        数据字典的下载链接:https://open.kingdee.com/K3Cloud/WenKu/AllDocument.aspx?KeyWords=数据字典

       数据字典下载解压后发现都是PDM文件,推荐使用PDMReader阅读器将PDM文件全部加载进去,然后就可以按单据名、表名、字段名等进行搜索查询了,如下图所示。

       推荐的PDM阅读器下载链接:http://www.mahoulib.com

上传图片


二、SQL编写

     有了数据字典,那么我们就能在SQL 客户工具里先尝试编写报表所需的记录查询语句了。无论是ORACLE数据库使用的SQL PLUS、MYSQL使用的MySql Workbench,还是MSSQL使用的SSMS等客户端工具都可以轻松编写SQL查询或者存储过程了。

    一般单据表头(基本信息)的数据库表名后面加ENTRY就是表体(明细信息)的数据库表,但是...但是有的明细表后缀却是DATA。为什么会不统一?是道德的沦丧还是人性的扭曲——这个我们就不追究了。明细表里一般存的是主体资料的ID,而名称是存在后缀“_L”是多语言表;_LK是关联关系表,一般是下推单据后形成的关联关系;此外还有_A/_C等后缀表,基本都是对明细表的数据补充。

     基本信息和明细信息通过FID关联,单据内的各明细表之间通过FENTRYID关联;和其他的单据关联通过各表的“源单号码”(来源单据的FBILLNO)或者“源单内码”(源单的FID)进行关联。


三、直接SQL账表开发

       好了,通过以上两个步骤,我们已经把要开发的报表涉及的SQL语句已经调试完毕了,在数据库工具里得到了我们想要的结果。但如何才能在金蝶系统里添加完这种报表,授权某些用户进行查询呢?主要包括4个步骤:BOS创建直接SQL账表、管理员创建权限对象并配置给账表、BOS发布账表到客户端、管理员给用户角色授权。


1、BOS创建直接SQL账表

(1)在BOS项目里选中模块菜单下的“账表-直接SQL账表”,右键新增;

(2)或者选中项目模块后,在BOS左上菜单点击 “新建”,如下图:

上传图片

填上名字、补充完标识,确定。

(3)“批量编辑字段属性-表单属性-数据源”,跳出报表向导:

上传图片


(4)下一步,将调试好的SQL贴到相应窗口,注意报表显示的列名是select 后的字段名,建好关键字(过滤条件),点击测试。

上传图片

如果测试没有问题,在“下一步”后续可以设置列字段格式、分组等,直到完成SQL账表建立过程。


2、管理员账号设置权限对象

(1)具有管理员权限账号登录,新建“权限对象”,注意报表所属的“子系统”。选择报表需要的权限,如下图:

上传图片

(2)BOS里进行报表权限控制设置,将报表的权限对象栏设置成上面新建的报表对象,如下图:

上传图片

3、将账表发布到客户端

选择发布的菜单目录,填写“编码、名称”,选择上面新建的对象名称,权限项选“查看”,发布到客户端:

上传图片

4、管理员将报表授权给用户角色

管理员将报表对象(报表名称)授权给角色,并将角色赋予用户。用户登录后即可在发布目录发起报表查询。

上传图片


至此,我们就完成了系统自定义直接SQL账表开发的所有过程。也希望上面的内容能对新人做报表开发有所帮助!

赞 17