Fórum Report Viewer Dinamico #5388
06/05/2009
Boa noite...
Estou precisando utilizar o Report Viewer de forma dinâmica, na qual ele conseguisse enxergar minhas classes de negócio e entidade para eu poder ter maior flexibilidade, não utilizo dataset tipado, apenas via código.
Gostaria de um exemplo, mesmo que simples... porém resgatando de classes definidas por código, tudo por código... inclusive select com parâmetros.
Após isso gostaria de imprimir o relatório direto, sem precisar visualiza-lo.
Att,
Vinicius Climaco.
Posts
07/05/2009
[devmedia .net]
Olá Vinícius, tudo bem ?
Bom, não entendi ao certo o que deseja...
Pode ser uma pouco mais específico , exemplificar talvez fique melhor...
Caso eu tenho entendido bem.. faça o seguinte..
Criando os relatórios em camadas (Com DataSet):
Na "camada de apresentação" vc vai ter os relatórios (sem dados) juntamente com os formulários do projeto correto? Então, vc precisa apenas criar o relatório (Crystal Reports ou ReportView) com base em um DataSet apenas para fazer o designer e depois "definir" o DataSource do Relatório através da "camada de negócio".
Você adiciona um novo item ao projeto do tipo DataSet, com o DataSet aberto vc vai criar um novo item do tipo DataTable e vai definir os atributos "campos" do seu relatórios. Não estou fazendo nenhum vinculo com o banco de dados ou qualquer tipo de conexão, apenas estou criando um arquivo XML que possui a estrutura necessária para fazer o designer do relatório.
O resto é fazer o designer do reportview e carregar os dados, conforme os exemplos existentes nos webcasts "vídeos" sobre construção de relatórios com ReportView e CrystalReports.
Segue um curso sobre ReportViewer bem completo pode ajudar...
https://www.devmedia.com.br/articles/viewcomp.asp?comp=4372
Caso não tenha acesso a mesma favor entrar em contato que lhe daremos acesso
gratuitamente.
Abraços
Carlos Jr
07/05/2009
Vinicius Climaco
Boa noite...
Assim, digamos que você esta certo e não, eu queria algo, onde eu tenho minha classe entidade exemplo Pessoa onde teria os atribuitos Id, Nome, Telefone, Data Nascimento, com seus respectivos get´s e set´s, ou seja, gostaria de conseguir enxergar no designer essa camada, onde os campos seria resgatado deste meu campo, sem eu ter que criar um DataSet Tipado com os campos, porque senão eu teria um retrabalho de criar cada Entidade e talz... não seria algo muito bom né...
Ai depois o DataSet seria a camada de negócio ou de mapeamento, ou seja, ali eu teria a interação com meu banco de dados e a camada entidade.
Bem é isso, você teria um exemplo disso ?
Abç,
Vinicius Climaco.
07/05/2009
[devmedia .net]
Olá,
mas se seguir minhas orientações que passei você consegue fazer isso ...
Você quer mapear os dados retornados da base de dados direto no classe ??
Isso você só conseguirá utilizando LINQ, caso contrário não se consegue atribuir valores a classe de entidade,
sem ter um objeto de retorno , seja ele dataset ou datareader...
Pois vc precisa passar por esses objetos para popular suas classes...
Minhas orientações abaixo lhe passam o que você deve fazer...
Siga esse exemplo que eu fiz..
Fiz o seguinte:
Na minha Solution tenho 2 projetos:
1 projeto contendo a Entity (somente com as classes)
1 projeto contendo a UserInterface (contendo a camada de apresentação)
Adicionei no projeto UserInterface uma referencia para Entity
Adicionei um relatorio na Entity e fiz o processo para fazer o designer (utilizando a opção Database Expert) e selecionei a classe pelo item .NET Objects
Code Snippet
namespace XX
{
public partial class XX2
{
protected object _NomeLocalidade;
protected object _IdEstado;
public object NomeLocalidade
{
get { return (_NomeLocalidade); }
set { _NomeLocalidade = value; }
}
public object IdEstado
{
get { return (_IdEstado); }
set { _IdEstado = value; }
}
Depois, fui na User Interface e também adicionei um relatório e ao selecionar a opção Database Expert e selecionar a opção .NET Objects "lá estava a classe XX2"
Acho que agora vai! Dessa forma o relatório passou a reconher as classes que estavam em outra camada que fazem parte da mesma solução. Além disso, removi o relatório da Entity
Caso ainda não seja isso , fico no aguardo..
Abraços
Carlos Jr
08/05/2009
Vinicius Climaco
Aonde eu vejo esse database expert ? só encontrei datasource e ao incluir um, ele inclui um dataset tipado... :(
08/05/2009
[devmedia .net]
Opa, blz ?
DataBase Expert é o nome da base de dados...
Como falei também criar o dataset tipado é proposital,
depois você irá excluí-lo...
Eu explico isso também ...
Abraços
Carlos Jr
12/05/2009
[devmedia .net]
Por falta de resposta encerramos o seu chamado. Caso ainda possua alguma dúvida sobre esse assunto, por favor, post a mesma que o consultor voltará a lhe atender e o chamado será reaberto.
Carlos Júnior
12/05/2009
Vinicius Climaco
Bom dia...
Não posso dar como concluído, pois não consegui ainda colocar para funcionar com sucesso o que me recomendou.
Se me enviasse a solução, onde eu adequaria a uma realidade simples aqui, talvez fosse mais facil.
Att,
Vinicius Climaco.
12/05/2009
[devmedia .net]
Olá Vinicius, tudo bem ?
Tente seguir as instruções abaixo:
Na "camada de apresentação" vc vai ter os relatórios (sem dados) juntamente com os formulários do projeto correto? Então, vc precisa apenas criar o relatório (Crystal Reports ou ReportView) com base em um DataSet apenas para fazer o designer e depois "definir" o DataSource do Relatório através da "camada de negócio".
Você adiciona um novo item ao projeto do tipo DataSet, com o DataSet aberto vc vai criar um novo item do tipo DataTable e vai definir os atributos "campos" do seu relatórios. Não estou fazendo nenhum vinculo com o banco de dados ou qualquer tipo de conexão, apenas estou criando um arquivo XML que possui a estrutura necessária para fazer o designer do relatório.
Não tenho seu projeto para que eu possa entender ao certo o que deseja,
caso ainda tenha alguma dúvida me envie seu projeto (funcional), e eu lhe passo uma solução
direcionada exatamente ao seu problema.
Abraços
Carlos
15/05/2009
[devmedia .net]
Olá Vinícius, estou aguardando seu contato !
conseguiu fazer o relatório ?
No aguardo..
Abraços
Carlos Jr
15/05/2009
Vinicius Climaco
Bom dia...
Vou testar neste fds e te dou um retorno...
Abração
Vinicius,
o consultor está esperando a sua reposta para dar prosseguimento ao chamado.
20/05/2009
Vinicius Climaco
Ok... Estarei testando, pois o que foi dito até agora não foi o suficiente...
Vinicius,
a consultoria existe justamente poara ajudar aos nossos clientes sobre assuntos abordados nesse serviço. Par isso contamos com uma equipe de ótimos consultores q estão dispostos a resolver suas dúvidas totalmente.
Por isso, pedimos que vc poste suas dúvidas e esclareça ao consultor em quem ponto ele não estar sendo claro. Com certeza ele vai lhe ajudar.
21/05/2009
[devmedia .net]
Caro Vinícius,
estou aqui para lhe ajudar, caso não tenha te ajudado na solução,
é só falar, sem você me disser no que eu não consegui lhe ajudar,
eu posso estar revendo o caso e tentando lhe ajudar novamente.
Abraços
Carlos Jr
21/05/2009
Vinicius Climaco
Faz o seguinte... Preciso de um exemplo em código disso que você me explicou... Algo que eu possa baixar e ver como foi feito.