Solved

VB.net Reference for Pivot class

Posted on 2014-01-24
9
491 Views
Last Modified: 2014-01-27
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
Comment
Question by:murbro
  • 5
  • 4
9 Comments
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 39805933
from what I see you need not that much :
System.Data class and the LINQ reference.
0
 

Author Comment

by:murbro
ID: 39805956
Hi

Thanks. I aleady have System.Data but not sure what you mean by LINQ.
Where would I find the LINQ reference?
0
 
LVL 142

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 500 total points
ID: 39805960
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
 

Author Comment

by:murbro
ID: 39805972
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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:murbro
ID: 39806018
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
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 39806012
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
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 39806014
huh?
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 39806019
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
 

Author Closing Comment

by:murbro
ID: 39811432
Thanks. Thought I had already accepted this. Sorry about the delay
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
I designed this idea while studying technology in the classroom.  This is a semester long project.  Students are asked to take photographs on a specific topic which they find meaningful, it can be a place or situation such as travel or homelessness.…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

948 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now