Rätsel mit ICONS auf Listen

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Rätsel mit ICONS auf Listen

Beitrag von black_adept (Top Expert / 4102 / 128 / 945 ) »
Tja,
eine kleine PM hier im Forum brachte mich auf folgendes Rätsel:

Ich hab ein kleines Programm geschrieben welches folgenden Output erzeugt ( ein wenig zurechtgeschnitten, damit das Wesentliche deutlich wird).
Bitte beachtet die jeweils 2. Zeile - der Output ist ganz und gar nicht der, den man lt. Coding vermuten würde, da SAP hier eine sehr interessante Überarbeitung des Outputs vornimmt. :D
Die 3. Zeile (Rätsel) ist letztlich nur das, was man in der 2. Zeile wohl hätte erwarten können - aber das geht eben nicht ganz so leicht.

Viel Spaß beim Tüfteln. ( Ach ja - es werden alle Lösungen akzeptiert, die obige Ausgabe erwzingen. Wo genau Coding hinzugefügt wird ist völlig egal - meine Codingstrecken habe ich in diesem Fall man einfach auf "Geheim" gestellt )

Bild

Das Coding, das in jedem Abschnitt die Zeilen "Mit Lücke" und "Ohne Lücke" erzeugt habe ich hier mitgegeben - lediglich den Part, der die jeweils 3. Zeile " Rätsel" erzeugt fehlt.

Wer hat Lust ein wenig Coding einzufügen um selbige Ausgabe zu erhalten?

Code: Alles auswählen.

REPORT z LINE-SIZE 1000 NO STANDARD PAGE HEADING.

TYPE-POOLS: icon.

PARAMETERS: i TYPE i DEFAULT 10.

*** 5 Geheime Zeilen *****************************

INITIALIZATION.
*** 2 Geheime Zeilen *****************************

END-OF-SELECTION.

  CHECK i < 100.  " Mehr nicht
  DO i TIMES.

    WRITE:/ 'Mit Lücke'.
    POSITION 20.
    DO sy-index TIMES.
      WRITE icon_okay AS ICON.
    ENDDO.

    WRITE:/ 'Ohne Lücke'.
    POSITION 20.
    DO sy-index TIMES.
      WRITE icon_okay AS ICON NO-GAP.
    ENDDO.

    WRITE:/ 'Rätsel' color 7.
    POSITION 20.
*** 14 Geheime Zeilen *****************************

    ULINE.
  ENDDO.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

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


Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Mein erster Versuch hat sofort geklappt, allerdings auf einem 6.40-System, auf dem auch schon die Zeile "ohne Lücke" das erwartete Ergebnis liefert.
(Evtl. mal nach OSS-Hinweisen suchen, in denen NO-GAP und ICON im Text (nicht im Quelltext) vorkommen.)

Ebenso hat die zuletzt von mir vorgeschlagene Version für das Radiobutton-Rätsel (unter LOW-Feld der SELECT-OPTION verstecken) auch nur mit 6.40 und JavaGUI for Linux ohne Nebenwirkungen funktioniert.

Mit Windows-Gui an einem 4.6-System sah zwar zuerst auch alles brauchbar aus, aber nach Benutzung der Tabulator-Taste tauchte plötzlich im LOW-Feld der markierte Radiobutton auf.
Und ein Radiobutton in einem Button (z.B. in dem nach dem HIGH-Value) sieht auch ganz interessant aus.

Beitrag von ewx (Top Expert / 4851 / 313 / 642 ) »
Hi Kniffelkönig!

Es ist doch wie verhext...
Was mich wundert: Deine zwei Zeile Geheimcode in der INITIALIZATION-Section...
Hast du da sowas eingebaut wie:

Code: Alles auswählen.

INCLUDE <Kernel6-40>.
INCLUDE <SAP-Special-Icons-for-Stefan>.
???

Ich habe schon folgendes -- ohne Erfolg -- versucht:
  • - Aufbau der Icons von rechts nach links
    - Aufbau der Icons versetzt (Erst Icons 1, 3, 5 etc, danach Icons 2, 4, 6
    - EXPORT_LIST_TO_MEMORY (aber der interne Listaufbau ist mir zu komplex)
    - Skip to line x. Position y
    - Ausgabe der Icons mit Längenangabe
ich bin mal gespannt...

Gruß, Enno

Eine Lösung

Beitrag von black_adept (Top Expert / 4102 / 128 / 945 ) »
Hier kommt nun die Lösung zu obigem Rätsel.
Es sei übrigens noch vorher bemerkt, dass das Rätsel wohl nicht in Release 6.x ein solches ist, da die Iconunterdrückung, die in 4.6c stattfindet dort nicht mehr passiert, so dass beim "normalen" Programmieren auch ein "normales" Verhalten von ABAP zu erkennen ist.
Dank an Frank für den Hinweis in seinem Posting.

Hier nun der Ansatz um auch in 4.6c dicht nebeneinander gepackte gleiche Icons zu sehen zu bekommen. Wer es selbst mal versucht hat wird erkannt haben, dass ABAP dies ziemlich geschickt erkennt und immer (naja - fast immer - sonst wär dies hier ja kein Rätsel ) verhindert.

Es werden nur gleiche nebeneinanderliegende Icons unterdrückt. Somit ist der 1. Schritt zunächst die korrekte Anzahl von Icons auf den Schirm zu bringen, die nicht unterdrückt werden, indem abwechselnd ein "OKAY" und ein "CANCEL" gedruckt werden.
Das sieht dann schonmal fast so aus wie das Ergebnis - mit dem kleinen Schönheitsfehler, dass jedes 2. Icon nicht das Gewünschte ist.

Nun wird ABAP ausgetrickst. Es wird mit "READ LINE" die aktuelle Zeile gelesen (die mit den falschen Icons) und in SY-LISEL die falschen durch die korrekten Icons ausgetauscht. Danach wird mit "MODIFY LINE" die Zeile zurückgeschrieben. Bei dieser Aktion scheint ABAP nicht mehr einzugreifen und man erhält das gewünschte Ergebnis.

Hier noch das Coding dazu

Code: Alles auswählen.

REPORT z LINE-SIZE 1000 NO STANDARD PAGE HEADING. 

TYPE-POOLS: icon. 

PARAMETERS: i TYPE i DEFAULT 10. 

types: ty_x2(2) type x. 
DATA:          n     TYPE i, 
               zeile type i value 3. 
field-symbols: <okay>   type ty_x2, 
               <cancel> type ty_x2. 

INITIALIZATION. 
  assign icon_okay+1(2)   to <okay> casting. 
  assign icon_cancel+1(2) to <cancel> casting. 

END-OF-SELECTION. 

  CHECK i < 100.  " Mehr nicht 
  DO i TIMES. 

    WRITE:/ 'Mit Lücke'. 
    POSITION 20. 
    DO sy-index TIMES. 
      WRITE icon_okay AS ICON. 
    ENDDO. 

    WRITE:/ 'Ohne Lücke'. 
    POSITION 20. 
    DO sy-index TIMES. 
      WRITE icon_okay AS ICON NO-GAP. 
    ENDDO. 

    WRITE:/ 'Rätsel' color 7. 
    POSITION 20. 
    DO sy-index TIMES. 
      n = sy-index MOD 2. 
      IF n <> 0. 
        WRITE icon_okay AS ICON NO-GAP. 
      ELSE. 
        WRITE icon_cancel AS ICON NO-GAP. 
      ENDIF. 
    ENDDO. 
    read line zeile. 
    while sy-subrc = 0. 
      replace <cancel> with <okay> into sy-lisel. 
    endwhile. 
    modify current line. 
    add 4 to zeile. 

    ULINE. 
  ENDDO. 
	 
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

13
Antw.
4976
Views
Rätsel in SAP-Funktionsbaustein
von ralf.wenzel » 12.07.2012 14:09 • Verfasst in ABAP® Core
2
Antw.
1389
Views
Rätsel: Characterzuweisungen
von Azreal » 17.03.2005 10:32 • Verfasst in ABAP® Core
14
Antw.
2603
Views
F4IF_INT_TABLE_VALUE_REQUEST gibt Rätsel auf
von ralf.wenzel » 07.01.2019 10:28 • Verfasst in ABAP® Core
0
Antw.
840
Views
ABAP Rätsel zum Üben
von sap_enthusiast » 30.06.2022 17:09 • Verfasst in SAP - Allgemeines
2
Antw.
3006
Views
EKBE-XBLNR - ein Feld voller Rätsel
von ralf.wenzel » 15.04.2013 09:42 • 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.