Amigos do Forum, estou tentando executar o exercício abaixo, porém o mesmo só fica no loop, código inicial, código final e confirma impressão.
Onde está o erro?
Grato
Elvio.
Este exercício está nas páginas 34, 35 e 36 da apostila copiada do site.
Os exercícios anteriores funcionaram corretamente.
CLEAR
SET DATE BRITISH
SET CENTURY ON
SET CONFIRM ON
BORDA=CHR(201)+CHR(205)+CHR(187)+CHR(186)+;
CHR(188)+CHR(205)+CHR(200)+CHR(186)+CHR(176)
SELECT 1
USE AGENDA
IF !FILE("INDIC1.NTX")
INDEX ON STR(CODIGO,3,0) TO INDIC1
ENDIF
SET INDEX TO INDIC1
SET COLOR TO "R/W"
@ 1,1,24,79 BOX BORDA
DO WHILE .T.
nCODIGOi = 0
nCODIGOf = 0
cIMP = "N"
SET COLOR TO "R/W"
@ 4,4 CLEAR TO 21,76
@ 4,4 TO 21,76 DOUBLE
@ 6,30 SAY "AGENDA DE ENDEREÇOS"
@ 8,8 SAY "CÓDIGO INICIAL: " GET nCODIGO PICT "999" VALID(nCODIGOi>0)
READ
IF LASTKEY() = 27
EXIT
ENDIF
GO TOP
SEEK STR(nCODIGOi,3,0)
IF !FOUND()
TONE(400,15)
@ 8,32 SAY "NÃO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 8,32 SAY NOME
@ 9,8 SAY "CÓDIGO FINAL: " GET nCODIGOf PICT "999" VALID(nCODIGOf>=nCODIGOi)
READ
IF LASTKEY() = 27
EXIT
ENDIF
GO TOP
SEEK STR(nCODIGOf,3,0)
IF !FOUND()
TONE(400,15)
@ 9,32 SAY "NÃO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 9,32 SAY NOME
@ 11,8 SAY "CONFIRMA IMPRESSÃO?" GET cIMP PICT "@!" VALID(cIMP$"SN")
READ
IF LASTKEY() = 27
IF cIMP = "S"
EXIT
ENDIF
DO WHILE .T.
IF !ISPRINTER()
TONE(400,15)
@ 13,8 SAY "PREPARE A IMPRESSORA - pressione qualauer tecla"
TEK = INKEY(0)
IF TEK = 27
EXIT
ENDIF
LOOP
ENDIF
SET PRINTER TO LPT1
SET DEVICE TO PRINTER
GO TOP
SEEK STR(nCODIGOi,3,0)
VCAB = .T.
DO WHILE !EOF()
IF CODIGO = nCODIGOf
EXIT
ENDIF
IF VCAB
@ 00,00 SAY "NOME DA SUA EMPRESA"
@ 01,00 SAY "AGENDA DE ENDEREÇOS"
@ 02,00 SAY REPLICATE("-",80)
VCAB = .F.
ENDIF
@ PROW()+1,02 SAY "CÓDIGO: "
.
.
.
.
.
.
@ PROW()+1,00 SAY REPLICATE("-",80)
IF PROW() > 50
VCAB .T.
ENDIF
SKIP
ENDDO
EJECT
SET DEVICE TO SCREEN
SET PRINTER TO
EXIT
ENDDO
ENDIF
ENDDO
CLOSE DATABASE
CLEAR
RETURN
Criar Relatórios
Moderador: Moderadores
Amigo,
Fiz algumas alterações que achei necessárias.... veja se funciona
Janio
Fiz algumas alterações que achei necessárias.... veja se funciona
Código: Selecionar todos
CLEAR
SET DATE BRITISH
SET CENTURY ON
SET CONFIRM ON
BORDA=CHR(201)+CHR(205)+CHR(187)+CHR(186)+;
CHR(188)+CHR(205)+CHR(200)+CHR(186)+CHR(176)
SELECT 1
USE AGENDA
IF !FILE("INDIC1.NTX")
INDEX ON STR(CODIGO,3,0) TO INDIC1
ENDIF
SET INDEX TO INDIC1
SET COLOR TO "R/W"
@ 1,1,24,79 BOX BORDA
DO WHILE .T.
nCODIGOi = 0
nCODIGOf = 0
cIMP = "N"
SET COLOR TO "R/W"
@ 4,4 CLEAR TO 21,76
@ 4,4 TO 21,76 DOUBLE
@ 6,30 SAY "AGENDA DE ENDEREÇOS"
@ 8,8 SAY "CÓDIGO INICIAL: " GET nCODIGOi PICT "999" VALID(nCODIGOi>0)
READ
IF LASTKEY() = 27
RETURN .T.
ENDIF
GO TOP
SEEK STR(nCODIGOi,3,0)
IF !FOUND()
TONE(400,15)
@ 8,32 SAY "NÃO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 8,32 SAY NOME
@ 9,8 SAY "CÓDIGO FINAL: " GET nCODIGOf PICT "999" VALID(nCODIGOf>=nCODIGOi)
READ
IF LASTKEY() = 27
EXIT
ENDIF
GO TOP
SEEK STR(nCODIGOf,3,0)
IF !FOUND()
TONE(400,15)
@ 9,32 SAY "NÃO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 9,32 SAY NOME
@ 11,8 SAY "CONFIRMA IMPRESSÃO?" GET cIMP PICT "@!" VALID(cIMP$"SN")
READ
IF LASTKEY() = 27 .OR. cIMP = "N"
LOOP
ENDIF
IF cIMP = "S"
DO WHILE .T.
IF !ISPRINTER()
TONE(400,15)
@ 13,8 SAY "PREPARE A IMPRESSORA - pressione qualauer tecla"
TEK = INKEY(0)
IF TEK = 27
EXIT
ENDIF
LOOP
ENDIF
SET PRINTER TO LPT1
SET DEVICE TO PRINTER
GO TOP
SEEK STR(nCODIGOi,3,0)
VCAB = .T.
DO WHILE !EOF()
IF CODIGO > nCODIGOf
EXIT
ENDIF
IF VCAB = .T.
@ 00,00 SAY "NOME DA SUA EMPRESA"
@ 01,00 SAY "AGENDA DE ENDEREÇOS"
@ 02,00 SAY REPLICATE("-",80)
VCAB = .F.
ENDIF
@ PROW()+1,02 SAY "CÓDIGO: "
.
.
.
.
.
.
@ PROW()+1,00 SAY REPLICATE("-",80)
IF PROW() > 50
VCAB = .T.
ENDIF
DBSKIP()
ENDDO
EJECT
SET DEVICE TO SCREEN
SET PRINTER TO
ENDDO
ENDIF
ENDDO
CLOSE DATABASE
CLEAR
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Criar Relatórios
Amigo Janio, fiz as alterações, porém o programa continua no mesmo loop. O Clipper que utilizo é o 5.3.
Grato
Elvio
Grato
Elvio
Pode fazer agora que funciona.... dessa vez eu testei!
Janio
Código: Selecionar todos
CLEAR
SET DATE BRITISH
SET CENTURY ON
SET CONFIRM ON
BORDA=CHR(201)+CHR(205)+CHR(187)+CHR(186)+;
CHR(188)+CHR(205)+CHR(200)+CHR(186)+CHR(176)
SELECT 1
USE AGENDA
IF !FILE("INDIC1.NTX")
INDEX ON STR(CODIGO,3,0) TO INDIC1
ENDIF
SET INDEX TO INDIC1
SET COLOR TO "R/W"
@ 1,1,24,79 BOX BORDA
DO WHILE .T.
nCODIGOi = 0
nCODIGOf = 0
cIMP = "N"
SET COLOR TO "R/W"
@ 4,4 CLEAR TO 21,76
@ 4,4 TO 21,76 DOUBLE
@ 6,30 SAY "AGENDA DE ENDEREÇOS"
@ 8,8 SAY "CÓDIGO INICIAL: " GET nCODIGOi PICT "999" VALID(nCODIGOi>0)
READ
IF LASTKEY() = 27
RETURN .T.
ENDIF
GO TOP
SEEK STR(nCODIGOi,3,0)
IF !FOUND()
TONE(400,15)
@ 8,32 SAY "NÃO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 8,32 SAY NOME
@ 9,8 SAY "CÓDIGO FINAL: " GET nCODIGOf PICT "999" VALID(nCODIGOf>=nCODIGOi)
READ
IF LASTKEY() = 27
EXIT
ENDIF
GO TOP
SEEK STR(nCODIGOf,3,0)
IF !FOUND()
TONE(400,15)
@ 9,32 SAY "NÃO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 9,32 SAY NOME
@ 11,8 SAY "CONFIRMA IMPRESSÃO?" GET cIMP PICT "@!" VALID(cIMP$"SN")
READ
IF LASTKEY() = 27 .OR. cIMP = "N"
LOOP
ENDIF
IF cIMP = "S"
DO WHILE .T.
IF !ISPRINTER()
TONE(400,15)
@ 13,8 SAY "PREPARE A IMPRESSORA - pressione qualauer tecla"
TEK = INKEY(0)
IF TEK = 27
EXIT
ENDIF
LOOP
ENDIF
SET PRINT ON
SET PRINTER TO LPT1
SET DEVICE TO PRINTER
SET CONSOLE OFF
vCAB = .T.
GO TOP
DBSEEK( STR(nCODIGOi,3,0) )
DO WHILE !EOF()
IF CODIGO > nCODIGOf
EXIT
ENDIF
IF vCAB = .T.
@ 00,00 SAY "NOME DA SUA EMPRESA"
@ 01,00 SAY "AGENDA DE ENDERECOS"
@ 02,00 SAY REPLICATE("-",80)
VCAB = .F.
ENDIF
@ PROW()+1,02 SAY "CODIGO: "
@ PROW()+1,00 SAY REPLICATE("-",80)
DBSKIP()
IF PROW() > 50
vCAB = .T.
ENDIF
ENDDO
SET CONSOLE ON
SET PRINTER OFF
SET PRINTER TO
SET DEVICE TO SCREEN
EJECT
EXIT
ENDDO
ENDIF
ENDDO
CLEAR
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql

