добавлю - а чтобы имя типа (структуры) не хранить в текстовках, можно пользовать RTTI
form ShowGrid
  tables grid.     "без указания типа
  CLEAR: fieldcat, fieldcat[].
data:
  gridtype like DD02L-TABNAME,
  fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
  perform TypeOf(ZRX_FORMPOOL)
    using grid2 changing gridtype.  "имя типа (структуры)
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_structure_name       = gridtype
            I_BYPASSING_BUFFER     = 'X'  "иначе лепит горбатого 
       CHANGING
            ct_fieldcat            = fieldcat[]
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.
 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 TABLES
      t_outtab                       = grid
...
тут я в модулёк ZRX_FORMPOOL вынес RTTI-примитивы
*через RTTI определяет имя типа данных ================================
form TypeOf
  using
    Field
  changing
    FieldType
  .
  data:
    descr_ref TYPE ref to cl_abap_typedescr. "класс для вызовов RTTI
  descr_ref = cl_abap_typedescr=>describe_by_data( Field ).
  FieldType = descr_ref->absolute_name+6.
*  WRITE: / 'Typename:', descr_ref->absolute_name.
*  WRITE: / 'Kind :', descr_ref->type_kind.
*  WRITE: / 'Length :', descr_ref->length.
*  WRITE: / 'Decimals:', descr_ref->decimals.
endform.
form TypeOfEx
  using
    Field
  changing
    FieldType
    TypeLen  "размер типа
    TypeDec  "число десятичных знаков
  .
  data:
    descr_ref TYPE ref to cl_abap_typedescr. "класс для вызовов RTTI
  descr_ref = cl_abap_typedescr=>describe_by_data( Field ).
  FieldType = descr_ref->absolute_name+6.
  TypeLen = descr_ref->length.
  TypeDec = descr_ref->decimals.
endform.
...
так удобнее получается - не нужно думать, где какой тип данных, можно запросить его у системы через TypeOf, и потом клепать универсальные процедуры обработки