I'm having a small problem with the PrintToPrinter method with my crystal reports. every time i print with it none of the resulting data is sent with the report to the printer. all that prints is the report static fields. but if i set the report to a crystal viewer it shows all the data just fine, and if i click the print icon on the viewer the data prints. below is the code.
any solutions?
cheers.
Code:
'calling form that creates the reporting form. (reporting form has a crystal viewer set to it.)
Private Sub DirectPrint_Activate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DirectPrint.Activate
Dim _frm As New Report
_frm.loadNumber = 37280
_frm.crType = Report.crystalType.billoflading
_frm.Show()
_frm.BringToFront()
End Sub
'crystal report form handles all crystal printing.
Private _loadNumber As String
Private _crType As crystalType
Private dLoginName As String = "someUser"
Private dPassword As String = "somePassword"
Enum crystalType
packlist
dropTrailer
billoflading
End Enum
Public WriteOnly Property loadNumber() As String
Set(ByVal loadNmb As String)
_loadNumber = loadNmb
End Set
End Property
Public WriteOnly Property crType() As crystalType
Set(ByVal type As crystalType)
_crType = type
End Set
End Property
Private Sub Report_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim param1Fileds As New CrystalDecisions.Shared.ParameterFields
Dim param1Field As New CrystalDecisions.Shared.ParameterField
Dim param1Range As New CrystalDecisions.Shared.ParameterDiscreteValue
'setup report
'this code works
If _crType = crystalType.packlist Then
Dim crReport As New packinglistNew
crReport.SetDatabaseLogon(dLoginName, dPassword)
param1Field.ParameterFieldName = "loadnumb" ' Parameter Name In Crystal Report
param1Range.Value = _loadNumber ' value For Parameter Field
param1Field.CurrentValues.Add(param1Range)
param1Fileds.Add(param1Field) ' To add parameter in parameterslist
CrystalReportViewer1.ParameterFieldInfo = param1Fileds 'to pass parameter
Me.CrystalReportViewer1.ReportSource = crReport
End If
'all code below this works if i set the crystal object to the viewer, but it will not print the result data
If _crType = crystalType.dropTrailer Then
Dim crReport As New BOLDROPNew
param1Field.ParameterFieldName = "loadnumb" ' Parameter Name In Crystal Report
param1Range.Value = _loadNumber ' value For Parameter Field
param1Field.CurrentValues.Add(param1Range)
param1Fileds.Add(param1Field) ' To add parameter in parameterslist
CrystalReportViewer1.ParameterFieldInfo = param1Fileds 'to pass parameter
' Me.CrystalReportViewer1.ReportSource = crReport
crReport.Load()
crReport.SetDatabaseLogon(dLoginName, dPassword)
crReport.Refresh()
crReport.PrintToPrinter(2, True, 1, -1)
Me.Close()
End If
If _crType = crystalType.billoflading Then
Dim crReport As New packinglistNew
crReport.SetDatabaseLogon(dLoginName, dPassword)
param1Field.ParameterFieldName = "loadnumb" ' Parameter Name In Crystal Report
param1Range.Value = _loadNumber ' value For Parameter Field
param1Field.CurrentValues.Add(param1Range)
param1Fileds.Add(param1Field) ' To add parameter in parameterslist
CrystalReportViewer1.ParameterFieldInfo = param1Fileds 'to pass parameter
crReport.PrintToPrinter(1, False, 0, 0)
Me.CrystalReportViewer1.ReportSource = crReport
Me.Close() 'direct close don't show report form
End If
End Sub
any solutions?
cheers.