Checkboxen dynamisch erstellen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge Seite 1 von 1
7 Beiträge Seite 1 von 1

Checkboxen dynamisch erstellen

Beitrag von mareikemei92 (ForumUser / 38 / 16 / 0 ) » 14. Nov 2018 10:57

Hallo zusammen,

Gibt es eine Möglichkeit, ein Selektionsbild mit Checkboxen dynamisch zu erstellen?
Ich habe mir das so vorgestellt: Ich lese eine Tabelle in eine interne Tabelle, dann mache ich einen LOOP über diese interne Tabelle, baue mir im LOOP den Parameter-Namen dynamisch zusammen und erstelle dann die Checkbox.
Damit würde sich mein Selektionsbild automatisch erweitern, wenn ein neuer Eintrag in der Tabelle hinzugefügt wird.

Bis jetzt habe ich noch keine Möglichkeit gefunden.. vielleicht hat hier jemand eine Idee?? :)


Re: Checkboxen dynamisch erstellen

Beitrag von ewx (Top Expert / 3940 / 161 / 358 ) » 14. Nov 2018 11:08

Einfacher ist es wahrscheinlich, wenn du eine gewisse Anzahl an checkboxen erstellst und nicht verwendete ausblendest.
Den Text kannst du dynamisch ändern:
https://www.tricktresor.de/blog/dynamis ... tionstext/

Eine andere Alternative wäre ein Docking-Container mit einem ALV-Grid und entsprechenden Einträgen. Da ist es dann einfach, Einträge dynamisch zu verwalten.

Re: Checkboxen dynamisch erstellen

Beitrag von mareikemei92 (ForumUser / 38 / 16 / 0 ) » 14. Nov 2018 11:38

ewx hat geschrieben:Einfacher ist es wahrscheinlich, wenn du eine gewisse Anzahl an checkboxen erstellst und nicht verwendete ausblendest.
Den Text kannst du dynamisch ändern:
https://www.tricktresor.de/blog/dynamis ... tionstext/

Eine andere Alternative wäre ein Docking-Container mit einem ALV-Grid und entsprechenden Einträgen. Da ist es dann einfach, Einträge dynamisch zu verwalten.
Die Möglichkeit mit den "Platzhalter"-Checkboxen habe ich auch schon im Ansatz gefunden, aber leider keine richtige Erklärung dazu.. Wie würde das funktionieren, dass dann von 4 ausgeblendeten Checkboxen automatisch mit Anpassung der Tabelle (ein Eintrag mehr -> eine zusätzliche Checkbox) nur noch 3 Checkboxen ausgeblendet werden? Das ist mir noch nicht ganz klar.

Die zweite Möglichkeit kenne ich gar nicht.

Re: Checkboxen dynamisch erstellen

Beitrag von ewx (Top Expert / 3940 / 161 / 358 ) » 14. Nov 2018 11:49

Variante 1:

Code: Alles auswählen.

REPORT.

PARAMETERS p_anz TYPE i DEFAULT 3.

PARAMETERS p_01 AS CHECKBOX MODIF ID p01.
PARAMETERS p_02 AS CHECKBOX MODIF ID p02.
PARAMETERS p_03 AS CHECKBOX MODIF ID p03.
PARAMETERS p_04 AS CHECKBOX MODIF ID p04.
PARAMETERS p_05 AS CHECKBOX MODIF ID p05.
PARAMETERS p_06 AS CHECKBOX MODIF ID p06.
PARAMETERS p_07 AS CHECKBOX MODIF ID p07.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF screen-group1+1(2) > p_anz.
      screen-active = '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
Variante 2:
https://www.tricktresor.de/blog/moderne ... -alv-grid/

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
mareikemei92


Re: Checkboxen dynamisch erstellen

Beitrag von mareikemei92 (ForumUser / 38 / 16 / 0 ) » 14. Nov 2018 16:55

ewx hat geschrieben:Variante 1:

Code: Alles auswählen.

REPORT.

PARAMETERS p_anz TYPE i DEFAULT 3.

PARAMETERS p_01 AS CHECKBOX MODIF ID p01.
PARAMETERS p_02 AS CHECKBOX MODIF ID p02.
PARAMETERS p_03 AS CHECKBOX MODIF ID p03.
PARAMETERS p_04 AS CHECKBOX MODIF ID p04.
PARAMETERS p_05 AS CHECKBOX MODIF ID p05.
PARAMETERS p_06 AS CHECKBOX MODIF ID p06.
PARAMETERS p_07 AS CHECKBOX MODIF ID p07.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF screen-group1+1(2) > p_anz.
      screen-active = '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
Variante 2:
https://www.tricktresor.de/blog/moderne ... -alv-grid/
Also das mit dem dynamisch ausblenden ging ohne Probleme, aber ich frage mich, wie ich den Text der Checkbox dynamisch ändern soll. Das funktioniert leider nicht wie gewollt (außer ich mache einen riesigen CASE-Block rein, der die Nummer abfragt und dementsprechend das richtige Screenelement zum Ändern auswählt). Wäre zwar funktional, aber nicht gerade schön.

Re: Checkboxen dynamisch erstellen

Beitrag von ewx (Top Expert / 3940 / 161 / 358 ) » 14. Nov 2018 20:42

mareikemei92 hat geschrieben: Also das mit dem dynamisch ausblenden ging ohne Probleme, aber ich frage mich, wie ich den Text der Checkbox dynamisch ändern soll.
Hatte ich doch oben schon geschrieben...
ewx hat geschrieben:Den Text kannst du dynamisch ändern:
https://www.tricktresor.de/blog/dynamis ... tionstext/

Code: Alles auswählen.

PARAMETERS p_anz TYPE i DEFAULT 3.

PARAMETERS p_01 AS CHECKBOX MODIF ID p01.
PARAMETERS p_02 AS CHECKBOX MODIF ID p02.
PARAMETERS p_03 AS CHECKBOX MODIF ID p03.
PARAMETERS p_04 AS CHECKBOX MODIF ID p04.
PARAMETERS p_05 AS CHECKBOX MODIF ID p05.
PARAMETERS p_06 AS CHECKBOX MODIF ID p06.
PARAMETERS p_07 AS CHECKBOX MODIF ID p07.

INITIALIZATION.
  TYPES tt_seltexts TYPE STANDARD TABLE OF rsseltexts WITH DEFAULT KEY.
  DATA(seltexts) = VALUE tt_seltexts(
      ( name = 'P_01' kind = 'P' text = 'Option numero uno' )
      ( name = 'P_02' kind = 'P' text = 'Option no. deux' )
      ( name = 'P_03' kind = 'P' text = 'Option number three' )
      ( name = 'P_04' kind = 'P' text = 'Option Nr. Vier' ) ).

  CALL FUNCTION 'SELECTION_TEXTS_MODIFY'
    EXPORTING
      program  = sy-cprog
    TABLES
      seltexts = seltexts
    EXCEPTIONS
      OTHERS   = 3.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF screen-group1+1(2) > p_anz.
      screen-active = '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
mareikemei92


Re: Checkboxen dynamisch erstellen

Beitrag von mareikemei92 (ForumUser / 38 / 16 / 0 ) » 15. Nov 2018 11:45

ewx hat geschrieben:
mareikemei92 hat geschrieben: Also das mit dem dynamisch ausblenden ging ohne Probleme, aber ich frage mich, wie ich den Text der Checkbox dynamisch ändern soll.
Hatte ich doch oben schon geschrieben...
ewx hat geschrieben:Den Text kannst du dynamisch ändern:
https://www.tricktresor.de/blog/dynamis ... tionstext/

Code: Alles auswählen.

PARAMETERS p_anz TYPE i DEFAULT 3.

PARAMETERS p_01 AS CHECKBOX MODIF ID p01.
PARAMETERS p_02 AS CHECKBOX MODIF ID p02.
PARAMETERS p_03 AS CHECKBOX MODIF ID p03.
PARAMETERS p_04 AS CHECKBOX MODIF ID p04.
PARAMETERS p_05 AS CHECKBOX MODIF ID p05.
PARAMETERS p_06 AS CHECKBOX MODIF ID p06.
PARAMETERS p_07 AS CHECKBOX MODIF ID p07.

INITIALIZATION.
  TYPES tt_seltexts TYPE STANDARD TABLE OF rsseltexts WITH DEFAULT KEY.
  DATA(seltexts) = VALUE tt_seltexts(
      ( name = 'P_01' kind = 'P' text = 'Option numero uno' )
      ( name = 'P_02' kind = 'P' text = 'Option no. deux' )
      ( name = 'P_03' kind = 'P' text = 'Option number three' )
      ( name = 'P_04' kind = 'P' text = 'Option Nr. Vier' ) ).

  CALL FUNCTION 'SELECTION_TEXTS_MODIFY'
    EXPORTING
      program  = sy-cprog
    TABLES
      seltexts = seltexts
    EXCEPTIONS
      OTHERS   = 3.

AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF screen-group1+1(2) > p_anz.
      screen-active = '0'.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
Danke! Mit deinem Beispiel habe ich es jetzt verstanden. So funktioniert es bei mir auch wunderbar.

Seite 1 von 1

Aktuelle Forenbeiträge

ABAP Clean Code
vor 7 Stunden von ralf.wenzel 36 / 790
ADOBE Forms - geschachtelte Tabellen
vor 8 Stunden von a-dead-trousers 3 / 31
Merkmale in Abhängigkeit vom Beziehungswissen
vor 11 Stunden von wreichelt 6 / 167
Abrechnung Konditionskontrakte Wildcards
vor 11 Stunden von ewx 2 / 22
PDF24 - GUI crasht bei PDF Druck
vor 15 Stunden von Lukas R. 3 / 47

Unbeantwortete Forenbeiträge

[GELÖST] Feld KNVV-BOIDT
vor 4 Tagen von SAP_ENTWICKLER 1 / 46
Sortierbegriffe einer Stückliste ändern
vor 4 Tagen von mbiesenb 1 / 39
Feiertagsklasse und Lohnart Verknüpfung entfernen
vor 4 Tagen von Flashtie 1 / 39
Berechtigungen für Batch User
vor einer Woche von JohnLocklay 1 / 85