Crystal报表中的文本类型行

2020-08-14 04:02发布

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

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


大家好,

我对此进行了大量研究,并研究了许多其他类似问题的线程,但没有明确的解决方法。 我需要我的记录在水晶报表中以与SAP b1文档相同的顺序显示,并包括文本行。

某些解决方案涉及TmSP_DocLineTypeLayout; 1存储过程,我查看了系统水晶报表,但无法将2和2放在一起并弄清楚其工作方式。

从水晶报表视图中可以看到,但是文本行显示在第一条记录之后;

订单和文本行排在最后。

理想情况下,这将按文档的顺序在任何地方处理文本行。

这是我在Crystal Reports中的查询;

选择区别
 T0。[CardName],
 T0。[DocNum],
 T0。[DocDate],
 T0。[地址],
 T0。[Address2],
 T2。[SlpName],
 T2。[Mobil],
 T2。[电子邮件],
 T0.DocEntry,
 T1.ItemCode,
 T1说明
 T1。数量
 '\\ LSA-DB01 \ Pictures \'+ convert(varchar,T3.Picturname),
 T1。价格,
 T4.Tel1,
 T4.Cellolar,
 T4.E_MailL,
 T4.FirstName,
 T4.LastName,
 T5.PymntGroup,
 CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS"存款",
 CAST(T6。" LineText" AS varchar(MAX))AS LineText,
 T0。[U_LSA_Period],
 T7.ItmsGrpNam,
 CAST(T3.UserText AS varchar(MAX))AS ItemInfo,
 T0系列
 T1免费版
 从OQUT T0
 内部联接QUT1 T1在T0上。[DocEntry] = T1。[DocEntry]
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 T1上的INNER JOIN OITM T3。[ItemCode] = T3。[ItemCode]
 T0上的内部联接OCPR T4。[CntctCode] = T4。[CntctCode]
 内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 T0上的内部联接QUT10 T6。[DocEntry] = T6。[DocEntry]
 在T3.ItmsGrpCod = T7.ItmsGrpCod上连接OITB T7 

我尝试将QUT10与AND T6.AftLineNum = T1.LineNum包括在内,并以T1.DocEntry代替T0作为左联接,但是这没有产生任何结果。

我理解为什么这不是像PLD中那样简单的解决方案,但是我仍然不知道如何解决它,已经解决了一段时间。

一如既往,我们将不胜感激。

crystalreport1.jpg (37.5 kB)

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

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


大家好,

我对此进行了大量研究,并研究了许多其他类似问题的线程,但没有明确的解决方法。 我需要我的记录在水晶报表中以与SAP b1文档相同的顺序显示,并包括文本行。

某些解决方案涉及TmSP_DocLineTypeLayout; 1存储过程,我查看了系统水晶报表,但无法将2和2放在一起并弄清楚其工作方式。

从水晶报表视图中可以看到,但是文本行显示在第一条记录之后;

订单和文本行排在最后。

理想情况下,这将按文档的顺序在任何地方处理文本行。

这是我在Crystal Reports中的查询;

选择区别
 T0。[CardName],
 T0。[DocNum],
 T0。[DocDate],
 T0。[地址],
 T0。[Address2],
 T2。[SlpName],
 T2。[Mobil],
 T2。[电子邮件],
 T0.DocEntry,
 T1.ItemCode,
 T1说明
 T1。数量
 '\\ LSA-DB01 \ Pictures \'+ convert(varchar,T3.Picturname),
 T1。价格,
 T4.Tel1,
 T4.Cellolar,
 T4.E_MailL,
 T4.FirstName,
 T4.LastName,
 T5.PymntGroup,
 CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS"存款",
 CAST(T6。" LineText" AS varchar(MAX))AS LineText,
 T0。[U_LSA_Period],
 T7.ItmsGrpNam,
 CAST(T3.UserText AS varchar(MAX))AS ItemInfo,
 T0系列
 T1免费版
 从OQUT T0
 内部联接QUT1 T1在T0上。[DocEntry] = T1。[DocEntry]
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 T1上的INNER JOIN OITM T3。[ItemCode] = T3。[ItemCode]
 T0上的内部联接OCPR T4。[CntctCode] = T4。[CntctCode]
 内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 T0上的内部联接QUT10 T6。[DocEntry] = T6。[DocEntry]
 在T3.ItmsGrpCod = T7.ItmsGrpCod上连接OITB T7 

我尝试将QUT10与AND T6.AftLineNum = T1.LineNum包括在内,并以T1.DocEntry代替T0作为左联接,但是这没有产生任何结果。

我理解为什么这不是像PLD中那样简单的解决方案,但是我仍然不知道如何解决它,已经解决了一段时间。

一如既往,我们将不胜感激。

crystalreport1.jpg (37.5 kB)
付费偷看设置
发送
4条回答
Cikesha
1楼 · 2020-08-14 04:16.采纳回答

还有其他人可以帮助我吗? 这是我需要克服的最后一个小障碍。

此致

尼克

编辑:解决了该问题,与我在其他地方找到的另一个代码进行了一些比较,并意识到对于这些联合字段中的某些,我需要用0代替"。

Climb_Ma
2楼-- · 2020-08-14 04:40

您好,

您可以使用TmSP_DocLineTypeLayout存储过程,但几年后预览布局时它可能会变慢。

否则,您可以创建自定义查询或存储过程来实现您的目标。/p>

您无法在单个查询中创建格式,您必须分别提取Items Row(QUT1)和Text Rows(QUT10)的详细信息,然后根据QUT1.VisOrder组合以按顺序输入。 它太复杂了,那么我建议您在水晶报表中使用TmSP_DocLineTypeLayout,您需要使用TmSP_DocLineTypeLayout.DocEntry来加入

OQUT.DocEntry,使用内部联接

,并使用外部联接 下面的

带有QUT1.DocEntry的TmSP_DocLineTypeLayout.DocEntry和带有QUT1.VisOrder

TmSP_DocLineTypeLayout.LineNum,然后开始设计水晶报表。

< > 谢谢。

大简至美
3楼-- · 2020-08-14 04:40

感谢您的评论M。 Sundararaja Perumal

我相信自己已经可以使大部分查询工作,但是我只能坚持自己无法完全解决的一部分。 我现在收到的错误是"将nvarchar值" IPSO部件"转换为数据类型smallint时转换失败。"

我尝试了CAST(T7.ItmsGrpNam AS smallint)AS'Items Group',但它只是将'IPSO Parts'更改为'ADC Parts'。 我似乎无法克服这个小障碍。 我希望我所做的所有其他事情都是正确的。

代码在下面;

选择区别
 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],
  T7.ItmsGrpNam,
 CAST(T3.UserText AS varchar(MAX))AS ItemInfo,
 T0系列
 T1.FreeTxt,
 T1.VisOrder
 从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]
 T0上的内部联接OCPR T4。[CntctCode] = T4。[CntctCode]
 内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 T0上的内部联接QUT10 T6。[DocEntry] = T6。[DocEntry]
 T3上的内联接OITB T7.ItmsGrpCod = T7.ItmsGrpCod
 全联盟
 选择地区
 T0。[CardName],
 T0。[DocNum],
 T0。[DocDate],
 T0。[地址],
 T0。[Address2],
 T2。[SlpName],
 T2。[Mobil],
 T2。[电子邮件],
 T0.DocEntry,
 '',
 '',
 '',
 '',
 T4.Tel1,
 '',
 T4.Cellolar,
 T4.E_MailL,
 T4.FirstName,
 T4.LastName,
 T5.PymntGroup,
 CAST(T0。[U_LSA_Deposit] AS DECIMAL)AS"存款",
 CAST(T1。" LineText" AS varchar(MAX))AS LineText,
 T0。[U_LSA_Period],
 '',
 '',
 T0系列
 T1.AftLineNum
 从OQUT T0
 内联接QUT10 T1在T0上。[DocEntry] = T1。[DocEntry] AND T1.LineType ='T'
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 T0上的内部联接OCPR T4。[CntctCode] = T4。[CntctCode]
 内联接OCTG T5在T0。[GroupNum] = T5。[GroupNum]
 按T0。[DocDate],T0。[DocNum],T1。[VisOrder] 
N-Moskvin
4楼-- · 2020-08-14 04:16
排序

一周热门 更多>