gelöst Checkboxen dynamisch erstellen


Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Moderatoren: Jan, Steff

gelöst Checkboxen dynamisch erstellen

Beitragvon mareikemei92 » 14.11.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?? :)
mareikemei92
ForumUser
 
Beiträge: 35
Registriert: 29.11.2016, 10:11
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

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

Re: Checkboxen dynamisch erstellen

Beitragvon ewx » 14.11.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.
ewx
Top Expert
 
Beiträge: 3779
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 311 mal

Re: Checkboxen dynamisch erstellen

Beitragvon mareikemei92 » 14.11.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.
mareikemei92
ForumUser
 
Beiträge: 35
Registriert: 29.11.2016, 10:11
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Checkboxen dynamisch erstellen

Beitragvon ewx » 14.11.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/

Für diese Nachricht hat ewx einen Dank bekommen :
mareikemei92
ewx
Top Expert
 
Beiträge: 3779
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 311 mal

Re: Checkboxen dynamisch erstellen

Beitragvon mareikemei92 » 14.11.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.
mareikemei92
ForumUser
 
Beiträge: 35
Registriert: 29.11.2016, 10:11
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Checkboxen dynamisch erstellen

Beitragvon ewx » 14.11.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.

Für diese Nachricht hat ewx einen Dank bekommen :
mareikemei92
ewx
Top Expert
 
Beiträge: 3779
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 311 mal

Re: Checkboxen dynamisch erstellen

Beitragvon mareikemei92 » 15.11.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.
mareikemei92
ForumUser
 
Beiträge: 35
Registriert: 29.11.2016, 10:11
Dank erhalten: 0 mal
Ich bin: Entwickler/in


Zurück zu ABAP® Core

  Aktuelle Beiträge   
s4hana-cloud
vor 4 Minuten von sap_inchen 1 Antw.
500 Internal Server Error
vor 8 Stunden von zzcpak 1 Antw.
Dokumentinformationen lesen vom DVS
vor 9 Stunden von Tron 4 Antw.
Tabs innerhalb von Tabs
vor 11 Stunden von ewx 4 Antw.
Fakturierungsplan in Kontrakten ändern
vor 6 Stunden von DeathAndPain 1 Antw.

  Ähnliche Beiträge beta
Selektionsbild dynamisch erstellen
21.09.2007, 07:52 von jondahl11 9 Antw.
gelöst Datenbanktabellen dynamisch zur Laufzeit erstellen
20.12.2005, 20:04 von ewx 5 Antw.
Checkboxen in FuBa POPUP_GET_VALUES_USER_HELP
15.12.2014, 14:58 von a-dead-trousers 1 Antw.
XML erstellen
15.08.2006, 07:30 von khb 2 Antw.
Ordner erstellen
22.09.2005, 16:15 von ereglam 7 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot]