通用查询较之简单通用查询,增加了表间关联的能力,支持多表查询,但是需要在ECC6以上版本使用,且需要在SAP系统中添加一个我方提供的ABAP Function,并且通用查询相对于简单通用查询来说,设置过程没有简单通用查询那么简单,选择的表和列不再是可视化选择,而完全是通过open sql语句实现。下面就以java报表控件FineReport为平台来介绍。
前期准备工作(包括相关工具或所使用的原料等)java报表控件FineReport7.1.1大小:148.2M 适用平台:windows/linux 详细的操作方法或具体步骤
在Function列表中选择通用查询(适用于SAP6以上版本),如下图:
我们这里简单做个多表查询,比如说关联KNA1和KNVV这两个表,读取出KNA1表中的NAME2和LAND1两个列以及KNVV表中的KUNNR列,并且NAME2不能为空,用参数动态输入LAND1的值,open sql语句和sql语句的格式是有区别的,点击格式说明,可查看open sql的格式。

列设置
不同于sql语句,open sql中读取某个列应该用表~列这种格式,即select后面的文本框语句应该为:
KNA1~NAME2,KNVV~KUNNR,KNA1~LAND1。
表设置
将两张表关联起来,open sql语句中关联表,用inner join on格式,即from后面的文本框语句应该为:
KNA1 INNER JOIN KNVV ON KNA1~KUNNR=KNVV~KUNNR
条件设置
由上面的描述可知,where条件语句中的语句应该为:
KNA1~NAME2 <>'' AND KNA1~LAND1='${land}'
完整的open sql语句为:
select KNA1~NAME2,KNVV~KUNNR,KNA1~LAND1 from KNA1 INNER JOIN KNVV ON KNA1~KUNNR=KNVV~KUNNR where KNA1~NAME2 <>'' AND KNA1~LAND1='${land}'
最后结果如下图:

结果查看
点击预览按钮,可查看上面语句执行的结果,如下图:

设置完成后效果
设置完成后,点击确定,退出SAP数据集对话框,在数据集面板中会增加一个名称为SAP3的数据集,如下图:

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
