Code: Alles auswählen.
wa_fieldcat-fieldname = 'COUNTER'.
wa_fieldcat-inttype = 'b'.
wa_fieldcat-outputlen = '3'.
Da hst du recht...!uh hat geschrieben:Wenn du aber den Feldkatalog vorher fix generierst, brauchst du auch keine Tabelle dynamisch zu geneireren.
Code: Alles auswählen.
...
r_dyn_table TYPE REF TO data,
r_wa_dyn_table TYPE REF TO data,
r_dock_ctnr TYPE REF TO cl_gui_docking_container,
r_alv_grid TYPE REF TO cl_gui_alv_grid,
...
...
it_fieldcat TYPE lvc_t_fcat,
wa_fieldcat LIKE LINE OF it_fieldcat,
...
...
FIELD-SYMBOLS:
<t_dyn_table> TYPE STANDARD TABLE,
<wa_dyn_table> TYPE ANY,
<w_field> TYPE ANY,
...
...
* Create dynamic table including the internal table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = r_dyn_table
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Get access to new table using field symbol.
ASSIGN r_dyn_table->* TO <t_dyn_table>.
* Create work area for new table.
CREATE DATA r_wa_dyn_table LIKE LINE OF <t_dyn_table>.
* Get access to new work area using field symbol.
ASSIGN r_wa_dyn_table->* TO <wa_dyn_table>.
...
...
ASSIGN COMPONENT ls_objectdata-ausp1 OF STRUCTURE <wa_dyn_table> TO <l_field>.
...
...
APPEND <wa_dyn_table> TO <t_dyn_table>.
...
...
MODULE initialization OUTPUT.
* Set up for ALV display.
IF r_dock_ctnr IS INITIAL.
CREATE OBJECT r_dock_ctnr
EXPORTING
side = cl_gui_docking_container=>dock_at_left
ratio = '90'.
CREATE OBJECT r_alv_grid
EXPORTING i_parent = r_dock_ctnr.
* Display.
CALL METHOD r_alv_grid->set_table_for_first_display
EXPORTING
is_layout = wa_is_layout
CHANGING
it_outtab = <t_dyn_table>
it_fieldcatalog = it_fieldcat.
ENDIF.
ENDMODULE. " initialization OUTPUT
...
Hi Babsi!BabsiCSC hat geschrieben:Soll das heißen, dass ich mir diesen ganzen Teil m. d. dyn. Tabelle ersparen kann?
Code: Alles auswählen.
TYPE-POOLS: sydes, wc, cntl, slis.
TABLES: zpmm_t352r_iflot, t352r, equi, eqkt, zpmm_reqclass, iflo,
zpmm_itob_auskz, itob, afih, klah, klfb, ausp.
TYPES: BEGIN OF ty_equi.
INCLUDE STRUCTURE v_equi.
TYPES: class TYPE klasse_d,
END OF ty_equi.
DATA:
it_data TYPE TABLE OF zrpmm_equipment_inspection_3,
wa_data LIKE LINE OF it_data,
it_revnr TYPE TABLE OF zpmm_t352r_iflot,
wa_revnr LIKE LINE OF it_revnr,
it_class TYPE TABLE OF sclass,
it_objectdata TYPE TABLE OF clobjdat,
it_equi TYPE TABLE OF ty_equi,
wa_equi LIKE LINE OF it_equi,
lv_variant TYPE disvariant,
l_object TYPE ausp-objek,
lv_index TYPE sy-tabix,
ls_objectdata TYPE clobjdat,
ls_data TYPE zrpmm_equipment_inspection_3,
it_tfeatures TYPE TABLE OF klvmera,
ls_tfeatures TYPE klvmera,
r_dyn_table TYPE REF TO data,
r_wa_dyn_table TYPE REF TO data,
*Feldkatalog definieren
* it_fieldcat TYPE slis_t_fieldcat_alv,
* lw_fieldcat TYPE slis_fieldcat_alv,
it_fieldcat TYPE lvc_t_fcat,
wa_fieldcat LIKE LINE OF it_fieldcat,
ls_layout TYPE slis_layout_alv,
wa_is_layout TYPE lvc_s_layo.
DATA: it_ziappliclass TYPE TABLE OF ziappliclass,
lw_ziappliclass TYPE ziappliclass,
wa_ziappliclass LIKE LINE OF it_ziappliclass,
lv_tabix TYPE sy-tabix.
DATA: lv_suffix(2) TYPE n,
l_equnr TYPE equnr,
lv_auskz TYPE c,
lv_field2(30) TYPE c,
lv_flag2(30) TYPE c,
lv_flag(30) TYPE c,
zaehler TYPE i.
DATA: lv_field(30) TYPE c,
counter(2) TYPE n.
FIELD-SYMBOLS:
<t_dyn_table> TYPE STANDARD TABLE,
<wa_dyn_table> TYPE ANY,
<w_field> TYPE ANY,
<l_field> TYPE atwrt.
*Selektionsschirm
SELECTION-SCREEN BEGIN OF BLOCK selection WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_revnr FOR zpmm_t352r_iflot-revnr.
* s_class2 FOR klfb-class DEFAULT 'AREE'.
PARAMETERS: s_class2 LIKE klfb-class DEFAULT 'AREE'.
*Checkbox zum Auswählen bereits abgeschlossener Revisionen
PARAMETERS: p_closer AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK selection.
START-OF-SELECTION.
* Create dynamic table including the internal table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = r_dyn_table
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Get access to new table using field symbol.
ASSIGN r_dyn_table->* TO <t_dyn_table>.
* Create work area for new table.
CREATE DATA r_wa_dyn_table LIKE LINE OF <t_dyn_table>.
* Get access to new work area using field symbol.
ASSIGN r_wa_dyn_table->* TO <wa_dyn_table>.
* SELECT * FROM zpmm_t352r_iflot
* WHERE revnr IN s_revnr.
SELECT * FROM zpmm_t352r_iflot INTO CORRESPONDING FIELDS OF TABLE it_revnr
WHERE revnr IN s_revnr.
LOOP AT it_revnr INTO wa_revnr.
SELECT SINGLE * FROM t352r
WHERE revnr EQ zpmm_t352r_iflot-revnr
AND ( revab EQ p_closer
OR revab EQ '' ).
CHECK sy-subrc = 0.
CALL FUNCTION 'INSTALLED_EQMTS_ON_LOCATION'
EXPORTING
iflo_number = zpmm_t352r_iflot-tplnr
TABLES
equi_table = it_equi.
LOOP AT it_equi INTO wa_equi.
SELECT SINGLE * FROM ziappliclass
INTO CORRESPONDING FIELDS OF lw_ziappliclass
WHERE objek = wa_equi-equnr
AND class = s_class2.
IF sy-subrc <> 0.
DELETE it_equi INDEX sy-tabix.
ELSE.
wa_equi-class = lw_ziappliclass-class.
MODIFY it_equi FROM wa_equi INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDLOOP.
*Feldkatalog aufbauen
wa_fieldcat-fieldname = 'COUNTER'.
wa_fieldcat-inttype = 'b'.
wa_fieldcat-outputlen = '3'.
wa_fieldcat-coltext = 'Variable as counter'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'REVNR'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '8'.
wa_fieldcat-coltext = 'Revision'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'REVTX'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '40'.
wa_fieldcat-coltext = 'Rev. description'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'EQUNR'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'Equipment'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'CLASS'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'Class'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
CALL FUNCTION 'CLME_FEATURE_ATTR_OF_CLASS_ALL'
EXPORTING
class = lw_ziappliclass-class
classtype = '002'
language = sy-langu
* KEY_DATE = SY-DATUM
with_values = ''
* CHANGE_NUMBER = ' '
* DEFAULT_VAL_EXTRA = ' '
* I_SORTED_BY_CLASS = 'X'
TABLES
tfeatures = it_tfeatures
* TVALUES =
EXCEPTIONS
class_not_found = 1
no_authority = 2
OTHERS = 3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* CLEAR counter.
LOOP AT it_tfeatures INTO ls_tfeatures.
wa_fieldcat-fieldname = 'ATNAM'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '30'.
wa_fieldcat-coltext = ''.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
* ADD 1 TO counter.
*
* CONCATENATE 'AUSP1_' counter INTO lv_field.
*
* READ TABLE it_fieldcat INTO lw_fieldcat WITH KEY fieldname =
* lv_field.
*
*
* IF sy-subrc = 0.
*
*
* lw_fieldcat-seltext_s = lw_fieldcat-seltext_m =
* lw_fieldcat-seltext_l = lw_fieldcat-reptext_ddic = ls_tfeatures-atbez.
*
*
* MODIFY it_fieldcat FROM wa_fieldcat INDEX sy-tabix.
*
* ENDIF.
ENDLOOP.
LOOP AT it_equi INTO wa_equi.
* wa_data-counter = 1.
l_object = wa_equi-equnr.
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
class = lw_ziappliclass-class
classtext = 'X'
classtype = '002'
clint = 0
features = 'X'
language = sy-langu
object = l_object
* OBJECTTABLE = ' '
key_date = sy-datum
* INITIAL_CHARACT = 'X'
* NO_VALUE_DESCRIPT =
change_service_clf = 'X'
* INHERITED_CHAR = ' '
* CHANGE_NUMBER = ' '
TABLES
t_class = it_class
t_objectdata = it_objectdata
* I_SEL_CHARACTERISTIC =
* T_NO_AUTH_CHARACT =
EXCEPTIONS
no_classification = 1
no_classtypes = 2
invalid_class_type = 3
OTHERS = 4
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR counter.
LOOP AT it_objectdata INTO ls_objectdata.
ADD 1 TO counter.
* CONCATENATE 'WA_DATA-AUSP1_' counter INTO lv_field.
* ASSIGN (lv_field) TO <l_field>.
ASSIGN COMPONENT ls_objectdata-ausp1 OF STRUCTURE <wa_dyn_table> TO <l_field>.
IF sy-subrc = 0.
IF ls_objectdata-ausp1 = '?'.
<l_field> = ''.
ELSE.
<l_field> = ls_objectdata-ausp1.
ENDIF.
ENDIF.
ENDLOOP.
APPEND <wa_dyn_table> TO <t_dyn_table>.
* IF wa_data-counter = 1.
* CLEAR: wa_data-counter.
* ENDIF.
ENDLOOP.
* ENDSELECT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* i_structure_name = 'ZRPMM_EQUIPMENT_INSPECTION_3'
* I_BACKGROUND_ID = ' '
i_grid_title = 'Equipmentlist Inspection'
* I_GRID_SETTINGS =
is_layout = ls_layout
it_fieldcat = it_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'X'
is_variant = lv_variant
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = <t_dyn_table>
EXCEPTIONS
program_error = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Code: Alles auswählen.
* Create dynamic table including the internal table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = r_dyn_table
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Code: Alles auswählen.
*Feldkatalog aufbauen
wa_fieldcat-fieldname = 'COUNTER'.
wa_fieldcat-inttype = 'b'.
wa_fieldcat-outputlen = '3'.
wa_fieldcat-coltext = 'Variable as counter'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'REVNR'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '8'.
wa_fieldcat-coltext = 'Revision'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'REVTX'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '40'.
wa_fieldcat-coltext = 'Rev. description'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'EQUNR'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'Equipment'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-fieldname = 'CLASS'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '18'.
wa_fieldcat-coltext = 'Class'.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
Code: Alles auswählen.
CALL FUNCTION 'CLME_FEATURE_ATTR_OF_CLASS_ALL'
EXPORTING
class = lw_ziappliclass-class
classtype = '002'
language = sy-langu
* KEY_DATE = SY-DATUM
with_values = ''
* CHANGE_NUMBER = ' '
* DEFAULT_VAL_EXTRA = ' '
* I_SORTED_BY_CLASS = 'X'
TABLES
tfeatures = it_tfeatures
* TVALUES =
EXCEPTIONS
class_not_found = 1
no_authority = 2
OTHERS = 3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* CLEAR counter.
LOOP AT it_tfeatures INTO ls_tfeatures.
wa_fieldcat-fieldname = 'ATNAM'.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '30'.
wa_fieldcat-coltext = ''.
wa_fieldcat-seltext = wa_fieldcat-coltext.
APPEND wa_fieldcat TO it_fieldcat.
ENDLOOP.
...dann sind wir wieder am Anfang...BabsiCSC hat geschrieben:Nur das Problem an dem Ganzen ist, dass ich eben NICHT weiß welche Typen die Merkmale enthalten , sondern nur die ersten 5 fünf Einträge d. Struktur.
Code: Alles auswählen.
REPORT zpmmr_equipment_inspection_4 LINE-SIZE 132.
TYPE-POOLS: sydes, wc, cntl, slis.
TABLES: zpmm_t352r_iflot, t352r, equi, eqkt, zpmm_reqclass, iflo,
zpmm_itob_auskz, itob, afih, klah, klfb, ausp.
TYPES: BEGIN OF ty_equi.
INCLUDE STRUCTURE v_equi.
TYPES: class TYPE klasse_d,
END OF ty_equi.
DATA:
it_data TYPE TABLE OF dd03p,
wa_data TYPE dd03p,
it_revnr TYPE TABLE OF zpmm_t352r_iflot,
wa_revnr LIKE LINE OF it_revnr,
it_class TYPE TABLE OF sclass,
it_objectdata TYPE TABLE OF clobjdat,
it_equi TYPE TABLE OF ty_equi,
wa_equi LIKE LINE OF it_equi,
lv_variant TYPE disvariant,
l_object TYPE ausp-objek,
lv_index TYPE sy-tabix,
ls_objectdata TYPE clobjdat,
ls_data TYPE zrpmm_equipment_inspection_3,
it_tfeatures TYPE TABLE OF klvmera,
ls_tfeatures TYPE klvmera,
r_dyn_table TYPE REF TO data,
r_wa_dyn_table TYPE REF TO data,
*Feldkatalog definieren
* it_fieldcat TYPE slis_t_fieldcat_alv,
* lw_fieldcat TYPE slis_fieldcat_alv,
it_fieldcat TYPE lvc_t_fcat,
wa_fieldcat LIKE LINE OF it_fieldcat,
ls_layout TYPE slis_layout_alv,
wa_is_layout TYPE lvc_s_layo.
DATA: it_ziappliclass TYPE TABLE OF ziappliclass,
lw_ziappliclass TYPE ziappliclass,
wa_ziappliclass LIKE LINE OF it_ziappliclass,
lv_tabix TYPE sy-tabix.
DATA: lv_suffix(2) TYPE n,
l_equnr TYPE equnr,
lv_auskz TYPE c,
lv_field2(30) TYPE c,
lv_flag2(30) TYPE c,
lv_flag(30) TYPE c,
zaehler TYPE i.
DATA: lv_field(30) TYPE c,
counter(2) TYPE n,
l_first(10) TYPE c,
l_second(10) TYPE c.
DATA: l_class LIKE klah-class.
FIELD-SYMBOLS:
<t_dyn_table> TYPE STANDARD TABLE,
<wa_dyn_table> TYPE ANY,
<l_field> TYPE ANY.
*Selektionsschirm
SELECTION-SCREEN BEGIN OF BLOCK selection WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_revnr FOR zpmm_t352r_iflot-revnr.
* s_class2 FOR klfb-class DEFAULT 'AREE'.
PARAMETERS: p_class2 LIKE klfb-class DEFAULT 'AREE'.
*Checkbox zum Auswählen bereits abgeschlossener Revisionen
PARAMETERS: p_closer AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK selection.
START-OF-SELECTION.
CALL FUNCTION 'DD_TBFD_GET'
EXPORTING
* GET_STATE = 'M'
langu = sy-langu
* PRID = 0
tabl_name = 'ZRPMM_EQUIPMENT_INSPECTION_4'
withtext = 'X'
* ADD_TYPEINFO = 'X'
* USE_CACHE = ' '
* TRACELEVEL = 0
* IMPORTING
* GOT_STATE =
TABLES
dd03p_tab_a = it_data
* DD03P_TAB_N =
* EXCEPTIONS
* ILLEGAL_VALUE = 1
* OP_FAILURE = 2
* OTHERS = 3
.
IF sy-subrc = 0.
SORT it_data BY position.
LOOP AT it_data INTO wa_data.
CLEAR wa_fieldcat.
*Feldkatalog aufbauen
wa_fieldcat-fieldname = wa_data-fieldname.
wa_fieldcat-inttype = wa_data-inttype.
wa_fieldcat-intlen = wa_data-intlen.
wa_fieldcat-outputlen = wa_data-intlen.
wa_fieldcat-coltext = wa_data-ddtext.
wa_fieldcat-seltext = wa_data-reptext.
APPEND wa_fieldcat TO it_fieldcat.
ENDLOOP.
ENDIF.
l_class = p_class2.
CALL FUNCTION 'CLME_FEATURE_ATTR_OF_CLASS_ALL'
EXPORTING
class = l_class
classtype = '002'
language = 'D'
* KEY_DATE = SY-DATUM
with_values = ''
* CHANGE_NUMBER = ' '
* DEFAULT_VAL_EXTRA = ' '
* I_SORTED_BY_CLASS = 'X'
TABLES
tfeatures = it_tfeatures
* TVALUES =
EXCEPTIONS
class_not_found = 1
no_authority = 2
OTHERS = 3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT it_tfeatures INTO ls_tfeatures.
IF ls_tfeatures-atfor = 'NUM' AND ls_tfeatures-anzdz = '0'.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = ls_tfeatures-atnam.
wa_fieldcat-inttype = 'I'.
wa_fieldcat-intlen = ls_tfeatures-anzst.
wa_fieldcat-coltext = ls_tfeatures-atnam.
wa_fieldcat-seltext = ls_tfeatures-atbez.
APPEND wa_fieldcat TO it_fieldcat.
ELSE.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = ls_tfeatures-atnam.
wa_fieldcat-inttype = 'C'.
wa_fieldcat-outputlen = '30'.
wa_fieldcat-coltext = ls_tfeatures-atnam.
wa_fieldcat-seltext = ls_tfeatures-atbez.
APPEND wa_fieldcat TO it_fieldcat.
ENDIF.
ENDLOOP.
* Create dynamic table including the internal table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = r_dyn_table
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Get access to new table using field symbol.
ASSIGN r_dyn_table->* TO <t_dyn_table>.
CREATE DATA r_wa_dyn_table LIKE LINE OF <t_dyn_table>.
* Get access to new work area using field symbol.
ASSIGN r_wa_dyn_table->* TO <wa_dyn_table>.
SELECT * FROM zpmm_t352r_iflot INTO CORRESPONDING FIELDS OF TABLE it_revnr
WHERE revnr IN s_revnr.
LOOP AT it_revnr INTO wa_revnr.
SELECT SINGLE * FROM t352r
WHERE revnr EQ wa_revnr-revnr
AND ( revab EQ p_closer
OR revab EQ '' ).
CHECK sy-subrc = 0.
CALL FUNCTION 'INSTALLED_EQMTS_ON_LOCATION'
EXPORTING
iflo_number = wa_revnr-tplnr
TABLES
equi_table = it_equi.
LOOP AT it_equi INTO wa_equi.
SELECT SINGLE * FROM ziappliclass
INTO CORRESPONDING FIELDS OF lw_ziappliclass
WHERE objek = wa_equi-equnr
AND class = p_class2.
IF sy-subrc <> 0.
DELETE it_equi INDEX sy-tabix.
ELSE.
wa_equi-class = lw_ziappliclass-class.
MODIFY it_equi FROM wa_equi INDEX sy-tabix.
ENDIF.
ENDLOOP.
LOOP AT it_equi INTO wa_equi.
MOVE-CORRESPONDING t352r TO <wa_dyn_table>.
MOVE-CORRESPONDING lw_ziappliclass TO <wa_dyn_table>.
MOVE-CORRESPONDING wa_equi TO <wa_dyn_table>.
l_object = wa_equi-equnr.
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
class = lw_ziappliclass-class
classtext = 'X'
classtype = '002'
clint = 0
features = 'X'
language = 'D'
* language = sy-langu
object = l_object
* OBJECTTABLE = ' '
key_date = sy-datum
* INITIAL_CHARACT = 'X'
* NO_VALUE_DESCRIPT =
change_service_clf = 'X'
inherited_char = 'X'
* CHANGE_NUMBER = ' '
TABLES
t_class = it_class
t_objectdata = it_objectdata
* I_SEL_CHARACTERISTIC =
* T_NO_AUTH_CHARACT =
EXCEPTIONS
no_classification = 1
no_classtypes = 2
invalid_class_type = 3
OTHERS = 4
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR counter.
LOOP AT it_objectdata INTO ls_objectdata.
ADD 1 TO counter.
* CONCATENATE 'WA_DATA-AUSP1_' counter INTO lv_field.
* ASSIGN (lv_field) TO <l_field>.
ASSIGN COMPONENT ls_objectdata-atnam OF STRUCTURE <wa_dyn_table> TO <l_field>.
IF <l_field> IS ASSIGNED.
IF ls_objectdata-ausp1 = '?'.
<l_field> = ''.
ELSE.
READ TABLE it_tfeatures INTO ls_tfeatures
WITH KEY atnam = ls_objectdata-atnam.
IF sy-subrc = 0.
IF ls_tfeatures-atfor = 'NUM'.
IF NOT ls_objectdata-atflv IS INITIAL.
SPLIT ls_objectdata-ausp1 AT ' ' INTO l_first l_second.
IF ls_tfeatures-anzdz = '0'.
REPLACE '.' IN l_first WITH ''.
REPLACE ',' IN l_first WITH ''.
ENDIF.
<l_field> = l_first.
ENDIF.
ELSE.
<l_field> = ls_objectdata-ausp1.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
APPEND <wa_dyn_table> TO <t_dyn_table>.
* IF wa_data-counter = 1.
* CLEAR: wa_data-counter.
* ENDIF.
ENDLOOP.
ENDLOOP.
IF <t_dyn_table> IS ASSIGNED.
DATA: lt_fieldcat_tmp TYPE slis_t_fieldcat_alv,
ls_fieldcat_tmp TYPE LINE OF slis_t_fieldcat_alv.
DATA: l_tabname TYPE slis_tabname.
LOOP AT it_fieldcat INTO wa_fieldcat.
CLEAR ls_fieldcat_tmp.
MOVE-CORRESPONDING wa_fieldcat TO ls_fieldcat_tmp.
READ TABLE it_tfeatures INTO ls_tfeatures
WITH KEY atnam = wa_fieldcat-fieldname.
IF sy-subrc = 0.
ls_fieldcat_tmp-seltext_s = ls_fieldcat_tmp-seltext_m =
ls_fieldcat_tmp-seltext_l = ls_fieldcat_tmp-reptext_ddic = ls_tfeatures-atbez.
ELSE.
ls_fieldcat_tmp-seltext_s = ls_fieldcat_tmp-seltext_m =
ls_fieldcat_tmp-seltext_l = ls_fieldcat_tmp-reptext_ddic = wa_fieldcat-fieldname.
ENDIF.
APPEND ls_fieldcat_tmp TO lt_fieldcat_tmp.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* i_structure_name = 'ZRPMM_EQUIPMENT_INSPECTION_3'
* I_BACKGROUND_ID = ' '
i_grid_title = 'Equipmentlist Inspection'
* I_GRID_SETTINGS =
is_layout = ls_layout
it_fieldcat = lt_fieldcat_tmp
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'X'
is_variant = lv_variant
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = <t_dyn_table>
EXCEPTIONS
program_error = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.