Code: Alles auswählen.
*--------------------*
...
TYPE-POOLS: slis.
DATA: i_feldkatalog TYPE slis_t_fieldcat_alv,
w_feldkatalog TYPE line of slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv,
g_title type lvc_title,
g_repid like sy-repid,
w_aktuelle_zeile like line of i_tab.
data: gs_variant like TABLE OF DISVARIANT WITH HEADER LINE.
...
* ALV-Grid erstellen *
*--------------------*
* Feldkatalog fuellen.
perform Feldkatalog_fuellen.
* Layout bestimmen.
perform layout_allg_build USING gs_layout.
* Variante festlegen
perform variant_build." using is_variant.
* ALV-Liste anzeigen
perform alv_anzeigen.
*---------------------------------------------------------------------
* Unterprogramm fuer das Fuellen des Feldkatalogs
*---------------------------------------------------------------------
form feldkatalog_fuellen.
clear w_Feldkatalog.
w_feldkatalog-fieldname = 'PATIENTENNUMMER'.
w_feldkatalog-ref_fieldname = 'PATNR'.
w_feldkatalog-ref_tabname = 'NPAT'.
w_feldkatalog-seltext_s = 'Pat.nr.'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'FALLNUMMER'.
w_feldkatalog-ref_fieldname = 'FALNR'.
w_feldkatalog-ref_tabname = 'NFAL'.
w_feldkatalog-seltext_s = 'Fall.nr.'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'FALLART'.
w_feldkatalog-ref_fieldname = 'FALAR'.
w_feldkatalog-ref_tabname = 'NFAL'.
w_feldkatalog-seltext_s = 'FALAR'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'NACHNAME'.
w_feldkatalog-ref_fieldname = 'NNAME'.
w_feldkatalog-ref_tabname = 'NPAT'.
w_feldkatalog-seltext_s = 'Nachname'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'VORNAME'.
w_feldkatalog-ref_fieldname = 'VNAME'.
w_feldkatalog-ref_tabname = 'NPAT'.
w_feldkatalog-seltext_s = 'Vorname'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'GEBURTSTAG'.
w_feldkatalog-ref_fieldname = 'GBDAT'.
w_feldkatalog-ref_tabname = 'NPAT'.
w_feldkatalog-seltext_s = 'Geb.tag'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'LFDNR'.
w_feldkatalog-ref_fieldname = 'LFDNR'.
w_feldkatalog-ref_tabname = 'NBEW'.
w_feldkatalog-seltext_s = 'lfd. Nr.'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'BEWEGUNGSTYP'.
w_feldkatalog-ref_fieldname = 'BEWTY'.
w_feldkatalog-ref_tabname = 'NBEW'.
w_feldkatalog-seltext_s = 'Bew.typ'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'BEWEGUNGSART'.
w_feldkatalog-ref_fieldname = 'BWART'.
w_feldkatalog-ref_tabname = 'NBEW'.
w_feldkatalog-seltext_s = 'Bew.art'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'BEWEGUNGSDATUM'.
w_feldkatalog-ref_fieldname = 'BWIDT'.
w_feldkatalog-ref_tabname = 'NBEW'.
w_feldkatalog-seltext_s = 'Bew.dat.'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'BWIZT'.
w_feldkatalog-ref_fieldname = 'BWIZT'.
w_feldkatalog-ref_tabname = 'NBEW'.
w_feldkatalog-seltext_s = 'Bew.zeit'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'ORGFA'.
w_feldkatalog-ref_fieldname = 'ORGFA'.
w_feldkatalog-ref_tabname = 'NBEW'.
w_feldkatalog-seltext_s = 'fachl. OE'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'ORGPF'.
w_feldkatalog-ref_fieldname = 'ORGPF'.
w_feldkatalog-ref_tabname = 'NBEW'.
w_feldkatalog-seltext_s = 'pfleg. OE'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'ABRKZ'.
w_feldkatalog-ref_fieldname = 'ABRKZ'.
w_feldkatalog-ref_tabname = 'NFAL'.
w_feldkatalog-seltext_s = 'Abr.kennz.'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'UADAT'.
w_feldkatalog-ref_fieldname = 'UADAT'.
w_feldkatalog-ref_tabname = '/GSD/Z_NV2KSS01'.
w_feldkatalog-seltext_s = 'Uadat'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'BEHST'.
w_feldkatalog-ref_fieldname = 'BEHST'.
w_feldkatalog-ref_tabname = '/GSD/Z_NV2KSS01'.
w_feldkatalog-seltext_s = 'Behand.scheinstat.'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'AUFLS'.
w_feldkatalog-ref_fieldname = 'AUFLS'.
w_feldkatalog-ref_tabname = '/GSD/Z_NV2KSS01'.
w_feldkatalog-seltext_s = 'Aufls'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'KONSU'.
w_feldkatalog-ref_fieldname = 'KONSU'.
w_feldkatalog-ref_tabname = '/GSD/Z_NV2KSS01'.
w_feldkatalog-seltext_s = 'Konsu'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'MWBEH'.
w_feldkatalog-ref_fieldname = 'MWBEH'.
w_feldkatalog-ref_tabname = '/GSD/Z_NV2KSS01'.
w_feldkatalog-seltext_s = 'Mit- u. Weiterbeh.'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'DIATXT'.
w_feldkatalog-ref_fieldname = 'DIATXT'.
w_feldkatalog-ref_tabname = '/GSD/Z_NV2KSS01'.
w_feldkatalog-seltext_s = 'Diatxt'.
APPEND w_Feldkatalog TO i_feldkatalog.
w_feldkatalog-fieldname = 'FIND_MED'.
w_feldkatalog-ref_fieldname = 'FIND_MED'.
w_feldkatalog-ref_tabname = '/GSD/Z_NV2KSS01'.
w_feldkatalog-seltext_s = 'Find_Med'.
APPEND w_Feldkatalog TO i_feldkatalog.
endform. "feldkatalog_fuellen.
*---------------------------------------------------------------------
* Unterprogramm fuer Layoutangaben
*---------------------------------------------------------------------
FORM layout_allg_build USING ls_layout TYPE slis_layout_alv.
ls_layout-zebra = 'X'.
ls_layout-colwidth_optimize = 'X'.
endform. "layout_allg_build.
*&---------------------------------------------------------------------*
*& Form VARIANT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IS_VARIANT text
*----------------------------------------------------------------------*
FORM VARIANT_BUILD." USING P_IS_VARIANT.
gs_variant-variant = '/DEFAULT'.
gs_variant-report = g_repid.
append gs_variant.
ENDFORM. " VARIANT_BUILD
*-----------------------------------------------------------------------
* Unterprogramm fuer Ausgabe der ALV-Liste
*-----------------------------------------------------------------------
form alv_anzeigen.
g_repid = sy-repid.
g_title = 'IS-H: Auswertung Behandlungsscheine Vorerfassung'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = g_repid
I_GRID_TITLE = g_title
IS_LAYOUT = gs_layout
IT_FIELDCAT = i_feldkatalog
I_SAVE = 'A'
IS_VARIANT = gs_variant
TABLES
T_OUTTAB = i_tab
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.
endform. "alv_anzeigen.Code: Alles auswählen.
clear: lt_color_lvc, lt_color_slis.
add 1 to ls_lvc_data-col_pos.
if not <ls_fcat>-indx_field is initial.
assign component <ls_fcat>-indx_field
of structure <ls_data> to <l_field_value>.
else.
assign component <ls_fcat>-fieldname
of structure <ls_data> to <l_field_value>.
endif.
macro_cell_data_get
<ls_fcat>
<ls_data>
<l_field_value>
ls_lvc_data-value.
Code: Alles auswählen.
TYPES: begin of t_tab,
patnr like nfal-patnr,
falnr like nfal-falnr,
falar like nfal-falar,
nname like npat-nname,
vname like npat-vname,
gbdat like npat-gbdat,
lfdnr like nbew-lfdnr,
bewty like nbew-bewty,
bwart like nbew-bwart,
bwidt like nbew-bwidt,
bwizt like nbew-bwizt,
orgfa like nbew-orgfa,
orgpf like nbew-orgpf,
abrkz like nfal-abrkz,
uadat like /gsd/z_nv2kss01-uadat,
behst like /gsd/z_nv2kss01-behst,
aufls like /gsd/z_nv2kss01-aufls,
konsu like /gsd/z_nv2kss01-konsu,
mwbeh like /gsd/z_nv2kss01-mwbeh,
diatxt like /gsd/z_nv2kss01-diatxt,
find_med like /gsd/z_nv2kss01-find_med,
end of t_tab.
data: i_tab type TABLE OF t_tab WITH HEADER LINE,
w_tab like LINE OF i_tab.Code: Alles auswählen.
w_feldkatalog-fieldname = 'PATIENTENNUMMER'.
w_feldkatalog-ref_fieldname = 'PATNR'.
w_feldkatalog-ref_tabname = 'NPAT'.
w_feldkatalog-seltext_s = 'Pat.nr.'.
APPEND w_feldkatalog TO i_feldkatalog.
Ja, danke, das hatte ich mir auch schon überlegt, da es mit dem Merge-FuBa und einer DDIC-Tabelle, z. B. NBEW, ohne Sorgen klappte.black_adept hat geschrieben:Und noch ein Hinweis, wie du dieses Problem im Allgemeinen umgehen kannst.
Lege dir im DDIC eine Struktur an, die genau deine Ausgabefelder beinhaltet und lass dann SAP selber den Feldkatalog aufbauen mittels dem jeweils zugehörigen "....FIELDCATALOG*MERGE"-Funktionsbaustein.