Escolha de componente para relatórios

Delphi

03/10/2007

[color=red:9721a1cd97]Título editado por Massuda Por favor, não use apenas letras maiúsculas no título/texto. No caso de reincidência, seus tópicos poderão vir a ser bloqueados. Leia as :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.[/color:9721a1cd97]
Olá,

Estou com uma dúvida, se existe algum componente para criação de relatórios, que possibilite ao usuário alterar a posição dos campos em tempo de execução.
Ou seja, caso o usuário deseje movimentar acertanto os campos para uma impressão correta em um campo de formulário impresso.
Falo tanto em desenvolver um Form, que possibilite ele fazer isto ou em um próprio Preview do componente.

Alguém sabe se isto é possível?
Se existe algum componente pago com esta finalidade?

Agradeço repostas.
Att.


Devmedia

Devmedia

Curtidas 0

Respostas

Devmedia

Devmedia

03/10/2007

Meu sistema esta sendo desenvolvido em Delphi 7.
Banco de Dados: MySQL 5.0.27
Conexão: dbexpress com dll e drivers para MySQL 5


GOSTEI 0
Picyka

Picyka

03/10/2007

Meu sistema esta sendo desenvolvido em Delphi 7. Banco de Dados: MySQL 5.0.27 Conexão: dbexpress com dll e drivers para MySQL 5


Nossa como vc conseguiu se conectar no mysql usando o dbexpress ja tentei com o d7 tambem mais sempre deu erro quando carrega uma dll la ate me esqueci o nome so consefui conectar usando o delphi 2007 como que vc fez a sua conexao ???
hehehehhe

abraços
t.+


GOSTEI 0
Fabiano Góes

Fabiano Góes

03/10/2007

[quote:9c5000c801=´lucasfss´]Meu sistema esta sendo desenvolvido em Delphi 7. Banco de Dados: MySQL 5.0.27 Conexão: dbexpress com dll e drivers para MySQL 5


Nossa como vc conseguiu se conectar no mysql usando o dbexpress ja tentei com o d7 tambem mais sempre deu erro quando carrega uma dll la ate me esqueci o nome so consefui conectar usando o delphi 2007 como que vc fez a sua conexao ???
hehehehhe

abraços
t.+[/quote:9c5000c801]

cara eu tb tive esse problema e só consegui a conexão com D2007.

será que o amigo poderia nos dar a dica ???


GOSTEI 0
Devmedia

Devmedia

03/10/2007

Claro que posso ajudar. Segue a dica.

Por Lucas Ferreira;


1º - Voce tem que baixar esta dll que é correposndente ao MySQL 5

http://www.planetadelphi.com.br/delphi/componentes/banco_de_dados/00004551.rar

2º - Coloque a dll na pasta C:\Arquivos de Programas\Borland\Delphi7\Bin

3º - Com isso voce Insere os seguintes componentes:

> dbExpress
1 - SQLConnection
1 - SQLQuery
1 - ClientDataSet

>Data Access
1 - DataSetProvider
1 - DataSource

4º - No componente SQLConection voce atribui em ConnectionName como MySQLConnection
Muda as propriedades GETDriverFunc para getSQLDriverMYSQL50, e a propriedade Libraryname para dbxopenmysql50.dll
A propriedade Vendor lib continua libmysql.dll
Aí é só por em Params o host, a base de dados, o usuário e a senha para conectar.

5º - SQLQuery -> SQL voce coloca a sua instrucao sql:
Exemplo:

select * from nome_da_sua_tabela

SQLQuery -> SQLConnection voce seta o seu componente SQLConnection.

6º - DataSetProvider -> DataSet voce seta SQLQuery

7º - ClientDataSet -> ProviderName voce seta DataSetProvider
Depois voce dá um duplo clique em cima do componente, ele abrira uma janela onde voce adicionara os campos da tabela.
Clicando com o botão invertido (Direito) do mouse, depois em AddFields ou AddAllFields voce adiciona os campos.
Feito isso, automaticamente o componente recebe os campos da sua tabela especificada em SQLQuery.

8º - DataSource -> DataSet voce seta ClientDataSet


Feito isto, voce concluiu a conexão.
Pode sim ou não marcar os componentes com Active -> True
Isso vai depender da sua nescessidade de fazer a conexão em tempo de execução ou não. A seu critério.

Conclusão:

Muito melhor MySQL ... hehehe.
Tive que me virar pra fazer isto funcionar. Juntanto várias informações.
Lembrando que se voce não quiser utilizar MySQL 5 e Quiser manter qualquer outra versão 4,3,2,1 é só manter as configurações padrões do componente.
Não esquecendo que a dll ´libmysql.dll´ tem que estar dentro de C:\Windows independente da sua versão do MySQL, se não seu programa não vai funcionar nunca.


Espero ajudar.
Abraço a todos.
Att.
_________________
_lucasfss


GOSTEI 0
Devmedia

Devmedia

03/10/2007

desculpe-me pelos erros de português.
é porque postei isto aqui correndo e tenho que voltar correndo.


Mas alguém pode responder minha dúvida ????


GOSTEI 0
Rodc

Rodc

03/10/2007

O ReportBuilder tem um ´Gerador de Relatórios´ onde o próprio usuário (caso você permita) pode criar ou alterar um relatório. E os relatórios ficam no Banco de Dados, não no programa.


GOSTEI 0
Jhosef

Jhosef

03/10/2007

Oia soh... pelo o que eu entendi

Aqui na clubedelphi tem uma artigo/video que ensina a fazer isso com Rave se naum to enganado...

[url=https://www.devmedia.com.br/articles/viewcomp.asp?comp=491]Artigo[/url]
[url=https://www.devmedia.com.br/articles/viewcomp.asp?comp=2971]Video[/url]

Aqui na minha empresa a maioria dos relatórios são montados pelos próprios clientes, temos uma tabela mestre que armazena as principais configurações do relatório como titulo, orientação, rodapé e assim por diante e uma tabela detalhe q armazena os campos que serão impressos, rótulos, shapes e assim por diante, esses relatórios são gerados pelo quick report da para fazer pelo rave tbem... [url=http://www.nevrona.com/Default.aspx?tabid=53]Artigos da Nevrona[/url]

Dica: Vc naum cria formulários dinamicamente, criando TEdits e Labels em tempo de runtime??? com o quick eh a mesma coisa, com a diferença que vc precisa atualizar o Fields tambem...

Usando quick report a semelhança entre construir um formulário e um relatório dinamicamente se torna grande...

Como naum tenho familiaridade em construir relatorios dinamicos com Rave, naum posso dar sugestão sobre esse, soh o site q citei...

Mas para relatórios estáticos prefiro rave...


GOSTEI 0
Devmedia

Devmedia

03/10/2007

Ok.
Muito Obrigado pelas respostas.
Vou dar uma lida, estudar o artigo. Se conseguir volto para informar.
Se mais alguém puder tambem dar outras opções de apoio. Serão muito bem vindas.


Agradeço aos dois.
Obrigado.
Att.


GOSTEI 0
Devmedia

Devmedia

03/10/2007

1 - ClientDataSet


Corrigindo minha falha.
Este é um componente da paleta DataAcess.
Desculpe o erro.
Att.


GOSTEI 0
Luboc

Luboc

03/10/2007

Oi,

Também existem outros geradores de reports, com alteração em execução, através de um ´designer´:

»» FastReport - http://fast-report.com/en/
»» Report Builder - http://www.digital-metaphors.com

Cada Report é um ficheiro, onde está a estrutura da impressão, com as ligações ao BD. Depois, na aplicação chamamos o Designer, que funciona como outra aplicação, com ele carregamos o report, onde vemos a estrutura, realizamos as modificações e gravamos. Depois, de volta à nossa aplicação, basta imprimir e ver as mudanças realizadas.

Eu usei o Report Builder, uma versão para o Delphi 5, e funcionava muito bem.

O ideal será verificar o tipo de listagens que pretendemos obter e depois saber se o Componente consegue realizar isso e de que forma! Pode ser muito trabalhoso conseguir fazer determinado tipo de listagens e outras vezes nem ser possível.

Fiquem bem,
LuBoc


GOSTEI 0
Cflima

Cflima

03/10/2007

Caro Lucas,
por favor, vc saberia me dizer o que provoca um erro de conexão com o mysql no delphi 2007 onde aparece a seguinte mensagem:
Access violation at address 112EDF48 in module ´dbxmys30.dll´. Read of address 00000050.
Esse erro não ocorre no delphi 7
Estou usando o mysql versão 5.0.41.
Muito obrigado,
Cássio

Claro que posso ajudar. Segue a dica. Por Lucas Ferreira; 1º - Voce tem que baixar esta dll que é correposndente ao MySQL 5 http://www.planetadelphi.com.br/delphi/componentes/banco_de_dados/00004551.rar 2º - Coloque a dll na pasta C:\Arquivos de Programas\Borland\Delphi7\Bin 3º - Com isso voce Insere os seguintes componentes: > dbExpress 1 - SQLConnection 1 - SQLQuery 1 - ClientDataSet >Data Access 1 - DataSetProvider 1 - DataSource 4º - No componente SQLConection voce atribui em ConnectionName como MySQLConnection Muda as propriedades GETDriverFunc para getSQLDriverMYSQL50, e a propriedade Libraryname para dbxopenmysql50.dll A propriedade Vendor lib continua libmysql.dll Aí é só por em Params o host, a base de dados, o usuário e a senha para conectar. 5º - SQLQuery -> SQL voce coloca a sua instrucao sql: Exemplo: select * from nome_da_sua_tabela SQLQuery -> SQLConnection voce seta o seu componente SQLConnection. 6º - DataSetProvider -> DataSet voce seta SQLQuery 7º - ClientDataSet -> ProviderName voce seta DataSetProvider Depois voce dá um duplo clique em cima do componente, ele abrira uma janela onde voce adicionara os campos da tabela. Clicando com o botão invertido (Direito) do mouse, depois em AddFields ou AddAllFields voce adiciona os campos. Feito isso, automaticamente o componente recebe os campos da sua tabela especificada em SQLQuery. 8º - DataSource -> DataSet voce seta ClientDataSet Feito isto, voce concluiu a conexão. Pode sim ou não marcar os componentes com Active -> True Isso vai depender da sua nescessidade de fazer a conexão em tempo de execução ou não. A seu critério. Conclusão: Muito melhor MySQL ... hehehe. Tive que me virar pra fazer isto funcionar. Juntanto várias informações. Lembrando que se voce não quiser utilizar MySQL 5 e Quiser manter qualquer outra versão 4,3,2,1 é só manter as configurações padrões do componente. Não esquecendo que a dll ´libmysql.dll´ tem que estar dentro de C:\Windows independente da sua versão do MySQL, se não seu programa não vai funcionar nunca. Espero ajudar. Abraço a todos. Att. _________________ _lucasfss



GOSTEI 0
Devmedia

Devmedia

03/10/2007

4º - No componente SQLConection voce atribui em ConnectionName como MySQLConnection Muda as propriedades GETDriverFunc para getSQLDriverMYSQL50, [color=blue:d181aad14c]e a propriedade Libraryname para dbxopenmysql50.dll [/color:d181aad14c] A propriedade Vendor lib continua libmysql.dll Aí é só por em Params o host, a base de dados, o usuário e a senha para conectar.


Voce fez isso?

Att.


GOSTEI 0
Rlindgren

Rlindgren

03/10/2007

Lucas,

Vc conseguiu fazer os relatórios dinâmicamente?

Renata


GOSTEI 0
Devmedia

Devmedia

03/10/2007

Lucas, Vc conseguiu fazer os relatórios dinâmicamente? Renata


Infelizmente não.
Um abraço.


GOSTEI 0
POSTAR