Skip to Content
0
Former Member
Sep 18, 2006 at 09:55 AM

dynamic internal table!!

61 Views

hi

i hav created a dynamic internal table

  LOOP AT I_MARD INTO L_WA_MARD.
      ld_tabix = sy-tabix.
      if ld_tabix eq '30'.
        exit.
      endif.

      CONCATENATE 'LABST'
                  ld_tabix
      INTO xfc-fieldname.
      xfc-tabname   = 'I_OUTPUT-LABST'.
      xfc-ref_field = 'LABST'.
      xfc-ref_table = 'MARD'.

      APPEND xfc TO ifc.
      CLEAR: xfc.
    ENDLOOP.

    CALL METHOD cl_alv_table_create=>create_dynamic_table
      EXPORTING
        it_fieldcatalog = ifc
      IMPORTING
        ep_table        = dy_table.

    ASSIGN dy_table->* TO <dyn_table>.

    CREATE DATA dy_line LIKE LINE OF <dyn_table>.
    ASSIGN dy_line->* TO <dyn_wa>.
    LOOP AT I_MARD INTO L_WA_MARD WHERE MATNR = L_WA_ITEM-MATNR.

      ld_index = sy-tabix + 1.
      ASSIGN COMPONENT ld_index OF STRUCTURE <dyn_wa> TO <dyn_field>.

      IF sy-subrc EQ 0.
        <dyn_field> = L_WA_MARD-labst.
      ENDIF.
* dynamic 1 to n missing to be corrected
      CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
        EXPORTING
          I_MATNR              = L_WA_ITEM-MATNR
          I_IN_ME              = L_WA_ITEM-MEINS
          I_OUT_ME             = P_MEINH
          I_MENGE              = L_WA_MARD-LABST
        IMPORTING
          E_MENGE              = V_MENGE
        EXCEPTIONS
          ERROR_IN_APPLICATION = 1
          ERROR                = 2.
      MOVE V_MENGE TO I_OUTPUT-LABSTALT.
      clear: v_menge.

    ENDLOOP.

    APPEND <dyn_wa> TO <dyn_table>.
    CLEAR: <dyn_wa>.

now for each L_WA_MARD-labst

i have to pass the value to 'MD_CONVERT_MATERIAL_UNIT'and in turn create another dynamic internal table n move the corresponding value accordingly..whats shall my code shud look like?>

Points for sure

Regards

Gunjan