Report Service
Ola
Estou desenvolvendo um projeto em vb.net.
é um cadstro de Clientes, Contatos e Cotações de Vendas,
Preciso agora criar um formulário de Relatórios.
Lista de Clientes, Contatos e especialmente de Cotações,
Minha Necessidade é:
1.) Criar um Formulário em que eu POssa escolher os tipos de relatório que possa Vizualizar.
Pensei em criar um Form com Um Split Panel e na Primeiro Panel acrescentar um TreeView com os diversos tipos de relatórios e no Segundo a Ferramento ReportView que busca os relatórios ja criados,
como posso fazer isto? ou seja Clicar no NODE e Buscar o Relatório ja criado.
2.) Existe um Relatório de Cotação que não estou conseguindo criá-lo, é o relatório de Cotação, bem aprecido com o Conceito de Pedido
Empresa >>>Cotação>>>DetalheCotação
Ele diz que os dados Sâo inconsistenes ou Nulos, mas nâo consigo identificar qual o problema ja que no TableAdapter o Método Fill é realizado sem problemas,
Acrescentei o projeto no meu diretório para avalização.
https://www.devmedia.com.br/imagens/discovirtual/175404/SSM/SSM.zip
Fico no aguardo de uma ajuda e a disposição para mais esclarecimentos..
Grato
Fernando Reis
Curtidas 0
Respostas
Luiz Maia
19/05/2009
Ola Fernando,
Vamos por partes, primeiro vc deve fazer uma pagina com o menu de relatorios que deseja invocar.
Depois, vc presivara usar o ReportViewer para visualizar estes relatorios, e dependendo do relatorio escolhido no Menu vc atribui o arquivo .rdbl ao ReportViewer. Lembrando que o ReportViewer é apenas um visualizardor, não um relatorio, ok?
Quanto ao seu outro problema, tenho que avaliar seu projeto e criar o mesmo ambiente em minha maquina para que eu consiga reproduzi-lo. Mas antes disto, tem como me mandar um print screen da tela de erro?
Aguardo
Att
Luiz Maia
GOSTEI 0
Fernando Reis
19/05/2009
Luiz, Obrigado pela Ajuda,
A solução do primeiro caso foi trocar de Report Viwer para CrystalReportViwer , ou seja, troquei de report para Crystal,
Bom e uqanto a situação do Treeview consegui com este código
::
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rpt As New rptEmpresa 'cria um objeto rpt do tipo Relatorios Veiculos
Dim ds As New SSM.SSMDataSet 'data set do tipo dsVeiculos
Dim adapter As New SqlDataAdapter("Select * FROM TBL_EMPRESA", "Data Source=.\SQLEXPRESS;Initial Catalog=SSM;Integrated Security=True") 'objeto adapter usado para preencher o dataset
adapter.Fill(ds, "TBL_EMPRESA") 'preenche o dataset
rpt.SetDataSource(ds) 'altera o datasource do relatorio para o dsVeiculos que est preenchido
CrystalReportViewer1.ReportSource = rpt 'informa o relatorio que ser carregado pelo crystal report viewer
End Sub
Como voce Utiliza os relatórios em Crystal, ou seja, voce cria um formulário para cada Relatório??
Possue alguns artigos para que eu possa estudar mais sobre este assunto?
Lembrando que estou fazendo tudo em aplicativo DESKTOP ok?
Grato
GOSTEI 0
Luiz Maia
19/05/2009
Ola Fernando,
Não tem necessidade de um Form para cada relatorio, pois vc troca apenas o arquivo .rpt (relatorio do crystal) no leitor, no seu caso o ReportViewer do Crystal.
Eu particularmente acho o Crystal mais complicado que o ReportingService para a criação dos arquivos de relatorio.
Quanto as referência de Crystal Report, aqui vão algumas.
https://www.devmedia.com.br/articles/viewcomp.asp?comp=3450
Veja este artigo de Crystal com Windows App. Caso não tenha acesso me avise que providencio para vc, ok?
Abraços
Att
Luiz Maia
GOSTEI 0
Fernando Reis
19/05/2009
Ola Luiz ,
Este artigo eu ja li e foi uma referência, agradeço a indicação,
Concordo com voce que o Crystal Report seja um pouco mais complicado, mas foi o com ele que consegui resolver o problema da Query comentada no outro POst.
Me parece que quando no Report eu faço um Query, ou uso uma View do SQL Server que tenha JOIN em mais de 3 tabelas ele se perde todo,
Veja no arquivo zip que enviei que há um arquivo SQL na Pasta Documento, é ele que cria o Ambiente,
POderia me ajudar com este arquivo Projeto e tentar identificar este problema?
Grato
GOSTEI 0
Luiz Maia
19/05/2009
Ola Fernando, dei uma olhada na sua view ViewPiramide, e não vi nada de errado.
Criei uma aplicação Web aqui usando seu base de dados e criei um relatorio usando a View dentro de um DataSet tipado, funcionou perfeitamente.
O Projeto que criei esta em anexo.
Não usei vb e sim C#, estou sem o VB instalado aqui, mas acredito que isto nao tem nada a ver com o problema.
Exibe algum tipo de excessão?
http://video.devmedia.com.br/naoexclusivo/LuizMaia/Consultoria/fernando03.zip
Aguardo.
Abraços
Luiz Maia
GOSTEI 0
Fernando Reis
19/05/2009
Ola Luiz,
tente este tipo de query:
SELECT dbo.TBL_FUNCIONARIO.NOME_FUNC, dbo.TBL_EMPRESA.NOME_EMP, dbo.TBL_EMPRESA.CONTATOFATUR_EMP,
dbo.TBL_EMPRESA.EMAILFATUR_EMP, dbo.TBL_PROJETO.NOME_PROJ, dbo.TBL_PRODUTO.NOME_PROD,
dbo.TBL_DETALHEPROJETO.QTDE_PROD, dbo.TBL_CLASSIFICACAO.NOME_CLASS
FROM dbo.TBL_EMPRESA INNER JOIN
dbo.TBL_FUNCIONARIO ON dbo.TBL_EMPRESA.CODIGO_FUNC = dbo.TBL_FUNCIONARIO.CODIGO_FUNC INNER JOIN
dbo.TBL_PRODUTO INNER JOIN
dbo.TBL_DETALHEPROJETO ON dbo.TBL_PRODUTO.CODIGO_PROD = dbo.TBL_DETALHEPROJETO.CODIGO_PROD INNER JOIN
dbo.TBL_PROJETO ON dbo.TBL_DETALHEPROJETO.CODIGO_PROJ = dbo.TBL_PROJETO.CODIGO_PROJ ON
dbo.TBL_EMPRESA.CODIGO_EMP = dbo.TBL_PROJETO.CODIGO_EMP INNER JOIN
dbo.TBL_HISTORICO ON dbo.TBL_PROJETO.CODIGO_PROJ = dbo.TBL_HISTORICO.CODIGO_PROJ INNER JOIN
dbo.TBL_CLASSIFICACAO ON dbo.TBL_HISTORICO.CODIGO_CLASS = dbo.TBL_CLASSIFICACAO.CODIGO_CLASS
è neste tio que esta acontecendo o problema.
tente este tipo de query:
SELECT dbo.TBL_FUNCIONARIO.NOME_FUNC, dbo.TBL_EMPRESA.NOME_EMP, dbo.TBL_EMPRESA.CONTATOFATUR_EMP,
dbo.TBL_EMPRESA.EMAILFATUR_EMP, dbo.TBL_PROJETO.NOME_PROJ, dbo.TBL_PRODUTO.NOME_PROD,
dbo.TBL_DETALHEPROJETO.QTDE_PROD, dbo.TBL_CLASSIFICACAO.NOME_CLASS
FROM dbo.TBL_EMPRESA INNER JOIN
dbo.TBL_FUNCIONARIO ON dbo.TBL_EMPRESA.CODIGO_FUNC = dbo.TBL_FUNCIONARIO.CODIGO_FUNC INNER JOIN
dbo.TBL_PRODUTO INNER JOIN
dbo.TBL_DETALHEPROJETO ON dbo.TBL_PRODUTO.CODIGO_PROD = dbo.TBL_DETALHEPROJETO.CODIGO_PROD INNER JOIN
dbo.TBL_PROJETO ON dbo.TBL_DETALHEPROJETO.CODIGO_PROJ = dbo.TBL_PROJETO.CODIGO_PROJ ON
dbo.TBL_EMPRESA.CODIGO_EMP = dbo.TBL_PROJETO.CODIGO_EMP INNER JOIN
dbo.TBL_HISTORICO ON dbo.TBL_PROJETO.CODIGO_PROJ = dbo.TBL_HISTORICO.CODIGO_PROJ INNER JOIN
dbo.TBL_CLASSIFICACAO ON dbo.TBL_HISTORICO.CODIGO_CLASS = dbo.TBL_CLASSIFICACAO.CODIGO_CLASS
è neste tio que esta acontecendo o problema.
GOSTEI 0
Luiz Maia
19/05/2009
Fernando,
Rodei esta query aqui e funcionou perfeitamente, tem como me mandar a tela de erro, assim posso dar uma avaliada no que realmente pode estar acontecendo.
Aguardo
Att
Luiz Maia
GOSTEI 0
Fernando Reis
19/05/2009
Luiz o problema estava nas CONTRAINTS do banco.
agora eu resolvi,
obrigado
GOSTEI 0
Luiz Maia
19/05/2009
Ah sim, sabia que não era da Query nem de numero de Joins no ReportingServices, por isto que eu testava aqui e sempre funcionava.
Abraços
Att
Luiz Maia
GOSTEI 0