Impressão direta
Tenho uma sequência de 10 registros com 8 campos cada um, armazenados numa tabela e quero saber o q devo fazer para mandar um a um, (registro a registro) direto para a impressora.
Tenho dúvidas quanto a questão de mandar dos dados dos campos para o papel (em termos de localização - linha x coluna -, tenho dúvidas sobre como pedir uma mudança de linha...
Acredito que não seja difícil, mas eu ainda não sei... Infelizmente sou totalmente do QuickReport e mais infelizmente ainda, não estou conseguindo resolver com ele...
Certo da atenção de todos antecipadamente agradeço...
Té+.
(Utilizo Delphi 5 - Paradox - SQL)
Tenho dúvidas quanto a questão de mandar dos dados dos campos para o papel (em termos de localização - linha x coluna -, tenho dúvidas sobre como pedir uma mudança de linha...
Acredito que não seja difícil, mas eu ainda não sei... Infelizmente sou totalmente do QuickReport e mais infelizmente ainda, não estou conseguindo resolver com ele...
Certo da atenção de todos antecipadamente agradeço...
Té+.
(Utilizo Delphi 5 - Paradox - SQL)
Pro-luck
Curtidas 0
Respostas
Aroldo Zanela
02/02/2006
Colega,
Se for ´coisa´ simples, veja (do help):
Se precisar de maior sofisticação, veja o FortesReport que é semelhante ao QuickReport e possui filtro para impressão em modo matricial.
Se for ´coisa´ simples, veja (do help):
var MyFile: TextFile; begin AssignPrn(MyFile); Rewrite(MyFile); Writeln(MyFile, ´Print this text´); System.CloseFile(MyFile); end;
Se precisar de maior sofisticação, veja o FortesReport que é semelhante ao QuickReport e possui filtro para impressão em modo matricial.
GOSTEI 0
Pro-luck
02/02/2006
Minha dúvida é quanto ao posicionamento dos dados... onde cada um deverá aparecer...
Eu lembro que no Clipper eu escolhia a linha e a coluna, mas não sei como faço isso no Delphi...
Obrigado pela urgência Aroldo Zanela... :wink:
Eu lembro que no Clipper eu escolhia a linha e a coluna, mas não sei como faço isso no Delphi...
Obrigado pela urgência Aroldo Zanela... :wink:
GOSTEI 0
Aroldo Zanela
02/02/2006
Colega,
No caso de impressão direta com WriteLn, você deverá usar fontes mono-espaçadas (Courier New, FixedSys, Terminal, etc) e poderá efetuar o posicionamento por meio da função Format.
Uma outra solução e ´mapear´ um objeto da classe TStringList (Matriz) com n Linhas X n Colunas e preencher nas coordenadas.
Mas a forma mais simples mesmo é utilizando o Canvas. Existem vários tópicos detalhando a solução, entretanto, passa pelo GDI do windows.
No caso de impressão direta com WriteLn, você deverá usar fontes mono-espaçadas (Courier New, FixedSys, Terminal, etc) e poderá efetuar o posicionamento por meio da função Format.
Uma outra solução e ´mapear´ um objeto da classe TStringList (Matriz) com n Linhas X n Colunas e preencher nas coordenadas.
Mas a forma mais simples mesmo é utilizando o Canvas. Existem vários tópicos detalhando a solução, entretanto, passa pelo GDI do windows.
GOSTEI 0
Aroldo Zanela
02/02/2006
Colega,
Ainda não parei para testar este [url=http://forum.clubedelphi.net/viewtopic.php?t=72997&highlight=]componente[/url] do Vinícius (vinicius2k), mas acredito que seja uma solução adequada para a sua necessidade.
Ainda não parei para testar este [url=http://forum.clubedelphi.net/viewtopic.php?t=72997&highlight=]componente[/url] do Vinícius (vinicius2k), mas acredito que seja uma solução adequada para a sua necessidade.
GOSTEI 0
Eniorm
02/02/2006
amigos, pra que complicar ehehehe?
se o cara quiser fazer manual pra aprender, blza!
do contrario, pra impressão direta existe o RDPrint que é muito bom.... mas é pago e naum vem com sources
AGORA, se o cara quiser um free+sources, o lance é o EXCELENTE componente [b:1402eceafd]VDOPrint[/b:1402eceafd], feito pelo amigo Vinicius2k daqui do forum, o componente está na versão 3 e agora possui um Preview..
VDOPrint: [b:1402eceafd]www.devres.cjb.net[/b:1402eceafd]
abraço
se o cara quiser fazer manual pra aprender, blza!
do contrario, pra impressão direta existe o RDPrint que é muito bom.... mas é pago e naum vem com sources
AGORA, se o cara quiser um free+sources, o lance é o EXCELENTE componente [b:1402eceafd]VDOPrint[/b:1402eceafd], feito pelo amigo Vinicius2k daqui do forum, o componente está na versão 3 e agora possui um Preview..
VDOPrint: [b:1402eceafd]www.devres.cjb.net[/b:1402eceafd]
abraço
GOSTEI 0
Pro-luck
02/02/2006
Caro colega,
Será que posso contar com o teu auxílio e esperar que poste um exemplo de como utilizar o WriteLn?
Acredito q seja exatamente isto q estou precisando.
Fontes mono-espaçadas, mais trabalhoso mesmo...
Antecipadamente agradeço...
Será que posso contar com o teu auxílio e esperar que poste um exemplo de como utilizar o WriteLn?
Acredito q seja exatamente isto q estou precisando.
Fontes mono-espaçadas, mais trabalhoso mesmo...
Antecipadamente agradeço...
GOSTEI 0
Edilcimar
02/02/2006
A primeira resposta do Zanela dá a informação desejada, caso queira colocar mais de uma ´coisa´ na mesma linha, que que fazer manualmente, tipo
var
MyFile: TextFile;
begin
AssignPrn(MyFile);
Rewrite(MyFile);
Writeln(MyFile, ´Print this text mais alguma coisa´);
System.CloseFile(MyFile);
end;
o mais alguma coisa pode ser substituido por uma variável, e ficaria
Writeln(MyFile, ´Print this text´ +´ ´+variaveltexto´);
var
MyFile: TextFile;
begin
AssignPrn(MyFile);
Rewrite(MyFile);
Writeln(MyFile, ´Print this text mais alguma coisa´);
System.CloseFile(MyFile);
end;
o mais alguma coisa pode ser substituido por uma variável, e ficaria
Writeln(MyFile, ´Print this text´ +´ ´+variaveltexto´);
GOSTEI 0
Pro-luck
02/02/2006
Caro colega,
O que eu não estou sabendo fazer é controlar o posicionamente. Como vc falou, controlo com uso do Format...
Vc pode dizer-me como? Ou até mesmo fazer o tal mapeamento...
Peço que não me tome por um cara chato... Só estou querendo aprender e para tanto conto com a ajuda de todos do Fórum....
Antecipadamente agradeço...
O que eu não estou sabendo fazer é controlar o posicionamente. Como vc falou, controlo com uso do Format...
Vc pode dizer-me como? Ou até mesmo fazer o tal mapeamento...
Peço que não me tome por um cara chato... Só estou querendo aprender e para tanto conto com a ajuda de todos do Fórum....
Antecipadamente agradeço...
GOSTEI 0
Vinicius2k
02/02/2006
Colega,
Você pode criar um ´buffer´ da linha antes de escrevê-la, propriamente.
Eu sempre preferi utilizar este recurso aliado ao Format, para escrever arquivos texto que, no seu caso, é o mesmo processo.
Um exemplo simples seria:
Em tempo, obrigado aos colegas pela indicação do VDOPrint e, principalmente, muito bom ´vê-lo´ por aqui novamente AZ ;)
Você pode criar um ´buffer´ da linha antes de escrevê-la, propriamente.
Eu sempre preferi utilizar este recurso aliado ao Format, para escrever arquivos texto que, no seu caso, é o mesmo processo.
Um exemplo simples seria:
var SBuf: string; procedure WriteToBuf(ACol: Integer; S: string); var I: Integer; begin for I := 0 to Pred(Length(S)) do SBuf[ACol+I] := S[Succ(I)]; end; procedure SuaProcedure; const Len = 255; var // ... Txt1, Txt2, Txt3, Txt4: string; Int1, Int2: Integer; Doub: Double; begin // ... SBuf := StringOfChar(32, Len); { **** } Txt1 := ´Texto 1´; Txt2 := ´Texto 2´; Txt3 := ´Texto 3´; Txt4 := ´Texto 4´; Int1 := 12345; Int2 := 67890; Doub := 1234567.890; { **** } WriteToBuf(001, Txt1); WriteToBuf(011, Txt2); WriteToBuf(021, Format(´¬7.7d´, [Int1])); WriteToBuf(031, Txt3); WriteToBuf(041, Txt4); WriteToBuf(051, Format(´¬7.7d´, [Int2])); WriteToBuf(071, FormatFloat(´,0.00´, Doub)); { **** } // Só então o "buffer" é escrito e reiniciado. Writeln(Arquivo, SBuf); SBuf := StringOfChar(32, Len); { **** } // ... end;
Em tempo, obrigado aos colegas pela indicação do VDOPrint e, principalmente, muito bom ´vê-lo´ por aqui novamente AZ ;)
GOSTEI 0
Kitsystem
02/02/2006
Sempre trabalhei com apenas CloseFile(MyFile);
Qual a diferença real de colocar System.CloseFile(MyFile); ?
Qual a diferença real de colocar System.CloseFile(MyFile); ?
GOSTEI 0
Chmelo
02/02/2006
Caro amigo,
O componente VDOPrint do nosso amigo Vinicius2K e muito bom , eu ja uso ele ja faz um tempinho , e so voce verificar o exemplo que vem junto e voce vera que e parecido com o antigo clipper na hora de voce posicionar a linha e coluna no formulario, e agora com a nova versao deve estar melhor ainda , pois agora com preview deve ter ficado show de bola..
baixe a versao e faca o teste...
ate +
Carlos Melo
O componente VDOPrint do nosso amigo Vinicius2K e muito bom , eu ja uso ele ja faz um tempinho , e so voce verificar o exemplo que vem junto e voce vera que e parecido com o antigo clipper na hora de voce posicionar a linha e coluna no formulario, e agora com a nova versao deve estar melhor ainda , pois agora com preview deve ter ficado show de bola..
baixe a versao e faca o teste...
ate +
Carlos Melo
GOSTEI 0
Kitsystem
02/02/2006
CHMELO,
Minha pergunta é outra coisa, não estou procurando saber de componente de impressao
Quero saber qual a diferenca de usar
System.CloseFile(MyFile);
e apenas
CloseFile(MyFile);
Minha pergunta é outra coisa, não estou procurando saber de componente de impressao
Quero saber qual a diferenca de usar
System.CloseFile(MyFile);
e apenas
CloseFile(MyFile);
GOSTEI 0
Dopi
02/02/2006
Vinicius,
Algumas outras Units (não lembro de qual versão do Delphi) tb possuem uma função CloseFile... chamando System.CloseFile() temos certeza que será executada a função [b:3454709c8c]CloseFile [/b:3454709c8c]da Unit [b:3454709c8c]System[/b:3454709c8c]
Algumas outras Units (não lembro de qual versão do Delphi) tb possuem uma função CloseFile... chamando System.CloseFile() temos certeza que será executada a função [b:3454709c8c]CloseFile [/b:3454709c8c]da Unit [b:3454709c8c]System[/b:3454709c8c]
GOSTEI 0
Pro-luck
02/02/2006
Agradecimentos aos colegas do Fórum que contribuíram com o meu aprendizado quanto ao comando ´WriteLn´. Confesso que ainda não o domino completamente, mas felizmente consegui resolver o meu problema de maneira super satisfatória. Em especial, agradecimentos ao Zanela, ao Edilcimar e Vinicius2K, que sempre se mostraram pacientes e participativos.
Valeu colegas,
Ah, se tiverem mais algumas dicas para me enviar, que possa me ajudar a conseguir impressões diretas e de maneira bem inteligentes e práticas, podem ficar a vontade para me enviar... rs rs rs
Valeu colegas,
Ah, se tiverem mais algumas dicas para me enviar, que possa me ajudar a conseguir impressões diretas e de maneira bem inteligentes e práticas, podem ficar a vontade para me enviar... rs rs rs
GOSTEI 0
Kitsystem
02/02/2006
Tambem agradeço a ajuda
GOSTEI 0