Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 11 de Julho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
108 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  [Básico] - Impressão com o Método Canvas - Pt. 1
Publicado por rboaro : Terça, Setembro 24, 2013 - 02:26 GMT-3 (754 leituras)
Comentários 4 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Dentre os diversos desafios que a minha profissão oferece, há um tempo atrás fui confrontado com um desafio interessante! Fazer a impressão de relatórios por meio do método Canvas. Imagine só fazer um relatório inteirinho no código! Pois é… é assim que foi feito. Vantagens? Bom se você considerar o fato de que por meio deste não é necessário nenhum componente externo para fazer relatórios é uma vantagem bem relevante... principalmente porque desta forma você manipula do jeito que quiser o seu relatório, sem correr o risco de sair fora da folha, ou de não ter espaço. Você estará livre dos problemas insensatos do QReport (que já está obsoleto, mas ainda é visto por aí) de simplesmente não aparecer o campo relacionado, e estará livre dos sub relatórios do Report Builder, por exemplo. É só instanciar uma nova query e montar o select desejado, depois escrever o campo na posição desejada… mas bom, isto nós veremos com calma mais adiante.

Desvantagens? Pense na manutenção disto. Pronto, não preciso dizer mais nada. Não que seja complicado, aliás, muito pelo contrário, é até divertido de montar os relatórios, só que demora muito. Se compararmos com componentes externos, depois que o relatório está pronto, mudar um campo de lugar ou mesmo substituí-lo por outro é mais rápido do que alterar o código.

Claro que se pusermos na balança, há mais vantagens do que desvantagens, principalmente pelo fato de que só teremos “problemas” (isto mesmo, entre aspas) com o método Canvas quando formos mudar as posições dos campos, e não substituí-los.

Consideração Importante: Um relatório é medido em Pixels na tela. Qual a importância de termos isto em mente? De uma impressora para outra sempre teremos problemas de pixels, pois as medidas são diferentes, uma impressora pode utilizar mais ou menos pixels para impressão, principalmente de uma marca para outra.

Aí não dá pra pedir para o usuário comprar a impressora X ou Y em função do seu relatório ter sido testado só na impressora X ou Y, não é mesmo? E o que é pior! Já imaginou, fazer um relatório diferente para cada modelo e marca de impressora que houver no mercado?!

E aí, como resolvemos este tipo de problema? Trabalhando com porcentagem e não com medidas fixas.

Entendendo melhor, se quisermos escrever alguma coisa no meio da folha e imaginar que ela tenha, por exemplo, 250 pixels de largura, num primeiro momento, faríamos assim:

250 / 2 = 125, logo, é só informar no código que a coluna 125 e a linha 1 (X e Y, reparou!?) que teríamos o meio da página na primeira linha. Mas uma folha para a impressora X pode ter a medida de 500 pixels, o que resultaria em ¼ deste valor, e o nosso relatório já começaria desalinhado.

Como eu já disse, pra resolver isto, pegamos sempre a porcentagem da folha, e informamos a posição em porcento, e não em valores reais. Se eu disser que quero 50% do total de colunas da linha 1 eu sempre estarei no meio da folha, entendeu? Assim, não importa se uma impressora considere 500 ou 250 pixels.

Nas próximas atualizações falaremos um pouco mais de código e veremos como pegar o tamanho da página, como proporcionar isso, dentre diversas outras abordagens.

Procurei dividir este assunto em partes pra não ficar muito cansativo e depois de terminar os artigos, vou confeccionar vídeo aulas sobre o mesmo assunto.. acredito que seja de grande importância e enquanto estive pesquisando, descobri que muitas pessoas têm dúvidas sobre isso!

Pessoal, vou ficando por aqui! Espero que tenham gostado e até a próxima! Um forte abraço!

Autor: Misael Soler
Link Original do Artigo: http://torrestark.blogspot.com.br/2013/09/impressao-com-o-metodo-canvas-pt-1.html


Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: cliodao (cliodao@gmail.com) : Out 04, 2013 - 03:06
(Informações sobre o membro | Enviar uma mensagem) http://http://
Olá. A ideia é bastante interessante. A matemática está em tudo mesmo ! ;)


por: faccruz (faccruz@gmail.com) : Out 21, 2013 - 05:12
(Informações sobre o membro | Enviar uma mensagem)
Com isso é possível criar relatórios personalizados? Ou seja, o cliente escolhe o que imprimir?


por: orms (otavio@expert-designers.com) : Out 24, 2013 - 10:58
(Informações sobre o membro | Enviar uma mensagem) http://
A idéia é interessante. Um argumento a favor é a portabilidade de uma versão do Delphi para outra, pois fica independente de pacotes externos, que mudaram ao longo das versões do Delphi. E agora com o Lazarus ganhando espaço, ajuda na portabilidade.


por: wksb (wellingtonksb@hotmail.com) : Ago 08, 2014 - 04:55
(Informações sobre o membro | Enviar uma mensagem) http://http://
Assunto muito interessante!

Bora para o próximo capítulo...
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados