Crystal Reports 2013如何添加查询式参数获取客户名并对接SAP?
Crystal Reports 2013对接SAP:数据库驱动参数配置及全量返回实现
一、创建支持搜索的数据库驱动动态参数(从SAP获取客户名称)
- 打开报表,在字段资源管理器中右键「参数字段」→「新建」
- 参数类型选「字符串」,勾选「动态」,点击「设置」按钮
- 在动态参数设置界面,选择SAP数据源对应的客户主表(例如SAP B1的
OCRD表),指定CardName为参数显示值,可选CardCode作为存储值(提升关联准确性) - 勾选「允许自定义值」和「搜索」选项,完成参数创建
二、实现「未选参数返回全部结果」
- 点击「报表」菜单→「选择专家」→「记录」
- 切换到「显示公式」模式,编写记录筛选公式:
// 若参数为空则返回所有记录,否则匹配客户名称 if {?客户名称参数} = "" then true else {OCRD.CardName} = {?客户名称参数}
提示:如果参数用客户编码作为存储值,公式需改为
{OCRD.CardCode} = {?客户名称参数}
三、关于公式中编写查询的说明
Crystal Reports 2013不支持直接在公式里写SQL查询,但可以通过命令对象实现自定义查询逻辑:
- 打开「数据库专家」,选择「添加命令」,输入对接SAP的SQL语句:
SELECT CardCode, CardName FROM OCRD WHERE (@CustomerName IS NULL OR CardName LIKE '%' + @CustomerName + '%')
- 点击「创建参数」,添加
@CustomerName字符串参数并允许空值 - 将报表参数与命令参数关联:右键命令对象→「编辑命令」→「链接」,把报表的客户参数映射到
@CustomerName - 此方式既支持参数搜索,也能在未选参数时返回全量数据
内容的提问来源于stack exchange,提问作者Ahmad Sherwani
相关产品推荐
相关产品推荐

