Alguem poderia me ajudar a otimizar este código? Acho que poderia colocar estes seek em uma unica função, mas estou patinando.
Código: Selecionar todos
DO WHILE .T.
CALL TSABOR
SETCOLOR("W/B,W/B")
@ 10,23 GET ttam PICTURE "@!KX" VALID(ttam$"PMGS")
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
RETURN
ENDIF
IF ttam = "P"
@ 10,25 SAY "PEQUENA"
ELSEIF ttam = "M"
@ 10,25 SAY "MEDIA"
ELSEIF ttam = "G"
@ 10,25 SAY "GRANDE"
ELSEIF ttam = "S"
@ 10,25 SAY "SUPER"
ENDIF
@ 12,05 GET csab1 PICTURE "@K 99999"
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
LOOP
ENDIF
IF .NOT. EMPTY(csab1)
SELECT MER
GO TOP
SET FILTER TO SABOR = "S" .AND. TAMANHO = ttam
SET ORDER TO 6
SEEK csab1
IF .NOT. FOUND()
TONE(1000,2)
LOOP
ENDIF
@ 13,12 SAY DESMER
@ 13,45 GET tdes1 PICTURE "@KX"
csab2 = DESMER
IF PREMER > tuni
tuni = PREMER
ENDIF
ENDIF
@ 13,05 GET csab2 PICTURE "@K 99999"
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
LOOP
ENDIF
IF .NOT. EMPTY(csab2)
SELECT MER
GO TOP
SET FILTER TO SABOR = "S" .AND. TAMANHO = ttam
SET ORDER TO 6
SEEK csab2
IF .NOT. FOUND()
TONE(1000,2)
LOOP
ENDIF
@ 13,12 SAY DESMER
@ 13,45 GET tdes2 PICTURE "@KX"
csab2 = DESMER
IF PREMER > tuni
tuni = PREMER
ENDIF
ENDIF
@ 14,05 GET csab3 PICTURE "@K 99999"
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
LOOP
ENDIF
IF .NOT. EMPTY(csab3)
SELECT MER
GO TOP
SET FILTER TO SABOR = "S" .AND. TAMANHO = ttam
SET ORDER TO 6
SEEK csab3
IF .NOT. FOUND()
TONE(1000,2)
LOOP
ENDIF
@ 14,12 SAY DESMER
@ 14,45 GET tdes3 PICTURE "@KX"
csab3 = DESMER
IF PREMER > tuni
tuni = PREMER
ENDIF
ENDIF
@ 15,05 GET csab4 PICTURE "@K 99999"
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
LOOP
ENDIF
IF .NOT. EMPTY(csab4)
SELECT MER
GO TOP
SET FILTER TO SABOR = "S" .AND. TAMANHO = ttam
SET ORDER TO 6
SEEK csab4
IF .NOT. FOUND()
TONE(1000,2)
LOOP
ENDIF
@ 15,12 SAY DESMER
@ 15,45 GET tdes4 PICTURE "@KX"
csab4 = DESMER
IF PREMER > tuni
tuni = PREMER
ENDIF
ENDIF
SET FILTER TO
SET ORDER TO 2
EXIT
ENDDO
ENDIFGilson Paulo Schuck

