Dynprofeld dynamisch eingabebereit

Benutzeroberflächen in SAP Systemen.

Dynprofeld dynamisch eingabebereit

Postby Bettina1710 » Thu Apr 08, 2010 9:15 am

Hallo,
ich stehe vor einem Problem.
Ich habe ein Dynrpo mit 4 Feldern (Feld1, Feld2, Feld3, Feld4)

Feld1 und Feld2 sind eingabebereit.
Nachdem in Feld1 etwas eingegeben wurde, sollen nach einer Logik Feld3 oder Feld4 eingabebereit sein. Möglichst ohne vorherige Betätigung der Enter-Taste.

Hat hier jemand eine Lösung für solch ein Problem?

Danke!
Bettina1710
..
..
 
Posts: 35
Joined: Wed Apr 30, 2008 11:14 am

Re: Dynprofeld dynamisch eingabebereit

Postby Josie2243 » Thu Apr 08, 2010 10:01 am

Gotti hat geschrieben:Möglichst ohne vorherige Betätigung der Enter-Taste.


Es muss schon eine Aktion auf dem Dynpro angestoßen werden um zu erst durch PAI und dann dein gesuchter Bereich: PBO zulaufen. Im PBO mittels LOOP AT SCREEN kannst du über screen-input = 1 oder 0, die Eingabefähigkeit der Fleder setzten.

Bei Checkboxen und Radiobutton kann ein User-Command angebunden werden, der automatisch angestoßen wird, wenn das Element ausgewählt wird. Bei "freien" Feldern ist dies nicht möglich.
Josie2243
....
....
 
Posts: 908
Joined: Wed Feb 15, 2006 4:05 pm

Postby Lennie3901 » Thu Apr 08, 2010 10:06 am

Falls die Eingabemöglichkeiten in Feld 1 beschränkt sind, lohnt es sich über Listboxen nachzudenken, dort wäre ein automatischer Refresh möglich.
Lennie3901
..
..
 
Posts: 58
Joined: Wed Jun 21, 2006 1:36 pm

Postby Ilja583 » Thu Apr 08, 2010 11:05 am

Oder ganz frech mittels Timerevent (im Sekundentakt schauen und) falls nötig einen PAI automatisch triggern.
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Postby Jim3723 » Thu Apr 08, 2010 11:32 am

hi *,

hat jetzt leider gar nix mit dem thema an sich zu tun, nur mit dem posting von black_adept.

auch wenn es nach seltsamer programmierung anmutet, timerevent sagt mir überhaupt nichts, interessieren würde es mich aber trotzdem :D
kannst du das mal ein wenig genauer formulieren?

danke im voraus!
Jim3723
..
..
 
Posts: 99
Joined: Mon Jan 29, 2007 12:21 pm

Postby ewx » Thu Apr 08, 2010 2:14 pm

Das mutet nicht nur so an, es IST seltsam!! ;)
Besonders für den Anwender, wenn gerade sein Feld bestückt und dann ein paar Zeichen nicht übernommen werden, weil der OK-Code gerade prozessiert wird. Und dann eine Steuertabelle dazu programmiert wird, in der jeder Anwender individuell einstellen kann, nach wievielen Sekunden die Aktion ausgeführt werden soll *lach*
http://tricktresor.de/content/index.php ... 05&aID=428
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm

Postby Ilja583 » Thu Apr 08, 2010 3:21 pm

@ewx: Komisch, dass grade du meinen tollen Vorschlag so kommentierst *lach*

@peterpaulandmary.
Ich hab dir mal ein Beispielprogramm angehängt. Ist zwar ohne Dynpro sondern nur Listausgabe - aber das Prinzip ist dasselbe.
Es gibt da ein Eingabefeld und wenn du dort die Nummer eines existierenden Mandanten eingibst wird dieser gelöscht.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. REPORT LINE-SIZE 1000.
  2.  
  3. TABLES: t000.
  4.  
  5. DATA: hideflag  TYPE flag,
  6.       new_mandt TYPE sy-mandt,
  7.       linno     TYPE sylinno.
  8.  
  9. DATA: cl_timer TYPE REF TO cl_gui_timer.
  10.  
  11. *----------------------------------------------------------------------*
  12. *       CLASS lcl_event_receiver DEFINITION
  13. *----------------------------------------------------------------------*
  14. CLASS lcl_event_receiver DEFINITION.
  15.   PUBLIC SECTION.
  16.     CLASS-METHODS: handle_finished FOR EVENT finished OF cl_gui_timer.
  17. ENDCLASS.                    "lcl_event_receiver DEFINITION
  18.  
  19. *----------------------------------------------------------------------*
  20. *       CLASS lcl_event_receiver IMPLEMENTATION
  21. *----------------------------------------------------------------------*
  22. CLASS lcl_event_receiver IMPLEMENTATION.
  23.   METHOD handle_finished.
  24. *    BREAK-POINT.
  25.     READ LINE linno.
  26.     new_mandt = sy-lisel+4(3).
  27.     DO.
  28.       IF sy-index = linno.
  29.         EXIT.
  30.       ENDIF.
  31.       CLEAR hideflag.
  32.       READ LINE sy-index.
  33.       CHECK hideflag = 'X'.
  34.       IF t000-mandt = new_mandt.
  35.         sy-lisel(1) = '*'.
  36.       ELSE.
  37.         sy-lisel(1) = ' '.
  38.       ENDIF.
  39.       modify line sy-index.
  40.     ENDDO.
  41. *    CALL METHOD cl_gui_cfw=>set_new_ok_code
  42. *      EXPORTING
  43. *        new_code = 'PICK'.
  44.     cl_timer->interval = 1.
  45.     CALL METHOD cl_timer->run
  46.       EXCEPTIONS
  47.         error  = 1
  48.         OTHERS = 2.
  49.   ENDMETHOD.                    "handle_finished
  50. ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
  51.  
  52.  
  53.   hideflag = 'X'.
  54.   SELECT * FROM t000.
  55.     WRITE:/ space,t000.
  56.     HIDE: hideflag,t000.
  57.   CLEAR hideflag.
  58.  
  59.   CLEAR t000.
  60.  
  61.   WRITE:/ '-->',t000-mandt INPUT ON,'<--'.
  62.   linno = sy-linno.
  63.  
  64.  
  65.   CREATE OBJECT cl_timer.
  66.   cl_timer->interval = 1.                                   " 1 Sekunde
  67.  
  68.   CALL METHOD cl_timer->run.
  69.   SET HANDLER lcl_event_receiver=>handle_finished FOR cl_timer.
GeSHi ©
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Postby ewx » Thu Apr 08, 2010 3:42 pm

black_adept hat geschrieben:@ewx: Komisch, dass grade du meinen tollen Vorschlag so kommentierst *lach*

Frechheit!! 8)
ewx
.....
.....
 
Posts: 2840
Joined: Mon Aug 04, 2003 9:02 pm


Return to Dialogprogrammierung

Who is online

Users browsing this forum: No registered users and 7 guests