O CR je na webu docela dosti návodů, kterak a co. Svého času jsem s tím také zápasil a docela mi trvalo, než-li jsem pochopil, jak to vlastně funguje. Pro ukázku přikládám kus pokusného kódu, ze kterého snad pochopíš, jak s tím pracovat.
Public Sub PrintTEST(ByVal Data As DataSet)
Dim cr As New CrystalDecisions.CrystalReports.Engine.ReportDocument
cr.Load(Application.StartupPath & "\test.rpt")
'Nastavení okrajů dokumentu
Dim margins As CrystalDecisions.Shared.PageMargins
margins = cr.PrintOptions.PageMargins
margins.topMargin = 20 * 100
margins.leftMargin = 20 * 100
margins.bottomMargin = 20 * 100
margins.rightMargin = 20 * 100
'Výběr tiskárny
cr.PrintOptions.PrinterName = "XXXX" 'NUTNO DOUPRAVIT
cr.PrintOptions.ApplyPageMargins(margins)
'Orientace papíru
cr.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait
'cr.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape
'Velikost papíru
cr.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA5
'cr.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4
'Zdroj papíru v tiskárně
cr.PrintOptions.PaperSource = CrystalDecisions.Shared.PaperSource.Auto
cr.SetDataSource(Data)
'Nastavení hodnot parametrů RPT souboru
Dim i As Integer
Dim disvalue As New CrystalDecisions.Shared.ParameterDiscreteValue()
If cr.ParameterFields.Count > 0 Then
For i = 0 To cr.ParameterFields.Count - 1
If cr.ParameterFields(i).Name = "bar_size" Then
disvalue.Value = m_cfg.BarCodeSize
cr.ParameterFields("bar_size").CurrentValues.Clear()
cr.ParameterFields("bar_size").CurrentValues.Add(disvalue)
End If
If cr.ParameterFields(i).Name = "bar_font" Then
disvalue.Value = m_cfg.BarCodeFont
cr.ParameterFields("bar_font").CurrentValues.Clear()
cr.ParameterFields("bar_font").CurrentValues.Add(disvalue)
End If
Next
End If
cr.PrintToPrinter(1, True, 0, 0)
cr.Close()
cr.Dispose()
End Sub
|