Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

vb crystal ocx printing landscape

Posted on 2002-03-21
8
Medium Priority
?
461 Views
Last Modified: 2007-12-19
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
Comment
Question by:pcdev
  • 4
  • 4
8 Comments
 
LVL 18

Expert Comment

by:bobbit31
ID: 6885823
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
 

Author Comment

by:pcdev
ID: 6885852
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
 

Author Comment

by:pcdev
ID: 6885864
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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 18

Expert Comment

by:bobbit31
ID: 6885893
can you post your code for when you open the report
0
 

Author Comment

by:pcdev
ID: 6885905
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
 
LVL 18

Expert Comment

by:bobbit31
ID: 6886021
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
 
LVL 18

Accepted Solution

by:
bobbit31 earned 200 total points
ID: 6886032
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
 

Author Comment

by:pcdev
ID: 6886066
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

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses
Course of the Month12 days, 9 hours left to enroll

578 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question