You need to get them all working in the development environment, then on the client side, make sure the dependent files are installed and the network drive names are mapped consistently if your code's dependent on it.
Here's an example in VB.NET 2005:
Public Class frmCrystal
Public Sub _init(ByVal windowTitle As String, ByVal rptPath As String)
Dim rptDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim ConInfo As CrystalDecisions.Shared.TableLogOnInfo
Dim crTables As CrystalDecisions.CrystalReports.Engine.Tables
Dim crTable As CrystalDecisions.CrystalReports.Engine.Table
Me.Text = windowTitle
rptDoc = New CrystalDecisions.CrystalReports.Engine.ReportDocument
rptDoc.Load(rptPath)
ConInfo = New CrystalDecisions.Shared.TableLogOnInfo
crTables = rptDoc.Database.Tables
For Each crTable In crTables
With ConInfo.ConnectionInfo
.ServerName = "dhsdev10069\dsd"
.DatabaseName = "DSDWorkPlanTracking"
.IntegratedSecurity = True
End With
ConInfo.ReportName = rptPath
crTable.ApplyLogOnInfo(ConInfo)
Next
rptCrystal.ReportSource = rptDoc
End Sub
the form frmCrystal contains one CrystalReportViewer control:
Private Sub InitializeComponent()
Me.rptCrystal = New CrystalDecisions.Windows.Forms.CrystalReportViewer
Me.SuspendLayout()
'
'rptCrystal
'
Me.rptCrystal.ActiveViewIndex = -1
Me.rptCrystal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.rptCrystal.DisplayGroupTree = False
Me.rptCrystal.Dock = System.Windows.Forms.DockStyle.Fill
Me.rptCrystal.Location = New System.Drawing.Point(0, 0)
Me.rptCrystal.Name = "rptCrystal"
Me.rptCrystal.Size = New System.Drawing.Size(292, 273)
Me.rptCrystal.TabIndex = 0
'
'frmCrystal
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(292, 273)
Me.Controls.Add(Me.rptCrystal)
Me.Name = "frmCrystal"
Me.Text = "DSD Report"
Me.ResumeLayout(False)
End Sub
End Class
Then to call the form, you need something like:
Private _crystal As frmCrystal
_crystal = New frmCrystal
_crystal.MdiParent = Me
_crystal._init(windowTitle, rptpath)
_crystal.WindowState = FormWindowState.Maximized
_crystal.Show()