PRINT-CONTROL

Short Reference

Syntax

PRINT-CONTROL { { formats|{FUNCTION code}
                  [LINE line] [POSITION col] }
              | { INDEX-LINE index_line } }.

Alternatives:

1. ... formats|{FUNCTION code} [LINE line] [POSITION col]

2. ... INDEX-LINE index_line

Effect:

This statement formats areas of print lists or creates index entries in print lists to be archived.

The statement PRINT-CONTROLS only works for print lists created with NEW-PAGE PRINT ON, SUBMIT TO SAP-SPOOL, and through selection of Execute and Print on the selection screen. It does not work for a screen list that has been printed during display by selecting Print (function code "PRI").

Alternative 1

... formats|{FUNCTION code} [LINE line] [POSITION col]


Effect

:This variant sets a print format starting from the line specified in line and the position specified in col for all subsequent output statements of the current page. The value in col refers to the position within the list buffer. If the additions LINE or POSITION are not specified, the current position of the list cursor (sy-linno, sy-colno) is used. For line and col, data objects of type i are expected whose values are within the current page width or page length. If line or col contain invalid values, the statement is ignored.

The possible print formats formats are listed in the table below. The runtime environment converts these entries into printer -independent codes called print control. When a list is actually printed, the print control codes are translated into printer-specific control characters.

Formats Print Control Explanation
CPI cpi CIcpi characters per inch
LPI lpi LIlpi lines per inch
COLOR BLACK CO001 color black
COLOR RED CO002 color red
COLOR BLUE CO003 color blue
COLOR GREEN CO004 color green
COLOR YELLOW CO005 color yellow
COLOR PINK CO006 color pink
FONT font FOfont font
LEFT MARGIN left LMleft left margin
SIZE siz SIsiz font size

The conversion to device-specific control characters is made using the tables TSP03 and T022D. If a particular option for a particular printer type (according to table TSP03) is not supported in the table T022D (no entry), this option is ignored in printing. For more information, see the documentation for the tables TSP03 and T022D.

There are more print control codes than print formats formats that can be specified in the statement PRINT-CONTROL. All print control codes can also be specified directly in code using the addition FUNCTION . code must be a flat character-type data object that contains a valid print control code. Invalid content is ignored. A list of valid print control codes and their assignment to printers is available in spool administration (transaction SPAD).

Notes:

Example:

The generated spool output in hexadecimal form:
#SBP01123456789 #SBS01
This sequence of statements can be used to print bar codes.

WRITE : /.
PRINT-CONTROL FUNCTION 'SBP01'.
WRITE : '123456789'.
PRINT-CONTROL FUNCTION 'SBS01'.

Alternative 2

... INDEX-LINE index_line


Effect:

This variant inserts the content of the data object index_line into the current print list as an index line. index_line must be a flat character-type data object. If the list cursor of an output statement has been set in the current list line, the index line is inserted after the end of the line.

An index line is sent to the spool system as a part of the print list and is displayed there, although not included in the print output. When archiving the list using ArchiveLink the index lines are stored in a description file.

In archiving, the spool system divides a list into a data file and a description file. The data file contains the actual print lists, and the description file contains the index lines. If the content of the index lines is structured according to a convention described in the ArchiveLink documentation, index lines enable an effective search in archived lists.

Example:

Inserting index lines in a list of square numbers. After every hundredth lines, index lines for archiving are generated (DAIN lines) using the statement PRINT-CONTROL. The structure of the DAIN lines is defined at the start of the list in two additional index lines (DKEY lines). If the user selects Execute and Print on the selection screen and archives the list in the print dialog, the archived list can be searched by the indices.

PARAMETERS number TYPE i.

DATA: index  TYPE i,
      square TYPE f,
      numb   TYPE i,
      num    TYPE c LENGTH 4,
      dkey   TYPE c LENGTH 100,
      dain   TYPE c LENGTH 100.

dkey ='DKEYIndex'.
dkey+44 = '0'.
dkey+47 = '3'.
PRINT-CONTROL INDEX-LINE dkey.

CLEAR dkey.

dkey ='DKEYNumber'.
dkey+44 = '3'.
dkey+47 = '4'.
PRINT-CONTROL INDEX-LINE dkey.

index = 0.

DO number TIMES.
  index = index + 1.
  IF index = 100.
    numb = sy-index / 100.
    WRITE numb TO num LEFT-JUSTIFIED.
    CONCATENATE 'DAIN' 'IDX' num INTO dain.
    PRINT-CONTROL INDEX-LINE dain.
    index = 0.
  ENDIF.
  square = sy-index ** 2.
  WRITE: / sy-index, square.
ENDDO.