DEFINE t_array ARRAY[10] OF RECORD
campo1 CHAR(10),
campo2 CHAR(10),
campo3 INTEGER,
campo4 CHAR(1)
END RECORD
MAIN
OPEN WINDOW w_tela AT 2,2 WITH FORM "tec-3872"
ATTRIBUTE (BORDER, MESSAGE LINE LAST, PROMPT LINE LAST)
CALL set_count(10)
MENU "Opções"
COMMAND "Input" "Input"
Call InputSimples()
COMMAND "Input Array" "Input Array"
Call InputArray()
COMMAND "Display Array" "Display Array"
Call DisplayArray()
COMMAND "Sair" "Sair"
EXIT MENU
END MENU
CLOSE WINDOW w_tela
END MAIN
PRIVATE FUNCTION InputSimples()
DEFINE i INTEGER
Display "InputArray" AT 03,08
CALL fgl_keysetlabel('F7','Check')
CALL fgl_keysetlabel('F8','!Check')
INITIALIZE t_array TO NULL
INPUT BY NAME t_array[1].* WITHOUT DEFAULTS
ON KEY(F7)
CALL conout("Mudando checks para S")
FOR i=1 TO 10
LET t_array[i].campo4 = 'S'
END FOR
CALL RefreshData()
ON KEY(F8)
CALL conout("Mudando checks para N")
FOR i=1 TO 10
LET t_array[i].campo4 = 'N'
END FOR
CALL RefreshData()
END INPUT
Display " " AT 03,08
END FUNCTION
PRIVATE FUNCTION InputArray()
DEFINE i INTEGER
Display "InputArray" AT 03,08
CALL fgl_keysetlabel('F7','Check')
CALL fgl_keysetlabel('F8','!Check')
INITIALIZE t_array TO NULL
INPUT ARRAY t_array WITHOUT DEFAULTS FROM st_array.*
ON KEY(F7)
CALL conout("Mudando checks para S")
FOR i=1 TO 10
LET t_array[i].campo4 = 'S'
END FOR
CALL RefreshData()
ON KEY(F8)
CALL conout("Mudando checks para N")
FOR i=1 TO 10
LET t_array[i].campo4 = 'N'
END FOR
CALL RefreshData()
END INPUT
Display " " AT 03,08
END FUNCTION
PRIVATE FUNCTION DisplayArray()
DEFINE i INTEGER
Display "DisplayArray" AT 03,08
CALL fgl_keysetlabel('F7','Check')
CALL fgl_keysetlabel('F8','!Check')
FOR i=1 TO 10
LET t_array[i].campo1 = "TESTE"||i
LET t_array[i].campo2 = "CAMPO"||i
LET t_array[i].campo3 = i
LET t_array[i].campo4 = 'S'
END FOR
DISPLAY ARRAY t_array TO st_array.*
ON KEY (F7)
FOR i=1 TO 10
LET t_array[i].campo1 = "TESTE"||(i+10)
LET t_array[i].campo4 = 'S'
END FOR
CALL RefreshData()
ON KEY (F8)
FOR i=1 TO 10
LET t_array[i].campo1 = "TESTE"||i
LET t_array[i].campo4 = 'N'
END FOR
CALL RefreshData()
END DISPLAY
Display " " AT 03,08
END FUNCTION
|