Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 467
  • Last Modified:

vb crystal ocx printing landscape

Please help
I need to be able to tell the crystl32.ocx
to print a report designed in landscape in landscape.
But the view/print is always landscape

Is there a hidden function paramter something that I cannot find.

Otherwise what is the alternative, i have done 168 reports and do not want to change them.
Also they have parameter fields which need to be set at runtime - have done this OK

many thanks

paul cooper
paul@pcdevelopments.co.uk
0
pcdev
Asked:
pcdev
  • 4
  • 4
1 Solution
 
bobbit31Commented:
try crRpt.PaperOrientation = crLandscape

PaperOrientation - CRPaperOrientation. Gets or sets the current printer paper orientation. For the default printer, crDefaultPaperOrientation is returned. Read/Write Can be written only when formatting idle.
crDefaultPaperOrientation     0
crLandscape     2
crPortrait     1
0
 
pcdevAuthor Commented:
Thanks for you comments on experts exchange
however using crRpt.PaperOrientation = crLandscape

and crRpt.PaperOrientation = 2
I get


438 - Object doesn't support this property or method
Any other options?
VB6
SP5
Crystal OCX v 8.0.0.4 from 8.5 developer

many thanks
0
 
pcdevAuthor Commented:
Thanks for you comments on experts exchange
however using crRpt.PaperOrientation = crLandscape

and crRpt.PaperOrientation = 2
I get


438 - Object doesn't support this property or method
Any other options?
VB6
SP5
Crystal OCX v 8.0.0.4 from 8.5 developer

many thanks
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
bobbit31Commented:
can you post your code for when you open the report
0
 
pcdevAuthor Commented:
Private Sub cmdPrint_Click()
    On Error GoTo cmdPrint_Click_Error
   
'    MsgBox "This program is in debug mode, please be patient"
    Dim iFormulaCount As Integer
    Dim iSplit As Integer
    sReportConnect = "dsn=" & sDSN & _
                    ";UID=" & sUser & _
                    ";Pwd=" & sPassword
   
   
   
       
    'Get Report Name
    Dim sReportFileName As String
    List1.ListIndex = 0
    sReportFileName = List1
   
    'Get Printer Name
    Dim sReportPrinterName As String
    List1.ListIndex = 1
    sReportPrinterName = List1
   
    'Get Printer Driver
    Dim sReportPrinterDriver As String
    List1.ListIndex = 2
    sReportPrinterDriver = List1
   
    Dim iParamNum As Integer
   
   
    With CR1
       
        .ReportFileName = sReportFileName
        '.SelectionFormula = sSQL
        .Connect = sReportConnect
        .PrinterName = sReportPrinterName
        .PrinterPort = sReportPrinterName
        .PrinterDriver = sReportPrinterName
        '.Orientation = 2
        .PaperOrientation = 2
        If chkPreview = vbChecked Then
            .Destination = crptToWindow
        Else
            .Destination = crptToPrinter
        End If
'        .DiscardSavedData = False
       
        'Blank Formulas
        For iFormulaCount = 0 To 99
            .ParameterFields(iFormulaCount) = ""
        Next
       
       
        'Get Parameters
        iParamNum = 0
        iSplit = 1
        Do Until List1.ListIndex = List1.ListCount - 1
            List1.ListIndex = List1.ListIndex + 1
                pArray = Split(List1, "=", , vbTextCompare)
                For Each p In pArray
                    If iSplit = 2 Then
                        .ParameterFields(iParamNum) = "Param" & iParamNum + 1 & ";" & p & ";True"
                        iParamNum = iParamNum + 1
                        iSplit = 1
                    Else
                        iSplit = iSplit + 1
                    End If
                       
                Next

        Loop
'        .Formulas(iFormula) = "Form" & iFormula + 1 & " = '" & List1 & "'"
'        .ParameterFields(0) = "a1;Hello World;True"
        .Action = 1
    End With
'    End
    Exit Sub
cmdPrint_Click_Error:
    MsgBox Err & " - " & error & " - frmScanPrint"
    Exit Sub
End Sub






0
 
bobbit31Commented:
why not use CRAXDRT (projects/references/crystal activex designer runtime library)

then you can do something like:

Dim CR as new CRAXDRT.Application
Dim myRpt as CRAXDRT.Report

set myRpt = CR.openReport("<file name>")

myRpt.EnableParameterPrompting = False

'' pass your parameters in
myRpt.ParameterFieldDefinitions.Item(<index>).setCurrentValue "<value>"

'' set printer orientaiton
myRpt.PaperOrientation = crLandscape

myRpt.PrintOut







0
 
bobbit31Commented:
ps: the crystl32.ocx is old (ever since cr4.5)... the craxdrt was introduced in v7 and should be used. (you can do everything you can do in the ocx plus more)
0
 
pcdevAuthor Commented:
Mate your a diamond, will do this and let you know.
Just always stuck with the OCX coz it worked in the past
Many thanks

Job well done and very quickly

Paul Cooper
paul@pcdevelopments.co.uk
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now