CL_GUI_CALENDAR --> set_day_info

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

CL_GUI_CALENDAR --> set_day_info

Postby Laurens818 » Fri Jan 20, 2012 11:06 am

Hallihallo,

nach einigen erfolgreichen Recherchen / Hilfen in diesem Forum habe ich mich nun entschlossen, mich auch mal anzumelden :-)
Und komme auch gleich mit einer Frage, wo ich bisher nirgends eine Antwort finden konnte :?

Ich nutze gerade den SAP Calendar Control und komme soweit auch ganz gut damit klar.
Mir geht es um die Methode set_day_info, mit der ich bestimmte Tage meines Kalenders einfärben kann und auch mit einem Tooltip versehen kann.

Okay, ich habe jetzt einen bestimmten Tag mit der Methode eingefärbt und auch einen Tooltip gesetzt. Jetzt möchte ich allerdings den Tag nicht mehr eingefärbt haben und den Tooltip auch nicht mehr angezeigt bekommen.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.        CLEAR gs_day_info.
  2.                 gs_day_info-color = 0.
  3.                 gs_day_info-date  = <s_datumsintervall>-datum.
  4. *               gs_day_info-text = ' '.
  5.                 APPEND gs_day_info TO day_info.
  6.               ENDIF.
  7.  
GeSHi ©

(<s_datumsintervall>-datum ist das Datum, an dem vorher die Farbe sowie der Tooltip gesetzt war)

Wenn ich nun die Methode SET_DAY_INFO aufrufe und meine Tabelle day_info übergebe, ist zwar an dem besagten Tag die Farbe weg, aber der Text, den ich zuvor gesetzt habe bleibt weiterhin bestehen.
Gibt es eine Möglichkeit diesen Text irgendwie wieder wegzubekommen und den Standardtext wieder zu setzen???

Für jegliche Hinweise bin ich sehr sehr dankbar :-)
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: CL_GUI_CALENDAR --> set_day_info

Postby Laurens818 » Wed Jan 25, 2012 11:02 am

Hat niemand eine Idee wie ich das erreichen kann? :(
Die Methode reset_day_info hilft mir auch nicht weiter, da ich nicht den gesamten Kalender zurücksetzen will, sondern nur bestimmte Tage...

:?
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm

Re: CL_GUI_CALENDAR --> set_day_info

Postby Ilja583 » Wed Jan 25, 2012 2:48 pm

Hallo Chrischi,

hast du dafür gesorgt die alten Einträge in Tabelle day_info für den besagten Tag zu entsorgen, bevor du den APPEND mit den neuen Tagesinformationen machst?
Oder hast du vorher mit Methode RESET_DAY_INFO für den besagten Tag die alten Informationen entsorgt?
Ilja583
.....
.....
 
Posts: 1372
Joined: Wed Jan 08, 2003 3:00 pm

Re: CL_GUI_CALENDAR --> set_day_info

Postby Laurens818 » Wed Jan 25, 2012 3:25 pm

Hallo :-)
nachdem ich die Methode SET_DAY_INFO angewendet habe, habe ich sofort danach immer einen "CLEAR day_info" zu stehen.

RESET_DAY_INFO setzt mir den kompletten Kalender zurück, aber nicht - wie ich es mir vorgestellt habe - nur einen einzelnen Tag.


ABER: ICH HAB'S JETZT GELÖST :D
Es ist vielleicht nicht die sauberste Variante und auch nicht unbedingt die performanteste, aber immerhin.

Jedes mal, bevor ich mir die Daten (aus einer Gesamtübersichtstabelle) hole, rufe ich jetzt die Methode
CALL METHOD calendar->free
auf.
Diese setzt mir den Kalender komplett zurück, bevor ich das Kalenderobjekt erneut erstelle und wieder mit den vorhandenen Daten fülle.
Folgendes führe ich jetzt allerdings in meinem USER-COMMAND im PAI durch.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. WHEN 'FIND'.
  2. CALL METHOD calendar->free.
  3. FREE calendar.
  4. * Style für den Kalender festlegen
  5.     calendar_style = cnca_style_v_navigator.
  6. * Initialisieren des Kalenderobjektes
  7.     CREATE OBJECT calendar
  8.       EXPORTING
  9.         parent         = container
  10.         view_style     = calendar_style
  11.         focus_date     = gv_dattoday
  12.         display_months = 12.
  13.  
  14. * Tabelle mit den Informationen: GPNR, NAME, DATUM, BESCHREIBUNG, FARBBEZEICHNUNG
  15. * Wenn schon Daten für einen GP vorhanden sind --> neu einfärben
  16.         LOOP AT gt_gesamt INTO gs_gesamt WHERE gpnr = gv_personennummer.
  17.           gs_day_info-color = gs_gesamt-farbbezeichnung.
  18.           gs_day_info-date  = gs_gesamt-datum.
  19.           gs_day_info-text  = gs_gesamt-beschreibung.
  20.           APPEND gs_day_info TO day_info.
  21.         ENDLOOP.
  22.         gv_name = gs_uebersicht-name.
  23.  
  24.       CALL METHOD calendar->set_day_info
  25.         EXPORTING
  26.           day_info   = day_info
  27.         EXCEPTIONS
  28.           cntl_error = 1.
  29.       CLEAR day_info.
  30.  
GeSHi ©


Und da ich in der gt_gesamt das Datum (welches ich wieder auf Default gesetzt haben wollte) einfach rausgenommen habe, wird es nicht mehr eingefärbt und somit ist es wieder auf den Standard gesetzt :-)
Laurens818
..
..
 
Posts: 50
Joined: Sat Oct 22, 2005 9:06 pm


Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 16 guests