Página 1 de 2

Impressão de relatório

Enviado: 30 Set 2010 08:51
por aprendiz93
Bom Dia a todos Sou novo em clipper e preciso de uma help.

Estou fazendo um projeto de cadastro de clientes. preciso fazer 2 opções de impressao uma de ficha cadastral e outra impressao como relatorio.
A parte de ficha cadastral eu já consigui executar, mais agora estou na parte de relatorio q n consigo de jeito nenhum, preciso q quando teclar na opção de impressao relatorio já imprima todos os registros em seguida. Irei passar o codigo de ficha cadastral para vcs entenderem melhor. Agradeço desde já abçs.


OBS: Só n reparem muito no meu codigo pq sou novo em rsrs. Agradeço desde já abçs.

Código: Selecionar todos

ELSEIF TECLA = -4

ALERT('DESEJA IMPRIMIR COMO:',{'FICHA CADASTRAL','RELATORIO'})


SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " IMPRESSAO "


SET COLOR TO "N/n+, w/4"


quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

DO WHILE .T.
nCodigoi = 0
cImp = "N"

SET COLOR TO "N/n+, w/4"
@  4,4 CLEAR TO 21,76
@  4,4 TO 21,76  DOUBLE

set color to bg+

@ 05,56 SAY DATE( )
@ 05,66 SAY TIME( )           
@ 05,29 SAY " IMPRESSAO "

SET COLOR TO "N/n+, w/4"


@  8,8 SAY "Codigo Inicial....:" GET nCodigoi PICTURE "999" VALID (nCodigoi>0)
READ
IF LASTKEY( ) = 27
RETURN  2
EXIT
ENDIF
GO TOP
SEEK STR(nCodigoi,3,0)
IF !FOUND( )
TONE(400,3)
@ 8,32 SAY "NAO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 11,8 SAY "Confirma impressao?...:" GET cImp PICTURE "@!" VALID (cImp $ "SN")
READ
IF LASTKEY( ) = 27
RETURN  2
EXIT
ENDIF
IF cImp = "S"
DO WHILE .T.
IF !ISPRINTER( )
TONE(400,3)
@ 13, 8 SAY "PREPARE A IMPRESSORA - Pressione qualquer 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 vcab
@ 02,00 SAY REPLICATE("-",80)
vcab = .F.
ENDIF
@ PROW( )+1,02 SAY "CODIGO.......:"
@ PROW( ) , 16 SAY CODIGO PICT "999"
@ PROW( )+1,02 SAY "NOME.........:"
@ PROW( ) , 17 SAY NOME_V PICT "@!"
@ PROW( )+1,02 SAY "RG...........:"
@ PROW( ) , 17 SAY RG_V PICT "99.999.999-9"
@ PROW( )+1,02 SAY "CPF..........:"
@ PROW( ) , 17 SAY CPF_V PICT "999.999.999-99"
@ PROW( )+1,02 SAY "ENDERECO.....:"
@ PROW( ) , 17 SAY ENDEREC_V PICT "@!"
@ PROW( )+1,02 SAY "NUMERO.......:"
@ prow( )  ,17 say NUMERO_V PICT"9999"
@ PROW( )+1,02 SAY "TELEFONE.....:"
@ PROW( ) , 17 SAY FONE_V PICT "@R (99)9999-9999"
@ PROW( )+1,02 SAY "COMPLEMENTO..:"
@ PROW( ) , 17 SAY COMPLE_V PICT "@!"
@ PROW( )+1,02 SAY "BAIRRO.......:"
@ PROW( ) , 17 SAY BAIRRO_V PICT "@!"
@ PROW( )+1,02 SAY "CIDADE........:"
@ PROW( ) , 17 SAY  CIDADE_V PICT "@!"
@ PROW( )+1,02 SAY "ESTADO........:"
@ PROW( ) , 17 SAY  ESTADO_V PICT "@!"
@ PROW( )+1,02 SAY "OBSERVACAO........:"
@ PROW( ) , 17 SAY  OBS_V PICT "@!"
@ 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
RETURN  2

Nota de Moderação:
por Maligno: O título do tópico foi alterado. O anterior, "Programação em Clipper.", em nada ajuda na identificação do tópico, o que contraria as regras do fórum, que pedem um título objetivo. Leia as regras aqui. Dê especial atenção ao artigo 8.
Além disso, código fonte deve ser publicado entre as tags de indentação de código. Por favor, não deixe de usá-las no futuro.

Re: Impressão de relatório

Enviado: 30 Set 2010 11:58
por gvc

Código: Selecionar todos

SET PRINTER TO LPT1
SET DEVICE TO PRINTER
// GO TOP
dbseek(STR(nCodigoi, 3))
vcab := .T.
WHILE !EOF( )
   IF vcab
      @ 02,00 SAY REPLICATE("-", 80)
      @ 03,00 SAY "CODIGO NOME RG CPF ENDERECO NUMERO TELEFONE COMPLEMENTO BAIRRO CIDADE ESTADO OBSERVACAO"
      @ 04,00 SAY REPLICATE("-", 80)
      vcab = .F.
   END

   @ ++PROW(),00 SAY transform(CODIGO, "999") + ' ' +;
                     NOME_V + ' ' +;
                     transform(RG_V, "99.999.999-9") + ' ' +;
                     transform(CPF_V, "999.999.999-99") + ' ' +;
                     ENDEREC_V + ' ' +;
                     transform(NUMERO_V, "9999") + ' ' +;
                     transform(FONE_V, "@R (99)9999-9999") + ' ' +;
                     COMPLE_V + ' ' +;
                     BAIRRO_V + ' ' +;
                     CIDADE_V + ' ' +;
                     ESTADO_V + ' ' +;
                     OBS_V

   IF PROW( ) > 50
      vcab = .T.
   ENDIF
   dbskip()
END
EJECT
SET DEVICE TO SCREEN
SET PRINTER TO

Re: Impressão de relatório

Enviado: 30 Set 2010 13:10
por aprendiz93
Peço desculpas pelos meus erros.
vou tentar reparar meu codigo. mais já agradeço pelo seu tempo comigo abçs.

Re: Impressão de relatório

Enviado: 30 Set 2010 13:22
por aprendiz93
Sou eu de novo rsrs.

Esta dando o seguinte erro na linha 25 no obs_v invalid ivalue oq seria este erro? abçs

Re: Impressão de relatório

Enviado: 01 Out 2010 10:56
por gvc

Código: Selecionar todos

 @ ++PROW(),00 SAY transform(CODIGO,  "999")  + ' '  +;
	                     NOME_V + ' ' +;
	                     transform(RG_V, "99.999.999-9") + ' ' +;
	                     transform(CPF_V, "999.999.999-99") + ' ' +;
	                     ENDEREC_V + ' ' +;
	                     transform(NUMERO_V, "9999") + ' ' +;
	                     transform(FONE_V, "@R (99)9999-9999") + ' ' +;
	                     COMPLE_V + ' ' +;
	                     BAIRRO_V + ' ' +;
	                     CIDADE_V + ' ' +;
	                     ESTADO_V + ' ' +;
	                     OBS_V
Alguma dessas variáveis não existe. Verifique.
- Deixe só a primeira, compile e rode o sistema.
- Volte a seguinte, compile e rode o sistema.
- Repita a operação anterior até achar qual é a variável.

/////////////

Eu mandei um pedaço de código. Nenhuma das variáveis foi declarada ou iniciada.
Vc deve colocar esse bloco dentro do que vc postou. Esse não é um módulo completo.

Re: Impressão de relatório

Enviado: 01 Out 2010 13:38
por aprendiz93
Boa tarde!

Eu sei q já é abuso da minha parte mais sera q tem como dar uma analisada no meu codigo inteiro para entender melhor?
Agradeço desde já pela ajuda abçs.

Código: Selecionar todos

PRIVATE VETOR_CAMPOS :={"CODIGO","NOME_V","FONE_V"}

PRIVATE VETOR_MASCARA:= {"9999","@!","@R (99)9999-9999"}

PRIVATE VETOR_CABECALHO:= {"CODIGO DO CLIENTE", "NOME DO CLIENTE", "TELEFONE"}

SELECT 1
USE MASTER
IF !FILE("INDIC1.NTX")
INDEX ON STR(CODIGO,3,0) TO INDIC1
ENDIF
SET INDEX TO INDIC1

SET DELETE ON
SET SCOR OFF
SET BELL OFF

CLEAR

SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

DBEDIT(5,5,15,73,VETOR_CAMPOS,"EDITA",VETOR_MASCARA,VETOR_CABECALHO ,CHR(178),"|","-")
CLOSE DATABASE
                                            
                            
****************************************
function edita (modo, indice)
****************************************

set color to BG+

tecla = lastkey()

campo = vetor_campos[indice]

retorna = 1

if modo == 4

ElseIf TECLA = 27
   
   RETURN 2

ElseIf tecla = -1
	Inclusao()
 
	CLEAR 	
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

ELSEIF tecla = -2
   	Alteracao()
	
CLEAR 	
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

ELSEIF TECLA = 7 
	 Del()
CLEAR 	
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

ElseIf tecla = -4
     Imp()
CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"
endif
	
Return 2
   
****************************************
function  Inclusao ()
****************************************
opc = 1
nCodigo = 0
DO WHILE .T.
NOME_V    = SPACE(30)
RG_V      = SPACE(15)
CPF_V     = SPACE(15)
ENDEREC_V = SPACE(40)
NUMERO_V  = SPACE(10)
COMPLE_V  = SPACE(20)
BAIRRO_V  = SPACE(15)
CIDADE_V  = SPACE(15)
ESTADO_V  = SPACE(2)
OBS_V     = SPACE(40)
FONE_V    = SPACE(15)
cGrav = "S"
SET WRAP ON	
SET MESSAGE TO 20 CENTER	

CLEAR
SET COLOR TO "N/n+, w/4"
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,25 SAY " CADASTRO DE CLIENTES "
SET COLOR TO "N/n+, w/4"

@  4,4 CLEAR TO 21,76
@  4,4 TO 21,76  DOUBLE
@  8,8  say"CODIGO......:"get nCodigo picture "999" valid (nCodigo>0)
@  9,8  say"NOME........:"get NOME_V   picture"@!" valid (!empty(NOME_V))
@ 10,8 say"RG..........:"get RG_V    picture "99.999.999-9"
@ 11,8 say"CPF.........:"get CPF_V    picture "999.999.999-99"
@ 12,8 say"ENDERECO....:"get ENDEREC_V   picture"@!"
@ 13,8 say"NUMERO......:"get NUMERO_V    picture"9999"
@ 14,8 say"COMPLEMENTO.:"get COMPLE_V    picture"@!"
@ 14,8 say"BAIRRO......:"get BAIRRO_V    picture"@!"
@ 15,8 say"CIDADE......:"get CIDADE_V     picture "@!"
@ 16,8 say"ESTADO......:"get ESTADO_V    picture"@!"
@ 17,8 say"OBSERVACAO..:"get OBS_V picture "@!"
@ 18,8 say"TELEFONE....:"get FONE_V   picture "@R (99)9999-9999"
@ 20,8 SAY "Deseja Gravar?..:" GET cGrav PICTURE "@!" VALID (cGrav $ "SN")
READ
IF LASTKEY( ) = 27
RETURN 2
EXIT
ENDIF
IF cGrav = "S"
APPEND BLANK
REPLACE CODIGO WITH nCodigo, NOME_V WITH NOME_V, RG_V WITH RG_V, CPF_V WITH CPF_V, ENDEREC_V WITH ENDEREC_V, NUMERO_V WITH NUMERO_V 
REPLACE COMPLE_V WITH COMPLE_V, BAIRRO_V WITH BAIRRO_V, FONE_V WITH FONE_V, OBS_V WITH OBS_V
ENDIF
ENDDO
RETURN 2

CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"



****************************************
function  Alteracao ()
****************************************

opc = 1
nCodigo = 0
DO WHILE .T.
NOME_V    = SPACE(30)
RG_V      = SPACE(15)
CPF_V     = SPACE(15)
ENDEREC_V = SPACE(40)
NUMERO_V  = SPACE(10)
COMPLE_V  = SPACE(20)
BAIRRO_V  = SPACE(15)
CIDADE_V  = SPACE(15)
ESTADO_V  = SPACE(2)
OBS_V     = SPACE(40)
FONE_V    = SPACE(15)
cAlt = "N"
SET WRAP ON	
SET MESSAGE TO 20 CENTER	


SET WRAP ON	
SET MESSAGE TO 20 CENTER
CLEAR
SET COLOR TO "N/n+, w/4"
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,25 SAY " ALTERACAO DE CADASTROS "
SET COLOR TO "N/n+, w/4"

@  4,4 CLEAR TO 21,76
@  4,4 TO 21,76  DOUBLE
@  8,8  say"CODIGO......:"get nCodigo picture "999" valid (nCodigo>0)
@  9,8  say"NOME........:"get NOME_V   picture"@!" valid (!empty(NOME_V))
@ 10,8 say"RG..........:"get RG_V    picture "99.999.999-9"
@ 11,8 say"CPF.........:"get CPF_V    picture "999.999.999-99"
@ 12,8 say"ENDERECO....:"get ENDEREC_V   picture"@!"
@ 13,8 say"NUMERO......:"get NUMERO_V    picture"9999"
@ 14,8 say"COMPLEMENTO.:"get COMPLE_V    picture"@!"
@ 14,8 say"BAIRRO......:"get BAIRRO_V    picture"@!"
@ 15,8 say"CIDADE......:"get CIDADE_V     picture "@!"
@ 16,8 say"ESTADO......:"get ESTADO_V    picture"@!"
@ 17,8 say"OBSERVACAO..:"get OBS_V picture "@!"
@ 18,8 say"TELEFONE....:"get FONE_V   picture "@R (99)9999-9999"
@ 20,8 SAY "Alterar?...:" GET cAlt PICTURE "@!" VALID (cAlt $ "SN")
READ
IF LASTKEY( ) = 27
RETURN 2
EndIf
IF cAlt = "S"
REPLACE CODIGO WITH nCodigo, NOME_V WITH NOME_V, RG_V WITH RG_V, CPF_V WITH CPF_V, ENDEREC_V WITH ENDEREC_V, NUMERO_V WITH NUMERO_V 
REPLACE COMPLE_V WITH COMPLE_V, BAIRRO_V WITH BAIRRO_V, FONE_V WITH FONE_V, OBS_V WITH OBS_V
ENDIF
enddo
Return 2


CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"


****************************************
function  Del ()
****************************************

CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"


ALERT( "DELETANDO O REGISTRO" )

INKEY(1)

IF LASTKEY( ) = 27
retorna = 2
ENDIF

DELETE
retorna = 2
CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"


****************************************
function  Imp ()
****************************************

CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

ALERT('DESEJA IMPRIMIR COMO:',{'FICHA CADASTRAL','RELATORIO'})


SET PRINTER TO LPT1
SET DEVICE TO PRINTER
// GO TOP
dbseek(STR(nCodigoi, 3))
vcab := .T.
WHILE !EOF( )
   IF vcab
      @ 02,00 SAY REPLICATE("-", 80)
      @ 03,00 SAY "CODIGO NOME RG CPF ENDERECO NUMERO TELEFONE COMPLEMENTO BAIRRO CIDADE ESTADO OBSERVACAO"
      @ 04,00 SAY REPLICATE("-", 80)
      vcab = .F.
   END

   @ ++PROW(),00 SAY transform(CODIGO, "999") + ' ' +;
                     NOME_V + ' ' +;
                     transform(RG_V, "99.999.999-9") + ' ' +;
                     transform(CPF_V, "999.999.999-99") + ' ' +;
                     ENDEREC_V + ' ' +;
                     transform(NUMERO_V, "9999") + ' ' +;
                     transform(FONE_V, "@R (99)9999-9999") + ' ' +;
                     COMPLE_V + ' ' +;
                     BAIRRO_V + ' ' +;
                     CIDADE_V + ' ' +;
                     ESTADO_V + ' ' +;
                     OBS_V

   IF PROW( ) > 50
      vcab = .T.
   ENDIF
   dbskip()
END
EJECT
SET DEVICE TO SCREEN
SET PRINTER TO

Set Color To 'BG+'

Return retorna

Re: Impressão de relatório

Enviado: 04 Out 2010 10:56
por gvc

Código: Selecionar todos

****************************************
function  Imp ()
****************************************

CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "  INCLUSAO"

@ 17,23 SAY " ALTERACAO"

@ 17,40 SAY " EXCLUSAO"

@ 17,57 SAY " IMPRESSAO"

a1 := ALERT('DESEJA IMPRIMIR COMO:',{'FICHA CADASTRAL','RELATORIO'})

if a1 = 1
   impFicha() // Crie essa função para imprimir a Ficha. Esse código vc já desenvolveu
else if a1 = 2
   impRelat()
end

return(Nil)

****
****
****
function impRelat
SET PRINTER TO LPT1
SET DEVICE TO PRINTER
// GO TOP
dbseek(STR(nCodigoi, 3))
vcab := .T.
WHILE !EOF( )
   IF vcab
      @ 02,00 SAY REPLICATE("-", 80)
      @ 03,00 SAY "CODIGO NOME RG CPF ENDERECO NUMERO TELEFONE COMPLEMENTO BAIRRO CIDADE ESTADO OBSERVACAO"
      @ 04,00 SAY REPLICATE("-", 80)
      vcab = .F.
   END

   @ ++PROW(),00 SAY transform(CODIGO, "999") + ' ' +;
                     NOME_V + ' ' +;
                     transform(RG_V, "99.999.999-9") + ' ' +;
                     transform(CPF_V, "999.999.999-99") + ' ' +;
                     ENDEREC_V + ' ' +;
                     transform(NUMERO_V, "9999") + ' ' +;
                     transform(FONE_V, "@R (99)9999-9999") + ' ' +;
                     COMPLE_V + ' ' +;
                     BAIRRO_V + ' ' +;
                     CIDADE_V + ' ' +;
                     ESTADO_V + ' ' +;
                     OBS_V

   IF PROW( ) > 50
      vcab = .T.
   ENDIF
   dbskip()
END
EJECT
SET DEVICE TO SCREEN
SET PRINTER TO

Set Color To 'BG+'

Return(retorna)

Re: Impressão de relatório

Enviado: 05 Out 2010 09:26
por aprendiz93
Bom Dia.

Esqueci de comentar com vc q na parte de imp. de relatório só ira imprimir as informações "codigo nome telefone"
pois bem me basiando no codigo q vc me mando fiz algumas alterações mais ainda continua o erro estou mandando o codigo para analise.

OBS: Me desculpe por ficar encomodando vc toda a hora, pois tenho prazo para a entrega do projeto.
Agradeço desde já pela sua compreensão abçs.

Código: Selecionar todos

****************************************
function  Imp ()
****************************************


CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

a1 := ALERT('DESEJA IMPRIMIR COMO:',{'FICHA CADASTRAL','RELATORIO'})

if a1 = 1
   impFicha()

DO WHILE .T.
nCodigoi = 0
cImp = "N"

SET COLOR TO "N/n+, w/4"
@  4,4 CLEAR TO 21,76
@  4,4 TO 21,76  DOUBLE

set color to bg+

@ 05,56 SAY DATE( )
@ 05,66 SAY TIME( )           
@ 05,29 SAY " FICHA CADASTRAL "
SET COLOR TO "N/n+, w/4"

@  8,8 SAY "Codigo Inicial....:" GET nCodigoi PICTURE "999" VALID (nCodigoi>0)
READ
IF LASTKEY( ) = 27
return 2
EXIT
ENDIF
GO TOP
SEEK STR(nCodigoi,3,0)
IF !FOUND( )
TONE(400,3)
@ 8,32 SAY "NAO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 11,8 SAY "Confirma impressao?...:" GET cImp PICTURE "@!" VALID (cImp $ "SN")
READ
IF LASTKEY( ) = 27
RETURN  2
EXIT
ENDIF
IF cImp = "S"
DO WHILE .T.
IF !ISPRINTER( )
TONE(400,3)
@ 13, 8 SAY "PREPARE A IMPRESSORA - Pressione qualquer 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 vcab
@ 02,00 SAY REPLICATE("-",80)
vcab = .F.
ENDIF
@ PROW( )+1,02 SAY "CODIGO.......:"
@ PROW( ) , 16 SAY CODIGO PICT "999"
@ PROW( )+1,02 SAY "NOME.........:"
@ PROW( ) , 17 SAY NOME_V PICT "@!"
@ PROW( )+1,02 SAY "RG...........:"
@ PROW( ) , 17 SAY RG_V PICT "99.999.999-9"
@ PROW( )+1,02 SAY "CPF..........:"
@ PROW( ) , 17 SAY CPF_V PICT "999.999.999-99"
@ PROW( )+1,02 SAY "ENDERECO.....:"
@ PROW( ) , 17 SAY ENDEREC_V PICT "@!"
@ PROW( )+1,02 SAY "NUMERO.......:"
@ prow( )  ,17 say NUMERO_V PICT"9999"
@ PROW( )+1,02 SAY "TELEFONE.....:"
@ PROW( ) , 17 SAY FONE_V PICT "@R (99)9999-9999"
@ PROW( )+1,02 SAY "COMPLEMENTO..:"
@ PROW( ) , 17 SAY COMPLE_V PICT "@!"
@ PROW( )+1,02 SAY "BAIRRO.......:"
@ PROW( ) , 17 SAY BAIRRO_V PICT "@!"
@ PROW( )+1,02 SAY "CIDADE........:"
@ PROW( ) , 17 SAY  CIDADE_V PICT "@!"
@ PROW( )+1,02 SAY "ESTADO........:"
@ PROW( ) , 17 SAY  ESTADO_V PICT "@!"
@ PROW( )+1,02 SAY "OBSERVACAO........:"
@ PROW( ) , 17 SAY  OBS_V PICT "@!"
@ 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
RETURN 2

elseif a1 = 2
   impRelat()
end

return(Nil)

****
****
****
function impRelat
SET PRINTER TO LPT1
SET DEVICE TO PRINTER
// GO TOP
dbseek(STR(nCodigoi, 3))
vcab := .T.
WHILE !EOF( )
   IF vcab
      @ 02,00 SAY REPLICATE("-", 80)
      @ 03,00 SAY "CODIGO NOME TELEFONE"
      @ 04,00 SAY REPLICATE("-", 80)
      vcab = .F.
   END

   @ ++PROW(),00 SAY transform(CODIGO, "999") + ' ' +;
                     NOME_V + ' ' +;
                     (FONE_V,+ ' ' + "@R (99)9999-9999") 

   IF PROW( ) > 50
      vcab = .T.
   ENDIF
   dbskip()
END
EJECT
SET DEVICE TO SCREEN
SET PRINTER TO

Set Color To 'BG+'

Return(retorna)

Re: Impressão de relatório

Enviado: 05 Out 2010 11:37
por gvc
Vc esta criando variáveis com o nome dos campos dos arquivos?

Qual é a mensagem de erro que esta dando para vc? Qual é a linha?

Re: Impressão de relatório

Enviado: 05 Out 2010 13:53
por aprendiz93
Estou colocando meu codigo inteiro.

O erro está na linha 566 invalid ivalue , já tentei fazer diversas alterações mas n consigo.

Código: Selecionar todos

PRIVATE VETOR_CAMPOS :={"CODIGO","NOME_V","FONE_V"}

PRIVATE VETOR_MASCARA:= {"9999","@!","@R (99)9999-9999"}

PRIVATE VETOR_CABECALHO:= {"CODIGO DO CLIENTE", "NOME DO CLIENTE", "TELEFONE"}

SELECT 1
USE MASTER
IF !FILE("INDIC1.NTX")
INDEX ON STR(CODIGO,3,0) TO INDIC1
ENDIF
SET INDEX TO INDIC1

SET DELETE ON
SET SCOR OFF
SET BELL OFF

CLEAR

SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

DBEDIT(5,5,15,73,VETOR_CAMPOS,"EDITA",VETOR_MASCARA,VETOR_CABECALHO ,CHR(178),"|","-")
CLOSE DATABASE
                                            
                            
****************************************
function edita (modo, indice)
****************************************

set color to BG+

tecla = lastkey()

campo = vetor_campos[indice]

retorna = 1

if modo == 4

ElseIf TECLA = 27
   
   RETURN 2

ElseIf tecla = -1
	Inclusao()
 
	CLEAR 	
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

ELSEIF tecla = -2
   	Alteracao()
	
CLEAR 	
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

ELSEIF TECLA = 7 
	 Del()
CLEAR 	
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"


ElseIf tecla = -4
     Imp()

CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"
endif
	
Return 2
   
****************************************
function  Inclusao ()
****************************************
opc = 1
nCodigo = 0
DO WHILE .T.
NOME_V    = SPACE(30)
RG_V      = SPACE(15)
CPF_V     = SPACE(15)
ENDEREC_V = SPACE(40)
NUMERO_V  = SPACE(10)
COMPLE_V  = SPACE(20)
BAIRRO_V  = SPACE(15)
CIDADE_V  = SPACE(15)
ESTADO_V  = SPACE(2)
OBS_V     = SPACE(40)
FONE_V    = SPACE(15)
cGrav = "S"
SET WRAP ON	
SET MESSAGE TO 20 CENTER	

CLEAR
SET COLOR TO "N/n+, w/4"
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,25 SAY " CADASTRO DE CLIENTES "
SET COLOR TO "N/n+, w/4"

@  4,4 CLEAR TO 21,76
@  4,4 TO 21,76  DOUBLE
@  8,8  say"CODIGO......:"get nCodigo picture "999" valid (nCodigo>0)
@  9,8  say"NOME........:"get NOME_V   picture"@!" valid (!empty(NOME_V))
@ 10,8 say"RG..........:"get RG_V    picture "99.999.999-9"
@ 11,8 say"CPF.........:"get CPF_V    picture "999.999.999-99"
@ 12,8 say"ENDERECO....:"get ENDEREC_V   picture"@!"
@ 13,8 say"NUMERO......:"get NUMERO_V    picture"9999"
@ 14,8 say"COMPLEMENTO.:"get COMPLE_V    picture"@!"
@ 14,8 say"BAIRRO......:"get BAIRRO_V    picture"@!"
@ 15,8 say"CIDADE......:"get CIDADE_V     picture "@!"
@ 16,8 say"ESTADO......:"get ESTADO_V    picture"@!"
@ 17,8 say"OBSERVACAO..:"get OBS_V picture "@!"
@ 18,8 say"TELEFONE....:"get FONE_V   picture "@R (99)9999-9999"
@ 20,8 SAY "Deseja Gravar?..:" GET cGrav PICTURE "@!" VALID (cGrav $ "SN")
READ
IF LASTKEY( ) = 27
RETURN 2
EXIT
ENDIF
IF cGrav = "S"
APPEND BLANK
REPLACE CODIGO WITH nCodigo, NOME_V WITH NOME_V, RG_V WITH RG_V, CPF_V WITH CPF_V, ENDEREC_V WITH ENDEREC_V, NUMERO_V WITH NUMERO_V 
REPLACE COMPLE_V WITH COMPLE_V, BAIRRO_V WITH BAIRRO_V, FONE_V WITH FONE_V, OBS_V WITH OBS_V
ENDIF
ENDDO
RETURN 2

CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"



****************************************
function  Alteracao ()
****************************************

opc = 1
nCodigo = 0
DO WHILE .T.
NOME_V    = SPACE(30)
RG_V      = SPACE(15)
CPF_V     = SPACE(15)
ENDEREC_V = SPACE(40)
NUMERO_V  = SPACE(10)
COMPLE_V  = SPACE(20)
BAIRRO_V  = SPACE(15)
CIDADE_V  = SPACE(15)
ESTADO_V  = SPACE(2)
OBS_V     = SPACE(40)
FONE_V    = SPACE(15)
cAlt = "N"
SET WRAP ON	
SET MESSAGE TO 20 CENTER	


SET WRAP ON	
SET MESSAGE TO 20 CENTER
CLEAR
SET COLOR TO "N/n+, w/4"
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,25 SAY " ALTERACAO DE CADASTROS "
SET COLOR TO "N/n+, w/4"

@  4,4 CLEAR TO 21,76
@  4,4 TO 21,76  DOUBLE
@  8,8  say"CODIGO......:"get nCodigo picture "999" valid (nCodigo>0)
@  9,8  say"NOME........:"get NOME_V   picture"@!" valid (!empty(NOME_V))
@ 10,8 say"RG..........:"get RG_V    picture "99.999.999-9"
@ 11,8 say"CPF.........:"get CPF_V    picture "999.999.999-99"
@ 12,8 say"ENDERECO....:"get ENDEREC_V   picture"@!"
@ 13,8 say"NUMERO......:"get NUMERO_V    picture"9999"
@ 14,8 say"COMPLEMENTO.:"get COMPLE_V    picture"@!"
@ 14,8 say"BAIRRO......:"get BAIRRO_V    picture"@!"
@ 15,8 say"CIDADE......:"get CIDADE_V     picture "@!"
@ 16,8 say"ESTADO......:"get ESTADO_V    picture"@!"
@ 17,8 say"OBSERVACAO..:"get OBS_V picture "@!"
@ 18,8 say"TELEFONE....:"get FONE_V   picture "@R (99)9999-9999"
@ 20,8 SAY "Alterar?...:" GET cAlt PICTURE "@!" VALID (cAlt $ "SN")
READ
IF LASTKEY( ) = 27
RETURN 2
EndIf
IF cAlt = "S"
REPLACE CODIGO WITH nCodigo, NOME_V WITH NOME_V, RG_V WITH RG_V, CPF_V WITH CPF_V, ENDEREC_V WITH ENDEREC_V, NUMERO_V WITH NUMERO_V 
REPLACE COMPLE_V WITH COMPLE_V, BAIRRO_V WITH BAIRRO_V, FONE_V WITH FONE_V, OBS_V WITH OBS_V
ENDIF
enddo
Return 2


CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"


****************************************
function  Del ()
****************************************

CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"


ALERT( "DELETANDO O REGISTRO" )

INKEY(1)

IF LASTKEY( ) = 27
retorna = 2
ENDIF

DELETE
retorna = 2
CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )           
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY  "<F2>  INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"



****************************************
function Imp ()
****************************************


CLEAR
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)

@ 0,0,24,79 box quadro + chr(177)

set color to bg+

@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )
@ 02,29 SAY " DBEDIT "

SET COLOR TO W/N

@ 17,5 SAY "<F2> INCLUSAO"

@ 17,23 SAY "<F3> ALTERACAO"

@ 17,40 SAY "<DEL> EXCLUSAO"

@ 17,57 SAY "<F5> IMPRESSAO"

a1 := ALERT('DESEJA IMPRIMIR COMO:',{'FICHA CADASTRAL','RELATORIO'})

if a1 = 1
impFicha()

DO WHILE .T.
nCodigoi = 0
cImp = "N"

SET COLOR TO "N/n+, w/4"
@ 4,4 CLEAR TO 21,76
@ 4,4 TO 21,76 DOUBLE

set color to bg+

@ 05,56 SAY DATE( )
@ 05,66 SAY TIME( )
@ 05,29 SAY " FICHA CADASTRAL "
SET COLOR TO "N/n+, w/4"

@ 8,8 SAY "Codigo Inicial....:" GET nCodigoi PICTURE "999" VALID (nCodigoi>0)
READ
IF LASTKEY( ) = 27
return 2
EXIT
ENDIF
GO TOP
SEEK STR(nCodigoi,3,0)
IF !FOUND( )
TONE(400,3)
@ 8,32 SAY "NAO CADASTRADO"
INKEY(0)
LOOP
ENDIF
@ 11,8 SAY "Confirma impressao?...:" GET cImp PICTURE "@!" VALID (cImp $ "SN")
READ
IF LASTKEY( ) = 27
RETURN 2
EXIT
ENDIF
IF cImp = "S"
DO WHILE .T.
IF !ISPRINTER( )
TONE(400,3)
@ 13, 8 SAY "PREPARE A IMPRESSORA - Pressione qualquer 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 vcab
@ 02,00 SAY REPLICATE("-",80)
vcab = .F.
ENDIF
@ PROW( )+1,02 SAY "CODIGO.......:"
@ PROW( ) , 16 SAY CODIGO PICT "999"
@ PROW( )+1,02 SAY "NOME.........:"
@ PROW( ) , 17 SAY NOME_V PICT "@!"
@ PROW( )+1,02 SAY "RG...........:"
@ PROW( ) , 17 SAY RG_V PICT "99.999.999-9"
@ PROW( )+1,02 SAY "CPF..........:"
@ PROW( ) , 17 SAY CPF_V PICT "999.999.999-99"
@ PROW( )+1,02 SAY "ENDERECO.....:"
@ PROW( ) , 17 SAY ENDEREC_V PICT "@!"
@ PROW( )+1,02 SAY "NUMERO.......:"
@ prow( ) ,17 say NUMERO_V PICT"9999"
@ PROW( )+1,02 SAY "TELEFONE.....:"
@ PROW( ) , 17 SAY FONE_V PICT "@R (99)9999-9999"
@ PROW( )+1,02 SAY "COMPLEMENTO..:"
@ PROW( ) , 17 SAY COMPLE_V PICT "@!"
@ PROW( )+1,02 SAY "BAIRRO.......:"
@ PROW( ) , 17 SAY BAIRRO_V PICT "@!"
@ PROW( )+1,02 SAY "CIDADE........:"
@ PROW( ) , 17 SAY CIDADE_V PICT "@!"
@ PROW( )+1,02 SAY "ESTADO........:"
@ PROW( ) , 17 SAY ESTADO_V PICT "@!"
@ PROW( )+1,02 SAY "OBSERVACAO........:"
@ PROW( ) , 17 SAY OBS_V PICT "@!"
@ 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
RETURN 2

elseif a1 = 2
impRelat()
end

return(Nil)

****
****
****
function impRelat
SET PRINTER TO LPT1
SET DEVICE TO PRINTER
// GO TOP
dbseek(STR(nCodigoi, 3))
vcab := .T.
WHILE !EOF( )
IF vcab
@ 02,00 SAY REPLICATE("-", 80)
@ 03,00 SAY "CODIGO NOME TELEFONE"
@ 04,00 SAY REPLICATE("-", 80)
vcab = .F.
END

@ ++PROW(),00 SAY transform(CODIGO, "999") + ' ' +;
NOME_V + ' ' +;
(FONE_V,+ ' ' + "@R (99)9999-9999")

IF PROW( ) > 50
vcab = .T.
ENDIF
dbskip()
END
EJECT
SET DEVICE TO SCREEN
SET PRINTER TO

Set Color To 'BG+'

Return(retorna)

Re: Impressão de relatório

Enviado: 05 Out 2010 14:28
por Toledo
Nota de Moderação:
por Toledo: Atenção Amigo aprendiz93, favor ler suas mensagens privadas!
Para isto entre na opção (Mensagens Privadas Novas) que fica no topo desta página ou clique no link abaixo:
https://pctoledo.org/forum/ucp.ph ... lder=inbox

Observe que todas as suas mensagens acima, que continham algum código fonte, foram moderadas. Então procure utilizar a tag CODE conforme orientação dada em MP.

Isto é uma advertência, então evite reincidir na falta de uso desta tag.

Abraços,

Toledo

Impressão de relatório

Enviado: 05 Out 2010 16:44
por Pablo César
Puxa ! Acho que agora vai ler as MPs... rsrs (desculpe aprendiz93) tá dificil a comunicação contigo... eu tinha mandado uma MP mas pelo visto nem viu. Vamos ver se começamos tudo de novo. Eu vi, ajeitei um pouquinho... o seu código,. Por sinal, muita coisa demais e outra fora do contexto. Sei que o começo é sempre dificil, mas temos que aceitar algumas regras, certo ?

Só não pude executar o seu código por falta do MASTER.DBF, seria bom que você colocasse em anexo (compactado com zip) o BD.

Código: Selecionar todos

PRIVATE VETOR_CAMPOS :={"CODIGO","NOME_V","FONE_V"}

PRIVATE VETOR_MASCARA:= {"9999","@!","@R (99)9999-9999"}

PRIVATE VETOR_CABECALHO:= {"CODIGO DO CLIENTE", "NOME DO CLIENTE", "TELEFONE"}

SELECT 1
USE MASTER
IF !FILE("INDIC1.NTX")
   INDEX ON STR(CODIGO,3,0) TO INDIC1
ENDIF
SET INDEX TO INDIC1

SET DELETE ON
SET SCOR OFF
SET BELL OFF

CLS
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
CHR(188) + CHR(205) + CHR(200) + CHR(186)
@ 0,0,24,79 box quadro + chr(177)
set color to bg+
@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )     
@ 02,29 SAY " DBEDIT "
SET COLOR TO W/N
@ 17,05 SAY "<F2> INCLUSAO"
@ 17,23 SAY "<F3> ALTERACAO"
@ 17,40 SAY "<DEL> EXCLUSAO"
@ 17,57 SAY "<F5> IMPRESSAO"
DBEDIT(5,5,15,73,VETOR_CAMPOS,"EDITA",VETOR_MASCARA,VETOR_CABECALHO ,CHR(178),"|","-")
CLOSE DATABASE
                      
             
function edita (modo, indice)
set color to BG+
tecla = lastkey()
campo = vetor_campos[indice]
retorna = 1
if modo == 4
ElseIf TECLA = 27
   RETURN 2
ElseIf tecla = -1
   Inclusao()
   CLS
   SET COLOR TO W/N
   quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
             CHR(188) + CHR(205) + CHR(200) + CHR(186)
   @ 0,0,24,79 box quadro + chr(177)
   set color to bg+
   @ 02,56 SAY DATE( )
   @ 02,66 SAY TIME( )
   @ 02,29 SAY " DBEDIT "
   SET COLOR TO W/N
   @ 17,05 SAY "<F2> INCLUSAO"
   @ 17,23 SAY "<F3> ALTERACAO"
   @ 17,40 SAY "<DEL> EXCLUSAO"
   @ 17,57 SAY "<F5> IMPRESSAO"
ELSEIF tecla = -2
   Alteracao()
   CLS
   SET COLOR TO W/N
   quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
             CHR(188) + CHR(205) + CHR(200) + CHR(186)
   @ 0,0,24,79 box quadro + chr(177)
   set color to bg+
   @ 02,56 SAY DATE( )
   @ 02,66 SAY TIME( )
   @ 02,29 SAY " DBEDIT "
   SET COLOR TO W/N
   @ 17,05 SAY "<F2> INCLUSAO"
   @ 17,23 SAY "<F3> ALTERACAO"
   @ 17,40 SAY "<DEL> EXCLUSAO"
   @ 17,57 SAY "<F5> IMPRESSAO"
ELSEIF TECLA = 7 
   Del()
   CLS
   SET COLOR TO W/N
   quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
             CHR(188) + CHR(205) + CHR(200) + CHR(186)
   @ 0,0,24,79 box quadro + chr(177)
   set color to bg+
   @ 02,56 SAY DATE( )
   @ 02,66 SAY TIME( )
   @ 02,29 SAY " DBEDIT "
   SET COLOR TO W/N
   @ 17,05 SAY "<F2> INCLUSAO"
   @ 17,23 SAY "<F3> ALTERACAO"
   @ 17,40 SAY "<DEL> EXCLUSAO"
   @ 17,57 SAY "<F5> IMPRESSAO"
ElseIf tecla = -4
   impFicha()
   CLS
   SET COLOR TO W/N
   quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
             CHR(188) + CHR(205) + CHR(200) + CHR(186)
   @ 0,0,24,79 box quadro + chr(177)
   set color to bg+
   @ 02,56 SAY DATE( )
   @ 02,66 SAY TIME( )
   @ 02,29 SAY " DBEDIT "
   SET COLOR TO W/N
   @ 17,05 SAY "<F2> INCLUSAO"
   @ 17,23 SAY "<F3> ALTERACAO"
   @ 17,40 SAY "<DEL> EXCLUSAO"
   @ 17,57 SAY "<F5> IMPRESSAO"
endif
Return 2
 
function Inclusao ()
opc = 1
nCodigo = 0
DO WHILE .T.
   NOME_V  = SPACE(30)
   RG_V   = SPACE(15)
   CPF_V  = SPACE(15)
   ENDEREC_V = SPACE(40)
   NUMERO_V = SPACE(10)
   COMPLE_V = SPACE(20)
   BAIRRO_V = SPACE(15)
   CIDADE_V = SPACE(15)
   ESTADO_V = SPACE(2)
   OBS_V  = SPACE(40)
   FONE_V  = SPACE(15)
   cGrav = "S"
   SET WRAP ON
   SET MESSAGE TO 20 CENTER
   CLS
   SET COLOR TO "N/n+, w/4"
   quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
             CHR(188) + CHR(205) + CHR(200) + CHR(186)
   @ 00,00,24,79 box quadro + chr(177)
   set color to bg+
   @ 02,56 SAY DATE( )
   @ 02,66 SAY TIME( )
   @ 02,25 SAY " CADASTRO DE CLIENTES "
   SET COLOR TO "N/n+, w/4"
   @ 04,04 CLEAR TO 21,76
   @ 04,04 TO 21,76 DOUBLE
   @ 08,08 say"CODIGO......:"get nCodigo picture "999" valid (nCodigo>0)
   @ 09,08 say"NOME........:"get NOME_V picture"@!" valid (!empty(NOME_V))
   @ 10,08 say"RG..........:"get RG_V  picture "99.999.999-9"
   @ 11,08 say"CPF.........:"get CPF_V  picture "999.999.999-99"
   @ 12,08 say"ENDERECO....:"get ENDEREC_V picture"@!"
   @ 13,08 say"NUMERO......:"get NUMERO_V  picture"9999"
   @ 14,08 say"COMPLEMENTO.:"get COMPLE_V  picture"@!"
   @ 14,08 say"BAIRRO......:"get BAIRRO_V  picture"@!"
   @ 15,08 say"CIDADE......:"get CIDADE_V  picture "@!"
   @ 16,08 say"ESTADO......:"get ESTADO_V  picture"@!"
   @ 17,08 say"OBSERVACAO..:"get OBS_V picture "@!"
   @ 18,08 say"TELEFONE....:"get FONE_V picture "@R (99)9999-9999"
   @ 20,08 SAY "Deseja Gravar?..:" GET cGrav PICTURE "@!" VALID (cGrav $ "SN")
   READ
   IF LASTKEY( ) = 27
      RETURN 2
      // EXIT ??? ou um ou outro !
   ENDIF
   IF cGrav = "S"
      APPEND BLANK
      REPLACE CODIGO WITH nCodigo, NOME_V WITH NOME_V, RG_V WITH RG_V, CPF_V WITH CPF_V, ENDEREC_V WITH ENDEREC_V, NUMERO_V WITH NUMERO_V
      REPLACE COMPLE_V WITH COMPLE_V, BAIRRO_V WITH BAIRRO_V, FONE_V WITH FONE_V, OBS_V WITH OBS_V
   ENDIF
ENDDO

// RETURN 2  (Por quˆ este return ? o que tiver abaixo nunca ir  executar

CLS
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
          CHR(188) + CHR(205) + CHR(200) + CHR(186)
@ 00,00,24,79 box quadro + chr(177)
set color to bg+
@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )     
@ 02,29 SAY " DBEDIT "
SET COLOR TO W/N
@ 17,05 SAY "<F2> INCLUSAO"
@ 17,23 SAY "<F3> ALTERACAO"
@ 17,40 SAY "<DEL> EXCLUSAO"
@ 17,57 SAY "<F5> IMPRESSAO"



function Alteracao ()
opc = 1
nCodigo = 0
DO WHILE .T.
   NOME_V  = SPACE(30)
   RG_V   = SPACE(15)
   CPF_V  = SPACE(15)
   ENDEREC_V = SPACE(40)
   NUMERO_V = SPACE(10)
   COMPLE_V = SPACE(20)
   BAIRRO_V = SPACE(15)
   CIDADE_V = SPACE(15)
   ESTADO_V = SPACE(2)
   OBS_V  = SPACE(40)
   FONE_V  = SPACE(15)
   cAlt = "N"
   SET WRAP ON
   SET MESSAGE TO 20 CENTER
   SET WRAP ON
   SET MESSAGE TO 20 CENTER
   CLS
   SET COLOR TO "N/n+, w/4"
   quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
             CHR(188) + CHR(205) + CHR(200) + CHR(186)
   @ 00,00,24,79 box quadro + chr(177)
   set color to bg+
   @ 02,56 SAY DATE( )
   @ 02,66 SAY TIME( )
   @ 02,25 SAY " ALTERACAO DE CADASTROS "
   SET COLOR TO "N/n+, w/4"
   @ 04,04 CLEAR TO 21,76
   @ 04,04 TO 21,76 DOUBLE
   @ 08,08 say"CODIGO......:"get nCodigo picture "999" valid (nCodigo>0)
   @ 09,08 say"NOME........:"get NOME_V picture"@!" valid (!empty(NOME_V))
   @ 10,08 say"RG..........:"get RG_V  picture "99.999.999-9"
   @ 11,08 say"CPF.........:"get CPF_V  picture "999.999.999-99"
   @ 12,08 say"ENDERECO....:"get ENDEREC_V picture"@!"
   @ 13,08 say"NUMERO......:"get NUMERO_V  picture"9999"
   @ 14,08 say"COMPLEMENTO.:"get COMPLE_V  picture"@!"
   @ 14,08 say"BAIRRO......:"get BAIRRO_V  picture"@!"
   @ 15,08 say"CIDADE......:"get CIDADE_V  picture "@!"
   @ 16,08 say"ESTADO......:"get ESTADO_V  picture"@!"
   @ 17,08 say"OBSERVACAO..:"get OBS_V picture "@!"
   @ 18,08 say"TELEFONE....:"get FONE_V picture "@R (99)9999-9999"
   @ 20,08 SAY "Alterar?...:" GET cAlt PICTURE "@!" VALID (cAlt $ "SN")
   READ
   IF LASTKEY( ) = 27
      RETURN 2
   EndIf
   IF cAlt = "S"
      REPLACE CODIGO WITH nCodigo, NOME_V WITH NOME_V, RG_V WITH RG_V, CPF_V WITH CPF_V, ENDEREC_V WITH ENDEREC_V, NUMERO_V WITH NUMERO_V
      REPLACE COMPLE_V WITH COMPLE_V, BAIRRO_V WITH BAIRRO_V, FONE_V WITH FONE_V, OBS_V WITH OBS_V
   ENDIF
enddo

// Return 2 (como isto ?) nao podera nunca exicutar o que segue abaixo

CLS
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
          CHR(188) + CHR(205) + CHR(200) + CHR(186)
@ 00,00,24,79 box quadro + chr(177)
set color to bg+
@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )     
@ 02,29 SAY " DBEDIT "
SET COLOR TO W/N
@ 17,05 SAY "<F2> INCLUSAO"
@ 17,23 SAY "<F3> ALTERACAO"
@ 17,40 SAY "<DEL> EXCLUSAO"
@ 17,57 SAY "<F5> IMPRESSAO"


function Del ()
CLS
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
          CHR(188) + CHR(205) + CHR(200) + CHR(186)
@ 00,00,24,79 box quadro + chr(177)
set color to bg+
@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )     
@ 02,29 SAY " DBEDIT "
SET COLOR TO W/N
@ 17,5 SAY "<F2> INCLUSAO"
@ 17,23 SAY "<F3> ALTERACAO"
@ 17,40 SAY "<DEL> EXCLUSAO"
@ 17,57 SAY "<F5> IMPRESSAO"
ALERT( "DELETANDO O REGISTRO" )
// INKEY(1)  (nao precisa)
IF LASTKEY( ) = 27
   // retorna = 2  /// pra que isto ?
ENDIF
DELETE
retorna = 2
CLS
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
          CHR(188) + CHR(205) + CHR(200) + CHR(186)
@ 00,00,24,79 box quadro + chr(177)
set color to bg+
@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )     
@ 02,29 SAY " DBEDIT "
SET COLOR TO W/N
@ 17,05 SAY "<F2> INCLUSAO"
@ 17,23 SAY "<F3> ALTERACAO"
@ 17,40 SAY "<DEL> EXCLUSAO"
@ 17,57 SAY "<F5> IMPRESSAO"



function ImpFICHA()
CLS
SET COLOR TO W/N
quadro := CHR(201) + CHR(205) + CHR(187) + CHR(186) + ;
          CHR(188) + CHR(205) + CHR(200) + CHR(186)
@ 00,00,24,79 box quadro + chr(177)
set color to bg+
@ 02,56 SAY DATE( )
@ 02,66 SAY TIME( )
@ 02,29 SAY " DBEDIT "
SET COLOR TO W/N
@ 17,05 SAY "<F2> INCLUSAO"
@ 17,23 SAY "<F3> ALTERACAO"
@ 17,40 SAY "<DEL> EXCLUSAO"
@ 17,57 SAY "<F5> IMPRESSAO"
a1 := ALERT('DESEJA IMPRIMIR COMO:',{'FICHA CADASTRAL','RELATORIO'})
if a1 = 1
   impFicha()
   DO WHILE .T.
      nCodigoi = 0
      cImp = "N"
      SET COLOR TO "N/n+, w/4"
      @ 04,04 CLEAR TO 21,76
      @ 04,04 TO 21,76 DOUBLE
      set color to bg+
      @ 05,56 SAY DATE( )
      @ 05,66 SAY TIME( )
      @ 05,29 SAY " FICHA CADASTRAL "
      SET COLOR TO "N/n+, w/4"
      @ 08,08 SAY "Codigo Inicial....:" GET nCodigoi PICTURE "999" VALID (nCodigoi>0)
      READ
      IF LASTKEY( ) = 27
         return 2
         // EXIT (isto nao serve)
      ENDIF
      GO TOP
      SEEK STR(nCodigoi,3,0)
      IF !FOUND( )
         TONE(400,3)
         @ 08,32 SAY "NAO CADASTRADO"
         INKEY(0)
         LOOP
      ENDIF
      @ 11,08 SAY "Confirma impressao?...:" GET cImp PICTURE "@!" VALID (cImp $ "SN")
      READ
      IF LASTKEY( ) = 27
         RETURN 2
         // EXIT (nao serve pra nada)
      ENDIF
      IF cImp = "S"
         DO WHILE .T.
            IF !ISPRINTER( )
               TONE(400,3)
               @ 13,08 SAY "PREPARE A IMPRESSORA - Pressione qualquer 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 vcab
                  @ 02,00 SAY REPLICATE("-",80)
                  vcab = .F.
               ENDIF
               @ PROW( )+1,02 SAY "CODIGO.......:"
               @ PROW( ) , 16 SAY CODIGO PICT "999"
               @ PROW( )+1,02 SAY "NOME.........:"
               @ PROW( ) , 17 SAY NOME_V PICT "@!"
               @ PROW( )+1,02 SAY "RG...........:"
               @ PROW( ) , 17 SAY RG_V PICT "99.999.999-9"
               @ PROW( )+1,02 SAY "CPF..........:"
               @ PROW( ) , 17 SAY CPF_V PICT "999.999.999-99"
               @ PROW( )+1,02 SAY "ENDERECO.....:"
               @ PROW( ) , 17 SAY ENDEREC_V PICT "@!"
               @ PROW( )+1,02 SAY "NUMERO.......:"
               @ PROW( ) ,17 say NUMERO_V PICT"9999"
               @ PROW( )+1,02 SAY "TELEFONE.....:"
               @ PROW( ) , 17 SAY FONE_V PICT "@R (99)9999-9999"
               @ PROW( )+1,02 SAY "COMPLEMENTO..:"
               @ PROW( ) , 17 SAY COMPLE_V PICT "@!"
               @ PROW( )+1,02 SAY "BAIRRO.......:"
               @ PROW( ) , 17 SAY BAIRRO_V PICT "@!"
               @ PROW( )+1,02 SAY "CIDADE........:"
               @ PROW( ) , 17 SAY CIDADE_V PICT "@!"
               @ PROW( )+1,02 SAY "ESTADO........:"
               @ PROW( ) , 17 SAY ESTADO_V PICT "@!"
               @ PROW( )+1,02 SAY "OBSERVACAO........:"
               @ PROW( ) , 17 SAY OBS_V PICT "@!"
               @ 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
   RETURN 2
else // aqui faltou um else (caso contrario)
   // elseif a1 = 2 (isto ‚ desnecessario visto que so tem duas op‡oes
   impRelat()
endif
return(Nil)

function impRelat
SET PRINTER TO LPT1
SET DEVICE TO PRINTER
// GO TOP
dbseek(STR(nCodigoi, 3))
vcab := .T.
DO WHILE !EOF( )
   IF vcab
      @ 02,00 SAY REPLICATE("-", 80)
      @ 03,00 SAY "CODIGO NOME TELEFONE"
      @ 04,00 SAY REPLICATE("-", 80)
      vcab = .F.
   ENDIF
   @ PROW(),00 SAY transform(CODIGO, "999") + ' '+ NOME_V + ' ' + transform(FONE_V,"@R (99)9999-9999")
   IF PROW( ) > 50
      vcab = .T.
   ENDIF
   dbskip()
ENDDO
EJECT
SET DEVICE TO SCREEN
SET PRINTER TO
Set Color To 'BG+'
Return(retorna)
O erro do seu codigo é por causa de um ++ROW() e porque essa mesma linha (nº 563 do código seu postado) continha erro de concatenção:

Código: Selecionar todos

563   @ ++PROW(),00 SAY transform(CODIGO, "999") + ' ' +;
564	NOME_V + ' ' +;
565	(FONE_V,+ ' ' + "@R (99)9999-9999") // aqui tinha que colocar um transform
Você deveria utilizar a indentação (<--clique para saber). Você poderá sempre analisar melhor o seu código. Enxuguei as linhas em branco as mais que tinha de 578 linha acabou ficando com 434.

Outra coisa grave, é a utilização de vários CLEAR. Não lembro mais onde lí que isso pode causar a eliminação de variáveis. Ao invés disso utilize CLS que é o mesmo.

Quando você situações em que repete certas lisnhas do seu código é sinal para você pensar em fazer uma função pra aquilo. Se a repetição é fazer cabeçalhos, faça uma função cabeçalho.

Laços de repetição, são utilizadas para o caso de você poder retornar uma situação o que gera um looping (volta).

Tive que renomear a função IMP() para IMPFICHA()

Senão conseguir colocar o MASTER.DBF no anexo (ver opção na edição de mensagem de tópico abaixo dos botões salvar, prever, enviar) então leia este tópico que será útil para você nos passar a estrutura e aproveite para colocar alguns dados: https://pctoledo.org/forum/viewto ... ura#p33612

Quanto a impressão em si, tenho a comentar:
1. Crie SEMPRE um arquivo de impressão, não mande a impressão diretamente a impressora paralela. No futuro bem próximo, não haverão impressoras paralelas e a predominancia é em USB, mas se você direcionar a impressão para arquivo, aí as coisa facilitam.
2. Não teste mais ISPRINTER o status da impressora, em WINXP isso é obsoleto.
3. Tente sempre concatenar os campos em apenas uma linha. Isso facilita a comprensão no futuro e fica mais fácil de concertar. Pois as vezes com o @ say... as impressões dos campos são feitas com recuos e isso causa demora na impressão e ao meu ver desnecessário essa prática.

Isso são apenas alguns conceitos que são formados com o acontecer de algumas más experiências por certas práticas. Adota quem quiser e acata quem constatou tais experiências.

Re: Impressão de relatório

Enviado: 06 Out 2010 10:20
por aprendiz93
Bom Dia.

Obrigado pelas dicas e correções, desde o começo eu já tinha uma noção q seria muito dificil programação, mais n q seria tao massa assim rsrs. Estou fazendo as alterações no meu codigo, também estou lhe enviando o master.dbf compactado. Obrigado pela sua paciência comigo creio eu q vc já esta de cabelos em pé comigo rsrs. Agradeço desde já por tudo abçs.

Impressão de relatório

Enviado: 06 Out 2010 12:00
por Pablo César
Thiago (este deve ser seu nome, peguei do bd, corrija se eu estiver errado),

Conseguí executar, no entanto devido a alguns erros que seu código possui, não seguí fazer particamente nada. No momento eu estou um pouco ocupado com um cliente, terei mais tempo apartir de sábado. Mas pelo que ja deu para visualizar do seu sistema, ele é uma espécie de agenda. E por falar de agenda, aqui no fórum tem um bom exemplo com fontes na seção de "Downloads", veja em: https://pctoledo.org/forum/fileba ... t=s&page=1

Aconselho que baixe, descompacte, compile e veja se você pode trabalhar encima desse exemplo. Se você achar viável, poderei acompanhar você apartir disso ou esperar no sábado, me diga então.

Eu acho que essa agenda vai ser um bom começo para o seu aprendizado e não está tão longe do que você almeja, certo ?

Re: Impressão de relatório

Enviado: 07 Out 2010 08:24
por aprendiz93
Bom Dia.

Realmente este agenda esta proximo do que estou trabalhando só precisa de algumas alterações vou tentar trabalhar em cima disto. Estou no aguardo quando vc poder me de um toque. Agradeço por tudo desde já abçs.