none
Report Viewer + SubReport RRS feed

  • Pergunta

  • Caros Colegas, depois de várias e várias tentativas de estudo e consulta estou aqui para solicitar um auxilio de vocês.

    É o seguinte:

    Tenho 2 ObjectDataSource's (Pai e Filho) sendo que pretendo fazer o relatório "Mestre/Detalhe" ou "Pai/Filho" conforme a forma de falar de cada um.

    Na figura abaixo mostra como estão meus ObjectDataSource - todos eles com parâmetros.

    Figura 01


    Já no relatório "Pai", coloquei um SubReport com os seguintes os parâmetros ID_INCIDENTES e apontando para meu campo ID do Pai.

    No código coloquei os parâmetros e tudo... 

    Figura 05

    Só que ao executar o relatório aparece a seguinte mensagem: "An error occurred during local report processing. Valor não pode ser nulo. Nome do parâmetro: value"

    O que eu posso fazer para solucionar este problema? 

    Obrigado a todos...!!!

    quinta-feira, 9 de agosto de 2012 17:33

Respostas

  • Ola Marcos.

    Obrigado pela resposta. Mas não funcionou desta forma q vc tinha comentado. Consegui resolver da seguinte forma:

    * Retirei o Parameters do SubReport.

    * E no código alterei para:

    Figura 01

    sexta-feira, 10 de agosto de 2012 12:29

Todas as Respostas

  • Olá amigo,

    Primeiramente, vá no report que está sendo usado como subreport. Selecione o parametro que faz referência, e então nas propriedades do mesmo marque as opções "Allow blank Value" e "Allow Null Value".

    Depois, No código da pagina fica assim no evento do subreport (exemplo didático):

    objEmpresa obj = new objEmpresa();

    List<objEmpresa> lista = obj.GetDetalhes(e.Parameters[0].Values[0]));

    e.DataSources.Add(new ReportDataSource("Data", lista));

    Dessa forma o subreport trará os detalhes da empresa que faz referência pelo id. Pelo que vi acima, você está dando o select do subreport no evento "Page_Load". Dessa forma o subreport não trará os dados do id referente. Você deve dar o select no evento do subreport passando como parametro do método, o parametro passado para o subreport (como mostrado acima) para conseguir o efeito desejado.

    Espero ter ajudado. Abraço!


    quinta-feira, 9 de agosto de 2012 20:34
  • Ola Marcos.

    Obrigado pela resposta. Mas não funcionou desta forma q vc tinha comentado. Consegui resolver da seguinte forma:

    * Retirei o Parameters do SubReport.

    * E no código alterei para:

    Figura 01

    sexta-feira, 10 de agosto de 2012 12:29
  • Cara, mas desse jeito que você está fazendo não precisa de subreport. Basta colocar duas tabelas no report principal com diferemtes fontes de dados e então vincula-las como você está fazendo acima. SubReports são para detalhar registros por registros de um outro select.

    Fica a sugestão. Abraço!

    sexta-feira, 10 de agosto de 2012 12:43
  • Marcos, muito boa sua colocação... Vou rever a forma q estou fazendo.

    Pensando desta forma que vc sugeriu, como vou fazer para ter 3 select's distintos. Por exemplo: Tenho meu cabeçalho, meus detalhes (que são minhas ações) e tenho anexos (que são minhas imagens e gravo no banco somente o nome do arquivo, ou seja, "Foto1.png").

    O cabeçalho está saindo perfeitamente... Já meus detalhes, estão saindo, porém o ReportViewer não está conseguindo administrar em uma página e passar para outra página. Qual a melhor forma de controlar isso?

    E por último minha imagem: na Grid eu coloquei a imagem com a seguinte expression: "~/Imagens/Anexos/"+Fields!Path_Arquivo.Value" e não está saindo a imagem. O que vc sugere?

    Mais uma vez, obrigado pela atenção.

    "Imagens/Anexos/"+Fields!PATH_ARQUIVO.Value

    segunda-feira, 13 de agosto de 2012 11:01
  • vamo lá, por partes:

    - Para ter 3 selects distintos, você deve ter 3 fontes de dados no seu report cada uma apontando para um select. Para administrar facilmente as fontes de dados do report, abra a janela View -> Report Data no visual stuido 2010.

    - Quanto a marcação da página... Se você colocar o conteúdo variável do report na sessão Body, o report paginará perfeitamente.

    - Quanto a imagem... Nunca utilizei imagem de diretório no report, apenas do Banco de Dados. Mas acho que basta você colocar o elemento de imagem no report e setar a opção de fonte para "external" e setar o diretório. Coloca assim:

    "=Imagens/Anexos/"+Fields!PATH_ARQUIVO.Value (Coloque o símbolo de "=")

    caso não funcione, pesquise como você deve fazer para acessar diretório no VB. O report utiliza vb em sua programação.

    segunda-feira, 13 de agosto de 2012 14:55