Print

Sends data to the current printer (or spooler, if the user has a spooler set up). There are two syntaxes that you can use with DataWindows:

To

Use

Send the contents of a DataWindow control or DataStore to the printer as a print job.

Syntax 1 For printing a single DataWindow or DataStore

Include a visual object, such as a window or a graph control, in a print job. For the PowerBuilder environment only.

For a description of PowerBuilder system print commands, see the PowerScript Reference.

Syntax 2 For printing a visual object in a print job


Syntax 1 For printing a single DataWindow or DataStore

Description

Sends the contents of a DataWindow control or DataStore object to the printer as a print job.

Applies to

DataWindow type

Method applies to

PowerBuilder

DataWindow control, DataWindowChild object, DataStore object

Web ActiveX

DataWindow control, DataWindowChild object

Syntax

PowerBuilder

integer dwcontrol.Print ( { boolean canceldialog {, showprintdialog } } )

Web ActiveX

number dwcontrol.Print ( boolean canceldialog )

Argument

Description

dwcontrol

The name of the DataWindow control, DataStore, or child DataWindow that contains the information to be printed.

canceldialog (optional)

A boolean value indicating whether you want to display a nonmodal dialog that allows the user to cancel printing. Values are:

  • True – (Default) Display the dialog.

  • false – Do not display the dialog.

NoteWorking with DataStore objects When working with DataStores, the canceldialog argument must always be set to false.

showprintdialog (optional)

A boolean value indicating whether you want to display the system Print dialog box. Values are:

  • True – Display the dialog box

  • false – (default) Do not display the dialog box

NoteWorking with DataStore objects When working with DataStores, the showprintdialog argument must always be set to false.

Returns

Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null, Print returns null.

Usage

Printed output uses the same fonts and layout that appear on screen for the DataWindow object.

When the DataWindow object’s presentation style is RichTextEdit, each row begins a new page in the printed output.

NotePowerBuilder environment PowerBuilder manages print jobs by opening the job, sending data, and closing the job. When you use Syntax 1, print job management happens automatically. You do not need to use the PrintOpen and PrintClose functions.

Use Syntax 1 to print the contents of a DataWindow object. The Print method prints all the rows that have been retrieved. To print several DataWindows as a single job, do not use Print. Instead, open the print job with PrintOpen, call the PowerScript system function PrintDataWindow for each DataWindow, and close the job.

NoteEvents for DataWindow printing When you use Print for DataWindow controls or DataStores, it triggers a PrintStart event just before any data is sent to the printer (or spooler), a PrintPage event for each page break, and a PrintEnd event when printing is complete.

The PrintPage event has return codes that let you control whether the page about to be formatted is printed. You can skip the upcoming page by returning a value of 1 in the PrintPage event.

Examples

Example 1

The following statements are equivalent. Each sends the contents of dw_employee to the current printer. The Cancel dialog box displays, allowing the user to cancel the printing, but the Print dialog box does not:

dw_employee.Print()
dw_employee.Print(true)
dw_employee.Print(true, false)

Example 2

This statement sends the contents of dw_employee to the current printer. The Print dialog box displays but the Cancel dialog box does not:

dw_employee.Print(false, true)

See also


Syntax 2 For printing a visual object in a print job

Description

Includes a visual object, such as a window or a graph control, in a print job that you have started with the PrintOpen function.

Applies to

DataWindow type

Method applies to

PowerBuilder

DataWindow control

Syntax

PowerBuilder

integer objectname.Print ( long printjobnumber, integer x, integer y {, integer width, integer height } ) 

Argument

Description

objectname

The name of the object that you want to print. The object must either be a window or an object whose ancestor type is DragObject, which includes all the controls that you can place in a window.

printjobnumber

The number the PrintOpen function assigns to the print job

x

An integer whose value is the x coordinate on the page of the left corner of the object, in thousandths of an inch.

y

An integer whose value is the y coordinate on the page of the left corner of the object, in thousandths of an inch.

width (optional)

An integer specifying the printed width of the object in thousandths of an inch. If omitted, PowerBuilder uses the object’s original width.

height (optional)

An integer specifying the printed height of the object in thousandths of an inch. If omitted, PowerBuilder uses the object’s original height.

Returns

Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value is null, Print returns null.

Usage

PowerBuilder manages print jobs by opening the job, sending data, and closing the job. When you use Syntax 2, you must call the PrintOpen function and the PrintClose or PrintCancel functions yourself to manage the process. For more information, see the PowerScript Reference.

NotePrint area and margins The print area is the physical page size minus any margins in the printer itself. Depending on the printer, you may be able to change margins using PrintSend and printer-defined escape sequences.

Examples

Example 3

This example prints the CommandButton cb_close in its original size at location 500, 1000:

long Job

Job = PrintOpen( )

cb_close.Print(Job, 500,1000)

PrintClose(Job)

Example 4

This example opens a print job, which defines a new page, then prints a title using the third syntax of Print. Then it uses this syntax of Print to print a graph on the first page and a window on the second page:

long Job

Job = PrintOpen( )

Print(Job, "Report of Year-to-Date Sales")

gr_sales1.Print(Job, 1000,PrintY(Job)+500, &

		6000,4500)

PrintPage(Job)

w_sales.Print(Job, 1000,500, 6000,4500)

PrintClose(Job)

See also