Nach Auswahl einen gewissen Screen aufbauen!!!!

Getting started ... Alles für einen gelungenen Start.
20 Beiträge • Seite 1 von 2 (current) Nächste
20 Beiträge Seite 1 von 2 (current) Nächste

Nach Auswahl einen gewissen Screen aufbauen!!!!

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
Hallo ich hoffe ihr habt verständnis für meine doofen fragen bin aber noch nicht so lange im SAP-bereich tätig!!2 monate!! ;-))))))

problem:
report erstellen.

als erstes baue ich einen screen auf:

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME.
PARAMETERS: s..... RADIOBUTTON GROUP rad1,
v..... RADIOBUTTON GROUP rad1,
f..... RADIOBUTTON GROUP rad1,
g..... RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK a.

anhand dieser auswahl soll ein nächster screen gerufen werden der das ausgesuchte feld dann als mussfeld deklarieren soll!!!!!

ich habe gehofft in mit meiner naiven art. ;-))) das man das vielleicht so lösen kann!!!

Problem scheint aber zu sein das man im screen keine IF_Anweisung machen kann!! Richtig??????

ich will halt nicht 4 screen aufbauen und dann beim call screen abfragen welcher radiobutton gedrückt worden ist!! das ist mir einfach zuviel zeilen an code für so eine einfache abfrage! ausser es geht nicht anders????

SELECTION-SCREEN BEGIN OF SCREEN 1100.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME.

IF s..... = 'X'.
SELECT-OPTIONS:
so_h FOR dfkkopk-ht OBLIGATORY,
so_v fOR dfkkopk-zzv,
so_f FOR dfkkopk-zzf,
so_g FOR dfkkopk-zzgh.
ELSEIF v.... = 'X'.
SELECT-OPTIONS:
s_h2 FOR dfkkopk-h,
s_v2 FOR dfkkopk-zzv OBLIGATORY,
s_f2 FOR dfkkopk-zzf,
s_g2 FOR dfkkopk-zzg.
ELSEIF f.... = 'X'.
SELECT-OPTIONS:
s_h3 FOR dfkkopk-h,
s_v3 FOR dfkkopk-zzv,
s_f3 FOR dfkkopk-zzf OBLIGATORY,
s_g3 FOR dfkkopk-zzgh.
ELSEIF g..... = 'X'.
SELECT-OPTIONS:
s_h4 FOR dfkkopk-h,
s_v4 FOR dfkkopk-zzv,
s_f4 FOR dfkkopk-zzf,
s_g4 FOR dfkkopk-zzg OBLIGATORY.
ENDIF.

SELECTION-SCREEN END OF BLOCK b.
SELECTION-SCREEN END OF SCREEN 1100.



BITTE UM HILFE!!!!!!!!!!!!!!!!!!!!!! :?

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


Beitrag von Thomas R. (Expert / 755 / 78 / 34 ) »
Hallo porto78,
warum verlegst Du die Prüfung auf "Obligatorisch" nicht einfach nach
AT SELECTION-SCREEN


MfG
Thomas R.

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
du meinst dann einfach bei at selection-screen.

prüfen ob das feld gefüllt ist was im ersten screen ausgewählt worden ist???

und dann eine message wenn nicht?

Beitrag von Thomas R. (Expert / 755 / 78 / 34 ) »
Genau so!

MfG
Thomas R.

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
es wird halt leider gewünscht das es vorher sein soll!! GGGGGGGrrrrrrrrrrr

begründung gibt es net!!!! ;-(((((((((((

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »

Code: Alles auswählen.

PARAMETERS p1 RADIOBUTTON GROUP a USER-COMMAND xxx DEFAULT 'X'.
PARAMETERS p2 RADIOBUTTON GROUP a.
PARAMETERS p3 RADIOBUTTON GROUP a.
PARAMETERS p4 RADIOBUTTON GROUP a.

SELECTION-SCREEN BEGIN OF SCREEN 1100.
PARAMETERS f1 TYPE char10.
PARAMETERS f2 TYPE char10.
PARAMETERS f3 TYPE char10.
PARAMETERS f4 TYPE char10.
SELECTION-SCREEN END OF SCREEN 1100.

AT SELECTION-SCREEN.
  IF sy-ucomm = 'XXX'.
    CALL SELECTION-SCREEN 1100.
  ENDIF.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    CHECK screen-name(1) = 'F'.
    screen-required = '0'.
    CASE 'X'.
      WHEN p1.
        IF screen-name = 'F1'.
          screen-required = '1'.
        ENDIF.
      WHEN p2.
        IF screen-name = 'F2'.
          screen-required = '1'.
        ENDIF.
      WHEN p3.
        IF screen-name = 'F3'.
          screen-required = '1'.
        ENDIF.
      WHEN p4.
        IF screen-name = 'F4'.
          screen-required = '1'.
        ENDIF.
    ENDCASE.
    MODIFY SCREEN.
  ENDLOOP.

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
RESPEKT EWX!!!

jetzt ist aber die frage was ist mit select-option das geht dann ja nicht mehr!!!

so kann ich nur ein wert abfragen oder?

Danke dir schon mal ziehe echt meinen hut!!!

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Bei Select-Options musst du das Feld LOW der Select-Option auf "Required" setzen. Dann sollte auch das gehen. Oder was meinst du genau?
Ansonsten gibt es auch noch die Möglichkeit, dass du bei AT SELECTION-SCREEN prüfst, ob die Werte in Ordnung sind:

Code: Alles auswählen.

PARAMETERS p1 RADIOBUTTON GROUP a USER-COMMAND xxx DEFAULT 'X'.
PARAMETERS p2 RADIOBUTTON GROUP a.
PARAMETERS p3 RADIOBUTTON GROUP a.
PARAMETERS p4 RADIOBUTTON GROUP a.

SELECTION-SCREEN BEGIN OF SCREEN 1100.
PARAMETERS f1 TYPE char10.
PARAMETERS f2 TYPE char10.
PARAMETERS f3 TYPE char10.
PARAMETERS f4 TYPE char10.
SELECTION-SCREEN END OF SCREEN 1100.

AT SELECTION-SCREEN.
  IF sy-dynnr = '1100'.
    CASE 'X'.
      WHEN p1.
        IF f1 IS INITIAL.
          MESSAGE e000(oo) WITH 'Bitte alle Mussfelder ausfüllen: F1'.
        ENDIF.
      WHEN p2.
        IF f2 IS INITIAL.
          MESSAGE e000(oo) WITH 'Bitte alle Mussfelder ausfüllen: F2'.
        ENDIF.
      WHEN p3.
        IF f3 IS INITIAL.
          MESSAGE e000(oo) WITH 'Bitte alle Mussfelder ausfüllen: F3'.
        ENDIF.
      WHEN p4.
        IF f4 IS INITIAL.
          MESSAGE e000(oo) WITH 'Bitte alle Mussfelder ausfüllen: F4'.
        ENDIF.
    ENDCASE.
  ELSE.
    IF sy-ucomm = 'XXX'.
      CALL SELECTION-SCREEN 1100.
    ENDIF.
  ENDIF.

START-OF-SELECTION.
  WRITE: / 'F1', f1.
  WRITE: / 'F2', f2.
  WRITE: / 'F3', f3.
  WRITE: / 'F4', f4.
PS: Ganz sooo trivial, wie sich das anhört, ist das Problem mit wechselnden OBLIGATORY-Feldern eben nicht...
PSS: Ich arbeite immerhin auch schon etwa 80 mal so lange mit ABAP, wie du... 8) Da sollte ich das schon hinkriegen... :wink:

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
also das ist schon genial hoffentlich kann ich das auch irgendwann so!!

Problem ist nur das man nur einzelwerte eingeben kann!!!

und ich brauch von - bis wert.
z.bsp.
SELECT-OPTIONS: s_hkont4 FOR dfkkopk-hkont.

weisste was ich meine????

Gruß
porto78

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
damit du siehst was ich meine!!


PARAMETERS p1 RADIOBUTTON GROUP a USER-COMMAND xxx DEFAULT 'X'.
PARAMETERS p2 RADIOBUTTON GROUP a.
PARAMETERS p3 RADIOBUTTON GROUP a.
PARAMETERS p4 RADIOBUTTON GROUP a.

SELECTION-SCREEN BEGIN OF SCREEN 1100.
SELECT-OPTIONS: so_hkont FOR dfkkopk-hkont,
so_vsnrt FOR dfkkopk-zzversnrt,
so_fnrh FOR dfkkopk-zzfirmnrh,
so_gvnrh FOR dfkkopk-zzgvsnrh.


*PARAMETERS f1 TYPE char10.
*PARAMETERS f2 TYPE char10.
*PARAMETERS f3 TYPE char10.
*PARAMETERS f4 TYPE char10.

SELECTION-SCREEN BEGIN OF BLOCK d WITH FRAME TITLE text-002.

PARAMETERS: alvliste RADIOBUTTON GROUP rad2,
abaplist RADIOBUTTON GROUP rad2.

SELECTION-SCREEN END OF BLOCK d.

SELECTION-SCREEN END OF SCREEN 1100.

AT SELECTION-SCREEN.
IF sy-ucomm = 'XXX'.
CALL SELECTION-SCREEN 1100.
ENDIF.

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CHECK screen-name(1) = 'S'.
screen-required = '0'.
CASE 'X'.
WHEN p1.
IF screen-name = 'so_hkont'.
screen-required = '1'.
ENDIF.
WHEN p2.
IF screen-name = 'so_vsnrt'.
screen-required = '1'.
ENDIF.
WHEN p3.
IF screen-name = 'so_fnrh'.
screen-required = '1'.
ENDIF.
WHEN p4.
IF screen-name = 'so_gvnrh'.
screen-required = '1'.
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.

ich habe gedacht so müsste es gehen!! jetzt werden zwar die felder als von -bis angezeigt aber es funktioniert nicht mehr das sie als obligatorisch ausgegeben werden.

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Hi!
also erstens musst du den Feldnamen immer groß schreiben, damit's funktioniert.
Ab ECC 5.0 kannst du dir im Debugger die SCREEN-Tabelle anzeigen lassen (Springen - Systembereiche SCREEN-Tabelle).
Vorher geht's -nur bei Programmen mit Selection-screen, nicht bei Dynpros!! - mit der internen Tabelle %_SSCR.
Da siehst du dann, dass die felder SO_HKONT-LOW und SO_HKONT-HIGH heissen. LOW musst du auf "required" setzen. Das langt dann.
Viel Spaß!

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
EWX einfach nur geil sage ich dazu!!! HAMMER

Das funktioniert super und ich kann mir einiges an zeilen sparen!! wobei ich den umweg mit 4 screen schon gebaut hatte!! ;-)))))

DANKE DANKE!!!!!!!!!!

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
hach, solch überschwängliche Dankesbekundungen... :)Bild
Viel Spaß weiterhin!

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
bitte bitte!!!

leider gibt es da doch noch ein problem!! ;-)))

nach den radiobutton geht es ja auf den zweiten sreen 1100!!

problem ist dann aber wenn man was eingegeben hat und f8 drückt springt er zurück auf den ersten screen und erst wenn man dort wieder f8 drückt springt er in die start-selection!!

wie kann ich das abschalten???

habe das mit der abfrage auf sy-ucomm = xxx versucht hat aber nix geholfen!!

so sieht der code jetzt aus:

PARAMETERS p1 RADIOBUTTON GROUP a USER-COMMAND xxx DEFAULT 'X'.
PARAMETERS p2 RADIOBUTTON GROUP a.
PARAMETERS p3 RADIOBUTTON GROUP a.
PARAMETERS p4 RADIOBUTTON GROUP a.

SELECTION-SCREEN BEGIN OF SCREEN 1100.

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.

SELECT-OPTIONS: so_hkont FOR dfkkopk-hkont,
so_vsnrt FOR dfkkopk-zzversnrt,
so_fnrh FOR dfkkopk-zzfirmnrh,
so_gvnrh FOR dfkkopk-zzgvsnrh,
so_budat FOR dfkkko-budat,
so_bukrs FOR dfkkopk-bukrs,
so_gesl FOR dfkkopk-zzgeselh,
so_targ FOR dfkkopk-zztarifg,
so_kvtrg FOR dfkkopk-zzkonsvtrgh,
so_eglnr FOR dfkkopk-zzegalnr,
so_opbel FOR dfkkko-opbel,
so_blart FOR dfkkko-blart,
so_hvorg FOR dfkkopk-zzhvorg,
so_tvorg FOR dfkkopk-zztvorg,
so_wknrh FOR dfkkopk-zzwerknrh,
so_unr FOR dfkkopk-zzuntnrh,
so_vsnrh FOR dfkkopk-zzversnrhh,
so_manbu FOR dfkkopk-zzmanbuh,
so_regtk FOR dfkkopk-zzregutk.

SELECTION-SCREEN END OF BLOCK a.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.

PARAMETERS: alvliste RADIOBUTTON GROUP rad2,
abaplist RADIOBUTTON GROUP rad2.

SELECTION-SCREEN END OF BLOCK b.
SELECTION-SCREEN END OF SCREEN 1100.

AT SELECTION-SCREEN.
IF sy-ucomm = 'XXX'.
CALL SELECTION-SCREEN 1100.
ENDIF.

AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CHECK screen-name(1) = 'S'.
screen-required = '0'.
CASE 'X'.
WHEN p1.
IF screen-name = 'SO_HKONT-LOW'.
screen-required = '1'.
ENDIF.
IF screen-name = 'SO_BUDAT-LOW'.
screen-required = '1'.
ENDIF.
WHEN p2.
IF screen-name = 'SO_VSNRT-LOW'.
screen-required = '1'.
ENDIF.
IF screen-name = 'SO_BUDAT-LOW'.
screen-required = '1'.
ENDIF.
WHEN p3.
IF screen-name = 'SO_FNRH-LOW'.
screen-required = '1'.
ENDIF.
IF screen-name = 'SO_BUDAT-LOW'.
screen-required = '1'.
ENDIF.
WHEN p4.
IF screen-name = 'SO_GVNRH-LOW'.
screen-required = '1'.
ENDIF.
IF screen-name = 'SO_BUDAT-LOW'.
screen-required = '1'.
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.


START-OF-SELECTION.

HIILFE :lol:

Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
ich bitte noch mal um hilfe!!! ;-)))

Vergleichbare Themen

3
Antw.
4941
Views
ALV Layout Auswahl auf Selection Screen
von Tron » 18.12.2020 07:57 • Verfasst in Tutorials & Cookbooks
11
Antw.
2309
Views
TCP/IP Verbindung aufbauen
von L0w-RiDer » 04.11.2020 13:34 • Verfasst in ABAP® für Anfänger
5
Antw.
2115
Views
SAP Strategie Know How aufbauen
von thomasschwarz » 13.08.2005 16:47 • Verfasst in SAP - Allgemeines
1
Antw.
1036
Views
Ranges dynamisch aufbauen
von Gast » 19.01.2006 11:48 • Verfasst in ABAP® Core
5
Antw.
3627
Views
Ranges dynamisch aufbauen
von Besi » 10.02.2005 11:26 • 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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 519
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2150
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8745