BiancaLCastro 1 Denunciar post Postado Abril 25, 2016 Bom dia pessoal, A minha dúvida é a seguinte .. Tenho uma gridview que contem uma checkbox e quando eu clico nessa checkbox e depois clico em um botão gerar relatório, ela gera um relatório de todos os dados da row que eu selecionei. O meu grande problema é conseguir gerar relatório com mais de 1 checkbox selecionada. Por exemplo, no relatório (ReportViewer) teria nome do cliente e endereço, como campos fixos. O que mudaria seria os itens de cada cliente, ou seja, pra cada row que eu selecionei na gridview, ele montaria no relatório, uma tabela individual para cada row, os itens que o cliente comprou. Não sei se fui bem clara, por favor, peço ajuda, porque tá dificil :( Obrigada. Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Abril 25, 2016 Acho que você vai ter que explicar melhor... Poste prints, trechos do código para podermos ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
BiancaLCastro 1 Denunciar post Postado Abril 25, 2016 Ok, irei tentar explicar melhor, caso não dê para entender, eu mando trechos do código ;) OBS: É aplicação Web O que acontece é o seguinte.. Eu tenho uma tela de Chamados de assistência técnica . Esta tela de chamados é composta por uma grid view e nessa gridview cada linha é um chamado com Id diferente, contendo campo Id, nome do cliente ..... e no final dela, possui uma checkbox, que será marcado para que o técnico consiga enviar o orçamento desses chamados em lote. Ou seja, em um lote que veio para conserto, tem 5 equipamentos, o que gerou 5 chamados. Esses 5 chamados foram cadastrados no sistema e ao final da verificação do técnico, ele irá marcar, por exemplo 3 desses 5 chamados e clicará em um botão GERAR ORÇAMENTO, que acarretará na abertura de um relatório, contendo os dados desses equipamentos, com valor do conserto e tudo mais e enviará ao cliente O meu problema é .. Como eu consigo adquirir os IDs referentes de cada chamado na gridview, que está com a checkbox marcada? Para que no momento que eu clique no botão gerar orçamento, ele consiga pegar o código de cada chamado marcado e assim acrescentar no relatório =/ É meio complicado, por isso mesmo eu não estou conseguindo desenvolver, pois sou junior na área ainda =/ OBS2: Já pesquisei tudo na net antes de recorrer aqui agradeço qualquer ajuda Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Abril 26, 2016 Bom, a ideia básica é você separar as duas coisas, primeiro você precisa de uma classe que vai gerar os seus relatórios, o que você provavelmente já tem. Depois você precisa de uma função que vai chamar esta classe passando os ID's dos chamados (deixe que a classe busque os dados deles). Dessa forma acredito que o botão seja basicamente um foreach como neste exemplo: http://www.codeproject.com/Questions/421326/how-to-get-gridview-row-values-when-checkbox-is-ch http://stackoverflow.com/questions/19628554/gridview-get-checkbox-checked-value http://stackoverflow.com/questions/19418648/how-to-get-value-from-selected-checkbox-in-asp-gridview Que pode concatenar, ou montar um array, de ID's que será passado para o gerador de relatório buscar os dados para que possam ser gerados dentro do seu documento. Pense que você precisa apenas de uma String para passar para o banco de dados, de lá que vão vir suas informações. Óbvio que, se você tiver meios, é melhor enviar os dados já mastigados e evitar todo e qualquer tipo de consulta ao banco pois isso pode deixar o sistema lento e dependente de conexão de dados. Neste caso o ideal seria você jogar as colunas pertinentes (como estão descritos nos exemplos acima) dentro do array ou um Dictionary. O melhor jeito seria você enviar o objeto da linha todo à função (uma lista de objetos de linha), mas isto ficaria a sua escolha. Compartilhar este post Link para o post Compartilhar em outros sites
BiancaLCastro 1 Denunciar post Postado Abril 27, 2016 Oi, enfim consegui fazer funcionar. Sua dica me ajudou muito. Segue abaixo o código que eu utilizei no botão gerar relatório. protected void BtnGerarRel_Click(object sender, EventArgs e) { string codigochamado = ""; foreach (GridViewRow rw in gridassistencia.Rows) { System.Web.UI.WebControls.CheckBox checkBox = (System.Web.UI.WebControls.CheckBox)rw.FindControl("CBGERRELATORIO"); HttpContext.Current.Session["checbox"] = checkBox ; if (checkBox != null && checkBox .Checked) { GridViewRow row = (GridViewRow)checkBox.Parent.Parent; // pegar a linha pai desta checkbox codigochamado += Convert.ToInt32(gridassistencia.DataKeys[row.RowIndex].Value) + ","; } } if (!codigochamado.Equals("")) { codigochamado = codigochamado.Substring(0, codigochamado.Length - 1); //retirar "," } HttpContext.Current.Session["vsIdAssistencia"] = codigochamado; Response.Redirect("Orcamento.aspx"); } Muito obrigada =D Compartilhar este post Link para o post Compartilhar em outros sites