Änderung eines Selektionsbildes zur Laufzeit

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

Änderung eines Selektionsbildes zur Laufzeit

Beitrag von cuncon (Specialist / 143 / 98 / 1 ) »
Hallo Zusammen,

ich kann nicht weiter kommen und zwar, mein Programm hat 2 Radiobuttons (pa_res und pa_wa ), jede Radiobutton hat einen Block wie folgendes:

PARAMETERS: pa_res RADIOBUTTON GROUP rb DEFAULT 'X' USER-COMMAND click.
SELECTION-SCREEN BEGIN OF BLOCK res WITH FRAME.
SELECT-OPTIONS: s_tknum FOR zpp_tour_proddat-tknum, "Transportnummer
s_vbevl FOR lips-vbeln, "Lieferungnr
s_vbeva FOR zzupa-vbeln, "Verkaufsbelegnr
SELECTION-SCREEN END OF BLOCK res.

PARAMETERS: pa_wa RADIOBUTTON GROUP rb.
SELECTION-SCREEN BEGIN OF BLOCK wa WITH FRAME.
SELECT-OPTIONS: s_prod FOR zpp_tour_proddat-proddat DEFAULT sy-datum MODIF ID 1. "Produktionsdatum
SELECTION-SCREEN END OF BLOCK wa.

Die Frage ist, NUR wenn ich Radiobutton pa_wa gewählt habe, dann soll selection-options s_prod als Mussfeld sein, sonst nicht.

Wie macht man das?

Vielen dank für jede Antwort

Cuncon

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


Re: Änderung eines Selektionsbildes zur Laufzeit

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Am Einfachsten über eine manuelle Prüfung im Ereignis AT SELECTION-SCREEN oder START-OF-SELECTION.

Nachteil hierbei: Der Anwender sieht nicht, dass das Feld ein Mussfeld ist, sondern bekommt es erst gesagt, wenn er das Programm ausführen möchte.

Wenn du anfängst, bei SELECT-OPTIONS die Musseingabe mittels LOOP AT SCREEN zu setzen, dann wirst du viel Spaß haben.
Siehe hier für ein normales Dynpro: http://www.tricktresor.de/blog/mussfelder/

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


Re: Änderung eines Selektionsbildes zur Laufzeit

Beitrag von Thomas R. (Expert / 754 / 74 / 34 ) »
Und wenn Du in at_selection_screen_output dabei noch screen-required = '2' setzt, dann hast Du auch die Optik eines Muss-Feldes... LOOP AT SCREEN.

MfG
Thomas R.

Folgende Benutzer bedankten sich beim Autor Thomas R. für den Beitrag:
cuncon


Re: Änderung eines Selektionsbildes zur Laufzeit

Beitrag von cuncon (Specialist / 143 / 98 / 1 ) »
ewx hat geschrieben:Am Einfachsten über eine manuelle Prüfung im Ereignis AT SELECTION-SCREEN oder START-OF-SELECTION.

Nachteil hierbei: Der Anwender sieht nicht, dass das Feld ein Mussfeld ist, sondern bekommt es erst gesagt, wenn er das Programm ausführen möchte.

Wenn du anfängst, bei SELECT-OPTIONS die Musseingabe mittels LOOP AT SCREEN zu setzen, dann wirst du viel Spaß haben.
Siehe hier für ein normales Dynpro: http://www.tricktresor.de/blog/mussfelder/

Vielen Dank für den Links. Mit dieser Methode muss man ein Dynpro anlegen, aber ich möchte kein Dynpro anlegen, weil ich Select-options benutzen möchte und bei Dynpro geht es nicht. Kannst Du oder jemand ein Coding für mich für die Überprüfung im Ereignis AT SELECTION-SCREEN oder Star-OF-SELECTION schreiben?

Danke

cuncon

Re: Änderung eines Selektionsbildes zur Laufzeit

Beitrag von cuncon (Specialist / 143 / 98 / 1 ) »
Thomas R. hat geschrieben:Und wenn Du in at_selection_screen_output dabei noch screen-required = '2' setzt, dann hast Du auch die Optik eines Muss-Feldes... LOOP AT SCREEN.

MfG
Thomas R.

Ich habe probiert. Hier ist mein Coding:

SELECTION-SCREEN BEGIN OF BLOCK res WITH FRAME.
SELECT-OPTIONS: s_tknum FOR zpp_tour_proddat-tknum, "Transportnummer
s_matnr FOR lips-matnr, "Materialnummer
s_komp FOR zzupa-matnr. "Komponentennummer
SELECTION-SCREEN END OF BLOCK res.


PARAMETERS: pa_wa RADIOBUTTON GROUP rb.
SELECTION-SCREEN BEGIN OF BLOCK wa WITH FRAME.
SELECT-OPTIONS: s_prod_1 FOR zpp_tour_proddat-proddat DEFAULT sy-datum MODIF ID 1. "Produktionsdatum
SELECTION-SCREEN END OF BLOCK wa.

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = '1'.
screen-required = '2'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

Es hat leider nicht geklappt. Dann habe ich probiert mit screen-required = '1'. Das Mussfeld s_prod_1 wird aktiv von Anfang an, ob ich auf dem Radiobutton pa_res oder pa_wa geklickt habe, dh, es hat auch nicht funktioniert mit screen-required = '1'. Dann weiss ich wirklich nicht, wie man das Problem lösen kann :(

Cuncon

Re: Änderung eines Selektionsbildes zur Laufzeit

Beitrag von Thomas R. (Expert / 754 / 74 / 34 ) »
Hallo Cuncon,
anbei ein Stück Quellcode. P_FEFN und P_SSFN sind die Variablen der Eingabefelder, P_WFEF und P_WSSF der zugeordneten Radiobuttons.
Nur noch ein klein wenig umbenennen und es funktioniert bei Dir.

Code: Alles auswählen.

    LOOP AT SCREEN.
      CASE screen-name.
        WHEN 'P_FEFN'.
          IF NOT p_wfef IS INITIAL.
            screen-input = '1'.
            screen-required = '2'.
          ELSE.
            screen-input = space.
          ENDIF.
          MODIFY SCREEN.
        WHEN 'P_SSFN'.
          IF NOT p_wssf IS INITIAL.
            screen-input = '1'.
            screen-required = '2'.
          ELSE.
            screen-input = space.
          ENDIF.
          MODIFY SCREEN.
        WHEN OTHERS.
*         NOP
      ENDCASE.
    ENDLOOP.
MfG
Thomas R.

Folgende Benutzer bedankten sich beim Autor Thomas R. für den Beitrag:
cuncon


Re: Änderung eines Selektionsbildes zur Laufzeit

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
cuncon hat geschrieben: Es hat leider nicht geklappt.
Funktioniert einwandfrei!
Da du das Datum vorbelegst, siehst du die Änderung nicht.
(Und wenn du den PARAMETERS noch mit USER-COMMAND xy bestückst, dann siehst du sogar die Änderung sofort nach Auswahl des Radiobuttons. /edit: Hast du ja bereits im Ausgangsposting gemacht...)

Code: Alles auswählen.

PARAMETERS: pa_wa RADIOBUTTON GROUP rb USER-COMMAND rb DEFAULT 'X'.
PARAMETERS: pa_tr RADIOBUTTON GROUP rb.
SELECTION-SCREEN BEGIN OF BLOCK wa WITH FRAME.
SELECT-OPTIONS: s_prod_1 FOR sy-datum MODIF ID 1. "Produktionsdatum
SELECTION-SCREEN END OF BLOCK wa.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-group1 = '1'.
      CASE abap_on.
        WHEN pa_wa. screen-required = '2'.
        WHEN pa_tr. screen-required = '0'.
      ENDCASE.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

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


Seite 1 von 1

Vergleichbare Themen

1
Antw.
1162
Views
Laufzeit
von christof » 23.03.2016 13:25 • Verfasst in ABAP® für Anfänger
3
Antw.
1921
Views
Types zur Laufzeit
von tpau » 27.09.2006 18:10 • Verfasst in ABAP® für Anfänger
2
Antw.
1532
Views
Frage zur Laufzeit
von Achimbsp » 26.10.2005 18:09 • Verfasst in ABAP® Core
6
Antw.
2853
Views
Laufzeit optimieren!
von made » 27.06.2005 11:54 • Verfasst in ABAP® Core
1
Antw.
3130
Views
Datentyp zur Laufzeit ändern
von Bernd » 12.10.2005 14:36 • Verfasst in ABAP® Core

Ü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.