markieren im Picture Control

Benutzeroberflächen in SAP®-Systemen.
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

markieren im Picture Control

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Hallo,

ich soll ein Programm schreiben, bei dem ein Bild angezeigt wird. (Das geht ja einfach mit der Klasse CL_GUI_PICTURE).
Aber man soll dann im Bild manche Bereiche mit einem Kreis o.ä. markieren können. Da weiß ich aber nicht wie das möglich seien sollte.
Ich weiß nur, dass es möglich ist die Koordinaten an denen man geklickt hat zurück zu bekommen.
Kann mir da einer weiterhelfen?

MfG
Kaiwalker
Möge die Macht mit euch sein.

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


Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Weiß hier keiner Rat?
Möge die Macht mit euch sein.

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
Vielleicht geht das ja gar nicht was du da so ganz allgemein beschreibst.

Aber wenn du das Problem ein wenig näher erklärst könnte man dir ja evtl. mit Alternativvorgehensweisen weiter helfen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Hallo,

ich weiß nicht, wie ich es genauer erklären soll.
Ich habe ein Bild, auf dem ein Mensch angezeigt wird. Nun soll der Anwender manche Bereiche markieren können. Dies zeigt dann an welcher Stelle sich der Patient verletzt hat. (Ich programmiere für die Branchenlösung Krankenhaus).
Abgespeichert werden sollten dann aber nur die Koordinaten. Die bekomme ich ja ohne weiteres beim Klicken zurückgeliefert.
Meine einzige Lösung ist im Moment, dass in einem Textfeld neben dem Picture Control die Position textlich dargestellt wird. (Koordinaten und z.B. rechtes Ohr).

Kann mir nun jemand helfen?

MfG
Kaiwalker
Möge die Macht mit euch sein.

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
Nettes Problem was du da hast, Kai...


Evtl. könntest du das Picturecontrol ja verwenden um die Bereiche zu markieren und daneben ein HTML-Control, welches letztlich auch dasselbe Bild anzeigt aber in dem die geklickten Stellen durch Kreise markiert werden ( das geht ja in HTML durch absolute Positionierungen und Überlagern von Bildern).
Ist zwar in etwa auch nur das, was du bisher mit dem Text machst - aber so sieht man bildlich wo geklickt wurde.

Evtl. kannst du das Bild ja auch schematisch aufteilen ( etwa wie bei der Wikipedia in einem etwas anderen Zusammenhang ) und dann pro Bereich zwei von den Ausmaßen zwar gleiche aber von der Farbzusammensetzung her unterschiedliche Bilder abzulegen. Dann könntest du stets die geklickten Teile z.B. dunkel darstellen und die nicht geklickten hell.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

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

vielleicht kannst du dich ja mit der folgenden Idee beschäftigen: Dynamische Dokumente:
die Klasse CL_DD_AREA hat eine Methode ADD_STATIC_HTML.
Die ist zwar als "intern" gekennzeichnet, aber wenn's geht...

Du könntest eine Tabelle mit Bildern aufbauen, die in etwa so http://www.abapforum.com/files/mensch_925.jpg aussieht.
Die Bilder kannst du der Methode mitgeben.
Je nachdem, welcher Körperteil verletzt ist, könntest du dann ein anderes Bild aus dem BDS laden.
Wie man innerhalb dieses "statisch aufgebauten Dokuments" dann allerdings auf einen Link reagiert... :roll:

Beispielprogramm für Dyn. Dokumente: dd_add_link

Vielleicht bringt's dich ja weiter...!
Viel Erfolg!
lg,

VERGISS ES!!

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
machs doch so:

ich habe einen menschen gevierteilt (der einfachheit halber) und die vier stücke im BDS gesichert (guckstdu hier: http://tricktresor.de/content/index.php ... 38&aID=397)
dann habe ich das hier geschrieben:

Code: Alles auswählen.

REPORT zzkaiskoerper.

* Declarations *****************************************************

CLASS c_reaction DEFINITION.
  PUBLIC SECTION.
    METHODS h1 FOR EVENT picture_click OF cl_gui_picture
                   IMPORTING sender.
ENDCLASS.                    "c_reaction DEFINITION

DATA pic_ol TYPE bds_typeid VALUE 'ZZOL'.
DATA pic_or TYPE bds_typeid VALUE 'ZZOR'.
DATA pic_ul TYPE bds_typeid VALUE 'ZZUL'.
DATA pic_ur TYPE bds_typeid VALUE 'ZZUR'.

DATA: container_ol TYPE REF TO cl_gui_custom_container,
      container_or TYPE REF TO cl_gui_custom_container,
      container_ul TYPE REF TO cl_gui_custom_container,
      container_ur TYPE REF TO cl_gui_custom_container,
      pict_ol      TYPE REF TO cl_gui_picture,
      pict_or      TYPE REF TO cl_gui_picture,
      pict_ul      TYPE REF TO cl_gui_picture,
      pict_ur      TYPE REF TO cl_gui_picture,
      border_ul    TYPE i,
      done,
      react TYPE REF TO c_reaction,
      evt_tab TYPE cntl_simple_events,
      evt_tab_line LIKE LINE OF evt_tab,
      url(256) TYPE c,
      url_ol LIKE url,
      url_or LIKE url,
      url_ul LIKE url,
      url_ur LIKE url.



TYPES pic_line(1022) TYPE x.
DATA  pic_tab TYPE TABLE OF pic_line.


* Reporting events ***************************************************

START-OF-SELECTION.

  PERFORM get_picture USING 'ZZOL'  CHANGING url_ol.
  PERFORM get_picture USING 'ZZOR'  CHANGING url_or.
  PERFORM get_picture USING 'ZZUL'  CHANGING url_ul.
  PERFORM get_picture USING 'ZZUR'  CHANGING url_ur.

  CALL SCREEN 100.

* Dialog Modules Output

MODULE status_0100 OUTPUT.

  IF done = space.
    done = 'X'.
    CREATE OBJECT: container_ol EXPORTING container_name = 'PICTUREOL',
                   container_or EXPORTING container_name = 'PICTUREOR',
                   container_ul EXPORTING container_name = 'PICTUREUL',
                   container_ur EXPORTING container_name = 'PICTUREUR',

                   pict_ol EXPORTING parent = container_ol,
                   pict_or EXPORTING parent = container_or,
                   pict_ul EXPORTING parent = container_ul,
                   pict_ur EXPORTING parent = container_ur,

                   react.


    evt_tab_line-eventid = cl_gui_picture=>eventid_picture_click.
    evt_tab_line-appl_event = ' '.       " System Event!
    APPEND evt_tab_line TO evt_tab.

    CALL METHOD pict_ol->set_registered_events
      EXPORTING
        events = evt_tab.
    CALL METHOD pict_or->set_registered_events
      EXPORTING
        events = evt_tab.
    CALL METHOD pict_ul->set_registered_events
      EXPORTING
        events = evt_tab.
    CALL METHOD pict_ur->set_registered_events
      EXPORTING
        events = evt_tab.

    SET HANDLER react->h1 FOR pict_ol.
    SET HANDLER react->h1 FOR pict_or.
    SET HANDLER react->h1 FOR pict_ul.
    SET HANDLER react->h1 FOR pict_ur.

    CALL METHOD pict_ol->load_picture_from_url
      EXPORTING
        url = url_ol.
    CALL METHOD pict_or->load_picture_from_url
      EXPORTING
        url = url_or.
    CALL METHOD pict_ul->load_picture_from_url
      EXPORTING
        url = url_ul.
    CALL METHOD pict_ur->load_picture_from_url
      EXPORTING
        url = url_ur.

    CALL METHOD pict_ol->set_display_mode
      EXPORTING
        display_mode = pict_ol->display_mode_stretch.
    CALL METHOD pict_or->set_display_mode
      EXPORTING
        display_mode = pict_or->display_mode_stretch.
    CALL METHOD pict_ul->set_display_mode
      EXPORTING
        display_mode = pict_ul->display_mode_stretch.
    CALL METHOD pict_ur->set_display_mode
      EXPORTING
        display_mode = pict_ur->display_mode_stretch.


  ENDIF.


  SET PF-STATUS 'SCREEN_100'.

ENDMODULE.                    "status_0100 OUTPUT

* Dialog Modules Output

MODULE cancel INPUT.
  LEAVE PROGRAM.
ENDMODULE.                    "cancel INPUT

* CLass Implementations **********************************************

CLASS c_reaction IMPLEMENTATION.
  METHOD h1.
    CALL METHOD sender->clear_picture.
*CALL METHOD sender->set_3d_border
*    EXPORTING
*      border = 1.

*  call method cl_gui_cfw=>flush.
  ENDMETHOD.                    "h1
ENDCLASS.                    "c_reaction IMPLEMENTATION

*

*&---------------------------------------------------------------------*
*&      Form  get_picture
*&---------------------------------------------------------------------*
FORM get_picture USING fi_name TYPE bds_typeid
              CHANGING value(fe_url).

*** Benötigte Variablen
  DATA:
    lt_url    TYPE TABLE OF bapiuri,
    ls_url    TYPE          bapiuri.

*** Ermitteln der URL zum Bild
  CALL METHOD cl_bds_document_set=>get_with_url
    EXPORTING
      classname  = 'PICTURES'
      classtype  = 'OT'
      object_key = fi_name
    CHANGING
      uris       = lt_url.
*** Ermittelte URL lesen
  READ TABLE lt_url INTO ls_url INDEX 1.
  fe_url = ls_url-uri.

ENDFORM.                    "get_picture
das Dynpro sieht so aus: http://www.apentia-forum.de/files/mensch_867.jpg
dann kannst du jeweils ein bild anklicken und in der behandler-Routine wird das bild gelöscht.

Mit dem drei-D-Rahmen klappts' leider nicht.
Ich wollte den Teil eigentlich "umrahmen", dann bräuchte man nicht extra ein neues Bild für den markierten Körperteil.
So siehts dann bei mir aus: http://www.abapforum.com/files/mensch2_165.jpg

So müsste das doch gehen, oder?

Kann ich das nicht machen? Das macht ja richtig laune!!

Viel Spaß!

PS: Ich hoffe nur, du kommst jetzt nicht an und sagst: "Da muss man aber den rechten Zeigefinger anklicken können und das linke Auge und den Bauchnabel!"... :lol:

Beitrag von Krueger ( / / 0 / 3 ) »
Abgespeichert werden sollten dann aber nur die Koordinaten. Die bekomme ich ja ohne weiteres beim Klicken zurückgeliefert.
Warum also speicherst Du die Koordinaten dann nicht einfach :roll:

Ansonsten: Tabelle erstellen die sämtliche gültige Koordianten enthält mit dem dazugehörigen Körperteil.
Für ganz genaue "Klicks" pro Zeile mindestens einen Eintrag :lol:

Wenn jemand irgendwo hingeklickt hat, Koordinaten merken und damit auf die Tabelle zugreifen.

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Danke Enno,

das hat mir schon weitergeholfen.
Dann muss ich mir bloß erst Mal die Mühe machen das Bild in mehrere Teile zu zerteilen.
@Krüger: Es ging ja nicht um das abspeichern, sondern um das grafische Darstellen.

MfG
Kaiwalker
Möge die Macht mit euch sein.

Beitrag von Krueger ( / / 0 / 3 ) »
sondern um das grafische Darstellen.
Ach so... :oops:

:D

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Kaiwalker hat geschrieben:Danke Enno,

das hat mir schon weitergeholfen.
...na gottseidank...! Ich hatte schon Ohrläppcheneinwände befürchtet... :D
Kaiwalker hat geschrieben: Dann muss ich mir bloß erst Mal die Mühe machen das Bild in mehrere Teile zu zerteilen.

da gibts aber etliche Grafikprogramme, mit denen man das einfach machen kann.

Seite 1 von 1

Vergleichbare Themen

0
Antw.
993
Views
Picture-Control nur zur Anzeige
von casa » 23.08.2005 16:40 • Verfasst in ABAP Objects®
0
Antw.
1267
Views
horizontales scrollen splitter, picture control
von ElNino » 09.04.2010 20:20 • Verfasst in Dialogprogrammierung
24
Antw.
7603
Views
horizontales scrollen splitter, picture control
von ElNino » 10.04.2010 09:16 • Verfasst in ABAP Objects®
2
Antw.
1772
Views
TABEL CONTROL markieren und auswerten
von SAPAlex » 09.03.2008 15:44 • Verfasst in ABAP® für Anfänger
1
Antw.
1481
Views
Container Steuerung->Wechsel zwischen HTM und Picture
von hfahrian » 28.03.2005 11:49 • 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 / 513
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2147
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8742