Häufig sind die Felder einer Transaktion auf mehrere Reiter verteilt. Zur schnellen Dateneingabe kann es sinnvoll sein, Felder aus mehreren Reitern auf einem einzigen zusammenzuführen. Das ist schwieriger, als nur innerhalb eines Bildschirmbildes Felder anders anzuordnen, da die Logik der Transaktion eine Rolle spielt. |
Die wesentlichen Techniken sehen Sie in diesem Tutorial. Unser Ziel ist, für die Transaktionen
die Felder zur Vermögensbewertung bereits auf dem ersten Reiter “Allgemein” zur Verfügung stellen. Die Standardtransaktion AS02 (SAP 4.6C) sieht wie folgt aus:
Wir wollen die rot umrahmten Felder stattdessen auf dem Reiter “Allgemein” zur Verfügung stellen. Auf dem Reiter “Vermögenst.” werden sie gelöscht, die Grundstücksfelder nach oben geschoben und der Reiter umbenannt in “Grundstücke”. Der neue Reiter “Allgemein” sieht dann so aus:
Sie sehen, dass wir dabei zwei Eingabefelder in eine Auswahl von Radiobuttons umgewandelt haben (Gruppen “Eigentumsart” und “Bewertung nach”). |
Vorgehen:
Eine .zip-Datei mit den hier verwendeten Skripten können Sie für eigene Tests nutzen: as_zip.zip. Bitte auf SAP 4.6C testen (oder anpassen) und GuiXT 2004 Q3 4 oder später verwenden. Auf den Einstiegsbildern von AS01 sowie AS02/AS03 setzen wir alle benutzten Variablen zurück. Durch die Namenskonvention, unsere InpustScript-Variablen für die drei Transaktionen mit “AS_” beginnen zu lassen, ist das einfach machbar: // GuiXT Script saplaist.d0105.txt // GuiXT Script saplaist.d0100.txt Die Layoutänderungen sowie der Aufruf der richtigen InputScripts erfolgt in dem GuiXT Skript zu dem AS01/AS02/AS03-Screen saplaist.1000: // GuiXT Script “saplaist.d1000.txt“ // Benutzte InputScripts: // Alle Variablen V[AS_*] werden auf dem Einstiegsbild der Transaktion zurückgesetzt
// Zur Sicherheit Variablen auch löschen, wenn // Eine Variable als “-readonly” Option setzen bei Anzeige, um // Werte erstmalig lesen bei Ändern oder Anzeigen if not V[AS_read=X] // erstes Mal? // Skript hier verlassen, da Screen noch nicht angezeigt wird // Reiter umbenennen, da nur noch die Grundstücksfelder dort vorhanden sind // Reiter Allgemein: eigene Felder einblenden // Hinter letztem Gruppenrahmen beginnen box (0,0) (9,80) “Vermögenswerte”
// Button zur Langtextpflege zu den Vermögenswerten inputfield (1,1) “Gliederungsschlüssel” (1,24) size=4 name=”AS_Gliederungsschlüssel” techname=”ANLA-VMGLI” “&V[AS_readonly]“ inputfield (2,1) “Vermögenswert” (2,24) size=16 name=”AS_Vermögenswert” -numerical “&V[AS_readonly]“
Box (4,1) (8,20) “Eigentumsart” Box (4,30) (8,49) “Bewertung nach” endif
// Reiter Vermögenst.: Felder löschen die jetzt auf “Allgemein” sind if Q[Transaction=AS01] or Q[Transaction=AS02]
// Bei Sichern in AS01/AS02 eigenes Skript aufrufen // Kein Sichern auf Popup zulassen, wie /12 handhaben // Bei “Enter” im Reiter “Allgemein” die Zusatzeingaben schon überprüfen endif
Das InputScript “AS_read.txt” liest die Vermögensfelder von dem entsprechenden Reiter und kehrt zu “Allgemein” zurück. Auch Textfelder können wir dabei mitnehmen. // InputScript AS_read.txt
// Auf Reiter “Vermögensbewertung” verzweigen // AS02, Vermögensbewertung Enter “=TAB01″ Entsprechend setzt “AS_save.txt” vor dem Sichern die zusätzlichen Felder wieder in die Standardfelder. Für den Fall von Fehlermeldungen kehren wir auf den Reiter “Allgemein” zurück. // InputScript AS_save.txt // Auf Reiter “Vermögensbewertung” verzweigen // Vermögensbewertung // Alte Werte merken, um sie im Fehlerfall wieder einzutragen // Neue Werte eintragen // Sichern, im Fehlerfall weiter // Fehlerfall. Werte wieder zurücksetzen, da einige fehlerhaft // Zurück auf ersten Reiter mit Fehlermeldung Enter “=TAB01″ Nicht unbedingt nötig ist schliesslich das hier implementierte Prüfen der Eingabe bei “Enter” durch ein eigenes InputScript “AS_check.txt“. Die Prüfung erfolgt ja auf alle Fälle bei “Sichern”. Für den Benutzer ist es jedoch angenehmer, wenn die Werte bereits beim ersten “Enter” geprüft werden. // InputScript AS_check.txt // Auf Reiter “Vermögensbewertung” verzweigen // Vermögensbewertung // A // Neue Werte eintragen // Datenfreigabe // Vermögensbewertung // Text entnehmen // Vermögenswert mit Standard-Aufbereitung // Zurück auf ersten Reiter // Skript verlassen, Eingaben sind OK // Behandlung der Fehlermeldung // Werte wieder zurücksetzen, da einige fehlerhaft, um Reiter zu verlassen // Zurück auf ersten Reiter mit Fehlermeldung |