Ä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 / 4918 / 332 / 655 ) »
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 / 766 / 84 / 40 ) »
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 / 766 / 84 / 40 ) »
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 / 4918 / 332 / 655 ) »
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.
2113
Views
Laufzeit
von christof » 23.03.2016 13:25 • Verfasst in ABAP® für Anfänger
3
Antw.
2734
Views
Types zur Laufzeit
von tpau » 27.09.2006 18:10 • Verfasst in ABAP® für Anfänger
1
Antw.
11313
Views
Laufzeit sapshcut.exe analysieren
von JHM » 06.11.2013 09:33 • Verfasst in Java & SAP®
1
Antw.
3039
Views
Konstanten definieren zur Laufzeit
von Kojak » 11.01.2007 13:48 • Verfasst in ABAP Objects®
0
Antw.
1414
Views
Button zur Laufzeit ändern
von cH33 » 15.04.2009 12:30 • Verfasst in ABAP Objects®

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