Bom pessoal ultimamente não tenho postado muito, mas vou tentar colocar umas dicas e sugestões aqui também e se tiver novidades coloco também...
Ultimamente tive um sério problema, onde precisava inserir uma linha no dataset em cada grupo, exibindo o total de registros, então todos os campos que forem Numéricos, irei soma-los .... e inserir uma linha a cada grupo ....
então to postando aqui uma função para montar toda esta estrutura no dataset ....
1: Public Function DataSetFormatado(ByVal dsPrincipal As DataSet) As DataSet
2: Dim dsAuxiliar As New DataSet
3: Dim iCount As Integer = 0
4: Dim iContador As Integer = dsPrincipal.Tables(0).Columns.Count - 1
5: Dim strVerifica As String = ""
6: Dim iVerifica(iContador) As Integer
7: Dim drAuxiliar As DataRow
8: Dim strAuxiliar As Object = ""
9: Dim iCount2 As Integer = 0
10: dsAuxiliar.Tables.Add()
11: With dsAuxiliar.Tables(0).Columns
12: For iCount2 = 0 To iContador
13: .Add(dsPrincipal.Tables(0).Columns(iCount2).ColumnName, dsPrincipal.Tables(0).Columns(iCount2).DataType, dsPrincipal.Tables(0).Columns(iCount2).Expression)
14: Next
15: End With
16:
17: iCount2 = 0
18: For iCount = 0 To dsPrincipal.Tables(0).Rows.Count - 1
19: If strVerifica <> dsPrincipal.Tables(0).Rows(iCount).Item(0) Then
20: drAuxiliar = dsPrincipal.Tables(0).NewRow
21: iCount2 = 0
22: For iCount2 = 0 To iContador
23: If iCount2 = 0 Or iCount2 = 1 Then
24: If iCount2 = 1 Then
25: drAuxiliar(iCount2) = "TOTAL: "
26: End If
27: Else
28: drAuxiliar(iCount2) = iVerifica(iCount2)
29: End If
30: If IsNumeric(dsPrincipal.Tables(0).Rows(iCount).Item(iCount2)) Then
31: iVerifica(iCount2) = dsPrincipal.Tables(0).Rows(iCount).Item(iCount2)
32: End If
33: Next
34: If iCount > 0 Then
35: dsAuxiliar.Tables(0).Rows.Add(drAuxiliar.ItemArray)
36: End If
37: strVerifica = dsPrincipal.Tables(0).Rows(iCount).Item(0)
38: Else
39: For iCount2 = 0 To iContador
40: If IsNumeric(dsPrincipal.Tables(0).Rows(iCount).Item(iCount2)) Then
41: iVerifica(iCount2) += dsPrincipal.Tables(0).Rows(iCount).Item(iCount2)
42: End If
43: Next
44: End If
45: dsAuxiliar.Tables(0).Rows.Add(dsPrincipal.Tables(0).Rows(iCount).ItemArray)
46: Next
47: Return dsAuxiliar
48: End Function