Wie man mit skrollbaren Bildschirmbereichen umgeht

Einige R/3 Bildschirme enthalten einen oder mehrere skrollbare Bereiche. Es befinden sich waagerechte und senkrechte Bildlaufleisten an den Seiten dieser Bereiche, und Anwender können mit ihrer Hilfe durch diese Bildschirmbereiche skrollen.

Beispiel (Transaktion VD03):  

Sap Guixt scroll1 Der Umgang mit skrollbaren Bereichen

Diese Bereiche können ganz normal mit GuiXT verändert werden, z.B. um Felder umzubenennen oder zu löschen. Wenn Sie jedoch neue Felder in diese Bereiche einfügen mchten, dann müssen Sie einige Besonderheiten beachten. Angenommen, Sie möchten einen kleinen zusätzlichen Rahmen (Test) mit einigen Pushbuttons in dem skrollbaren Bereich positionieren, wie in folgendem Bild gezeigt:

Sap Guixt scroll3 Der Umgang mit skrollbaren Bereichen

Das zugehörige Skript sieht folgendermaßen aus:

if Q[Page=Adresse]
  Box (5,86) (9,100) “Test”
    Pushbutton (6,91) “abc1″ “xyz1″
    Pushbutton (7,91) “abc2″ “xyz2″
    Pushbutton (8,91) “abc3″ “xyz3″
endif

Ein Problem entsteht dadurch, dass GuiXT die absoluten Koordinaten verwendet, die Sie angegeben haben, dass das neue Element aber nicht innerhalb des skrollbaren Bereichs positioniert wird. Dadurch entstehen Probleme beim Bildschirmaufbau während des Skrollvorgangs. Ihr Bildschirm könnte beispielsweise folgendermaßen aussehen:

Sap Guixt scroll4 Der Umgang mit skrollbaren Bereichen

Es gibt eine Lösung für dieses Problem: durch die Verwendung der Offset Anweisung können Sie erzwingen, dass die neuen Elemente Teil des skrollbaren Bereichs werden. Wenn Sie einen Offset definieren, der sich auf ein bestehendes Bildschirmelement bezieht, dann nimmt GuiXT nicht nur die Koordinaten dieses Elements als Bezugspunkt, sondern es nimmt auch an, dass weitere Elemente ebenfalls Teil des gleichen Bildschirmbereichs werden wie das als Offset verwendete Element.

In unserem Beispiel können Sie den Vorschau Button als Offset verwenden:

 if Q[Page=Adresse]
  Offset P[Vorschau]
    Box (1,81) (5,95) “Test”
      Pushbutton (2,86) “abc1″ “xyz1″
      Pushbutton (3,86) “abc2″ “xyz2″
      Pushbutton (4,86) “abc3″ “xyz3″
endif

Ihre neuen Bildschirmelemente werden nun ganz korrekt während und nach dem Skrollvorgang angezeigt.

Anstelle der Offset Anweisung können Sie auch in jeder Zeile relative Koordinaten verwenden:

if Q[Page=Adresse]
     Box P[Vorschau]+(1,81) P[Vorschau]+(5,95) “Test”
      Pushbutton P[Vorschau]+(2,86) “abc1″ “xyz1″
      Pushbutton P[Vorschau]+(3,86) “abc2″ “xyz2″
      Pushbutton P[Vorschau]+(4,86) “abc3″ “xyz3″
endif

An den folgenden zwei einfachen Beispielen sehen Sie nocheinmal den Unterschied zwischen absoluten und relativen Koordinaten. Wir verwenden beide Male den gleichen Bildschirm.

A: Text (20,90) “xxxxxxxxxx”

B: Text P[Vorschau]+(16,85) “xxxxxxxxxx”

Da die Position von P[Vorschau] bei (4,5) liegt sind die absoluten Koordinaten in beiden Fällen die gleichen. Aber die zugewiesenen Bildschirmbereiche sind jeweils unterschiedlich.

Sap Guixt scroll5 Der Umgang mit skrollbaren Bereichen

Im Falle des Skripts A wird der Text im nicht-skrollbaren Bereich des Hauptbildes angezeigt.

Sap Guixt scroll6 Der Umgang mit skrollbaren Bereichen

Im Fall B ist der Text überhaupt nicht sichtbar, aber…

Sap Guixt scroll7 Der Umgang mit skrollbaren Bereichen

…wenn der Anwender den skrollbaren Bereich nach oben skrollt, wird der Text sichtbar.

 

www.synactive.com

Sap Guixt weiter Der Umgang mit skrollbaren Bereichen

Der Umgang mit skrollbaren Bereichen