在添加文档之前先在SAP b1中预览Crystal Report文档

2020-08-13 11:52发布

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

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


大家好,

我在Crystal Reports中创建报价模板并在SAP b1中预览时遇到问题。 预览的文档将没有任何信息,或者记录错误。 我已经做了大量的研究,没有明确的解决方案,但是我确实对我发现的一个问题找到了评论;

"如果您的Crystal报表基于查询,那么如果您没有添加文档,您将不会获得数据。如果您在Crystal报表中使用表而不是sql命令,则可以获取这些数据。"

我的Crystal Report基于查询,由于应用程序中的错误,我无法在数据库专家中查看表之间的链接,因此必须手动进行。

在添加文档之前,我有什么办法可以在预览模式下查看该文档? 如果有人有可能的解决方案,将不胜感激。 我在下面的查询以供参考;

 DECLARE @docEntry AS INT
 声明@objectId AS NVARCHAR(20)
 SET @objectId = {?ObjectId @}
 SET @docEntry = {?DocKey @}
 选择地区
 T0。[CardName],
 T0。[DocNum],
 T0。[DocDate],
 T0。[地址],
 T0。[Address2],
 T2。[SlpName],
 T2。[Mobil],
 T2。[电子邮件],
 T0.DocEntry,
 T1.ItemCode,
 T1说明
 T1。数量
 T1。价格,
 T4.Tel1,
 '\\ LSA-DB01 \ Pictures \'+ convert(varchar,T3.Picturname),
 T4.Cellolar,
 T4.E_MailL,
 T4.FirstName,
 T4.LastName,
 T5.PymntGroup,
 CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS"存款",
 T0。[U_LSA_Period],
 T0系列
 T1.FreeTxt,
 T1.VisOrder,
 CAST(T3.UserText AS varchar(MAX))AS ItemInfo,
 ''
 从OQUT T0
 内部联接QUT1 T1在T0上。[DocEntry] = T1。[DocEntry] AND T1.LineType ='R'
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 T1上的INNER JOIN OITM T3。[ItemCode] = T3。[ItemCode]
 左联接OCPR T4到T0。[CntctCode] = T4。[CntctCode]
 内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 T3上的内联接OITB T7.ItmsGrpCod = T7.ItmsGrpCod
 T0.DocEntry = @docEntry和T0.ObjType = @objectId
 全联盟
 选择地区
 T0。[CardName],
 T0。[DocNum],
 T0。[DocDate],
 T0。[地址],
 T0。[Address2],
 T2。[SlpName],
 T2。[Mobil],
 T2。[电子邮件],
 T0.DocEntry,
 '',
 '',
 0,
 0,
 T4.Tel1,
 '',
 T4.Cellolar,
 T4.E_MailL,
 T4.FirstName,
 T4.LastName,
 T5.PymntGroup,
 CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS"存款",
 T0。[U_LSA_Period],
 T0系列
 '',
 T1.AftLineNum + 1,
 '',
 CAST(T1。" LineText" AS varchar(MAX))AS'LineText'
 从OQUT T0
 内联接QUT10 T1在T0上。[DocEntry] = T1。[DocEntry] AND T1.LineType ='T'
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 左联接OCPR T4到T0。[CntctCode] = T4。[CntctCode]
 内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 T0.DocEntry = @docEntry和T0.ObjType = @objectId
 T1的订单。[VisOrder]
 

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

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


大家好,

我在Crystal Reports中创建报价模板并在SAP b1中预览时遇到问题。 预览的文档将没有任何信息,或者记录错误。 我已经做了大量的研究,没有明确的解决方案,但是我确实对我发现的一个问题找到了评论;

"如果您的Crystal报表基于查询,那么如果您没有添加文档,您将不会获得数据。如果您在Crystal报表中使用表而不是sql命令,则可以获取这些数据。"

我的Crystal Report基于查询,由于应用程序中的错误,我无法在数据库专家中查看表之间的链接,因此必须手动进行。

在添加文档之前,我有什么办法可以在预览模式下查看该文档? 如果有人有可能的解决方案,将不胜感激。 我在下面的查询以供参考;

 DECLARE @docEntry AS INT
 声明@objectId AS NVARCHAR(20)
 SET @objectId = {?ObjectId @}
 SET @docEntry = {?DocKey @}
 选择地区
 T0。[CardName],
 T0。[DocNum],
 T0。[DocDate],
 T0。[地址],
 T0。[Address2],
 T2。[SlpName],
 T2。[Mobil],
 T2。[电子邮件],
 T0.DocEntry,
 T1.ItemCode,
 T1说明
 T1。数量
 T1。价格,
 T4.Tel1,
 '\\ LSA-DB01 \ Pictures \'+ convert(varchar,T3.Picturname),
 T4.Cellolar,
 T4.E_MailL,
 T4.FirstName,
 T4.LastName,
 T5.PymntGroup,
 CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS"存款",
 T0。[U_LSA_Period],
 T0系列
 T1.FreeTxt,
 T1.VisOrder,
 CAST(T3.UserText AS varchar(MAX))AS ItemInfo,
 ''
 从OQUT T0
 内部联接QUT1 T1在T0上。[DocEntry] = T1。[DocEntry] AND T1.LineType ='R'
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 T1上的INNER JOIN OITM T3。[ItemCode] = T3。[ItemCode]
 左联接OCPR T4到T0。[CntctCode] = T4。[CntctCode]
 内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 T3上的内联接OITB T7.ItmsGrpCod = T7.ItmsGrpCod
 T0.DocEntry = @docEntry和T0.ObjType = @objectId
 全联盟
 选择地区
 T0。[CardName],
 T0。[DocNum],
 T0。[DocDate],
 T0。[地址],
 T0。[Address2],
 T2。[SlpName],
 T2。[Mobil],
 T2。[电子邮件],
 T0.DocEntry,
 '',
 '',
 0,
 0,
 T4.Tel1,
 '',
 T4.Cellolar,
 T4.E_MailL,
 T4.FirstName,
 T4.LastName,
 T5.PymntGroup,
 CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS"存款",
 T0。[U_LSA_Period],
 T0系列
 '',
 T1.AftLineNum + 1,
 '',
 CAST(T1。" LineText" AS varchar(MAX))AS'LineText'
 从OQUT T0
 内联接QUT10 T1在T0上。[DocEntry] = T1。[DocEntry] AND T1.LineType ='T'
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 左联接OCPR T4到T0。[CntctCode] = T4。[CntctCode]
 内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 T0.DocEntry = @docEntry和T0.ObjType = @objectId
 T1的订单。[VisOrder]
 
付费偷看设置
发送
2条回答
宇峰Kouji
1楼-- · 2020-08-13 12:11

我只使用参数而不是使用Declare和Set语句。 像这样的东西:

 SELECT DISTINCT
   T0。[CardName],
   T0。[DocNum],
   T0。[DocDate],
   T0。[地址],
   T0。[Address2],
   T2。[SlpName],
   T2。[Mobil],
   T2。[电子邮件],
   T0.DocEntry,
   T1.ItemCode,
   T1说明
   T1。数量
   T1。价格,
   T4.Tel1,
   '\\ LSA-DB01 \ Pictures \'+ convert(varchar,T3.Picturname)作为Picturname,
   T4.Cellolar,
   T4.E_MailL,
   T4.FirstName,
   T4.LastName,
   T5.PymntGroup,
   CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS存款,
   T0。[U_LSA_Period],
   T0系列
   T1.FreeTxt,
   T1.VisOrder,
   CAST(T3.UserText AS varchar(MAX))AS ItemInfo,
   ''
 从OQUT T0
   内部联接QUT1 T1在T0上。[DocEntry] = T1。[DocEntry] AND T1.LineType ='R'
   内连接OSLP T2开启T0.SlpCode = T2.SlpCode
   T1上的INNER JOIN OITM T3。[ItemCode] = T3。[ItemCode]
   左联接OCPR T4到T0。[CntctCode] = T4。[CntctCode]
   内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
   T3上的内联接OITB T7.ItmsGrpCod = T7.ItmsGrpCod
 T0.DocEntry = {?DocKey @}和T0.ObjType ='{?ObjectId @}'

 全联盟

 选择地区
   T0。[CardName],
   T0。[DocNum],
   T0。[DocDate],
   T0。[地址],
   T0。[Address2],
   T2。[SlpName],
   T2。[Mobil],
   T2。[电子邮件],
   T0.DocEntry,
   '',
   '',
   0,
   0,
   T4.Tel1,
   '',
   T4.Cellolar,
   T4.E_MailL,
   T4.FirstName,
   T4.LastName,
   T5.PymntGroup,
   CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS存款,
   T0。[U_LSA_Period],
   T0系列
   '',
   T1.AftLineNum + 1,
   '',
   CAST(T1.LineText AS varchar(MAX))AS LineText
 从OQUT T0
   内联接QUT10 T1在T0上。[DocEntry] = T1。[DocEntry] AND T1.LineType ='T'
   内连接OSLP T2开启T0.SlpCode = T2.SlpCode
   左联接OCPR T4到T0。[CntctCode] = T4。[CntctCode]
   内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 T0.DocEntry = {?DocKey @}和T0.ObjType ='{?ObjectId @}
 T1的订单。[VisOrder]
 

我也在这里清理了其他一些语法。 如果您想了解有关使用命令的更多常规信息,包括如何使用参数,请参阅我的博客文章此处

此外,IIRC,您还需要在B1中对参数名称使用特殊语法以获取列表 出现的值。 我不定期使用B1,因此我不确定它是什么,但是我记得它需要包含查询以获取参数名称中的值列表。

-Dell

ZJXianG
2楼-- · 2020-08-13 12:09

简单的答案,不能。 B1中的报告将仅显示数据库中实际存在的数据。

-Dell

一周热门 更多>