gelöst ALV Layouts hinter Button legen


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

gelöst ALV Layouts hinter Button legen

Beitragvon Studi » 17.02.2017, 09:15

Hallo,

ich habe in meiner ALV Ausgabe 4 Layouts gesichert, welche man nun auswählen kann. Außerdem habe ich passend zu diesen layouts 4 Buttons in meinen AlV hinzugefügt. Nun ist mein Problem: Wie hinterlege ich diese Layouts in meine Buttons, damit ich lediglich die Buttons drücken muss und nicht extra noch die Layouts auswählen muss.

Lg Alisa
Studi
ForumUser
 
Beiträge: 24
Registriert: 15.02.2017, 14:54
Dank erhalten: 0 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: ALV Layouts hinter Button legen

Beitragvon ewx » 17.02.2017, 09:24

Du nimmst dir einfach drei Tage Urlaub und installierst dann um 16:43 Uhr das Tricktresor-Addon "Variantenschnellzugriff" oder "Varientenschnellzugriff mit Menü".
:D
ewx
Top Expert
 
Beiträge: 3452
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 222 mal

Re: ALV Layouts hinter Button legen

Beitragvon Studi » 17.02.2017, 09:27

Wenn das so leicht gehen würde
Studi
ForumUser
 
Beiträge: 24
Registriert: 15.02.2017, 14:54
Dank erhalten: 0 mal
Ich bin: Student/in

Re: ALV Layouts hinter Button legen

Beitragvon Haubi » 17.02.2017, 12:42

Tach.

Ohne das jetzt ausprobiert zu haben:
Code: Alles auswählen
r_alv->set_variant( is_variant = ls_variant ).
r_alv->refresh_table_display( ).
 

...ohne Gewehr aber mit Pistole... :wink:

Grüße,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...
.. ..|. |.|| ||| ..| |.|. .| |. .|. . .| |.. | .... .. ... |.|| ||| ..| |.. ||| |. | |. . . |.. ||. .|.. .| ... ... . ...
Haubi
Expert
 
Beiträge: 576
Registriert: 13.12.2002, 09:52
Wohnort: Braunschweig
Dank erhalten: 17 mal
Ich bin: Entwickler/in

Re: ALV Layouts hinter Button legen

Beitragvon ewx » 17.02.2017, 13:02

Das reicht nicht. Deswegen mache ich ja den ganzen quatsch mit Variante einlesen und alle einzelnen Elemente explizit setzen:
Code: Alles auswählen
sender->set_frontend_fieldcatalog( lt_fieldcat ).
sender->set_filter_criteria( lt_filter ).
sender->set_sort_criteria( lt_sort ).
 
ewx
Top Expert
 
Beiträge: 3452
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 222 mal

Re: ALV Layouts hinter Button legen

Beitragvon Abapanfänger » 20.02.2017, 10:47

Hallo Alisa

Hast du ein SALV benutzt? Das würde es ziemlich vereinfachen.

Code: Alles auswählen
     
  c_layout = gv_variantname
  lo_layout->set_initial_layout( c_layout ).
  lo_layout = go_alv->get_layout( ).

  go_alv->display( ).
 



Gruss
Abapanfänger
ForumUser
 
Beiträge: 25
Registriert: 11.08.2015, 12:33
Dank erhalten: 0 mal
Ich bin: Student/in

Re: ALV Layouts hinter Button legen

Beitragvon Studi » 20.02.2017, 11:46

ich habe es hinbekommen und zwar sieht es so aus:


METHOD handle_user_command.


DATA lv_user_specific TYPE c.
DATA ls_stable TYPE lvc_s_stbl.
DATA lt_sort TYPE lvc_t_sort.
DATA lt_filter TYPE lvc_t_filt.
DATA ls_layout TYPE lvc_s_layo.
DATA lt_fieldcat TYPE lvc_t_fcat.


CASE e_ucomm.

*----------------------------------------------------------------
*-- Pro tag --> balkendiagramm
*---------------------------------------------------------------
WHEN '/DAY'.

CLEAR gs_variant.
gs_variant-variant = e_ucomm.
* SHIFT gs_variant-variant LEFT BY 1 PLACES.
gs_variant-report = sy-repid.
gs_variant-handle = gs_variant-handle.



*----------------------------------------------------------------
*-- Pro woche--> balkendiagramm
*---------------------------------------------------------------
WHEN '/WEEK'.
CLEAR gs_variant.
gs_variant-variant = e_ucomm.
* SHIFT gs_variant-variant LEFT BY 1 PLACES.
gs_variant-report = sy-repid.
gs_variant-handle = gs_variant-handle.

ENDCASE.

sender->get_frontend_fieldcatalog( IMPORTING et_fieldcatalog = lt_fieldcat ).


CALL FUNCTION 'LVC_VARIANT_SELECT'
EXPORTING
i_dialog = space
i_user_specific = lv_user_specific
* I_DEFAULT = 'X'
it_default_fieldcat = lt_fieldcat
IMPORTING
* E_EXIT =
et_fieldcat = lt_fieldcat
et_sort = lt_sort
et_filter = lt_filter
es_layout = gs_layout
* TABLES
* IT_DATA =
CHANGING
cs_variant = gs_variant
EXCEPTIONS
wrong_input = 1
fc_not_complete = 2
not_found = 3
program_error = 4
data_missing = 5
OTHERS = 6.
IF sy-subrc = 0.

*** Set all neccessary objects of chosen variant
sender->set_variant( gs_variant ).
sender->set_frontend_fieldcatalog( lt_fieldcat ).
sender->set_filter_criteria( lt_filter ).
sender->set_sort_criteria( lt_sort ).

ls_stable = 'XX'.
sender->refresh_table_display( is_stable = ls_stable
i_soft_refresh = space ).

endmethod
Studi
ForumUser
 
Beiträge: 24
Registriert: 15.02.2017, 14:54
Dank erhalten: 0 mal
Ich bin: Student/in

Re: ALV Layouts hinter Button legen

Beitragvon ewx » 20.02.2017, 12:30

Studi hat geschrieben:ich habe es hinbekommen und zwar sieht es so aus:

Genau so, wie in meinem Blog beschrieben.
Also war es ja doch so einfach.

Für diese Nachricht hat ewx einen Dank bekommen :
Abapanfänger
ewx
Top Expert
 
Beiträge: 3452
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 222 mal


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
DSGVO in SAP umsetzen
Gestern von ralf.wenzel 0 Antw.
Berechtigungsprüfung Dialog- vs. RFC-User im Single Sign On
vor 3 Stunden von Tron 1 Antw.
Reporttransaktion für andere Mitarbeiter zugänglich machen
vor 2 Tagen von Tron 1 Antw.
Materialkalkulation
vor 2 Tagen von erp-bt 1 Antw.
gelöst Barcodes in Warenbewegungen & Belegen
vor 2 Tagen von marc.braun 1 Antw.

  Ähnliche Beiträge beta
reportname hinter transaktion
30.11.2017, 16:59 von ewx 3 Antw.
Kalender hinter Eingabefeld hinterlegen
18.02.2009, 09:52 von tom1986 2 Antw.
Tabellen hinter einer Struktur
03.05.2012, 07:45 von ewx 3 Antw.
ALV-Layouts
04.10.2006, 14:56 von DeathGuardian 1 Antw.
ALV-Liste Layouts verschwunden
02.07.2008, 08:13 von babyjane 4 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!