Click here to Skip to main content
15,883,901 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more: , +
VB
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.Shared
Imports CrystalDecisions.Windows.Forms
Imports System.Data.SqlClient
Imports System.Data.OleDb
Public Class Form1
    Dim objRpt As CrystalReport1
    Dim con As New SqlConnection
    Private Function CreateSelectQueryAndParameters() As String
        Dim reportDocument As ReportDocument
        Dim paramFields As ParameterFields
        Dim paramField As ParameterField
        Dim paramDiscreteValue As ParameterDiscreteValue
        reportDocument = New ReportDocument
        paramFields = New ParameterFields

        Dim query As String = "SELECT "

        Dim columnNo As Integer = 0

        If CheckBox1.Checked Then

            columnNo = columnNo + 1

            query = query.Insert(query.Length, "pcode as Column" + columnNo.ToString())

            paramField = New ParameterField()
            paramField.Name = "col" + columnNo.ToString()
            paramDiscreteValue = New ParameterDiscreteValue()
            paramDiscreteValue.Value = "Property Code"
            paramField.CurrentValues.Add(paramDiscreteValue)

            paramFields.Add(paramField)
        End If

        If CheckBox2.Checked Then

            columnNo = columnNo + 1
            If query.Contains("Column") Then

                query = query.Insert(query.Length, ", ")
            End If

            query = query.Insert(query.Length, "pname as Column" +columnNo.ToString())

            paramField = New ParameterField()
            paramField.Name = "col" + columnNo.ToString()
            paramDiscreteValue = New ParameterDiscreteValue()
            paramDiscreteValue.Value = "Property Name"
            paramField.CurrentValues.Add(paramDiscreteValue)
            paramFields.Add(paramField)
        End If
        For i As Integer = columnNo To 2


            columnNo = columnNo + 1

            paramField = New ParameterField()
            paramField.Name = "col" + columnNo.ToString()
            paramDiscreteValue = New ParameterDiscreteValue()
            paramDiscreteValue.Value = ""
            paramField.CurrentValues.Add(paramDiscreteValue)

            paramFields.Add(paramField)
        Next

        CrystalReportViewer1.ParameterFieldInfo = paramFields

        query += " FROM propdb"
        Return query

    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Dim Ds As New DataSet1
        Dim cnn As SqlConnection
        Dim connString As String
        Dim query As String
        connString = "Data Source=RANJITHA-PC;Initial Catalog=hrmdb;Integrated Security=True"
        cnn = New SqlConnection(connString)
        cnn.Open()
        query = CreateSelectQueryAndParameters()
        If Not query.Contains("Column") Then
            MessageBox.Show("No selection to display!")
            Return
        End If

        Dim adepter As New SqlDataAdapter(query, cnn)
        Dim Ds As New DataSet1
        adepter.Fill(Ds, "DataTable1")
        MsgBox(ds.Tables(1).Rows.Count)
        cnn.Close()
        objRpt = New CrystalReport1()
        objRpt.SetDataSource(Ds.Tables(1))
        CrystalReportViewer1.ReportSource = objRpt
        CrystalReportViewer1.Refresh()
    End Sub

    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class
Posted
Updated 1-Apr-14 23:21pm
v2
Comments
ArunRajendra 2-Apr-14 6:01am    
Where are you getting the error?
Member 10711706 2-Apr-14 6:07am    
When I run the program and check the checkbox and click on button1 I get a message box crystal report window form viewer which gives information "The parameter is incorrect"
CHill60 5-Apr-14 11:06am    
Do you really mean to use Ds.Tables(1)? If you want the first table (which it looks like you do) then you would use Ds.Tables(0)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900