ich möchte gern in einem Kundenreport mit REUSE_ALV_GRID_DISPLAY das Sichern des ALV-Layouts in der Form abfangen, daß ich eine Speicherung immer unter "USERNAMExxx" vornehme.
Vor Aufruf des Grid würde ich dann auf Vorhandensein des User-Layouts prüfen und dieses dann zuordnen.
Klar kann ich die Layout-Verwaltung per EXCLUDE ausblenden und selbst programmieren, aber ich will ja nur den Speichernamen verbiegen. Gibts da was?
Hallo Donny,
warum kümmert es Dich, wie die User ihre Layouts benennen? Es sind doch ihre und i.A. sehen auch nur sie diese.
Oder hast Du das Problem, dass sie immer globale Layouts anlegen?
Dann wäre es aber einfacher (und sinnvoller) einfach nur das Anlegen globaler Layouts per Berechtigung bzw. Parameter zu unterbinden.
gude donny, ich versteh, was du meinst. aber eine idee, wie man in den speichervorgang eingreifen kann hab ich auch nicht.
aber wenn die user doch ihr eigenes layout angezeigt bekommen möchten, dann sollten sie halt alle eines mit ihrem usernamen anlegen. und auf dem selektionsbildschirm kannst du doch dann aus der entsprechenden alv-layout-tabelle die uservariante rausholen und den alv damit anzeigen. so könnte es gehen. wie nun die alv-layout-tabelle heißt, weiß ich leider auch nicht.
mein Programm hat je nach Situation drei unterschiedliche ALV-Ausgaben, für die ich drei globale Layouts vorbereitet habe. Diese werden über is_variant-variant nach Bedarf dem ALV mitgeteilt.
(z.B. /REPNAME_LAY1 /REPNAME_LAY2 /REPNAME_LAY3)
Wenn jetzt ein Benutzer unbedingt ein eigenes Layout braucht, möchte ich es intern in ähnlicher Weise speichern. (also USERNAME_LAY1 USERNAME_LAY2 USERNAME_LAY3) Und dann könnte ich es beim nächsten Aufruf wieder automatisch passend anfordern.
Ich glaub, die User checken es sonst nicht, und würden sich ihre Layouts immer überschreiben.
Hallo Donny,
wenn Du diesen Komfort bieten willst kannst Du (als Krücke) diese Namensgebung ja in der Programmdoku erläutern. Wer sich dran hält hat die Vorteile, wer nicht der nicht.
man kann über die Felder "HANDLE" und "LOG_GROUP" verschiedene Arten von Layout-Varianten zu einem Programm unterscheiden und steuern. Schau dir mal die Doku zu dem Parameter IS_VARIANT an.
Ich werde also für meine drei Layouts einfach jeweils unterschiedliche Handles voreinstellen und den normalen Benutzern mit I_SAVE = U das Speichern benutzerspezifischer Layouts erlauben.
Jetzt brauche ich vor dem ALV-Aufruf nur noch prüfen, ob entsprechende Layouts vorhanden sind und kann sie dann zuordnen.
Selbst eine Prüfung, ob Benutzerlayouts vorhanden sind, kann ich mir sparen. Da ich jetzt nur noch das "handle" mitgebe und keinen Layout-Variantennamen klappt alles von alleine. Meine default-Standardlayouts habe ich auch als Standardlayout markiert. Wenn jetzt ein Benutzer eigene Layouts sichert (das geht via i_save nur noch benutzerspezifisch) und das für sich als Standardlayout markiert, zieht das ALV dieses Layout ebenfalls automatisch und alle andere behalten das von mir vorbereitete normale Layout.
Hier mochmal ein Lob an das tolle Forum (schleim)
donny