SAP Jobsuche bei DV-Treff
Connery
  • Connery
  • SAP Forum - User Thema Starter
vor 7 Jahre
Hallo, ABAP-Profis.

Wir haben eine Z-Auswertung (hat vor Jahren jemand angelegt).

Wenn das Ergebnis angezeigt wird, wird automatisch ein benutzerübergreifendes Layout dargestellt.

Die Auswertung habe ich nun um ein paar Werte erweitert; sprich mehr Spalten im Ergebnis.

Diese Spalten möchte ich gerne in das benutzerübergreifende Layout übernehmen.

Allerdings kann ich das nicht.

Ich kann/darf nur ein benutzerspezifisches Layout sichern.

Den Haken für „benutzerspezifisch“ kann ich nicht entfernen.

(Zur Info: Ich habe das Berechtigungsobjekt S_ALV_LAYO mit Wert 23.)

Was kann ich machen? 😕

Ich hoffe, Ihr könnt mir helfen!

Danke.

jaybeert
vor 7 Jahre
Hi Connery,

der Parameter i_save (vermutlich in der Methode set_table_for_first_display) bestimmt, wie die ALV-Variante gespeichert wird.

- SPACE: Kein Speichern von Layouts möglich.

- 'U': Der Benutzer kann nur benutzerspezifische Layouts speichern.

- 'X': Der Benutzer kann nur übergreifende Layouts speichern.

- 'A': Der Benutzer kann sowohl benutzerspezifische als auch übergreifende Layouts speichern.

In deinem Fall musst du das U durch ein A ersetzen.

Gruß

rick
  • rick
  • SAP Forum - Guru
vor 7 Jahre
Hallo Connery,

ich habe leider gerade kein System zur Verfügung, aber für mich klingt das nach einem Berechtigungsthema. In manchen Firmen wird das ja auch gezielt so eingestellt, dass User nur benutzerspezifische Layouts erstellen und ändern dürfen...

Gruß,

Rick

Connery
  • Connery
  • SAP Forum - User Thema Starter
vor 7 Jahre
Hallo, jaybeert!

Dein Tipp war seeeeeehr gut!

Mit der Ausprägung 'A' kann ich das benutzerübergreifende Layout sichern. 👍

Dabei kam folgende Frage auf:

Was bedeutet denn die Ausprägung 'E' bei i_save? Die war bisher im Programm hinterlegt.

(Das wäre noch interessant zu wissen. Im Internet habe ich dazu nichts gefunden.)

Und noch eine Frage fürs Verständnis:

Wie konnte eine (benutzerÜBERgreifende) Variante hinterlegt werden, wenn das durch i_save doch gesperrt war?

Ist es möglich, dass ich die Sperre (über i_save) drin lassen kann und mein gewünschtes Layout im Coding hinterlegen kann?

Danke und Gruß

Connery
  • Connery
  • SAP Forum - User Thema Starter
vor 7 Jahre
Noch ein Nachtrag zu meiner Verständnisfrage:

Das bereits hinterlegte (benutzerübergreifende) Layout war als "Voreinstellung" hinterlegt.

(Dem Benutzer war also gar nicht bewusst, dass ein Layout gezogen wurde.)

jaybeert
vor 7 Jahre
Hi Connery,

meines Wissens nach gibt es keinen Parameter E für i_save. War dies in Hochkommata, also so 'E' ? WEnn nicht, es können auch eigene Parameter definiert werden.

Die Übergreifende Variante wurde erstellt und anschließend i_save verändert (evtl. um ein Verändern des globalen Standardlyouts zu verhindern)

Dein Layout wird über is_layout gesetzt, i_save ist nur die Speicherart. Hier kannst du natürlich auch eigene Parameter definieren (müssen vom typ LVC_S_LAYO sein) Das Anpassen und Speichern direkt im ALV ist aber deutlich unkomplizierter.

Connery
  • Connery
  • SAP Forum - User Thema Starter
vor 7 Jahre
Hallo, jaybeert.

Ja, das E stand in Hochkommata.

Ich werde es so machen, wie von Dir empfohlen:

Layout übergreifend sichern und dann i_save wieder auf E oder U setzen.

Ich habe mir auch den Typ LVC_S_LAYO angesehen:

damit kann ich mein ALV ja ganz individuell gestalten.

Welche Komponente davon ist dafür verantwortlich, dass die Ausgabe der Spalten auf dem ganzen Bildschirm erfolgt und nicht ab einem gewissen Abstand von links verdeckt wird?

Schwer vorzustellen...

Also: wenn der Bildschirm 100% breit ist, dann bedeckt mein Grid nur 90% der Fläche (von links aus gesehen). Das heißt aber nicht, dass mein Grid vollständig angezeigt wird: die beiden letzten (rechten) Spalten sind nicht sichtbar, weil sie hinter der Fläche verschwinden, die die restlichen 10% des Bildschirms sinnlos leer lassen.

Verstanden das Problem? 😕

Gruß

Connery

mareiikemeii
vor 7 Jahre
Zitat von: Connery 

Hallo, jaybeert.

Ja, das E stand in Hochkommata.

Ich werde es so machen, wie von Dir empfohlen:

Layout übergreifend sichern und dann i_save wieder auf E oder U setzen.

Ich habe mir auch den Typ LVC_S_LAYO angesehen:

damit kann ich mein ALV ja ganz individuell gestalten.

Welche Komponente davon ist dafür verantwortlich, dass die Ausgabe der Spalten auf dem ganzen Bildschirm erfolgt und nicht ab einem gewissen Abstand von links verdeckt wird?

Schwer vorzustellen...

Also: wenn der Bildschirm 100% breit ist, dann bedeckt mein Grid nur 90% der Fläche (von links aus gesehen). Das heißt aber nicht, dass mein Grid vollständig angezeigt wird: die beiden letzten (rechten) Spalten sind nicht sichtbar, weil sie hinter der Fläche verschwinden, die die restlichen 10% des Bildschirms sinnlos leer lassen.

Verstanden das Problem? 😕

Gruß

Connery

Hallo Connery,

Habe den Beitrag gerade entdeckt, weil ich auch ein Problem mit Layouts habe (unten in bold). 😁

Erst einmal zu deiner Frage mit der Bildschirmbedeckung. Ich denke, ich kann sie beantworten. Das liegt an der Größe des Custom Containers auf dem Dynpro, das das ALV Grid anzeigt. Es ist immer recht schwierig, die geeignete Größe zu finden. Wenn der Container so groß ist, dass er auf einem 24" Bildschirm komplett angezeigt wird, könnte ein Mitarbeiter mit einem kleineren Bildschirm mit einer anderen Auflösung Probleme bekommen. Soviel dazu (falls du die Antwort nicht schon woanders bekommen hast).

Vielleicht können mir die Teilnehmer des Beitrags wiederum bei meinem Problem helfen?

Ich habe einen ALV Tree, der mehrere globale Standardlayouts besitzt. Nun möchte ein Mitarbeiter sich sein benutzerspezifisches Layout anlegen und dieses als Voreinstellung speichern. Layout sichern funktioniert, Voreinstellung ist gesetzt, aber wenn er den Tree aufruft ist sein benutzerspezifisches Layout nicht eingestellt und er muss es jedes Mal manuell auswählen. Wenn ich die gleiche Prozedur bei mir mache, wird das Layout als Voreinstellung gezogen und gleich angezeigt.

Ist dieses Problem schon mal jemandem begegnet?

Gruß

Mareike