Array
(
)

Geradores de Relatórios - Grandes Dúvidas

Andrealkmin
   - 14 dez 2005

Colegas, boa tarde!

Estive lendo tudo que já foi dito sobre os geradores de Relatórios para Delphi no Fórum, mas estou em uma dúvida cruel.

Desenvolvemos usando o Rave, até ontem eles nos atendia para aquilo que precisavamos, hoje nossos relatórios estão ficando mais complexos, gerando consultas muito grandes dificieis e trabalhosas (gastando muito tempo de desenvolvimento e ainda não fica da melhor forma).

Estamos pensando parar com o Rave por aqui e começar a desenvolver os novos relatórios com uma ferramenta mais prática, rapida, queries, enfim...

Estive lendo a respeito pensei no Crystal Reports e no FastReport, porém preciso de algumas informações a respeito destes, para tomar essa importante decisão...

Na minha opinião considero o Crystal o melhor (a forma que trata o banco de dados, tabelas e campos calculáveis, etc), porém tem essas tais ´Dlls´ e ´Ocxs´ que me dão arrepio, na hora de distribuir o software...O que vcs podem me falar a respeito do Crystal?

Por outro lado li a respeito do FastReport, achei bem interessante e fácil, porém nao encontrei nem uma apostila decente para começar a ler....o que vcs podem me ajudar a respeito deste?

Colegas fico no aguardo, pois preciso melhorar o desenvolvimento dos reports....

Obrigado :wink: .

André Alkmin


Edilcimar
   - 14 dez 2005

Apesar de dar mais trabalho, imprimir um relatório na ´munheca´, sai exatamente como você quer, e com a vantagem de não precisar incluir nenhuma dll ou outra coisa qualquer junto com o aplicativo. Isto é apenas uma opinião, é o que eu uso, mas é claro que é escolha de cada um


Jairroberto
   - 14 dez 2005

Olá, André!

Sou usuário do FastReport há mais de um ano com ótimos resultados. O designer é excelente, disponível para o usuário final sem qualquer custo adicional; a utilização de scripts (o Pascal é quase igual ao Delphi) é fundamental na elaboração de relatório mais complexos e personalizados, chegando exatamente ao resultado esperado; a integração de funções personalizadas no designer via Delphi dá um aspecto muito profissional ao aplicativo, pois as funções necessárias especificamente para o seu produto passam a estar disponíveis até mesmo para o usuário final; a possibilidade de salvar os relatórios em arquivos ou campos blob agilizam o processo de atualização e permitem a criação de controles de permissões por relatório, permitindo ainda a centralização do mecanismo de relatórios do seu aplicativo em um data módulo e um diálogo de seleção de visualização, impressão e modificação (há um exemplo acompanhando o produto); a facilidade de criação e exibição de um índice na visualização dos relatórios também ajuda bastante ao usuário final a tirar um melhor proveito dos relatórios gerados; a possibilidade de interação do usuário final com as informações do relatório visualizado podem ser bastante útil em alguns casos; a partir da versão 3, há também a possibilidade de criação visual de relatórios para impressoras matriciais, no mesmo designer dos relatórios gráficos, o que passa a atender a uma demanda incessante de nossos clientes devido à necessidade de impressão de notas fiscais ou mesmo devido ao baixo custo deste tipo de impressão em comparação com jato de tint

Vale a pena baixar a versão trial e os manuais para saber mais a respeito dessa excelente ferramenta que foi eleito o ´produto do ano´ de 2004 pelos leitores da Delphi Informant Magazine.

Um abraço,
Jair


Jairroberto
   - 14 dez 2005

a; isso tudo sem falar no servidor de relatórios web e no FastReport Studio para .NET.

Andrealkmin
   - 15 dez 2005

Jair, gostaria de saber se possue apostilas ou material que possa me auxiliar...e se puder me enviar....
Outra coisa é saber se o FastReport trabalha com campos ´texto´ calculado...

Desde já agradeço pela ajuda.

Abraço
André Alkmin
andre@k2informatica.com.br


Jairroberto
   - 15 dez 2005

Olá, André!

Você encontra o material (manuais e arquivos de ajuda) no site do fabricante do FastReport (www.fast-report.com/en).

Não entendi bem o que você quis dizer com campo texto calculado, mas ele aceita campos calculados de Datasets externos e também permite que você utilize variáveis no script do relatório para calcular o que quiser, utilizando essas mesmas variáveis nos memos do relatório. Os exemplos que acompanham a versão de demonstração são bastante esclarecedores, em especial o demo da pasta ´Main´ que possui diversos relatórios mostrando diversas funções do FR.

Um abraço,
Jair


Andrealkmin
   - 26 dez 2005

O campo calculado que me refiro...é como se fosse o report do acess, que vc pode pegar um valor de um campo (numerico) e fazer operações (+, -, x, /) com outro campo.


Ex.: Datatext(total)=datatext(valor total do faturamento) / datatext (valor total da Nota)*100

Outra coisa que preciso saber se ele tem a opção para trabalhar com sub-relatórios.

Valeu Obrigado e Feliz 2006.


Jairroberto
   - 26 dez 2005

Olá, André!

O FastReport possui um mecanismo integrado para interpretação de scripts (Pascal, Java, C ou Basic). Esses scripts são parte integrante de cada relatório e permitem o acesso a objetos do Delphi pré-definidos pelo fabricante e também a objetos, procedimentos e funções que você quiser integrar a ele. O script tem acesso também a todos os objetos do relatório, podendo facilmente alterar as propriedades definidas para cada um deles, como visibilidade, posicionamento, cor, texto, etc.. No script você pode, por exemplo, definir uma variável global que pode ser referenciada em qualquer objeto TfrxMemo do relatório. Veja um exemplo do script:

#Código


var
MeuValor: Currency

procedure BandDadosBeforePrint(Sender: TfrxComponent)
begin
MeuValor := <qryCadastro."Valor1"> + <qryCadastro."Valor2">;
end;


Com esse código definido no script do relatório, é possível utilizar a variável ´MeuValor´ como conteúdo de um memo colocado na banda ´BandDados´. No exemplo, a propriedade ´Memo´ do objeto ´MemoMeuValor´ da banda ´BandDados´ poderia ser simplesmente [MeuValor], e apresentaria o resultado do cálculo realizado no evento ´BeforePrint´ da banda ´BandDados´, conforme definido no script. Veja que o código do script é muito semelhante ao Delphi, permitindo a utilização de elementos presentes no relatório. Continuo achando que você deve baixar a versão trial para experimentar e confrontar o produto com as suas necessidades reais.

Ele trabalho com sub-relatórios e também trabalha muito facilmente com relatórios compostos (composite reports).


Um grande abraço e feliz 2006!
Jair


Andrealkmin
   - 26 dez 2005

Jair, baixei e achei excelente...vc tem razão...

Deixa eu fazer uma ultima pergunta...vc tem um exemplo de form de parametro (data inicial e data final) que forneça essas informações para o report...como vc fez para a tela de parametros? usou o form do Delphi ou direto no FR?

Desde já muito obrigado, nos ajudou muito.

té +

Abraço.


Jairroberto
   - 26 dez 2005

Olá, André!

Criei um relatório de exemplo baseado no relatório 42.fr3 do demo ´Main´ do FR3. Para baixá-lo [url=http://www.microflex.com.br/download/demo/42a.fr3]clique aqui[/url].

Utilize o modo de Design do Demo ´Main´ para abrir este arquivo. Ele utiliza o banco de dados DBDEMOS via BDE. É só um exemplo, mas serve para dar uma idéia da simplicidade que é emitir um relatório de um período de datas usando somente as ferramentas do FR3. Você vai ver no exemplo que eu não usei qualquer código em Delphi para gerar o relatório. Usei apenas o mecanismo do FR3 para conectar com o banco de dados usando BDE (poderia ser DBX ou IBX ou ADO ou outro), criar uma query com dois parâmetros do tipo Date, criar um formulário para solicitar essa informação para o usuário e atribuir esta informação usando o próprio diálogo de parâmetros da Query referenciando os próprios componentes DateEdit do diálogo de parâmetros.

Respondendo à sua pergunta, uso o Delphi apenas para criar as rotinas que necessito para ter liberdade total de criação dos relatórios no designer do FR3. Se preciso de uma função para obter uma informação específica, não disponível no script, crio esta função no Delphi e adiciono ela no FR para acessá-la a partir do designer. Desenho todos os meus relatórios no FR3 em run-time, ou seja, executo o aplicativo para o qual preciso criar ou alterar os relatórios, abro o designer a partir de uma função que disponibilizo para os usuários do sistema e passo a usar o FR3 como um usuário do meu aplicativo faria, sem intervenção do Delphi. Para atrelar os relatórios ao meu aplicativo, o único cuidado que tomo é utilizar o componente de conexão do meu aplicativo em Delphi para servir os relatórios com os dados necessários, o que é facilmente configurável no DataModule em que coloco os componentes do FR comuns a todo o meu aplicativo.


Um abraço,
Jair


Andrealkmin
   - 26 dez 2005

o link que me passou não está abrindo...

Eu vou usar com Interbase....sabe se dá pra criar relacionamentos entre as tabelas no FR?


Jairroberto
   - 26 dez 2005

Olá, André!

Sem problema. Funciona igualzinho ao Delphi.
Se você quiser posso te mandar por e-mail o arquivo que você não conseguiu baixar. Basta me informar o seu endereço de e-mail (pode ser com uma mensagem particular aqui pelo fórum mesmo para não publicar o seu endereço).


Um abraço,
Jair


Andrealkmin
   - 26 dez 2005

andre@k2informatica.com.br


Marciosystem
   - 01 set 2009

Se tiver como postar codigo novamente, agradeco.


Citação:
Olá, André!

Criei um relatório de exemplo baseado no relatório 42.fr3 do demo ´Main´ do FR3. Para baixá-lo [url=http://www.microflex.com.br/download/demo/42a.fr3]clique aqui[/url].

Utilize o modo de Design do Demo ´Main´ para abrir este arquivo. Ele utiliza o banco de dados DBDEMOS via BDE. É só um exemplo, mas serve para dar uma idéia da simplicidade que é emitir um relatório de um período de datas usando somente as ferramentas do FR3. Você vai ver no exemplo que eu não usei qualquer código em Delphi para gerar o relatório. Usei apenas o mecanismo do FR3 para conectar com o banco de dados usando BDE (poderia ser DBX ou IBX ou ADO ou outro), criar uma query com dois parâmetros do tipo Date, criar um formulário para solicitar essa informação para o usuário e atribuir esta informação usando o próprio diálogo de parâmetros da Query referenciando os próprios componentes DateEdit do diálogo de parâmetros.

Respondendo à sua pergunta, uso o Delphi apenas para criar as rotinas que necessito para ter liberdade total de criação dos relatórios no designer do FR3. Se preciso de uma função para obter uma informação específica, não disponível no script, crio esta função no Delphi e adiciono ela no FR para acessá-la a partir do designer. Desenho todos os meus relatórios no FR3 em run-time, ou seja, executo o aplicativo para o qual preciso criar ou alterar os relatórios, abro o designer a partir de uma função que disponibilizo para os usuários do sistema e passo a usar o FR3 como um usuário do meu aplicativo faria, sem intervenção do Delphi. Para atrelar os relatórios ao meu aplicativo, o único cuidado que tomo é utilizar o componente de conexão do meu aplicativo em Delphi para servir os relatórios com os dados necessários, o que é facilmente configurável no DataModule em que coloco os componentes do FR comuns a todo o meu aplicativo.


Um abraço,
Jair



Spleen
   - 01 set 2009

Bom, sou usuário do Rave, e até aqui não lí nada que vcs falaram que eu tenha dificuldade em fazer no Rave...
Campo cálculado é super fácil de fazer.. tanto na query do delphi, quanto no próprio rave... É só vc ir em page/Params.. e definir uma variável.
Daí vc cria um OPCalc seleciona o param que vc criou, escolhe os campos que você quer somar, seja ele field ou variável, escolhe a operação e pronto... Oque exatamente o fast faz melhor?