Bei gewissen Positionen in einem TableControl wollen Sie Ihren Anwendern Schnellzugriffe über eine Icone zur Verfügung stellen
Das Beispiel zeigt folgende Funktionalität :
Ist eine Position nicht lieferbar, so soll links vor der Position eine Icone (Werk) angezeigt werden. Drückt der Anwender auf diese Icone, so wird ein Inputscript gestartet, welches die Werksverfügbarkeit aufruft. (Überspringen von 5 Dialogschritten)
Auf den ersten Blick scheint das Beispiel noch einfach. Es waren jedoch noch folgende Probleme zu lösen :
- Der Pushbutton kann nicht verwendet werden, da eine Zeile von einem TableControl nur 0.95 Zeilen hoch ist
- Die Iconen sollen nur dort erscheinen, wo auch wirklich ein Material eingegeben wurde
- Je nachdem auf welcher Registerkarte man ist, ist die Position des TableControl unterschiedlich
Drückt der Anwender nun die Icone so kommt er über das Inputscript direkt auf die Werksverfügbarkeit. Dabei werden folgende Dialogschritte übersprungen :
- markieren der entsprechenden Zeile
- Aufrufen der Funktion Verfügbarkeitsprüfung
- Drücken Taste „Andere Werk“
- Alle Werke markieren
- Werke prüfen
sapmv45a.d4100.txt
// Beispiel zum markieren von Zeilen mit Icone // 14.03.2004 / Gérald Koehn / Koehn Consulting if Q[Transaction=VA01] if Q[Page=Verkauf] or Q[Page=Positionsübersicht] // Tablecontrol um 3 Spalten nach rechts verschieben pos T[Alle Positionen] T[Alle Positionen]+(0,3) // Tablecontrol verkleinern, so dass nicht durch die // Verschiebung ein Scrollbar entsteht Tablewidth T[Alle Positionen] 135 // Abfragen der Tabellenattribute insbesondere um festzustellen welches die // letzte sichtbare Zeile ist GetTableAttribute T[Alle Positionen] LastVisibleRow=LVisRow set V[i] 1 if Q[Page=Positionsübersicht] set V[k] 10.5 // Koordinate von erster Position endif if Q[Page=Verkauf] set V[k] 17.5 // Koordinate von erster Position endif label Marker_VA01 set V[l] "&cell[Alle Positionen,E,&V[i]]" set V[N_Postyp] "&cell[Alle Positionen,Ptyp,&V[i]]" set V[N_Zeile] &[LVisRow] + 1 // N_Zeile = ausgefüllte if V[i<&V[N_Zeile]] if V[l=X] and not V[N_Postyp=TAP] Image (&[k],0) "Werk.gif" Input="U[N_Pos]:&V[i];OK:/0,Process=werke_pruefen.txt" endif set V[i] &[i] + 1 // Koordinate um nur 0.95 erhöhen, da die Höhe einer Zeile in einem Tablecontrol nicht // ganz mit einer Koordinate auf dem Dynpro entspricht set V[k] &[k] + 0.95 Decimals=2 decimalseparator="." goto Marker_VA01 endif // Einteilung markiert und kein Positionstyp TAP endif // Page = Verkauf oder Positionsübersicht endif // Transaction VA01
werke_pruefen.txt
// Beispiel InputScript für direkten Aufruf von Werksverfügbarkeit // Als Parameter wird die entsprechende Zeilennummer im TableControl übergeben Parameter N_Pos set cell[Alle Positionen,0,&U[N_Pos]] "X" // Terminauftrag anlegen: Übersicht Screen SAPMV45A.4001 Enter "=PORE" // Verfügbarkeitsprüfung Position // Terminauftrag: Verfügbarkeitskontrolle Screen SAPLATP4.0500 Enter "/17" // Andere Werke // Werksauswahl Screen SAPLATP4.0600 Enter "/9" // Alle markieren // Werksauswahl Screen SAPLATP4.0600 Enter "/5" // Werke prüfwn
Download: Werk.zip
(Graphik von Werk und zughörigen Scripte, 1.00 KB)