如何在串联中使用字段符号

2020-08-24 18:21发布

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

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


所有人,

我想在CONCATENATE命令中使用的值。

要使用CONCATENATE,所有字段必须为Characters类型。 如何在不知道长度的情况下将的内容传输到Character字段?

这时我的编码看起来像这样,但是在CONCATENATE的执行过程中我得到了转储:

将结构分配给的组件索引值。

检查sy-subrc EQ 0。

描述字段类型w_fld_typ长度w_fld_len在字节模式下。

如果是w_fld_typ NE c_fld_typ_p。

在字符模式下描述字段类型w_fld_typ长度w_fld_len。

ENDIF。

IF w_pos EQ 1。

链接wa_print_dta-ylinedta INTO wa_print_dta-ylinedta。

ELSE。

链接wa_print_dta-ylinedta(w_pos)进入wa_print_dta-ylinedta预期空白。

ENDIF。

谢谢您的帮助。

BR,

西尔万

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

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


所有人,

我想在CONCATENATE命令中使用的值。

要使用CONCATENATE,所有字段必须为Characters类型。 如何在不知道长度的情况下将的内容传输到Character字段?

这时我的编码看起来像这样,但是在CONCATENATE的执行过程中我得到了转储:

将结构分配给的组件索引值。

检查sy-subrc EQ 0。

描述字段类型w_fld_typ长度w_fld_len在字节模式下。

如果是w_fld_typ NE c_fld_typ_p。

在字符模式下描述字段类型w_fld_typ长度w_fld_len。

ENDIF。

IF w_pos EQ 1。

链接wa_print_dta-ylinedta INTO wa_print_dta-ylinedta。

ELSE。

链接wa_print_dta-ylinedta(w_pos)进入wa_print_dta-ylinedta预期空白。

ENDIF。

谢谢您的帮助。

BR,

西尔万

付费偷看设置
发送
9条回答
槿木_熙
1楼 · 2020-08-24 19:04.采纳回答

我希望了解您的问题:

 FIELD-SYMBOLS:键入任何。

 数据:v_len类型i。
 数据:c1(20)类型c,
       c2(20)类型c。

 v_len = strlen()。

 将c1 (v_len)连接到c2 RESPECTING空白中。

Max

shere_lin
2楼-- · 2020-08-24 18:56

在我的情况下:

DATA WA_VALUE(1000)C型。

但是我 不要使用CONCATENATE语句,而是使用WRITE语句,如果您使用CONCATENATE语句,我认为它可以是STRING

DATA WA_VALUE TYPE STRING。

MOVE: TO WA_VALUE。

CONCATENATE wa_print_dta-ylinedta WA_VALUE INTO wa_print_dta-ylinedta。

Max

编辑者:max bianchi于2011年7月29日下午6:28

梦想连接
3楼-- · 2020-08-24 18:46

嗨,

尝试。
   如果w_pos EQ 1。
     并入wa_print_dta-ylinedta  INTO wa_print_dta-ylinedta。
   其他。
     并入wa_print_dta-ylinedta(w_pos) INTO wa_print_dta-ylinedta尊重空白。
   万一。
 赶上cx_root。
 尝试。

...不会使用非字符。

或者,使用所有字段(如可能):

数据:
   lv_any类型字符串。
 将结构分配给的组件sy-index。
 检查sy-subrc EQ 0。
 lv_any = 。
 链接wa_print_dta-ylinedta lv_any INTO wa_print_dta-ylinedta。

致谢

Clemens

CJones
4楼-- · 2020-08-24 18:50

按照Max的建议

DATA WA_VALUE TYPE STRING。

移动:到WA_VALUE。

对于C,N,D,T值类型使用小数,对于十进制,整数,应使用写,以便可以将其转换为o/p长度。

到WA_VALUE。

Nitesh

打个大熊猫
5楼-- · 2020-08-24 18:59

嗨,西尔万,

字段符号应与串联有关。

转储时w_pos的值是什么

致谢

Ram

野沐沐
6楼-- · 2020-08-24 18:46

打字错误。

//字段符号应该与串联无关。

软件心理学工程师
7楼-- · 2020-08-24 19:06

Sylvain,

我猜您的字段符号是TYPE ANY。 请尝试以下

1。 声明TYPE C的字段符号(例如

2。 声明数据引用DREF

3。 找到字段符号的长度后,创建该长度的字符数据

4。 将上面创建的char对象的取消引用分配给

5。 在CONCATENATE语句中使用

以下可能是伪代码:

 FIELD-SYMBOLS 类型c。
 数据参考类型DATA REF。
 *您的代码将结构部件的长度查找为w_fld_len
 创建数据dref类型c长度w_fld_len。
 ASSIGN dref-> *至。
 *您要使用连接的代码
 如果w_pos EQ 1。
 链接wa_print_dta-ylinedta  INTO wa_print_dta-ylinedta。
 其他。
 并入wa_print_dta-ylinedta(w_pos) INTO wa_print_dta-ylinedta尊重空白。
 万一。
 

欢呼

Suresh

一周热门 更多>