Ilano 0 Denunciar post Postado Junho 3, 2008 Olá pessoal, Tenho uma consulta q me retorna uma Grade Curricular. Estou povoando um DataGrid de forma a gerar o agrupamento por semestre e calculando o total geral de créditos.beleza até aí, só q estou precisando fazer uma soma neste DataGrid, mas de forma q esta soma seja dada em sub-totais, ou seja, total por grupo. No momento, estou fazendo a soma geral. Como faço o sub-total? Os código q estou usando são: Criar títulos para cada grupo: Protected Sub DGGrade_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DGGrade.ItemCreated If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then 'As duas linhas abaixo são usadas para colocar como título no DataGrid o campo que se deseja. 'Estas duas linha podem ser alteradas apenas os nomes dos campos entre áspas duplas. If _intIDSemestre <> CType(DataBinder.Eval(e.Item.DataItem, "Sem_Codigo"), Integer) Then _intIDSemestre = CType(DataBinder.Eval(e.Item.DataItem, "Sem_Codigo"), Integer) 'Criaremos uma nova Tablecell Dim _TableCell As New TableCell _TableCell.BackColor = Color.FromName("#1C5797") _TableCell.HorizontalAlign = HorizontalAlign.Center 'Alinhar título, esta linha pode ser alterada 'Criaremos um novo Label Dim _Label As New Label _Label.ForeColor = Color.White _Label.Font.Bold = True _Label.Text = " " & CType(DataBinder.Eval(e.Item.DataItem, "Sem_Nome"), String) 'Adicionaremo o label ao TableCell _TableCell.Controls.Add(_Label) _TableCell.ColumnSpan = 7 'Número de colunas contidas no DataGrid, esta linha pode ser alterada 'Criaremos um novo DataGridItem e adicionaremos o TableCell Dim DataGridRow As New DataGridItem(0, 0, ListItemType.Separator) DataGridRow.Cells.Add(_TableCell) 'Adicionaremos o DataGridItem(Row) ao DataGrid DGGrade.Controls(0).Controls.Add(DataGridRow) End If End If End Sub Somar total: Protected Sub DGGrade_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DGGrade.ItemDataBound If e.Item.ItemType = ListItemType.AlternatingItem OrElse e.Item.ItemType = ListItemType.Item Then 'Me._total += DirectCast(e.Item.DataItem, System.Data.Common.DbDataRecord).Item("Gra_Creditos") Me._total += DirectCast(e.Item.DataItem, System.Data.DataRowView).Item("Gra_Creditos") ElseIf e.Item.ItemType = ListItemType.Footer Then DirectCast(e.Item.FindControl("lblValorTotal"), Label).Text = "TOTAL DE CRÉDITOS: " & _ Me._total.ToString("N0") End If End Sub Alguém pode me ajudar? Grato, Ilano. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Junho 3, 2008 Seu projeto é web ou windows? Para mover para o sub-fórum correto!! Você teria que criar uma variável que fosse somando no evento ItemDataBound, teria que verificar o momento em que troca de grupo e inseri uma linha manualmente na sua grid. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Junho 3, 2008 Meu projeto é web. Mas beleza! Eu vou tentar. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Junho 3, 2008 Movido Plataforma .NET » Visual Studio .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications Compartilhar este post Link para o post Compartilhar em outros sites