Clipper On Line • Ver Tópico - Relatorio perfeito e simples...

Relatorio perfeito e simples...

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Relatorio perfeito e simples...

Mensagempor rochinha » 25 Fev 2006 20:45

Amiguinhos

Coloco abaixo a estrutura de impressão de relatorios de facil entendimento por todos e na precisão basta fazer as alterações necessárias para o uso, pois muitas vezes os report engines do Clipper não são tão flexiveis.

USE CONTAS NEW
       INDEX ON dtos(DATA) TO CONTA001
       SET INDEX TO CONTA001
GOTO TOP
SET DEVI TO PRINT
M->LI_NHA    := 1
M->PAG         := 1
M->TOT_0001 := 0
M->QUEBRAR := .F.
M->RESUMIR  := .F.
/* USAR COM QUEBRA */
IF M->QUEBRAR
    M->QUEBRA_1 := dtos(DATA) fara a quebra por data
    M->TO1_0001  := 0 // Totalizar esta quebra
ENDIF
DO WHILE .NOT. EOF()
   IF INKEY()=27
       // QUESTIONA A SAIDA
   ENDIF
   IF M->LI_NHA=1
      @ 00,001 SAY CHR(18)
      @ 01,001 SAY "CABECALHO 1"
      @ 01,059 SAY "Pagina: "+STRZERO(M->PAG,3)
      @ 02,001 SAY "CABECALHO 2"
      @ 02,059 SAY "Data: "+DTOC(DATE())
      @ 04,001 SAY REPL("-", 72)
      @ 05,001 SAY "ARECEBER"
      @ 05,010 SAY "DESCRICAO"
      @ 05,056 SAY "VALOR"
      @ 06,001 SAY REPL("-", 72)
      M->PAG    := M->PAG + 1
      M->LI_NHA := 07
   ENDIF
   /* USAR COM RESUMO */
   IF M->RESUMIR
      M->QUEBRA_1=dtos(DATA)
      M->SUM_0001=0
      DO WHILE M->QUEBRA_1=dtos(DATA) // Faz enquanto nao QUEBRA
            M->SUM_0001=M->SUM_0001+VALOR
            SKIP
      ENDDO
      SKIP -1
   ENDIF
   @ M->LI_NHA,001 SAY dtos(DATA)
   @ M->LI_NHA,010 SAY DESCRICAO
   @ M->LI_NHA,056 SAY VALOR PICTURE "@ZE 99,999,999,999.99"
   M->TOT_0001 := M->TOT_0001+VALOR
   /* USAR COM RESUMO */
   IF M->RESUMIR
       M->TO1_0001=M->TO1_0001+M->SUM_0001
   ENDIF
   M->LI_NHA   := M->LI_NHA+1
   /* USAR COM QUEBRA */
   IF M->QUEBRAR
       M->TO1_0001 := M->TO1_0001 + VALOR
   ENDIF
   SKIP
   /* USAR COM QUEBRA */
   IF M->QUEBRAR
     IF M->QUEBRA_1<>dtos(DATA)
        @ M->LI_NHA+0,01 SAY REPL("-", 72)
        @ M->LI_NHA+1,001 SAY "SUBTOTAL"
        @ M->LI_NHA+1,053 SAY M->TO1_0001 PICTURE "@ZE 9,999,999,999,999.99"
        M->LI_NHA=M->LI_NHA+2
        M->TO1_0001=0
        M->QUEBRA_1=ARECEBER
        M->LI_NHA=M->LI_NHA+1
     ENDIF
   ENDIF
   IF M->LI_NHA>58 .OR. EOF()
      @ M->LI_NHA+0,01 SAY REPL("-", 72)
      @ M->LI_NHA+1,001 SAY "SUBTOTAL"
      @ M->LI_NHA+1,053 SAY M->TOT_0001 PICTURE "@ZE 9,999,999,999,999.99"
      M->LI_NHA := 1
   ENDIF
ENDDO
M->LI_NHA := 59
@ M->LI_NHA+0,01 SAY REPL("-", 72)
@ M->LI_NHA+1,001 SAY "TOTAL"
@ M->LI_NHA+1,053 SAY M->TOT_0001 PICTURE "@ZE 9,999,999,999,999.99"
@ M->LI_NHA+2,01 SAY REPL("-", 72)
EJECT


Com o uso das flags RESUMIR e QUEBRAR voce pode acrescentar aos seus relatorios os tipos de saida, RESUMIDOS ou não ANALITICOS ou SINTÉTICOS.

@braços :?)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 11 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro