Cabecalho

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

samuel bandeira
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 14 Abr 2005 12:58

Cabecalho

Mensagem por samuel bandeira »

Alguem Saberia me informar como faço para colocar um cabeçalho no programa abaixo e como faco para calcular e imprimir quantidade total no final do relatorio


Public MLIN :=70
Public mpag :=1

Use mad
index on REFERENCIA to ref
use mad index ref
GOTO TOP

SET DEVICE TO PRINTER
setprc(0,0)

@ 0,000 say CHR(15)

DO WHILE .NOT. EOF()

if prow() > 30
eject
endif


@ PROW() + 01, 02 SAY Referencia
@ PROW() + 00, 15 SAY "|"
@ PROW() + 00, 23 SAY substr(Desc,1,45)
@ PROW() + 00, 40 SAY "|"
@ PROW() + 00, 78 SAY "PC"
@ PROW() + 00, 80 SAY "|"
@ PROW() + 00, 89 SAY QTD
@ PROW() + 00, 105 SAY "|"
@ PROW() + 00, 106 SAY PR_custo
@ PROW() + 00, 115 SAY "|"
@ PROW() + 00, 120 SAY Total
@ PROW() + 00, 15 SAY "|"


DBSkip()
ENDDO

SET DEVICE TO SCREEN

RETURN
josenilson
Usuário Nível 1
Usuário Nível 1
Mensagens: 46
Registrado em: 14 Set 2004 10:58

Mensagem por josenilson »

Ficaria mais ou menos assim...

Código: Selecionar todos

 

Public MLIN :=70 
Public mpag := 0
Public vlTotal := 0

Use mad 
index on REFERENCIA to ref 
use mad index ref 
GOTO TOP 

SET DEVICE TO PRINTER 
setprc(0,0) 

@ 0,000 say CHR(15) 

Do While .not. Eof()

     mpag += 1
     @ 01,000 Say "Linha 1 no cabecalho    Pagina: "+Str(mpag,3)
     @ 02,000 Say "Linha 2 do cabecalho"
     @ 03,000 Say "Linha 3 do cabecalho e etc...."

     Do While .not. Eof() .and. Prow()<62     // 62 = No. de linhas que sera impresso na pagina

           @ PROW() + 01, 02 SAY Referencia 
           @ PROW() + 00, 15 SAY "|" 
           @ PROW() + 00, 23 SAY substr(Desc,1,45) 
           @ PROW() + 00, 40 SAY "|" 
           @ PROW() + 00, 78 SAY "PC" 
           @ PROW() + 00, 80 SAY "|" 
           @ PROW() + 00, 89 SAY QTD 
           @ PROW() + 00, 105 SAY "|" 
           @ PROW() + 00, 106 SAY PR_custo 
           @ PROW() + 00, 115 SAY "|" 
           @ PROW() + 00, 120 SAY Total 
           @ PROW() + 00, 15 SAY "|" 

           vlTotal += Total
           DBSkip() 

     Enddo

Enddo
If mpag > 0   // se foi impresso pelo menos uma pagina

    @ Prow()+2,000 Say "Total geral ===>"
    @ Prow()    ,120 Say vlTotal
    Eject

Endif

SET DEVICE TO SCREEN 
RETURN

Responder