如何将内部表分配到结构中,然后分配到ABAP中的字段

如何将内部表分配到结构中,然后分配到ABAP中的字段,abap,Abap,使用下面的代码,我可以检索内部表t_t005e,但是当放入wa_upload-region字段时,只检索数据的第一列,但我想检索第三列数据 TYPES: BEGIN OF ty_upload, " ... region TYPE regio, " ... END OF ty_upload. DATA: wa_upload TYPE ty_upload, t_t005e TYPE STANDARD TABLE OF t005e. READ TABLE t_t005e

使用下面的代码,我可以检索内部表
t_t005e
,但是当放入
wa_upload-region
字段时,只检索数据的第一列,但我想检索第三列数据

TYPES: BEGIN OF ty_upload,
  " ...
  region TYPE regio,
  " ...
END OF ty_upload.

DATA: wa_upload TYPE ty_upload,
      t_t005e   TYPE STANDARD TABLE OF t005e.

READ TABLE t_t005e
           INTO wa_upload-region
           WITH KEY land1 = 'GB'
                    regio = 'YK'
                    counc = ''.
因此,我创建了一个工作区
wa_t005e
,其类型与
t_t005e
的行相同

我想先将内部表格
t_t005e
读入工作区
wa_t005e
,然后读入
wa_upload-region
字段

以下是我正在进行的工作:

    DATA: wa_t005e TYPE t005e.

    LOOP AT t_t005e INTO wa_t005e.
      ASSIGN COMPONENT wa_t005e-regio OF STRUCTURE 
          wa_t005e TO <wa_upload-region>.
    ENDLOOP.
数据:wa_t005e类型t005e。
在t_t005e处循环,进入W_t005e。
分配组件wa_t005e-结构区域
我要去。
结束循环。

如何将
wa_t005e-regio
的数据输入字段
wa_upload-region

至少在7.40之前的系统中,无法将表中一列的值直接读取到结构的一个字段中。如果您有一个7.40系统,您可以使用这样的:

TRY.
    wa_upload-region = t_t005e[ land1 = 'GB' regio = 'YK' counc = '' ]-regio.
  CATCH cx_sy_itab_line_not_found.
ENDTRY.
READ TABLE t_t005e INTO wa_t005e WITH KEY land1 = 'GB' regio = 'YK' counc = ''.
wa_upload-region = wa_t005e-regio.
在较旧的系统中,您必须将整个表行读入,然后您可以从中获取字段,如下所示:

TRY.
    wa_upload-region = t_t005e[ land1 = 'GB' regio = 'YK' counc = '' ]-regio.
  CATCH cx_sy_itab_line_not_found.
ENDTRY.
READ TABLE t_t005e INTO wa_t005e WITH KEY land1 = 'GB' regio = 'YK' counc = ''.
wa_upload-region = wa_t005e-regio.
如果你想使用等等,你也可以这样做。首先,将表行再次读入一个结构(在本例中,是一个保持主题的表行)。然后将结构所需的组件/字段指定给单个值字段符号

DATA: t_upload TYPE STANDARD TABLE OF ty_upload,
      t_t005e TYPE STANDARD TABLE OF t005e.

FIELD-SYMBOLS: <fs_upload> TYPE ty_upload,
               <fs_t005e>  TYPE t005e,
               <region>    TYPE regio.   " or type any

SELECT *
  FROM t005e
  INTO CORRESPONDING FIELDS OF TABLE t_t005e.

READ TABLE t_t005e ASSIGNING <fs_t005e> WITH KEY land1 = 'GB' regio = 'YK' counc = ''.
ASSIGN COMPONENT 'REGIO' OF STRUCTURE <fs_t005e> TO <region>.   " <---
*Other option: number of column
*ASSIGN COMPONENT 3 OF STRUCTURE <fs_t005e> TO <region>.

APPEND INITIAL LINE TO t_upload ASSIGNING <fs_upload>.
<fs_upload>-region = <region>.

WRITE <fs_upload>-region.
DATA:t_上传类型标准表,
t_t005e类型标准表t005e。
字段符号:类型ty_upload,
t005e型,
输入regio。“或键入任何
挑选*
从t005e开始
进入表t_t005e的相应字段。
读取表t_t005e,用键land1='GB'区域='YK'CONNC=''赋值。

将结构的组件“REGIO”分配给。“我是否应该告诉您答案像
w_upload-region=w_t005e-REGIO一样简单。