Code: Alles auswählen
PROCEDURE main()
LOCAL getlist := {}
LOCAL nAuswahl
MEMVAR oBild
MEMVAR oMaske1, oMaske2
PRIVATE oBild := bildschirm():new()
PRIVATE oMaske1 := maske1():new()
PRIVATE oMaske2 := maske2():new()
PRIVATE feld1
PRIVATE feld2
PRIVATE feld3
WINIT()
SEt DATE GERMAN
SET CONSOLE OFF
SET CONFIRM ON
set CURSOR ON
set wrap on
set message TO MAXROW() Center
DO WHILE .T.
clear gets
nAuswahl := oBild:MenueHorizontal(nAuswahl,"")
DO CASE
CASE nAuswahl = 1
oMaske1:init()
oMaske1:felder(getlist)
READ
nAuswahl := 8
CASE nAuswahl = 2
CASE nAuswahl = 3
oMaske1:felder(getlist)
READ
CASE nAuswahl = 4
CASE nAuswahl = 5
CASE nAuswahl = 6
CASE nAuswahl = 7
CASE nAuswahl = 8
oMaske1:felder(getlist)
CASE nAuswahl = 9
EXIT
ENDCASE
ENDDO .T.
RETURN
********************************************************************************
FUNCTION eingabe2()
LOCAL nAuswahl
LOCAL getlist := {}
MEMVAR oBild
MEMVAR oMaske2
WOPEN(5,1,20,60,.T.)
WBOX()
WCENTER(.T.)
DO WHILE .T.
ReadKill()
nAuswahl := oBild:MenueHorizontal(nAuswahl,"")
DO CASE
CASE nAuswahl = 1
oMaske2:init()
oMaske2:felder(getlist)
READ
nAuswahl := 8
CASE nAuswahl = 2
CASE nAuswahl = 3
oMaske2:felder(getlist)
READ
CASE nAuswahl = 4
CASE nAuswahl = 5
CASE nAuswahl = 6
CASE nAuswahl = 7
CASE nAuswahl = 8
oMaske2:felder(getlist)
CASE nAuswahl = 9
EXIT
ENDCASE
ENDDO .T.
WCLOSE()
RETURN(.T.)
********************************************************************************
CLASS maske1
EXPORTED:
VAR feld1,;
feld2,;
feld3
METHOD init
METHOD felder
METHOD pruef
ENDCLASS
********************************************************************************
METHOD maske1:init()
::feld1 := SPACE(5)
::feld2 := SPACE(5)
::feld3 := SPACE(5)
RETURN
********************************************************************************
METHOD maske1:felder(getlist)
@ 5, 1 GET ::feld1 PICTURE "XXXXX";
VALID ::pruef()
@ 6, 1 GET ::feld2 PICTURE "XXXXX"
@ 7, 1 GET ::feld3 PICTURE "XXXXX"
RETURN self
********************************************************************************
METHOD maske1:pruef()
MEMVAR oMaske2
eingabe2()
RETURN(.T.)
********************************************************************************
CLASS maske2
EXPORTED:
VAR feld4,;
feld5,;
feld6
METHOD init
METHOD felder
ENDCLASS
********************************************************************************
METHOD maske2:init()
::feld4 := SPACE(5)
::feld5 := SPACE(5)
::feld6 := SPACE(5)
RETURN
********************************************************************************
METHOD maske2:felder(getlist)
@ 5, 1 GET ::feld4 PICTURE "XXXXX"
@ 6, 1 GET ::feld5 PICTURE "XXXXX"
@ 7, 1 GET ::feld6 PICTURE "XXXXX"
RETURN self
Betrachtet das oBild nur als Methode die Promptfelder einfacher überall anzuzeigen. Ich werde es nochmal ohne dieses Objekt testen, denke aber mal, dass das nichts ändern wird.
Ihr werdet jetzt bestimmt sagen: Na klar, logisch, dass es daran liegt. Ich habe es aber nicht geahnt, weil es nur bei verschachtelten GETS ohne Clear Gets passiert. Wieder etwas dazugelernt
Jetzt wäre nur noch eine tiefgreifende Erklärung dafür interessant....