Bildschirmtabelle in Matrix auslesen

Beispiele

DIMOPTION ON
DIMOPTIONBASE 1
DEF POOL 1000000
INIT VARSPACE
DIM Matrix (3 ; 3) , Abmessung (2)
DISPLAY IS MESSAGE WINDOW
TRACE TO SCREEN
! WidgetName$ = WIDMXGETACTIVE$
WidgetName$ ="DLG018_Dliste"
MAT Matrix = WIDMXREAD WidgetName$ ; "5#6#8#9"
GOSUB ShowVals
TERMINAL
ShowVals :
MAT Abmessung = GETDIM Matrix
Rows = Abmessung(2)
Cols = Abmessung(3)
FOR Y=1 TO Rows
DISP USING " K4DK " : " Zeile : " y ": "
FOR X=1 TO Cols
IF X <>1 THEN DISP " : "
V=Matrix(Y;X)
DISP USING "9 DR4D " : V
NEXT
DISP "\n"
NEXT
Das Beispielprogramm liest in der offenen Gläubigerverwaltungsmaske die aktuell angezeigte Matrix der Gläubiger mit ihren Forderungen aus. Zuerst wird der Variablenspeicher auf ein Megabyte vergrößert, da die auszulesende Matrix sonst ggf. zu viele Elemente enthält, um in den Standardspeicher zu passen. Danach wird ein eigenständiges Fenster für die Ergebnisausgaben geöffnet, denn die Ausgaben sollen nicht im Standardfenster angezeigt werden (was auf Grund des zu erwartenden Ergebnisumfanges wenig Sinn ergeben würde). Da nur die Spalten 5, 6, 8 und 9 interessieren, werden auch nur diese Spalten angegeben. Hiernach werden die Inhalte der Ergebnismatrix im Anzeigefenster zeilenweise ausgegeben. Das Unterprogramm mit dem Namen ShowVals ist hierbei natürlich nicht zwingend, da das Unterprogramm nur ein mal aufgerufen wird. Die Struktur ist dergestalt nur der Üebersicht halber aufgebaut.
Obwohl der Vektor Abmessung nur mit zwei Elementen dimensioniert wurde, wird in ShowVals auf das dritte Element zugegriffen. Das ist möglich, das die Anweisung MAT .. GETDIM den Vektor redimensioniert hat, um die Ergebnisse abzulegen.
Dieses Programm funktioniert nur bei geöffneter Gläubigerverwaltung. Es obliegt dem Abwender eine entsprechende Erweiterung zu programmieren, die einen sich ggf. daraus ergebenden Fehler abfängt.

Referenz

MAT Zielmatrix = WIDMXREAD WidgetName$|WidgetId [; Col1#Col2#..."]
Die Anweisung liest die auf dem Bildschirm dergestellte und mit dem Namen WidgetName$ oder der Kennung WidgetId angegebene Matrix aus und legt sie in der OBAS-Matrix mit dem Namen Zielmatrix ab. Wenn die optionalen Spaltenangaben nicht angegeben werden, so werden alle Spalten der Bildschirmmatrix ausgelesen. Es ist möglich, die Spaltenangaben in einer anderen Reihenfolge anzugeben, um die Matrix beim Auslesen umzusortieren.

Siehe auch



Schatten