Ja. Willst du auch die Lösunng?TobiB hat geschrieben:kann mir einer sagen wie ich die ganze sache lösen kann.
Code: Alles auswählen.
REPORT.
************************************************************************
* DATEN DEFINITION *
************************************************************************
TYPE-POOLS: slis.
TYPES:
* Type für Datentabelle
BEGIN OF t_data,
carrid TYPE s_carr_id,
connid TYPE s_conn_id,
count TYPE sy-dbcnt,
END OF t_data.
DATA:
* Tabelle/Arbeitsbreich für den Feldkatalog des ALV
gt_fieldcatalog TYPE lvc_t_fcat,
gw_fieldcatalog TYPE lvc_s_fcat,
* Tabelle/Arbeitsbereich für Events
gt_events TYPE slis_t_event,
gw_events TYPE slis_alv_event,
* Tabelle/Arbeitsbereich für Daten
gt_data TYPE TABLE OF t_data,
gw_data TYPE t_data,
* Programmname
g_repid TYPE sy-repid VALUE sy-repid.
************************************************************************
* SELECTION SCREEN *
************************************************************************
SELECT-OPTIONS: s_carrid FOR gw_data-carrid.
************************************************************************
* START-OF-SELECTION *
************************************************************************
START-OF-SELECTION.
* Daten beschaffen
SELECT carrid connid COUNT( DISTINCT fldate )
INTO TABLE gt_data
FROM sflight
WHERE carrid IN s_carrid
GROUP BY carrid connid.
* Feldkatalog erstellen
PERFORM create_fieldcat.
* ALV rufen
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = g_repid
i_callback_user_command = 'CALLBACK_USER_COMMAND'
it_fieldcat_lvc = gt_fieldcatalog
it_events = gt_events
TABLES
t_outtab = gt_data.
*---------------------------------------------------------------------*
* Form create_fieldcat
*---------------------------------------------------------------------*
FORM create_fieldcat.
CLEAR gw_fieldcatalog.
gw_fieldcatalog-fieldname = 'CARRID'.
gw_fieldcatalog-ref_field = 'CARRID'.
gw_fieldcatalog-ref_table = 'SFLIGHT'.
APPEND gw_fieldcatalog TO gt_fieldcatalog.
CLEAR gw_fieldcatalog.
gw_fieldcatalog-fieldname = 'CONNID'.
gw_fieldcatalog-ref_field = 'CONNID'.
gw_fieldcatalog-ref_table = 'SFLIGHT'.
APPEND gw_fieldcatalog TO gt_fieldcatalog.
CLEAR gw_fieldcatalog.
gw_fieldcatalog-fieldname = 'COUNT'.
gw_fieldcatalog-ref_field = 'DBCNT'.
gw_fieldcatalog-ref_table = 'SYST'.
APPEND gw_fieldcatalog TO gt_fieldcatalog.
ENDFORM. " create_fieldcat
*&---------------------------------------------------------------------*
*& Form CALLBACK_USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM callback_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA lt_sflight TYPE TABLE OF sflight.
CASE r_ucomm.
WHEN '&IC1'. "Doppelklick
* Zeile auf die geklickt wurde besorgen
READ TABLE gt_data INTO gw_data INDEX rs_selfield-tabindex.
* alle Daten zum Key lesen
IF sy-subrc = 0.
SELECT *
FROM sflight
INTO TABLE lt_sflight
WHERE carrid = gw_data-carrid
AND connid = gw_data-connid.
* ALV als PopUp mit den neuen Daten
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_structure_name = 'SFLIGHT'
i_screen_start_column = 10
i_screen_start_line = 10
i_screen_end_column = 100
i_screen_end_line = 20
TABLES
t_outtab = lt_sflight.
ENDIF.
ENDCASE.
ENDFORM. "CALLBACK_USER_COMMAND