SUGESTAO NO FORMATO DE IMPRESSAO COM PRINTER?
Bom dia, pessoal.
Estou querendo alterar os meus relatórios, no qual utilizo o objeto printer e nisso gostaria de sugestões para modificar o formato que é impresso atualmente.
No meu caso, eu separo os dados em duas tabelas, utilizando o "printer.line" para desenhar as tabelas e destacando na cor verde duas linhas da tabela o inicio e fim do processo, ficando no seguinte formato:
O que eu pensei em fazer agora é no seguinte formato:
Os que tem * no formato acima eu pintaria na cor verde o fundo das células da tabela1 e das células da tabela2. Isso é muito complicado de fazer com o objeto printer? Ou poderia imprimir os valores na cor verde, mas não sei se ficaria bom quando o usuário imprimisse em preto e branco, acredito que ficaria ruim para identificar o inicio e fim do processo.
Alguém teria outras sugestões?
Estou querendo alterar os meus relatórios, no qual utilizo o objeto printer e nisso gostaria de sugestões para modificar o formato que é impresso atualmente.
No meu caso, eu separo os dados em duas tabelas, utilizando o "printer.line" para desenhar as tabelas e destacando na cor verde duas linhas da tabela o inicio e fim do processo, ficando no seguinte formato:
tabela1 tabela2
001 | | 002|
003 | | 004|
----| |----| ' destaco a linha na cor verde para indicar o inicio
005 | | 006|
007 | | 008|
009 | | |
----| |----| ' destaco a linha na cor verde para indicar o fim
010 | | 011|
012 | | |
O que eu pensei em fazer agora é no seguinte formato:
tabela1 tabela2
001 *007
002 *008
003 *009
004 010
*005 011
*006 012
Os que tem * no formato acima eu pintaria na cor verde o fundo das células da tabela1 e das células da tabela2. Isso é muito complicado de fazer com o objeto printer? Ou poderia imprimir os valores na cor verde, mas não sei se ficaria bom quando o usuário imprimisse em preto e branco, acredito que ficaria ruim para identificar o inicio e fim do processo.
Alguém teria outras sugestões?
Complicado de fazer no objeto printer (pintar a célula), acredito ser bem chato sim de fazer, pois ele "pinta" o caracter, e não o fundo de um texto.
Agora, mudar a cor da impressão (do texto) não é complicado de fazer não, e VC até já sabe com ofazer (acredito eu).
Só que, na situação descrita por tàacima, acredito que não seja viável a mudança da impressão, pois no exemplo 1, se o cara têm uma impressora PRETO e BRANCO, ele identifica facilmente as quebras. No exemplo 2, numa impressora dessas fica difÃÂÂcil a visualização, pois ele não estará vendo a cor na impressão.
No exemplo1, mesmo se ele tiver com PRETO e BRANCO, mas só de estar imprimindo a linha, ele já identifica a quebra numa boa.
Agora, mudar a cor da impressão (do texto) não é complicado de fazer não, e VC até já sabe com ofazer (acredito eu).
Só que, na situação descrita por tàacima, acredito que não seja viável a mudança da impressão, pois no exemplo 1, se o cara têm uma impressora PRETO e BRANCO, ele identifica facilmente as quebras. No exemplo 2, numa impressora dessas fica difÃÂÂcil a visualização, pois ele não estará vendo a cor na impressão.
No exemplo1, mesmo se ele tiver com PRETO e BRANCO, mas só de estar imprimindo a linha, ele já identifica a quebra numa boa.
Então 1º exemplo já descarto. rsrsrs
2º exemplo, e se eu imprimir o texto com um verde claro? Assim, mesmo que o relatório seja impresso em preto e branco, os dados que representam o inicio e fim do processo ficariam com um cinza claro e nisso conseguiria identificar o processo.
E como seria o cálculo para dividir os dados em duas tabelas? Pois os meus dados variam. Em uma determinada hora posso ter 1 registro e depois ter 27 registros por exemplo.
Faria uma divisão sempre por 2 e caso dê valores quebrados eu arredondo e imprimo mais registros na tabela da esquerda e o restante na tabela da direita, é isso?
Por exemplo, supondo que tenho 5 registros no momento, seria impresso no seguinte formato:
E a seqüência da impressão seria de 1 a 3 e depois volto na posição Y do registro 1 para imprimir os registros 4 e 5, correto?
2º exemplo, e se eu imprimir o texto com um verde claro? Assim, mesmo que o relatório seja impresso em preto e branco, os dados que representam o inicio e fim do processo ficariam com um cinza claro e nisso conseguiria identificar o processo.
E como seria o cálculo para dividir os dados em duas tabelas? Pois os meus dados variam. Em uma determinada hora posso ter 1 registro e depois ter 27 registros por exemplo.
Faria uma divisão sempre por 2 e caso dê valores quebrados eu arredondo e imprimo mais registros na tabela da esquerda e o restante na tabela da direita, é isso?
Por exemplo, supondo que tenho 5 registros no momento, seria impresso no seguinte formato:
001 004
002 005
003
E a seqüência da impressão seria de 1 a 3 e depois volto na posição Y do registro 1 para imprimir os registros 4 e 5, correto?
Não sei o PQ, mas sempre "discutimos" em seus POSTÂÂ's hein!!! Acho que isso já tá se tornando pessoal hein!!! (hehehehehe).
Eu acho que a opção 1 não deveria ser descartada, e sim a APROVADA.
Vamos pensar pelo lado do usuário agora.
Imagine VC, pegando um relatório (em preto e branco), e ter que identificar que tal registro tá impresso em CINZA e não em PRETO???
Com toda certeza, se VC bater o olho, VC não verá diferença nenhuma na impressão, e achará que foi uma falha na impressora naquele momento, que mandou mens tinta e imprimiu "falhado" aquele registro.
PRETO e BRANCO é PRETO E BRANCO, não invente moda... O Usuário não vai sacar que o relatório é PRETO, BRANCO e CINZA... (hehehehe).
Quanto a forma de imprimir, isso é VC quem terá que decidir mesmo a melhor opção.
MAs tome um cuidado:
Se em uma folha (uma fileira da folha) cabem 27 linhas (por exemplo), e em cada folha, VC têm 3 fileiras pra imprimir.
SE VC tÃÅ m uma quantidade total de 85 registros pra imprimir (ultrapassando o limite das 3 colunas cheias, que é 81 registros), o que VC imprimiria na folha 2?? E como imprimiria na folha 2??
Isso, infelizmente, acho que só você pra encontrar a resposta e ver o melhor caminho a ser percorrido...
Eu acho que a opção 1 não deveria ser descartada, e sim a APROVADA.
Vamos pensar pelo lado do usuário agora.
Imagine VC, pegando um relatório (em preto e branco), e ter que identificar que tal registro tá impresso em CINZA e não em PRETO???
Com toda certeza, se VC bater o olho, VC não verá diferença nenhuma na impressão, e achará que foi uma falha na impressora naquele momento, que mandou mens tinta e imprimiu "falhado" aquele registro.
PRETO e BRANCO é PRETO E BRANCO, não invente moda... O Usuário não vai sacar que o relatório é PRETO, BRANCO e CINZA... (hehehehe).
Quanto a forma de imprimir, isso é VC quem terá que decidir mesmo a melhor opção.
MAs tome um cuidado:
Se em uma folha (uma fileira da folha) cabem 27 linhas (por exemplo), e em cada folha, VC têm 3 fileiras pra imprimir.
SE VC tÃÅ m uma quantidade total de 85 registros pra imprimir (ultrapassando o limite das 3 colunas cheias, que é 81 registros), o que VC imprimiria na folha 2?? E como imprimiria na folha 2??
Isso, infelizmente, acho que só você pra encontrar a resposta e ver o melhor caminho a ser percorrido...
PÃÂ' Luiz, você deve ter sangue espanhol mesmo. hehehe
Ok, 1º exemplo não descarto ainda. hehehe
Agora como poderia fazer para preencher cada célula da tabela1 e tabela2? Utilizo o "printer.line -,-,-,-, BF"? Ao mesmo tempo que estiver desenhando as linhas da tabela já vou preenchendo cada célula ou uma linha inteira? Pois cada tabela tem 5 colunas.
Quanto a impressão, acredito que imprimiria na 1ê página de 1 a 14 na 1ê tabela e de 15 a 28 na 2º tabela e restante faria na 2ê folha, ficando de 29 a 42 e 43 a 57 e assim por diante.
Ok, 1º exemplo não descarto ainda. hehehe
Agora como poderia fazer para preencher cada célula da tabela1 e tabela2? Utilizo o "printer.line -,-,-,-, BF"? Ao mesmo tempo que estiver desenhando as linhas da tabela já vou preenchendo cada célula ou uma linha inteira? Pois cada tabela tem 5 colunas.
Quanto a impressão, acredito que imprimiria na 1ê página de 1 a 14 na 1ê tabela e de 15 a 28 na 2º tabela e restante faria na 2ê folha, ficando de 29 a 42 e 43 a 57 e assim por diante.
Uma outra idéia que eu poderia fazer é imprimir a imagem do grid, mas eu utilizo o sgrid e não achei nada de como fazer isso.
Se bem que isso não deve dar certo, pois eu precisaria dividir a imagem em duas tabelas em cada folha.
Eu achei uma dica com msflexgrid e um tópico de como imprimir o conteúdo do sgrid, mas eu precisava que imprimisse a tabela do grid juntamente com as cores de fundo e os valores.
link1
link2
Se bem que isso não deve dar certo, pois eu precisaria dividir a imagem em duas tabelas em cada folha.
Eu achei uma dica com msflexgrid e um tópico de como imprimir o conteúdo do sgrid, mas eu precisava que imprimisse a tabela do grid juntamente com as cores de fundo e os valores.
link1
link2
Pra imprimir, o melhor seria VC imprimir linha a linha, pois é impossÃÂÂvel VC imprimir, depois voltar com a folha e imprimir depois na coluna 2.
Vai desenhando com o PRINTER a impressão com linhas mesmo do VB.
Ou se quiser fazer algo mais "visual", use o DATAREPORT/CRYSTAL REPORT e desenhe nele as linhas e VC imprime por lá.
é muito melhor visualmente falando, um relatório em um destes do que com o Printer.
Vai desenhando com o PRINTER a impressão com linhas mesmo do VB.
Ou se quiser fazer algo mais "visual", use o DATAREPORT/CRYSTAL REPORT e desenhe nele as linhas e VC imprime por lá.
é muito melhor visualmente falando, um relatório em um destes do que com o Printer.
Estou fazendo um teste aqui, mas pelo jeito vou ter que alterar a ordem de como é impresso o relatório. Pois eu imprimo 1º os dados, depois desenho a tabela e agora por último preencho as linhas.
Só que quando eu faço assim, o preenchimento das linhas acaba preenchendo por cima do valores.
O único jeito seria eu fazer o contrário mesmo? Desenhar o preenchimento, depois as tabelas e por último os valores?
Só que quando eu faço assim, o preenchimento das linhas acaba preenchendo por cima do valores.
O único jeito seria eu fazer o contrário mesmo? Desenhar o preenchimento, depois as tabelas e por último os valores?
Tópico encerrado , respostas não são mais permitidas