Entendo seu desabafo Rubem, mas aí fico na dúvida: quando eu preciso fazer 
impressões matriciais, quase sempre faço como me acostumei a fazer no Clipper 
(nem sei se era a maneira correta, mas era como eu entendia...), ou seja, 
imaginar que cada linha que eu quisesse escrever teria no máximo 80 colunas por 
40 linhas e jogar tudo num arquivo TXT que depois era enviado para a impressora.

Mas porém, todavia, entretanto, não é necessário (pelo menos ao meu ver) um 
componente de terceiros e sequer um editor visual. Basta (para minha 
necessidade) usar uma variável do tipo TStrings ou até um TStringList e vou 
gerando os parágrafos do meu relatório com base na largura do texto que é 
inserido. E para mandar para a impressora, bastaria um Write da vida, fazendo 
uma ejeção de página a cada 40 linhas.

Alguma automação como definir a ordem das colunas é bem vinda, mas nada além 
disso, pois visualmente a impressão matricial é "pobre". O valor é agregado a 
informação e não ao layout do relatório.

Não sei se nesse caso em específico seria mais fácil já ter algo pronto... 
Sendo que a composição desse tipo de relatório é bastante simples.

Atte,
Ricardo.
_________________________________________________________________

"Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante!"

--- Em qua, 25/2/09, Rubem Nascimento da Rocha <djpardalro...@hotmail.com> 
escreveu:

POR QUÊ O DELPHI NÃO VÊM COM TUDO DE QUE PRECISO?



por Rubem Nascimento da Rocha



____________ _________ _________ _________ _________ _



Eram os idos de 1994, quando desde 92 comecei a desenvolver soluções em 
Clipper. Era uma linguagem fantástica, e apesar de ter mudado de foco, ainda é. 
Basta pesquisar que se encontra muita coisa legal voltada para Clipper e xBase. 
Mas daí, quando estava iniciando minhas incursões em desenvolvimento para 
Windows com Visual FoxPro 3, já se ouvia os buchichos e os alardes sobre o 
Delphi. Quando descobri o Delphi por acaso, apenas pela curiosidade de saber 
como era um código feito nessa ferramenta, foi amor à primeira vista. Isto pq 
sempre fui fã de carteirinha da linguagem Pascal, e até a existência da 
linguagem C++, sempre considerei a linguagem C anti-didática e difícil de se 
entender por ter, a meu ver, uma sintaxe mais mnemônica do que próxima de uma 
linguagem formal. Mas aí, ao longo do tempo que mais e mais descobria coisas 
maravilhosas com a ferramenta, como orientação a objetos, começaram a aparecer 
novos desafios na rotina
 cotidiana de programação. E uma delas era saída de dados para impressoras 
matriciais. Falando direto ao ponto pra quem não gosta de textos muito 
coloquiais, impressão de relatórios em impressoras matriciais.



Muito bati cabeça para procurar ser performático e prático como na época em que 
desenvolvia relatórios em Clipper. Mas no mundo Windows, tudo é gráfico, 
incluindo as saídas impressas. E as alternativas que surgiam não me atendiam 
neste requisito. Muitos me falaram q o ReportBuilder permitia saída em 
matricial na boa, mas ainda não vi isso na prática. QuickReport e 
CrystalReports então, nem se fala! Uns e outros que desenvolvem em .NET dizem 
que o CrystalReports 'güenta' o tranco. O povo do Java diz que 
iReport/JasperRepor ts tb resolve tranquilo. Mas o fato é que na época, as 
alternativas que procurei utilizar não me permitiam ter a mesma praticidade e 
performance que tinha no Clipper, pois todas eram orientadas à saídas gráficas. 
Quem nunca tentou imprimir um relatório do QuickReport em matricial e se 
deparou com aquela lerdeza da cabeça de impressão 'desenhando' as letras no 
papel? Pois é, aí está o motivo! Impressões em
 Windows são desenhadas, pois são gráficas!



Aí o povo começou a tacar pau no Delphi! Claro, qualidade inerente do ser 
humano é falar mal do que não se conhece ou do que não se procura saber a causa 
de tal comportamento! Muitos que bateram cabeça em imprimir em matricial 
começaram a se perguntar indignados, porém sem a mínima noção do teor da 
pergunta: 'Pô, pq o Delphi num vêm com um componente pra imprimir em 
matricial?' Depois de muito pesquisar na Internet sobre maneiras de imprimir em 
matricial de forma rápida, havia me deparado com um componente chamado RDPrint, 
feito por uma empresa brasileira. Eu cheguei a fazer uso dele em uma aplicação 
de retaguarda comercial. Como diriam os mineiros, 'O trem era bão memo, sô!' 
Claro, não tinha um designer gráfico de relatórios como o QuickReport, mas em 
compensação o povo que vinha do Clipper adorou o bichinho! Depois de muito usar 
este componente, uma curiosidade apareceu e uma 'ficha havia caído'.



A curiosidade era saber como o RDPrint era capaz de tal façanha. Fuçando e 
fuçando, descobri q ele apenas fazia uso de chamadas à API do Windows que 
permitiam escrever dados na impressora de maneira crua ('RAW'), sem passar pelo 
gerenciador de impressão. O fato depois foi comprovado depois que vi o código 
fonte de alguns outros componentes free feitos também por brasileiros, como o 
RSPrint e o VDOPrint.



A 'ficha havia caído' depois de uma profunda avaliação de meu cotidiano de 
trabalho juntamente com o Delphi. E nessa minha avaliação, levando em conta 
meus mais de 10 anos trabalhando com Delphi, é óbvio e fato mais que consumado 
que a produtividade nesta ferramenta é fantástica, mas os artefatos que ele 
fornece inicialmente ao desenvolvedor têm o intuito de atenderem, a nível 
mundial, a gregos e troianos (por assim dizer). Ou seja, se houvessem mais e 
mais desenvolvedores ao redor do mundo que tivessem necessidade de impressão 
matricial, com certeza a Borland/CodeGear/ Embarcadero/ Seja-Lá-Qual- 
Será-o-Próximo- Nome/etc teria embutido no produto, desde as suas primeiras 
versões, um componente para gerar impressão em matricial. Portanto, é 
necessário que seja entendido e compreendido o fato de que o Delphi, por ser um 
produto utilizado a nível mundial, não têm a pretensão de realmente ter 
praticamente tudo o que se precisa de uma
 ferramenta de desenvolvimento no que diz respeito de nossas rotinas cotidianas 
de programação. Por dois motivos: (1)Não são todos os desenvolvedores ao redor 
do mundo que têm a mesma necessidade cotidiana, como impressão em impressoras 
matriciais; (2)Por conta do motivo #1, assim como acontece com a Microsoft, a 
Borland deixou o Delphi com um conjunto básico de componentes visuais com o 
intuito de que outros desenvolvedores e/ou empresas de software pudessem 
desenvolver soluções que atendessem necessidades cotidianas específicas, tais 
como as suites(a.k.a. , coleções) de componetes consagradas na comunidade 
Delphi InfoPower, DevExpress e ReportBuilder e componentes de terceiros criados 
por desenvolvedores brasileiros que tiveram enfoque de resolver problemas 
cotidianos de desenvolvedores brazucas, tais como o RDPrint, RSPrint e VDOPrint.



Poderia incluir um terceiro motivo, que seria o fato da equipe de 
desenvolvimento do Delphi não ver como viável desenvolver customizações do 
produto específicas para determinados nichos de mercado, pois um trabalho neste 
sentido consumiria muito tempo para se pesquisar, no meio da comunidade de 
desenvolvedores, as necessidades cotidianas de cada desenvolvedor em cada país, 
e tal tempo seria custoso ($$$) e poderia encarecer o produto final. Podem ser 
especulações ou hipóteses. Julguem como quiser, mas a experiência em 
desenvolvimento, e a forma como as empresas que fornecem ferramentas de 
desenvolvimento de software lidam com o mercado a nível mundial trabalham me 
levam a crer nessas linhas de pensamento.



Um abraço a todos.



Rubem Rocha

Manaus, AM
         
        
        








        


        
        


      Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]

Responder a