dynamischer Selektionsscreen

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

dynamischer Selektionsscreen

Beitrag von eddi89 (ForumUser / 22 / 0 / 0 ) »
Moin,
sitze gerade an einem kleinen Selektionsscreen, den ich erweitern möchte.
Und zwar möchste ich 2 Radiobuttions haben, die erst nach Aktivierung einer Checkbox eingabebereit sind.
Ich kann aber nicht vernünftig erklärt finden, wie das gehen soll.
Mein zur Zeituges Selektionsbild:

Code: Alles auswählen.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-003.
PARAMETERS:
  p_galeri type p decimals 0 length 2 default '0',
"Galeriebild
  p_xxl type p decimals 0 length 2 default '0'.
"XXL-Bild
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS: p_bilder AS CHECKBOX DEFAULT ' '.            "Bilderpakt
SELECTION-SCREEN POSITION 50.
PARAMETERS: p_bildkl RADIOBUTTON GROUP 1 DEFAULT 'X'. "Bilderpaket-klein
SELECTION-SCREEN POSITION 79.
PARAMETERS: p_bildgr RADIOBUTTON GROUP 1.             "Bilderpaket-groß
SELECTION-SCREEN END OF LINE.
PARAMETERS:
  p_top AS CHECKBOX DEFAULT ' ',                        "TOP-Angebot
  p_prem AS CHECKBOX DEFAULT ' ',                       "Premium-Angebot
  p_topsta AS CHECKBOX DEFAULT ' ',                  "TOP-Angebot auf HP
  p_2kat AS CHECKBOX DEFAULT ' ',            "in 2 Kategorien einstellen
  p_untert AS CHECKBOX DEFAULT ' ',          "Untertiel
  p_rahmen AS CHECKBOX DEFAULT ' ',          "Rahmen
  p_fetts AS CHECKBOX DEFAULT ' ',           "Fettschrift
  p_highli AS CHECKBOX DEFAULT ' ',          "als Highlight markieren
  p_inkog AS CHECKBOX DEFAULT ' ',           "unsichtbare Bieterliste
  p_vorla AS CHECKBOX DEFAULT ' ',           "Vorlage o. Design
  p_startz AS CHECKBOX DEFAULT ' '.          "Startzeit gewünscht
SELECTION-SCREEN END OF BLOCK b.


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


Re: dynamischer Selektionsscreen

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Eddi,

benutze für den Checkbox-Parameter den Zusatz 'USER-COMMAND'. Damit wird bei jeden Anklicken der Checkbox ein PAI ausgelöst, den Du mit 'AT SELECTION-SCREEN.' auswerten kannst und somit z.B. die SCREEN-Tabelle modifizieren:

Code: Alles auswählen.

TYPE-POOLS:
  abap. "stellt ABAP_TRUE und ABAP_FALSE zur Verfügung
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-003.
PARAMETERS:
  p_galeri type p decimals 0 length 2 default '0',
"Galeriebild
  p_xxl type p decimals 0 length 2 default '0'.
"XXL-Bild
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS: p_bilder AS CHECKBOX DEFAULT ' ' USER-COMMAND dummy.            "Bilderpakt
SELECTION-SCREEN POSITION 50.
PARAMETERS: p_bildkl RADIOBUTTON GROUP 1 DEFAULT 'X' MODIF ID rad. "Bilderpaket-klein
SELECTION-SCREEN POSITION 79.
PARAMETERS: p_bildgr RADIOBUTTON GROUP 1 MODIF ID rad.             "Bilderpaket-groß
SELECTION-SCREEN END OF LINE.
PARAMETERS:
  p_top AS CHECKBOX DEFAULT ' ',                        "TOP-Angebot
  p_prem AS CHECKBOX DEFAULT ' ',                       "Premium-Angebot
  p_topsta AS CHECKBOX DEFAULT ' ',                  "TOP-Angebot auf HP
  p_2kat AS CHECKBOX DEFAULT ' ',            "in 2 Kategorien einstellen
  p_untert AS CHECKBOX DEFAULT ' ',          "Untertiel
  p_rahmen AS CHECKBOX DEFAULT ' ',          "Rahmen
  p_fetts AS CHECKBOX DEFAULT ' ',           "Fettschrift
  p_highli AS CHECKBOX DEFAULT ' ',          "als Highlight markieren
  p_inkog AS CHECKBOX DEFAULT ' ',           "unsichtbare Bieterliste
  p_vorla AS CHECKBOX DEFAULT ' ',           "Vorlage o. Design
  p_startz AS CHECKBOX DEFAULT ' '.          "Startzeit gewünscht
SELECTION-SCREEN END OF BLOCK b.

AT SELECTION-SCREEN.
  LOOP AT SCREEN.
    IF screen-group1 EQ 'RAD'.
      IF p_bilder EQ abap_true.
        screen-input  = 1.
        screen-active = 1.
      ELSE.
        screen-input  = 0.
        screen-active = 0.
      ENDIF.
      MODIFY screen.
    ENDIF.
  ENDLOOP.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: dynamischer Selektionsscreen

Beitrag von eddi89 (ForumUser / 22 / 0 / 0 ) »
Hi ereglam,

das geht ja einfacher als gedacht und ist zu 100% für jemanden der sich die 4. Woche damit beschäftigt nachvollziehbar =)
Aus den Dokus von SAP bin ich nie schlau geworden, die wollten mir immer Module andrhene, die ich aber nicht unbedingt wollte.
Damit setze ich mich demnächst erst auseinander.
Also danke, danke =)

Gruß, eddi

Re: dynamischer Selektionsscreen

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
gern geschehen... ;-)

Freut mich, dass ich es so verständlich ausdrücken konnte...
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: dynamischer Selektionsscreen

Beitrag von eddi89 (ForumUser / 22 / 0 / 0 ) »
hey!
wie gesagt, an sich super verständlich.
es tut sich aber nichts :D

Re: dynamischer Selektionsscreen

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Servus Eddi, ereglam,

nur ein kleiner Fehler: den Screen kannst du nur im PBO beeinflußen, also im AT SELECTION-SCREEN OUTPUT! :-)

Code: Alles auswählen.

TYPE-POOLS:
  abap. "stellt ABAP_TRUE und ABAP_FALSE zur Verfügung
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-003.
PARAMETERS:
  p_galeri type p decimals 0 length 2 default '0',
"Galeriebild
  p_xxl type p decimals 0 length 2 default '0'.
"XXL-Bild
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS: p_bilder AS CHECKBOX DEFAULT ' ' USER-COMMAND dummy.            "Bilderpakt
SELECTION-SCREEN POSITION 50.
PARAMETERS: p_bildkl RADIOBUTTON GROUP 1 DEFAULT 'X' MODIF ID rad. "Bilderpaket-klein
SELECTION-SCREEN POSITION 79.
PARAMETERS: p_bildgr RADIOBUTTON GROUP 1 MODIF ID rad.             "Bilderpaket-groß
SELECTION-SCREEN END OF LINE.
PARAMETERS:
  p_top AS CHECKBOX DEFAULT ' ',                        "TOP-Angebot
  p_prem AS CHECKBOX DEFAULT ' ',                       "Premium-Angebot
  p_topsta AS CHECKBOX DEFAULT ' ',                  "TOP-Angebot auf HP
  p_2kat AS CHECKBOX DEFAULT ' ',            "in 2 Kategorien einstellen
  p_untert AS CHECKBOX DEFAULT ' ',          "Untertiel
  p_rahmen AS CHECKBOX DEFAULT ' ',          "Rahmen
  p_fetts AS CHECKBOX DEFAULT ' ',           "Fettschrift
  p_highli AS CHECKBOX DEFAULT ' ',          "als Highlight markieren
  p_inkog AS CHECKBOX DEFAULT ' ',           "unsichtbare Bieterliste
  p_vorla AS CHECKBOX DEFAULT ' ',           "Vorlage o. Design
  p_startz AS CHECKBOX DEFAULT ' '.          "Startzeit gewünscht
SELECTION-SCREEN END OF BLOCK b.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-group1 EQ 'RAD'.
      IF p_bilder EQ abap_true.
        screen-input  = 1.
        screen-active = 1.
      ELSE.
        screen-input  = 0.
        screen-active = 0.
      ENDIF.
      MODIFY screen.
    ENDIF.
  ENDLOOP.
 

Re: dynamischer Selektionsscreen

Beitrag von eddi89 (ForumUser / 22 / 0 / 0 ) »
hmm, der Fehler muss wohl an mir liegen...
so funktioniert es jedenfalls nicht. Man erkennt zwar, dass er neu aufbaut, aber die Radiobuttons bleiben aktiv.

Code: Alles auswählen.

TABLES:
sscrfields.
DATA:
ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm,
* Gebühr, Provision, Kosten und Gesamtkosten
  l_fee TYPE p DECIMALS 2,                      "Gebührenmultiplikator
  l_provision TYPE p DECIMALS 2,
  l_net_cost TYPE p DECIMALS 2,
  l_total_cost TYPE p DECIMALS 2,
  l_bru_cost TYPE p DECIMALS 2,
  l_2kat TYPE p DECIMALS 2.
* Variablen für Zusatzoptionen
DATA:
  l_galerie TYPE p LENGTH 2 DECIMALS 0 VALUE '0.00',
  l_xxl TYPE p LENGTH 2 DECIMALS 0 VALUE '0.00',
  l_top TYPE p DECIMALS 2 VALUE '0.00',
  l_prem TYPE p DECIMALS 2 VALUE '0.00',
  l_topsta TYPE p DECIMALS 2 VALUE '0.00',
  l_untert TYPE p DECIMALS 2 VALUE '0.00',
  l_rahmen TYPE p DECIMALS 2 VALUE '0.00',
  l_fetts TYPE p DECIMALS 2 VALUE '0.00',
  l_highli TYPE p DECIMALS 2 VALUE '0.00',
  l_inkog TYPE p DECIMALS 2 VALUE '0.00',
  l_vorla TYPE p DECIMALS 2 VALUE '0.00',
  l_startz TYPE p DECIMALS 2 VALUE '0.00'.

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.
PARAMETERS:
  p_astart TYPE p LENGTH 8 DECIMALS 2 OBLIGATORY,       "Startpreis
  p_asales TYPE p LENGTH 8 DECIMALS 2 OBLIGATORY.      "Angebotspreis
SELECTION-SCREEN BEGIN OF LINE.
*  SELECTION-SCREEN POSITION 1.
PARAMETERS: p_porto TYPE p LENGTH 4 DECIMALS 2 MODIF ID dhl.
"Versandkosten
SELECTION-SCREEN POSITION 50.
PARAMETERS: p_klvers AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK a.
* Selektionsbild für Zusatzoptionen
TYPE-POOLS:
abap. "stellt ABAP_TRUE und ABAP_FALSE zur Verfügung
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-003.
PARAMETERS:
  p_galeri TYPE p DECIMALS 0 LENGTH 2 DEFAULT '0',
"Galeriebild
  p_xxl TYPE p DECIMALS 0 LENGTH 2 DEFAULT '0'.
"XXL-Bild
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 1.
PARAMETERS: p_bilder AS CHECKBOX DEFAULT ' ' USER-COMMAND dummy.
"Bilderpakt
SELECTION-SCREEN POSITION 50.
PARAMETERS: p_bildkl RADIOBUTTON GROUP 1 DEFAULT 'X' MODIF ID rad.
"Bilderpaket-klein
SELECTION-SCREEN POSITION 79.
PARAMETERS: p_bildgr RADIOBUTTON GROUP 1 MODIF ID rad.
"Bilderpaket-groß
SELECTION-SCREEN END OF LINE.
PARAMETERS:
  p_top AS CHECKBOX DEFAULT ' ',                        "TOP-Angebot
  p_prem AS CHECKBOX DEFAULT ' ',                       "Premium-Angebot
  p_topsta AS CHECKBOX DEFAULT ' ',                  "TOP-Angebot auf HP
  p_2kat AS CHECKBOX DEFAULT ' ',            "in 2 Kategorien einstellen
  p_untert AS CHECKBOX DEFAULT ' ',          "Untertiel
  p_rahmen AS CHECKBOX DEFAULT ' ',          "Rahmen
  p_fetts AS CHECKBOX DEFAULT ' ',           "Fettschrift
  p_highli AS CHECKBOX DEFAULT ' ',          "als Highlight markieren
  p_inkog AS CHECKBOX DEFAULT ' ',           "unsichtbare Bieterliste
  p_vorla AS CHECKBOX DEFAULT ' ',           "Vorlage o. Design
  p_startz AS CHECKBOX DEFAULT ' '.          "Startzeit gewünscht
SELECTION-SCREEN END OF BLOCK b.

AT SELECTION-SCREEN output.
  LOOP AT SCREEN.
    IF screen-group1 EQ 'rad'.
      IF p_bilder EQ abap_true.
        screen-input  = 1.
        screen-active = 1.
      ELSE.
        screen-input  = 0.
        screen-active = 0.
      ENDIF.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

START-OF-SELECTION.
  PERFORM startgebuehr.
  PERFORM provision.
  PERFORM optionen.
  PERFORM rechnen.
  PERFORM ausgabe.
  PERFORM erlaeuterungen.


Re: dynamischer Selektionsscreen

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
casman hat geschrieben:Servus Eddi, ereglam,

nur ein kleiner Fehler: den Screen kannst du nur im PBO beeinflußen, also im AT SELECTION-SCREEN OUTPUT! :-)
...
:shock:
oops, ja, klar. Danke... ;)
eddi89 hat geschrieben:

Code: Alles auswählen.

AT SELECTION-SCREEN output.
  LOOP AT SCREEN.
    IF screen-group1 EQ 'RAD'. "muss groß geschrieben werden!!!
      IF p_bilder EQ abap_true.
        screen-input  = 1.
        screen-active = 1.
      ELSE.
        screen-input  = 0.
        screen-active = 0.
      ENDIF.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: dynamischer Selektionsscreen

Beitrag von eddi89 (ForumUser / 22 / 0 / 0 ) »
wie geil!
es geht =)

danke jungens ;-)

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1703
Views
Dynamischer Selektionsscreen mit Mandantenfeld!
von jondahl11 » 21.09.2007 11:17 • Verfasst in ABAP Objects®
13
Antw.
7140
Views
Dynamischer Selection Screen mit dynamischer Suchhilfe
von Johnny11 » 26.03.2014 08:19 • Verfasst in ABAP® Core
2
Antw.
305
Views
Selektionsscreen in Tabelle
von XSilerie » 23.11.2021 13:30 • Verfasst in ABAP® für Anfänger
1
Antw.
1855
Views
RFC Verbindungen im Selektionsscreen auslesen
von jondahl11 » 05.10.2006 10:43 • Verfasst in ABAP® für Anfänger
4
Antw.
2663
Views
Variable in Selektionsscreen verwenden
von consult » 03.09.2009 11:37 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


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

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.