ALV

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
14 Beiträge • Seite 1 von 1
14 Beiträge Seite 1 von 1

ALV

Beitrag von Betty ( / / 0 / 3 ) »
Hallo,

ich wollte ein ALV erstellen, aber leider klappt das nicht so gut, wie ich mir das vorgestellt habe;

- Mein Kopf mit Username etc. erscheint nicht
- Die Statusleiste ist nicht da (Buttons zum zurück-gehen, beenden etc.)

Was mache ich falsch?

Danke, Betty


Hier mein Coding:



REFRESH gt_page.
CLEAR gs_fieldcat.

* Aufbau; Kopfdaten
gt_page-typ = 'S'.
gt_page-key = 'Benutzer'.
gt_page-info = sy-uname.
APPEND gt_page.

gt_page-typ = 'S'.
gt_page-key = 'Programm'.
gt_page-info = sy-repid.
APPEND gt_page.



* Aufbau des Feldcatalogs für ALV-Ausgabe
gs_fieldcat-col_pos = '1'.
gs_fieldcat-seltext_l = 'VKO'.
gs_fieldcat-fieldname = 'VKORG'.
gs_fieldcat-outputlen = '4'.
APPEND gs_fieldcat TO gt_fieldcat.

gs_fieldcat-col_pos = '2'.
gs_fieldcat-seltext_l = 'Materialnr'.
gs_fieldcat-fieldname = 'MATNR'.
gs_fieldcat-outputlen = '10'.
APPEND gs_fieldcat TO gt_fieldcat.

gs_fieldcat-col_pos = '3'.
gs_fieldcat-seltext_l = 'Kundennr'.
gs_fieldcat-fieldname = 'KUNNR_SAP'.
gs_fieldcat-outputlen = '10'.
APPEND gs_fieldcat TO gt_fieldcat.

...



* Sonstige Funktionalität für die ALV-Ausgabe
CLEAR: gs_layout.
gs_layout-confirmation_prompt = 'X'.
gs_layout-get_selinfos = 'X'.
gs_layout-zebra = 'X'.
gs_print-no_print_listinfos = 'X'.
gs_print-no_print_selinfos = 'X'.
gs_print-no_coverpage = 'X'.



***
Datenbeschaffung
***



CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_page[].

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events[]
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
gf_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gf_repid
i_callback_pf_status_set = 'SET_PF_STATUS_001'
i_callback_user_command = 'USER_COMMAND_HANDLE'
i_callback_top_of_page = 'TOP_OF_PAGE_ALV'
i_background_id = 'ALV_BACKGROUND'
it_fieldcat = gt_fieldcat[]
i_save = 'A'
is_layout = gs_layout
is_print = gs_print
it_events = gt_events[]
TABLES
t_outtab = i_error.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

für den Kopf; mußt du den Aufruf in die Form packen

Code: Alles auswählen.

FORM TOP_OF_PAGE_ALV.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' 
    EXPORTING 
      it_list_commentary = gt_page[]. 

ENDFORM

mfg
Richard

Beitrag von Betty ( / / 0 / 3 ) »
HURRA :D :lol: :D

Es klappt! Lieben Dank!

Beitrag von Betty ( / / 0 / 3 ) »
Hast du auch einen Tipp wie die Statusleiste kommt?

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

für die Statusleiste nimm mal die Zeile

i_callback_pf_status_set = 'SET_PF_STATUS_001'

beim ALV-Aufruf raus. Dann kommt die Standartleiste.
Willst du einen eigene haben:

Status anlegen (zb: 0001)
und dann

Code: Alles auswählen.

FORM SET_PF_STATUS_001 USING rt_extab TYPE slis_t_extab.

  SET PF-STATUS '0001'.

ENDFORM.
über die Tabelle 'rt_extab' kannst du im Code an der Leiste noch rumbasteln.

zb: Save-Butten deaktivieren

Code: Alles auswählen.

FORM SET_PF_STATUS_001 USING rt_extab TYPE slis_t_extab.

  DATA: wa_extab TYPE slis_extab.

* Lesezugriff
  IF g_f_islogged = 'X'.
    wa_extab-fcode = '&DATA_SAVE'.
    APPEND wa_extab TO rt_extab.
  ENDIF.

  SET PF-STATUS '0001' EXCLUDING rt_extab.

ENDFORM.             
mfg
Richard

Beitrag von #14 (ForumUser / 7 / 0 / 0 ) »
Wie sieht denn dein Form 'SET_PF_STATUS_001' aus?

...ok :) die frage kommt zu spät.

Beitrag von Betty ( / / 0 / 3 ) »
Wow, ich hab die Zeile auskommentiert und nun geht es...

Da ich voher noch nie ALV gemacht habe, habe ich den Aufruf aus einem anderen Programm kopiert. :oops:

Danke für die Erklärung!!!

Beitrag von Betty ( / / 0 / 3 ) »
Hm, mit ist jetzt nochwas aufgefallen...

Wenn ich den Button Zurück klicke, dann sehe ich meinen Kopf als Liste (Grauer Bildschirm mit Benutzer etc.). Erst wenn ich dann nochmal den Button klicke verlasse ich das Programm.

Was hab ich da schon wieder falsch gemacht?

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
hallo,

wenn du 'nur' :wink: copy und paste verwendest hast,
probier mal folgend Zeilen auszudokumentieren:

Code: Alles auswählen.

i_callback_program = gf_repid 
* i_callback_pf_status_set = 'SET_PF_STATUS_001' 
* i_callback_user_command = 'USER_COMMAND_HANDLE' 
i_callback_top_of_page = 'TOP_OF_PAGE_ALV' 
* i_background_id = 'ALV_BACKGROUND' 
i_callback_pf_status_set: für eigenen Status
i_callback_user_command: zum reagieren auf Benutzereingabe: Hotspot, eigene Buttons.....
i_background_id: Hintergrundbild im TOP OF PAGE Bereich


dein Problem ist warscheinlich: (auszug aus deinem Code)

Code: Alles auswählen.


CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' 
EXPORTING 
it_list_commentary = gt_page[]. 

CALL FUNCTION 'REUSE_ALV_EVENTS_GET' 
EXPORTING 
i_list_type = 0 
IMPORTING 
et_events = gt_events[] 
EXCEPTIONS 
list_type_wrong = 1 
OTHERS = 2. 
gf_repid = sy-repid. 

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' 
EXPORTING 
i_callback_program = gf_repid 
i_callback_pf_status_set = 'SET_PF_STATUS_001' 
i_callback_user_command 
Den Aufruf: CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' rausnehmen.
der Erzeugt noch ne Ausgabe des Kopfes, der nach dem Alv angezeigt wird.

auch den zweiten Aufruf: CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
brauchst du (einfache ALV Ausgabe) nicht wirklich.
Der wird Verwendet, wenn du zusätzliche Events brauchst, die du beim Aufruf nicht als Parameter mitgeben kannst

mfg
Richard

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Ach ja,

wenn du keine zusätzlichen Events brauchst, und: CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
ausdokumentiert hast, dann kannst du beim ALV-Aufruf auch die Zeile
it_events = gt_events[]
ausdokumentieren

mfg
Richard

Beitrag von Betty ( / / 0 / 3 ) »
Also, das habe ich jetzt alles mal gemacht. Nun sieht das Coding so aus:

perform top_of_page_alv.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gf_repid
i_callback_top_of_page = 'TOP_OF_PAGE_ALV'
it_fieldcat = gt_fieldcat[]
i_save = 'A'
is_layout = gs_layout
is_print = gs_print
TABLES
t_outtab = i_error.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

Die Wirkung:
Mein Kopf bei ALV ist nun ganz weg und wenn ich Zurück klicke, komme ich noch immer auf die Seite wo der Kopf gedruckt wird.

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

da hatten wir wohl ein kleines Mißverständnis

richtig ist:

Code: Alles auswählen.

* perform top_of_page_alv. 

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' 
EXPORTING 
i_callback_program = gf_repid 
i_callback_top_of_page = 'TOP_OF_PAGE_ALV' 
it_fieldcat = gt_fieldcat[] 
i_save = 'A' 
.
.
.
.
.

FORM TOP_OF_PAGE_ALV. 

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' 
    EXPORTING 
      it_list_commentary = gt_page[]. 

ENDFORM 
mit
i_callback_top_of_page = 'TOP_OF_PAGE_ALV'
wird dem ALV mitgeteilt, daß er beim Aufruf (REUSE_ALV...) die FORM 'TOP_OF_PAGE_ALV' prozessieren soll.

Die FORM NICHT extra aufrufen.
In der FORM muß es natürlich den Aufruf

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

geben

mfg
Richad

Beitrag von Betty ( / / 0 / 3 ) »
Hurra!
Richard, ich habs jetzt gerafft!!! :D :D :D

Wo kann ich denn diverse Dinge über ALV nachlesen?

Beitrag von Gast ( / / 0 / 3 ) »
Betty hat geschrieben:Hurra!
Richard, ich habs jetzt gerafft!!! :D :D :D

Wo kann ich denn diverse Dinge über ALV nachlesen?
Das hätte auch gut als Ausgangspunkt dieses Threads gepasst.

Seite 1 von 1

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Mahnung erstellen
vor 23 Stunden von wreichelt 2 / 42
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 56
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 34

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Mahnung erstellen
vor 23 Stunden von wreichelt 2 / 42
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 56
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 34

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
Gestern von Manfred K. 1 / 34
Export von Spools in XLSX
vor 6 Tagen von abapamateur 1 / 450