Structure 从另一个表ABAP动态获取值字段

Structure 从另一个表ABAP动态获取值字段,structure,abap,internal-tables,Structure,Abap,Internal Tables,帮我做Abap报告。 我有两张桌子 Itab头 Z1 Z2 Z3 A. B C 这使您了解如何使用ASSIGN进行动态字段选择 LOOP AT itab_a INTO DATA(wa_itab_a). " your data tab LOOP AT itab_b INTO DATA(wa_itab_b). " your obligatory field list TRANSLATE wa_itab_b-fieldname TO UPPER

帮我做Abap报告。 我有两张桌子

  • Itab头
  • Z1 Z2 Z3 A. B C
    这使您了解如何使用
    ASSIGN
    进行动态字段选择

      LOOP AT itab_a INTO DATA(wa_itab_a).     " your data tab
        LOOP AT itab_b INTO DATA(wa_itab_b).   " your obligatory field list
          TRANSLATE wa_itab_b-fieldname TO UPPER CASE. " important if they are not already in uppercase
          ASSIGN COMPONENT wa_itab_b-fieldname OF STRUCTURE wa_itab_a TO FIELD-SYMBOL(<fs_field>).
          " ... in <FS_FIELD> you will have the values of the obligatory fields
          " so you can concatenate, par example, to file line
          CONCATENATE wa_file-line <fs_field> INTO wa_file-line SEPARATED BY c_separator.
        ENDLOOP.
        " append file line here, something like this:
        APPEND wa_file TO itab_file.
        CLEAR wa_file.
      ENDLOOP.
    
    在itab_a处循环到数据(wa_itab_a)。“您的数据选项卡
    在itab_b循环到数据(wa_itab_b)。“您的必填字段列表
    将wa_itab_b-fieldname翻译为大写。“如果它们不是大写的,则很重要
    将结构wa_itab_a的组件wa_itab_b-fieldname分配给FIELD-SYMBOL()。
    " ... 在中,您将拥有必填字段的值
    “因此,您可以连接,例如,到文件行。
    将wa_文件行连接到由c_分隔符分隔的wa_文件行。
    结束循环。
    “在此处附加文件行,类似以下内容:
    将wa_文件附加到itab_文件。
    清除wa_文件。
    结束循环。
    
    我认为您需要对它做些什么,也可以用FIELD-SYMBOL来完成,我现在还不清楚“2.Itab必选字段”是单个字段,还是结构或表格?你写它是一个表,但它可以有几行,整个事情没有任何意义(至少对我来说…)Itab2是一个表,它的字段名为itab1 obbligatory,用于创建文件。在示例中,字段是1,但可以有一些itab1的字段名。因此,我为创建文件匹配了2个表,但我没有想法。因此,itab2可以有多行,即多个字段名?你想把所有这些字段都放到文件中吗?是的,itab2可以有itab1的所有字段名或一些文件名..所以我的问题是如何从字段名itab2开始获取itab1的值。非常感谢,它工作正常。