• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 555
  • Last Modified:

VB.net Reference for Pivot class

Hi
In VB.net what do I have to reference to use the Pivot class with code like the following
and can this be used in ASP.net:


    Public Function PivotData(RowField As String, DataField As String, Aggregate As AggregateFunction, ParamArray ColumnFields As String()) As DataTable
        Dim dt As New DataTable()
        Dim Separator As String = "."
      Dim RowList = (From x In _SourceTable.AsEnumerable()New With { _
            Key .Name = x.Field(Of Object)(RowField) _
      }).Distinct()
      Dim ColList = (From x In _SourceTable.AsEnumerable()New With { _
            Key .Name = ColumnFields.[Select](Function(n) x.Field(Of Object)(n)).Aggregate(Function(a, b) a += Separator & b.ToString()) _
      }).Distinct().OrderBy(Function(m) m.Name)

        dt.Columns.Add(RowField)
        For Each col As var In ColList
            dt.Columns.Add(col.Name.ToString())
        Next

        For Each RowName As var In RowList
            Dim row As DataRow = dt.NewRow()
            row(RowField) = RowName.Name.ToString()
            For Each col As var In ColList
                Dim strFilter As String = (RowField & Convert.ToString(" = '")) + RowName.Name + "'"
                Dim strColValues As String() = col.Name.ToString().Split(Separator.ToCharArray(), StringSplitOptions.None)
                For i As Integer = 0 To ColumnFields.Length - 1
                    strFilter += " and " + ColumnFields(i) + " = '" + strColValues(i) + "'"
                Next
                row(col.Name.ToString()) = GetData(strFilter, DataField, Aggregate)
            Next
            dt.Rows.Add(row)
        Next
        Return dt
    End Function
0
Murray Brown
Asked:
Murray Brown
  • 5
  • 4
1 Solution
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
from what I see you need not that much :
System.Data class and the LINQ reference.
0
 
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
Hi

Thanks. I aleady have System.Data but not sure what you mean by LINQ.
Where would I find the LINQ reference?
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
from the official reference:
http://msdn.microsoft.com/en-us/library/bb546156.aspx 
To enable basic LINQ functionality

    In a Visual Basic or C# project, click the Project menu, and then click Add Reference.

    In the Add Reference dialog box, click the .NET tab, scroll to System.Core.dll, and then click it. Click OK.

    Add a using directive or Imports statement for System.Linq to your source code file or project.

Open in new window

0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

 
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
Hi

Thanks very much
I still have 23 errors
eg Error      34      Type 'AggregateFunction' is not defined.      C:\Users\murbro\Documents\Visual Studio 2010\Projects\Elements\Elements\Pivot.vb      40      82      Elements
Error      33      'RowList' is not declared. It may be inaccessible due to its protection level.      C:\Users\murbro\Documents\Visual Studio 2010\Projects\Elements\Elements\Pivot.vb      23      36      Elements
Error      49      'GetSum' is not declared. It may be inaccessible due to its protection level.      C:\Users\murbro\Documents\Visual Studio 2010\Projects\Elements\Elements\Pivot.vb      61      28      Elements
0
 
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
I've requested that this question be closed as follows:

Accepted answer: 0 points for murbro's comment #a39805956

for the following reason:

Thanks very much
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
I could not find a standard class having this as type, so I must presume that either it's a typo in the code, or you have some customer class (missing in this project)
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
huh?
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
I see you other question now, and I confirm the conversion is incorrect.
it must be:
Public Function PivotData(RowField As String, DataField As String, AggregateFunction as Aggregate  , ParamArray ColumnFields As String()) As DataTable 

Open in new window

0
 
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
Thanks. Thought I had already accepted this. Sorry about the delay
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now