SAP B1 查询管理器条件参数

BlenderKou 阅读量:52 2019-10-24 SAP B1 查询管理器条件参数 SAPB1 查询管理器

关键词:SAP Business One,SAPB1,SAP,SBO,查询管理,条件参数

SAP B1查询管理器可以使用[%0] 、[%1] …… 参数 让用户输入查询条件。但是简单的报表可以直接在where 条件的字段后直接加参数,如下图所示:

1.png 

但是调用存储过程或者比较复杂的查询语句则无法需要单独定义参数具体方法为:

        a.定义变量

declare @EDate  nvarchar(50)

        b.给变量赋值

set @EDate = '[%0]'

        c.设置参数的取值范围

set @EDate = /*SELECT 1 FROM OFPR T0 WHERE T0.'T_RefDate'*/  '[%0]'

但是需要注意如下事项:

 

        a.注释内的部分,要么全部加 dbo要么 全部不加 dbo.,否则会报错。

 2.png

        b.字符串类型的“输入参数”必须加 单引号,如: ‘[%2]’ ,否则会报错。

注:所有类型的均添加 单引号也可以。

 3.png

        c.注释中的表 必须 有别名(如:T0、T1、T2 ……) ,且 字段 必须是 别名.字段名(如:T0.CardCode),否则会报错。

 

 


 

        d.注释中的不同表 的 别 (如:T0、T1、T2 ……)不能相同,否则会报错。

注:建议注释中的所有表的别名全部不同。

 

 7.png

         e.要在 “输入参数”前添加 条件符号(注释符号忽略),且条件符号前有空格 方能在界面上显示该条件的秒描述。

 8.png

 

        f.正确写法:

 9.png

declare @EDate  nvarchar(50)
declare @CardCde nvarchar(50)
declare @BPLId nvarchar(50)

set @EDate = /*SELECT 1 FROM OFPR T0 WHERE T0."T_RefDate"*/  '[%0]'
select  @CardCde=T1.CardCode FROM OCRD T1 where T1.CardName = '[%1]'
select @BPLId =T3.BPLId FROM OBPL T3 where T3.BPLName ='[%3]'

exec [Report_TEST] @CardCde,@EDate,@BPLId


如有错误,欢迎指教。

微信公众号.jpg

扫描二维码,关注我的公众号,第一时间获取文章!

上一篇
SAP B1 收付款 提示“缺少总账科目”

下一篇
SAP B1 维护BOM主数据报错(1)