Hotspot im OO ALV GRID Zellenweise

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
19 Beiträge • Seite 1 von 2 (current) Nächste
19 Beiträge Seite 1 von 2 (current) Nächste

Hotspot im OO ALV GRID Zellenweise

Beitrag von Preacha (ForumUser / 15 / 0 / 0 ) »
Ist es möglich Hotspots nur auf bestimmte Zellen einer Spalte im OO Alv Grid zu setzen, anstelle die ganze Spalte mit Hotspots zu belegen?
:?:

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


Re: Hotspot im OO ALV GRID Zellenweise

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Preacha hat geschrieben:Ist es möglich Hotspots nur auf bestimmte Zellen einer Spalte im OO Alv Grid zu setzen, anstelle die ganze Spalte mit Hotspots zu belegen?
Ja ist es. Ist deine Frage damit beantwortet, oder willst du auch wissen wie es geht?


Das ganze geht über Styles.

In der Datentabelle des ALVs wird eine interene Tabelle je Zeile gepflegt, die die Zellenatribute mit übenimmt.

Hier mal ein Code-Schnippsel

Code: Alles auswählen.

Types:    
      BEGIN OF t_alv,
          kstakey   TYPE kstar,
  *        Style-Tabelle
          style     TYPE  lvc_t_styl,
       END   OF t_alv.

DATA:
      gt_alv   TYPE TABLE OF t_alv,
      gw_alv   TYPE          t_alv,
*    Workarea für die Styles.
      gw_style  TYPE lvc_s_styl.


*    Datenwerte übernehmen
      gw_alv-kstakey = '123'.
*     Feldname welches den Sytel haben soll
       gw_style-fieldname   = 'KSTAKEY'.   
 *    Style der Zelle, mehrere Werte werden addiert
      gw_style-style = cl_gui_alv_grid=>mc_style_disabled. 
*    Style-Tabelle immer mit INSERT füllen, da sie vom TYPE sorted ist
      INSERT gw_style INTO TABLE gw_alv-style.
*    Zeile in die Ausgabe übernehmen
     APPEND gw_alv to gt_alv.
Welche sytles verfügbar sind kannst du im Include "<CL_ALV_CONTROL>" nach schauen. Für HotSpot ist es die Constante ALV_STYLE_SINGLE_CLK_EVENT.

[EDIT]
Dem ALV muss der Spaltenname der Styletabelle im Layout mitgeben werden:

Code: Alles auswählen.

*     Arbeitsbereich über Layoutangaben des ALV
DATA:   gw_layo      TYPE lvc_s_layo,

     gw_layo-stylefname = 'STYLE'.
Zuletzt geändert von JHM am 16.08.2006 15:08, insgesamt 1-mal geändert.
Gruß Hendrik

Beitrag von Preacha (ForumUser / 15 / 0 / 0 ) »
:lol: Natürlich wollte ich auch wissen wie es geht.
Vielen Dank für die Hilfe, werde es mir mal bei Gelegenheit anschauen und nochmal posten wenn es geklappt hat.

Dankeeeeee :P

Beitrag von Grayhound (ForumUser / 37 / 0 / 0 ) »
Hi,
kann man nicht einfach eine entsprechende Abfrage in den Feldkatalog setzen?
Ich habe es noch nicht getestet.....
Grayhound

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Grayhound hat geschrieben: kann man nicht einfach eine entsprechende Abfrage in den Feldkatalog setzen?
Im Feldkatalog kannst du nur Spaltenweise Atribute festlegen, nicht aber pro Zelle.

Also würde folgendes Coding für die jede Zelle einen HOTSPOT erzeugen:

Code: Alles auswählen.

DATA:  
*     Tabelle/Arbeitsbreich für den Feldkatalog des ALV
      gt_fcat      TYPE lvc_t_fcat,
      gw_fcat      TYPE lvc_s_fcat.

* Fieldcat aufbauen
  CLEAR   gw_fcat.
  gw_fcat-fieldname = 'MATNR'.
  gw_fcat-ref_field = 'MATNR'.
  gw_fcat-ref_table = 'MARA'.
  gw_fcat-HOTSPOT = 'X'.
  APPEND gw_fcat TO gt_fcat.
Wenn aber nur bestimmte Zellen der Spalte (z.B. nur für Matnr, die auch einen Bestand haben), ein HOTSPOT angeboten werden soll, dann mit o.g. Style ausgabe.
Gruß Hendrik

Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
gibt es diese Syle-meoglichkeit auch fuer den FuBa REUSE_ALV_GRID?
wenn ja, wie sieht dann der aufbau der int. Tabelle aus?
Gruss
BesenWesen

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
BesenWesen hat geschrieben:gibt es diese Syle-meoglichkeit auch fuer den FuBa REUSE_ALV_GRID?
wenn ja, wie sieht dann der aufbau der int. Tabelle aus?

Der REUSE_ALV_GRID_DISPLAY kann meines Wissens nicht mit Styles umgehen.
Es gibt aber den FuBa REUSE_ALV_GRID_DISPLAY_LVC. Dieser nimmt die Übergabetypen bei Fieldcat, Layout, etc wie der OO-ALV. Zudem sind mehr Ereignisshandler (insb. OnDataChange) über IT_EVENT_EXIT möglich (Welche möglich sind kann im INCLUDE 'LSLVC_FULLSCREENF01' in der FROM events_get using nach gelesen werden.)

Welchen interne Tabelle meinst du? Die Styles werden dem ALV mit den ALV-Daten übergeben. In meinem Beispielcoding oben siehst du wie ich für die Tabelle einen Typ definiere. Das ginge auch in einer DDIC-Structur.
Gruß Hendrik

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Mir ist im ersten Posting etwas entfallen. Siehe auch doch:

[Nachtrag]
Dem ALV muss der Spaltenname der Styletabelle im Layout mitgeben werden:

Code: Alles auswählen.

*     Arbeitsbereich über Layoutangaben des ALV
DATA:   gw_layo      TYPE lvc_s_layo,

     gw_layo-stylefname = 'STYLE'.
Gruß Hendrik

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
BesenWesen hat geschrieben:gibt es diese Syle-meoglichkeit auch fuer den FuBa REUSE_ALV_GRID?
wenn ja, wie sieht dann der aufbau der int. Tabelle aus?
Vergiss am besten den FuBa REUSE_ALV_GRID_DISPLAY!
Der hat einige Macken und ist deshalb auch nur INTERN freigegeben, sprich no Support/Hilfe seitens SAP.

Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
DeathGuardian hat geschrieben: Vergiss am besten den FuBa REUSE_ALV_GRID_DISPLAY!
Der hat einige Macken und ist deshalb auch nur INTERN freigegeben, sprich no Support/Hilfe seitens SAP.
och nööööhhh.... :-\
wo steht das im dem Intern freigegeben?
Gruss
BesenWesen

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
DeathGuardian hat geschrieben:Vergiss am besten den FuBa REUSE_ALV_GRID_DISPLAY!
Der hat einige Macken und ist deshalb auch nur INTERN freigegeben, sprich no Support/Hilfe seitens SAP.
Was soll man den dann nehmen?
Die Klasse CL_GUI_ALV_GRID ist ebenfalls nur intern freigeben.
Der Fuba REUSE_ALV_GRID_DISPLAY_LVC ist garnicht freigeben.
Gruß Hendrik

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
BesenWesen hat geschrieben:och nööööhhh.... :-\
wo steht das im dem Intern freigegeben?
In der SE37 beim FubA unter Eigenschaften.
JHM hat geschrieben:Was soll man den dann nehmen?
Die Klasse CL_GUI_ALV_GRID ist ebenfalls nur intern freigeben.
Die Klasse CL_GUI_ALV_GRID ist meines Wissens nach INTERN und EXTERN freigegeben. (Deshalb gibts auch Schulungen dazu [BC401/BC412])

Die ganzen Reuse_ALV_GRID-Fubas sind nur für schnelle Testzecke von für SAP selbst da.
Die Klasse aber ist für alle Freigegeben, nur ein paar Funktionen der Klasse sind nicht freigegeben (z.B. der Editierbare Grid).

Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
DeathGuardian hat geschrieben:
BesenWesen hat geschrieben:och nööööhhh.... :-\
wo steht das im dem Intern freigegeben?
In der SE37 beim FubA unter Eigenschaften.
ich finde da nichts von INTERN... (Rel. 4.7)
Gruss
BesenWesen

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
BesenWesen hat geschrieben:
DeathGuardian hat geschrieben:
BesenWesen hat geschrieben:och nööööhhh.... :-\
wo steht das im dem Intern freigegeben?
In der SE37 beim FubA unter Eigenschaften.
ich finde da nichts von INTERN... (Rel. 4.7)
- Reiter Eigenschaften
-> Block Allgemeine Daten
-->Letztes Feld for den Checkboxen mit Editiersperre
----> da steht dann entweder "Intern freigegeben am" oder "Extern freigegeben am" (Sowohl in 4.6C als auch 4.7)

Beitrag von BesenWesen (Specialist / 183 / 0 / 0 ) »
ach da... :oops: ok.
Gruss
BesenWesen

Vergleichbare Themen

6
Antw.
4267
Views
ALV Hotspot Popup
von hmaxi96 » 16.01.2018 15:36 • Verfasst in ABAP® für Anfänger
10
Antw.
5052
Views
Hotspot im ALV-Tree
von RiffRaff » 18.08.2005 14:11 • Verfasst in ABAP Objects®
2
Antw.
2200
Views
hotspot - Aktivierung
von barbara » 30.03.2006 13:55 • Verfasst in ABAP® für Anfänger
3
Antw.
2512
Views
ALV_TREE und hotspot
von Andreas.Lorch » 20.04.2006 17:35 • Verfasst in ABAP Objects®
4
Antw.
2886
Views
HOTSPOT REUSE_ALV_FIELDCATALOG_MERGE
von Dolph » 28.01.2005 11:58 • Verfasst in ABAP® Core

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.