[forms]smartforms打印传值超过255个字符,导致打印截断,如何处理?

Smartform 的一个局限性:在smartforms中,字符串字段的输出长度限制为最多 255 个字符

这意味着,每当我们想在 Smartforms 中传递并显示动态文本参数(例如,STRING 类型)时,文本都会在前 255 个字符后被截断。在这篇博客中,我将与大家分享我解决这个问题的小技巧。方法很简单,如果 255 是限制,我们只需将文本拆分成多个长度为 255 的片段,然后附加到表单中即可。为此,我们将找到以下两个问题的答案:

1.如何将文本正确拆分到字段长度为255个字符的内部表中?

嗯,这个问题的解决方案只是基本的数学。

//首先我们需要一个TCHAR255类型的 itab//然后我们继续计算,令:

a = strlen(输入文本)

b = floor(a/255)

c = a MOD 255

位置 = 0

做 b 次。     //附加到itab 

input_text+pos(255)      //

位置 += 255;

ENDDO。//将余数附加到itab

输入文本+位置(c)

我们可能希望将上述逻辑包装到功能模块中,以便在智能表单中与许多文本元素一起重复使用它。

2. 如何将分割后的文本正确附加到Smartforms?

我们将按如下方式构建我们的智能表单:程序行后跟一个循环,循环下方是我们的文本元素。

[forms]smartforms打印传值超过255个字符,导致打印截断,如何处理?

我们需要全局变量:

GT_TEXT TYPE TCHAR255

GV_TEXT TYPE CHAR 255将 GT_TEXT itab 循环到 GV_TEXT,我们将显示每个循环的 GV_TEXT。

[forms]smartforms打印传值超过255个字符,导致打印截断,如何处理?

请记住直接选择“开始”选项作为“附加” ,因为我们希望以正确的格式显示全文。

[forms]smartforms打印传值超过255个字符,导致打印截断,如何处理?

转换代码

网站给的代码稍微改造下,把i_str换成你要截取拼接的字段

实现效果

[forms]smartforms打印传值超过255个字符,导致打印截断,如何处理?

论坛参考

https://community.sap.com/t5/application-development-and-automation-blog-posts/overcome-smartforms-text-limitation-of-255-characters/ba-p/13016405

给TA打赏
共{{data.count}}人
人已打赏
Form打印

[Smart] SMARTFORM中Global Definitions和Program Lines使用

2022-11-21 16:51:59

Fiori开发开发知识

UI5 Inspector :SAP UI开发调试辅助工具

2025-5-1 14:41:03

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索