Nach Auswahl einen gewissen Screen aufbauen!!!!

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

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
JAAADOCHHHH!! :D
Manches ist einfach so... Das gehört dann eben zu SAP...
Manchmal geht's aber trotzdem:

Code: Alles auswählen.

AT SELECTION-SCREEN.
AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'XXX'.
      CALL SELECTION-SCREEN 1100.
    WHEN 'CRET'.
      CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
        EXPORTING
          functioncode = '=ONLI'.

  ENDCASE.

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


Beitrag von porto78 (ForumUser / 14 / 0 / 0 ) »
DANKE !! danke!!! :lol:

das geht jetzt!! ;-)))) aber er springt trotzdem nach F8 drücken im zweiten screen nochmal in den 1000 aber nur 0,01 sekunden und zeigt dann sofort die alv-liste an ohne das man noch mal F8 drücken muss!!

ist das normal? :?:

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Der Fuba 'SAPGUI_SET_FUNCTIONCODE' simuliert den Funktionscode F8 (ONLI). Von daher ist das normal.
Du könntest das noch so umgehen:

Code: Alles auswählen.

  
AT SELECTION-SCREEN.
  CASE sy-ucomm.
    WHEN 'XXX'.
      CALL SELECTION-SCREEN 1100.
    WHEN 'CRET'.
      LEAVE to LIST-PROCESSING.
      SET PF-STATUS 'STLI' OF PROGRAM 'SAPMSSY0'.

      PERFORM liste.
  ENDCASE.

start-of-selection.
  perform liste.

form liste.
 write: / 'endlich'.
endform.
Du musst aufpassen, dass du nicht zuviel Energie in Sachen steckst, die man vielleicht von anderen Programmen her so kennt, aber eben nicht SAP-typisch sind.
Manchmal muss man eben sagen: "Sorry, das ist in SAP so.". 8)

Die Programme werden nämlich nicht lesbarer und wartbarer dadurch... :?

Mit dem, was du da jetzt als Ergebnis hast, würde ich eigentlich die select-options unter die Radiobuttons setzen und dann bei at-selection-screen prüfen, ob welche Felder musseingabe sind und prüfen, ob die gefüllt sind. Ansonsten Fehlermeldung. Das wäre wahrscheinlich das einfachste.
bis denn!

Beitrag von index (ForumUser / 17 / 0 / 0 ) »
Hi ,

mach einfach 2 reports draus.
im ersten machst du die Abfrage auf die Radiobuttongroup und rufst
nach auswahl einfach den normalen Report auf und übergibst als parameter
die Auswahl des ersten reports.

die Radiobuttongroup stellst du im 2. Report auf no display.

dann funktionierts genauso wie du es möchtest.

report 1.
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.

AT SELECTION-SCREEN.
IF sy-ucomm = 'XXX'.
SUBMIT report2 WITH p1 = 'X' AND RETURN.
ENDIF.

report 2.
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.

PARAMETERS:
p1 TYPE boolean NO-DISPLAY,
p2 TYPE boolean NO-DISPLAY,
p3 TYPE boolean NO-DISPLAY,
p4 TYPE boolean NO-DISPLAY.

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.


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.

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Mit

Code: Alles auswählen.

AT SELECTION-SCREEN.
  IF sy-ucomm = 'XXX'.
    SUBMIT report2 WITH p1 = p1
                   WITH p2 = p2
                   with p3 = p3
                   with p4 = p4 
       AND RETURN.
  ENDIF.
ist das auch eine gute Idee!
Wobei man sich dann schon wieder überlegen kann, ob nicht Drucktasten noch "freundlicher" wären...

Vergleichbare Themen

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