Code: Alles auswählen.
*zwischen struktur
DATA: BEGIN OF ls_outtab,
patnr TYPE patnr,
vname TYPE vname_pat,
nname TYPE nname_pat,
gschl TYPE gschl,
gbdat TYPE ri_gbdat,
END OF ls_outtab,
lt_outtab LIKE TABLE OF ls_outtab.
DATA: gr_table TYPE REF TO cl_salv_table.
....
APPEND lv_ausgabe TO lt_outtab.
Code: Alles auswählen.
LOOP AT lt_outtab ASSINING <fs_outtab>.
<fs_outtab>-FIELDNAME = lv_ausgabe.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
erzoo24
Wie setzt du denn lv_ausgabe zusammen?erzoo24 hat geschrieben:bei der Mehrfachselektion der Patnnr taucht bei dem erweitertem "lv_ausgabe" feld nur der letzte ausgewählte Eintrag der Mehrfachselektion auf
also in meinem Programm gehts darum anhand einer stil auswahl, zeichen auszugeben z.b habe ich 5 Radio Buttons der 1. ist die ausgabe von anrede , vname, nnameNiels hat geschrieben: Wie setzt du denn lv_ausgabe zusammen?
Code: Alles auswählen.
LOOP AT s_patnr INTO ls_patnr.
IF s1 EQ 'X'.
CONCATENATE lv_anr lv_vname lv_nname INTO lv_ausgabe SEPARATED BY space.
ELSEIF s2 EQ 'X'.
CONCATENATE lv_anr ` ` lv_nname `, ` lv_vname INTO lv_ausgabe.
ELSEIF s3 EQ 'X'.
CONCATENATE lv_nname `, ` lv_vname `, ` INTO lv_ausgabe.
endloop.
LOOP AT lt_outtab ASSIGNING <ls_outtab>.
<ls_outtab>-fieldname = lv_ausgabe.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
erzoo24
Thanatos82 hat geschrieben:Hi,
du darfst keine 2 Loops haben. mit deinem ersten loop überschreibst du x-mal lv_ausgabe und es bleibt nur das letzte darin enthalten.
Du musst die CONCATENATE-Befehle in den anderen LOOP miteinbauen. Und zwar erst lv-ausgabe erstellen und dann in das feld übertragen. oder kürzer: deine concatenate-befehle alle direkt in das Feld übertragen.
Frage nebenbei: Hast du grundlegend verstanden was du da tust in deinen Loops? Oder hast du nur die Lösungen übernommen?
Code: Alles auswählen.
LOOP AT lt_outtab ASSIGNING <ls_outtab>.
" hier... nur wie formuliere ich das denn das er das für jeden Patienten macht
<ls_outtab>-fieldname = lv_ausgabe.
ENDLOOP.
Code: Alles auswählen.
LOOP AT lt_outtab ASSIGNING <ls_outtab>.
" hier... nur wie formuliere ich das denn das er das für jeden Patienten macht
CONCATENATE <ls_outtab>-feld1 ' ' <ls_outtab>-feld2 ... INTO lv_ausgabe SEPERATED BY SPACE.
<ls_outtab>-fieldname = lv_ausgabe.
ENDLOOP.
Code: Alles auswählen.
LOOP AT lt_outtab ASSIGNING <ls_outtab>.
lv_alter = sy-datum+0(4) - <ls_outtab>-gbdat+0(4).
IF <ls_outtab>-gschl EQ '1'.
<ls_outtab>-gschl = 'M'.
ELSEIF <ls_outtab>-gschl EQ '2'.
<ls_outtab>-gschl = 'W'.
ELSE.
<ls_outtab>-gschl = 'A'.
ENDIF.
IF <ls_outtab>-gschl EQ 'M'.
lv_anr = 'Herr'.
ELSE.
lv_anr = 'Frau'.
ENDIF.
IF s1 EQ 'X'.
CONCATENATE lv_anr <ls_outtab>-vname <ls_outtab>-nname INTO lv_ausgabe SEPARATED BY space.
ELSEIF s2 EQ 'X'.
CONCATENATE lv_anr <ls_outtab>-nname `, ` <ls_outtab>-vname INTO lv_ausgabe.
ELSEIF s3 EQ 'X'.
CONCATENATE <ls_outtab>-nname `, ` <ls_outtab>-vname `, ` INTO lv_ausgabe.
IF <ls_outtab>-gschl EQ 'M'.
CONCATENATE lv_ausgabe 'Männlich' INTO lv_ausgabe.
ELSE.
CONCATENATE lv_ausgabe 'Weiblich' INTO lv_ausgabe.
ENDIF.
ELSEIF s4 EQ 'X'.
CONCATENATE <ls_outtab>-nname `, ` <ls_outtab>-vname ` ` `(` <ls_outtab>-gschl `, ` lv_alter `)` INTO lv_ausgabe.
ELSEIF s5 EQ 'X'.
CONCATENATE <ls_outtab>-vname `, ` <ls_outtab>-nname ` ` '(' <ls_outtab>-gschl `, ` lv_alter ')' INTO lv_ausgabe.
ENDIF.
<ls_outtab>-fieldname = lv_ausgabe.
ENDLOOP.