كود :
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 chbCode.Checked Then
columnNo += 1
query = query.Insert(query.Length, "Code as Column" & columnNo.ToString())
paramField = New ParameterField()
paramField.Name = "col" & columnNo.ToString()
paramDiscreteValue = New ParameterDiscreteValue()
paramDiscreteValue.Value = "Customer Code"
paramField.CurrentValues.Add(paramDiscreteValue)
paramFields.Add(paramField)
End If
If chbFirstName.Checked Then
columnNo += 1
If query.Contains("Column") Then
query = query.Insert(query.Length, ", ")
End If
query = query.Insert(query.Length, "FirstName as Column" & columnNo.ToString())
paramField = New ParameterField()
paramField.Name = "col" & columnNo.ToString()
paramDiscreteValue = New ParameterDiscreteValue()
paramDiscreteValue.Value = "First Name"
paramField.CurrentValues.Add(paramDiscreteValue)
paramFields.Add(paramField)
End If
If chbLastName.Checked Then
columnNo += 1
If query.Contains("Column") Then
query = query.Insert(query.Length, ", ")
End If
query = query.Insert(query.Length, "LastName as Column" & columnNo.ToString())
paramField = New ParameterField()
paramField.Name = "col" & columnNo.ToString()
paramDiscreteValue = New ParameterDiscreteValue()
paramDiscreteValue.Value = "Last Name"
paramField.CurrentValues.Add(paramDiscreteValue)
paramFields.Add(paramField)
End If
If chbAddress.Checked Then
columnNo += 1
If query.Contains("Column") Then
query = query.Insert(query.Length, ", ")
End If
query = query.Insert(query.Length, "Address as Column" & columnNo.ToString())
paramField = New ParameterField()
paramField.Name = "col" & columnNo.ToString()
paramDiscreteValue = New ParameterDiscreteValue()
paramDiscreteValue.Value = "Address"
paramField.CurrentValues.Add(paramDiscreteValue)
paramFields.Add(paramField)
End If
If chbPhone.Checked Then
columnNo += 1
If query.Contains("Column") Then
query = query.Insert(query.Length, ", ")
End If
query = query.Insert(query.Length, "Phone as Column" & columnNo.ToString())
paramField = New ParameterField()
paramField.Name = "col" & columnNo.ToString()
paramDiscreteValue = New ParameterDiscreteValue()
paramDiscreteValue.Value = "Phone"
paramField.CurrentValues.Add(paramDiscreteValue)
paramFields.Add(paramField)
End If
For i As Integer = columnNo To 5 - 1
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 Customer"
Return query
End Function