Page 1 of 2

Rätsel mit Radiobuttons

PostPosted: Wed Oct 06, 2004 2:16 pm
by Ilja583
Hallo,

ich habe mal einen Selektionsbildschirm von meinem System hier dargestellt.
Image

Der sieht relativ harmlos aus - das Interessante sind jedoch die beiden nicht ausgewählten Radiobuttons!

Ein paar weitere Informationen.
- Sobald einer der beiden Radiobuttons angeklickt wird, ist er auch markiert.

- Das Anklicken eines der beiden Radiobuttons löst keine ABAP-Aktion aus ( auch Systemdebugging wird nicht angestoßen - alles normale Dynproverarbeitung des Frontend! )

- Die Radiobuttons verhalten sich wie gewohnt ( Anklicken von RB1 entmarkiert RB2 (falls markiert ) und umgekehrt )

Viel Spaß beim Knobeln...

PostPosted: Wed Oct 06, 2004 2:58 pm
by Alva1590
Ich hab's.
Ich vermute mal, wenn Du die Reihenfolge der Parameters-Anweisungen für RB1 und RB2 vertauschst und das Programm neu generierst, funktioniert Dein Trick erst mal nicht mehr, sondern erfordert wieder zusätzliche Arbeit.
Und nach Transport Deines Reports in ein anderes System ist dort auch erst mal eine zusätzliche Manipulation nötig, damit der Trick funktioniert, oder?

PostPosted: Wed Oct 06, 2004 4:00 pm
by Alva1590
Man kann die Manipulation, die ich "von außen" vorgenommen habe, auch ins Programm integrieren.
Dann klappt der Trick auch nach Neu-Generierung bzw. Transport.

PostPosted: Wed Oct 06, 2004 4:36 pm
by Ilja583
:shock: Manipulationen!!!! Das hört sich sehr interessant an.

Schreib doch mal was du da so getan hast ( mir kommt da nur spontan der Befehl "EXPORT DYNPRO" in den Sinn ) um auch so einen Effekt zu erzielen.

Meine Methode bedient sich jedenfalls nur "normaler" SAP-Standardbefehle (wenn auch evtl. in etwas unsinniger Kombination).

PostPosted: Wed Oct 06, 2004 4:38 pm
by Alva1590
Und klappen folgende Punkte bei Dir:
-wenn Du statt direkt auf die Radiobuttons auf Parameternamen klickst, wird auch der entsprechende Radiobutton markiert (und bei Bedarf die Markierung des anderen entfernt), und es gibt keine sonstigen Auffälligkeiten (ich will erst mal nicht zu viel verraten).

-wenn Du eine Liste ausgibst mit den Werten von RB1 und RB2, werden die erwarteten Werte ausgegeben.

-wenn Du aus der Liste ins Selektionsbild zurückkehrst, ist die Markierung so wie bei START-OF-SELECTION (also entweder der richtige Radiobutton markiert, oder keiner der beiden, falls vor START-OF-SELECTION kein Radiobutton markiert war)?

-Du kannst 3 Report-Varianten anlegen:
TEST0: keiner der Buttons ist markiert
TEST1: der 1. Button ist markiert
TEST2: der 2. Button ist markiert

Egal, welcher der Buttons markiert ist, bei Auswahl einer Variante wird die in der Variante gespeicherte Belegung übernommen?


Ich habe alle o.g. Dinge hinbekommen.

PostPosted: Wed Oct 06, 2004 4:58 pm
by Alva1590
black_adept hat geschrieben::shock: Manipulationen!!!! Das hört sich sehr interessant an.

Schreib doch mal was du da so getan hast


Na gut.
Wenn es offenbar noch andere Möglichkeiten gibt,
kann ich meine Lösung ja verraten.
( mir kommt da nur spontan der Befehl "EXPORT DYNPRO" in den Sinn )


Nahe dran:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. PARAMETERS rb1 RADIOBUTTON GROUP r .
  2. SELECTION-SCREEN BEGIN OF LINE.
  3. PARAMETERS rb3 RADIOBUTTON GROUP r  DEFAULT 'X'.
  4. SELECTION-SCREEN END OF LINE.
  5. PARAMETERS rb2 RADIOBUTTON GROUP r.
  6. SELECT-OPTIONS s_datum FOR syst-datum.
  7. DATA: BEGIN OF id, prog(40), dnum(4), END OF id,
  8.       h TYPE d020s, f TYPE TABLE OF d021s WITH HEADER LINE,
  9.       e TYPE TABLE OF d022s, m TYPE TABLE OF d023s,
  10.       a, b, c, x TYPE x VALUE '03'.
  11. DEFINE _w. write: / 'RB&1 =', rb&1 color &1. END-OF-DEFINITION.
  12.  
  13.   id-prog = sy-repid. id-dnum = '1000'.
  14.   IMPORT DYNPRO h f e m ID id.
  15.   f-line = '02'.
  16.   MODIFY f TRANSPORTING LINE where LINE eq x.
  17.   GENERATE DYNPRO h f e m ID id MESSAGE a LINE b WORD c.
  18.   FREE: f, e, m.
  19.   CALL FUNCTION 'DB_COMMIT'.
  20.  
  21. AT SELECTION-SCREEN.
  22.   CASE 'X'.
  23.     WHEN rb3.
  24.       IF sy-datar EQ 'X'. " geht schief, wenn nur S_DATUM geändert wurde
  25.         CLEAR rb3.
  26.         rb2 = 'X'.
  27.       ENDIF.
  28.  
  29. *  SET BLANK LINES ON.
  30.   _w:1,2,3.
  31.  
GeSHi ©

PostPosted: Wed Oct 06, 2004 7:45 pm
by Ilja583
Hallo Gast ( dem mit dem GENERATE DYNPRO ).

Deine Idee geht natürlich grundsätzlich in die richtige Richtung *lach* aber bei mir gibt es folgenden Screen
Bild
und auf dem sind DREI Radiobuttons zu sehen. Aber die grundsätzliche Idee gefällt mir - auch wenn ich noch nicht so genau sehe, ob du das Problem damit lösen kannst. Ich hab da zwar ein paar Ideen, aber der Befehl ist mir zu gefährlich *schauder* um da groß rumzuspielen. :oops:



Hallo Gast ( der mit der Lösung und den Fragen ).

aaaaalso. Als ich die Frage gepostet habe, hätt ich nicht alle Fragen bejahen können, aber mit ein paar Zeilen Extracode geht das (jetzt) auch.

Also alle Fragen lassen sich bejahen.
Ein paar Auffälligkeiten sind higegen schon da.

Eine wäre z.B., dass beim Speichern der Variante die Feldeigenschaft "Feld ohne Wert abspeichern" ("V") aktiv ist!.

Ich werde meine Lösung allerdings jetzt noch nicht verraten - mach ich Donnerstag Nacht, damit noch ein paar Stündchen Zeit bleiben um bei Interesse die grauen Zellen ein wenig in Schwung zu halten.

PostPosted: Thu Oct 07, 2004 8:25 am
by Willy1492
black_adept hat geschrieben:bei mir gibt es folgenden Screen
Image
und auf dem sind DREI Radiobuttons zu sehen.

Was mich hier wundert, sind die 2 Radiobuttons RB1 und RB2.
Die sollten doch je nach Release entweder ganz links liegen (mit Text rechts daneben) oder eben auf POS_LOW (da wo das LOW-Feld der Select-Option beginnt).

Mit welchem Release hast Du den merkwürdigen Effekt erzielt, dass die Radiobuttons an einer Position < POS_LOW angezeigt werden?

PostPosted: Thu Oct 07, 2004 10:34 am
by Ilja583
Programm von Gast ( der mit dem Demoprogramm )

Image


Obiges wurde erzeugt auf einem IDES-System 4.6C ( Release 99 ). Auf dem System werden aber alle Radiobuttons ein klein wenig nach links verrückt dargestellt (warum auch immer???)




Image

Obiges wurde erzeugt auf einem 4.6C mit relativ neuem Patchstand.
Man beachte genauer den Button2!

PostPosted: Thu Oct 07, 2004 11:59 am
by Alva1590
Die Darstellung liegt aber eher an unterschiedlichen GUI-Versionen