Solved

VB.net Reference for Pivot class

Posted on 2014-01-24
9
512 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
9 Comments
 
LVL 143

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 143

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
The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

 

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
 

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 143

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 143

Expert Comment

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

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 Team Achieving Their Full Potential?

74% of employees feel they are not achieving their full potential. With Linux Academy, not only will you strengthen your team's core competencies but also their knowledge of of the newest IT topics.

With new material every week, we'll make sure that you stay ahead of the game.

Question has a verified solution.

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

Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
If you're a developer or IT admin, you’re probably tasked with managing multiple websites, servers, applications, and levels of security on a daily basis. While this can be extremely time consuming, it can also be frustrating when systems aren't wor…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

734 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