在SQL中创建参数并拉到Crystal

2020-09-24 20:55发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家

我创建了以下存储过程,但是很难将此参数提取到Crystal中。 这是一份损益表,应按"用户成本中心"条目提取。

首先,这是最好的方法吗?

如果是这样,如何在Crystal中使用此SQL参数?

我已经链接了SP并创建了一个参数,但是报告为空。 我尝试将其粘贴到Command中,但也​​没有获取数据。 当我停用SQL和Crystal中的参数时,可以看到数据。

我希望构建它以使运行时间尽可能短。

感谢您的投入,

马里

使用[TESTDB]
 走
/******对象:StoredProcedure [dbo]。[yRptSP_IncomeStatementbyOperations]脚本日期:2/20/2018 10:07:49 AM ******/
 设置ANSI_NULLS ON
 走
 将QUOTED_IDENTIFIER设置为ON
 走

 更改过程[dbo]。[yRptSP_IncomeStatementbyOperations]
 如
 开始
/*从[dbo]中选择。[OACT] T0 */
 声明@Operations为nvarchar
/*在哪里*/
 设置@Operations =/* T0.OcrName */'[%0]'


 ;
 使用QRY作为
 ------------
 --Frist查询以获取JE的借项和贷项(余额)过帐到IS帐户
 ------------
 (选择T0.FatherNum
 ,T0.FormatCode
 ,T0.AcctName
 ,SUM(T1.Credit-T1.Debit)AS余额
 ,T3.OcrCode
 ,T3.OcrName
 ,T4.OcrCode AS Expr1
 ,T4.OcrName AS Expr2
 ,T2.RefDate
 ,T0。[GroupMask]
 来自dbo.OACT AS T0内部联接
              dbo.JDT1 AS T1在T0.AcctCode = T1.Account INNER JOIN
              dbo.OJDT AS T2在T1.TransId = T2.TransId左外部联接
              dbo.OOCR AS T3在T0.OverCode = T3.OcrCode左外部联接
              dbo.OOCR AS T4 ON T0.OverCode2 = T4.OcrCode
 在哪里(T0。[GroupMask] IN(8,7,6,6,5,4))
 AND(DATEDIFF(YY,T2.RefDate,GETDATE())= 0)AND(T1.Debit <> T1.Credit)
 GROUP BY T0。[GroupMask],T0.FatherNum,T0.AcctName,T0.FormatCode,T3.OcrCode,T3.OcrName,T4.OcrCode,T4.OcrName,T2.RefDate
 HAVING(SUM(T1.Debit-T1.Credit)<> 0)


 ),
 ------------
 -第二个查询以按级别3帐户获取总计
 ------------
 总计为
 (选择T0.FatherNum
 ,SUM(T1.Credit)AS CreditTotal
 ,SUM(T1.Debit)AS DebitTotal
 ,SUM(T1.Credit)-SUM(T1.Debit)AS TotalbyFather
 来自dbo.OACT AS T0内部联接
              dbo.JDT1 AS T1在T0.AcctCode = T1.Account INNER JOIN
              dbo.OJDT AS T2开启T1.TransId = T2.TransId
 在哪里(T0。[GroupMask] IN(8,7,6,6,5,4))
 AND(DATEDIFF(YY,T2.RefDate,GETDATE())= 0)
 AND(T1。借方<> T1。贷方)
 T0.FatherNum分组
 )


 选择" TestDB"作为公司
 ,c。[GroupMask]
 父亲
 ,c.FormatCode
 ,c.AcctName
 ,余额
 ,c.OcrCode
 ,c.OcrName
 ,c.OcrCode AS Expr1
 ,c.OcrName AS Expr2
 ,总计。
 ,c.RefDate
 FROM qry c左外部联接合计
 在c.FatherNum = Totals.FatherNum
 在哪里c.OcrName = @Operations
 排序:c。[GroupMask]


 结束


 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家

我创建了以下存储过程,但是很难将此参数提取到Crystal中。 这是一份损益表,应按"用户成本中心"条目提取。

首先,这是最好的方法吗?

如果是这样,如何在Crystal中使用此SQL参数?

我已经链接了SP并创建了一个参数,但是报告为空。 我尝试将其粘贴到Command中,但也​​没有获取数据。 当我停用SQL和Crystal中的参数时,可以看到数据。

我希望构建它以使运行时间尽可能短。

感谢您的投入,

马里

使用[TESTDB]
 走
/******对象:StoredProcedure [dbo]。[yRptSP_IncomeStatementbyOperations]脚本日期:2/20/2018 10:07:49 AM ******/
 设置ANSI_NULLS ON
 走
 将QUOTED_IDENTIFIER设置为ON
 走

 更改过程[dbo]。[yRptSP_IncomeStatementbyOperations]
 如
 开始
/*从[dbo]中选择。[OACT] T0 */
 声明@Operations为nvarchar
/*在哪里*/
 设置@Operations =/* T0.OcrName */'[%0]'


 ;
 使用QRY作为
 ------------
 --Frist查询以获取JE的借项和贷项(余额)过帐到IS帐户
 ------------
 (选择T0.FatherNum
 ,T0.FormatCode
 ,T0.AcctName
 ,SUM(T1.Credit-T1.Debit)AS余额
 ,T3.OcrCode
 ,T3.OcrName
 ,T4.OcrCode AS Expr1
 ,T4.OcrName AS Expr2
 ,T2.RefDate
 ,T0。[GroupMask]
 来自dbo.OACT AS T0内部联接
              dbo.JDT1 AS T1在T0.AcctCode = T1.Account INNER JOIN
              dbo.OJDT AS T2在T1.TransId = T2.TransId左外部联接
              dbo.OOCR AS T3在T0.OverCode = T3.OcrCode左外部联接
              dbo.OOCR AS T4 ON T0.OverCode2 = T4.OcrCode
 在哪里(T0。[GroupMask] IN(8,7,6,6,5,4))
 AND(DATEDIFF(YY,T2.RefDate,GETDATE())= 0)AND(T1.Debit <> T1.Credit)
 GROUP BY T0。[GroupMask],T0.FatherNum,T0.AcctName,T0.FormatCode,T3.OcrCode,T3.OcrName,T4.OcrCode,T4.OcrName,T2.RefDate
 HAVING(SUM(T1.Debit-T1.Credit)<> 0)


 ),
 ------------
 -第二个查询以按级别3帐户获取总计
 ------------
 总计为
 (选择T0.FatherNum
 ,SUM(T1.Credit)AS CreditTotal
 ,SUM(T1.Debit)AS DebitTotal
 ,SUM(T1.Credit)-SUM(T1.Debit)AS TotalbyFather
 来自dbo.OACT AS T0内部联接
              dbo.JDT1 AS T1在T0.AcctCode = T1.Account INNER JOIN
              dbo.OJDT AS T2开启T1.TransId = T2.TransId
 在哪里(T0。[GroupMask] IN(8,7,6,6,5,4))
 AND(DATEDIFF(YY,T2.RefDate,GETDATE())= 0)
 AND(T1。借方<> T1。贷方)
 T0.FatherNum分组
 )


 选择" TestDB"作为公司
 ,c。[GroupMask]
 父亲
 ,c.FormatCode
 ,c.AcctName
 ,余额
 ,c.OcrCode
 ,c.OcrName
 ,c.OcrCode AS Expr1
 ,c.OcrName AS Expr2
 ,总计。
 ,c.RefDate
 FROM qry c左外部联接合计
 在c.FatherNum = Totals.FatherNum
 在哪里c.OcrName = @Operations
 排序:c。[GroupMask]


 结束


 
付费偷看设置
发送
1条回答
jovirus
1楼-- · 2020-09-24 21:24

您不必创建参数。 使用SP Crystal创建报表时,应该检测并允许您输入参数值。

或者,您可以使用执行SP的命令。 在"命令"对话框中,您可以创建参数以运行SP,例如。

执行yourSP param1,param2

在两种情况下都不创建报告参数,因为它们不会被SP或Command使用,它们只能用于本地控制数据,例如条件抑制等。

伊恩

一周热门 更多>