报表客户端实现单据联查原创
金蝶云社区-CM9527
CM9527
2人赞赏了该文章 874次浏览 未经作者许可,禁止转载编辑于2021年09月16日 10:05:15

    image.png

我们的报表系统可以通过设置自定义函数从不同的单据取值,这个是怎么实现的呢?其实很简单。

    上图是一个自定义函数的设置界面,从图中我们可以看到取数来源类型是单据,然后取数参数是单据里面的字段,然后就是一些比较符。

    函数取值的过程,其实就是通过设置好的自定义函数,进行解析,比如ACCT函数:

    image.png

这个也可以看作为一个自定义函数,单据就是凭证,参数就是凭证的账簿,科目,等等参数。

我们取值也是从凭证里面取值,通过账簿,科目等筛选条件,拼成sql,筛选凭证的数据,然后根据取数类型,得到相应的结果值。

    如果想要实现单据联查,就是通过设置的自定义函数,通过函数解析到设置的单据,然后把参数拼成过滤条件,在打开单据列表之前,把过滤条件传给单据,就可以得到相应的单据列表。

  1. 通过自定义函数,解析单据的FormId;

  2. 通过参数比较符和参数字段,拼接成sql过滤条件

  3. 打开单据之前,将sql过滤条件传给单据。


//打开界面前的参数
ListShowParameter param = new ListShowParameter();
param.FormId = 解析的单据FORMID;
param.ListFilterParameter.Filter = 通过参数解析的过滤条件

image.png

赞 2