INT LlSetOption (HLLJOB hJob, INT nMode, INT_PTR nValue);


Sets diverse options in List & Label.


hJob: List & Label job handle

nMode: Mode index, see below

nValue: New value

Return Value:

Error code


Please call this function before LlDefineLayout() and before the functions LlPrint...Start(), preferably directly after LlJobOpen()/LlJobOpenLCID().


TRUE: in list projects, the formula wizard offers variables in addition to fields in a table column formula.

FALSE: in table objects, only fields will be offered (default).

This option only affects list projects.


TRUE: If multiple report container elements use the same data source (ex. multiple charts or crosstabs etc.), the data is passed only once to the report and is re-used by all these elements. Depending on the project, this might yield a noticeable performance boost. The main drawback is a larger memory footprint. Additionally, it is no longer possible to change the value of variables that influence the properties or contents of the elements during printing (default).

FALSE: Each element gets its own data.


TRUE: List & Label will accept export modules that are loaded during LL_OPTIONSTR_LLXPATHLIST

FALSE: List & Label will not use export module functionality.

This option must be set before the LLXPATHLIST call.

Default: TRUE


This sets the default value for the Designer option specifying whether or not sum variables should also be calculated if data lines are suppressed. The value selected in the Designer will then be saved in and loaded from the project file.

Default: FALSE


TRUE: The sum variables are updated as soon as one data line for the record has been printed.

FALSE: The sum variables are updated as soon as all data lines have been completely printed.

Default: FALSE


The value can be any combination of the following values:


For the definition of parameters, please read the chapter on callbacks.


Sets a parameter that is passed in the scCallback structure to any of the callbacks. Please refer to the chapter on callbacks for further details.


This option sets or reads the code page which is used for all SBCS/DBCS and Unicode translations in List & Label.

This applies to the "A" API of the DLL as well as reading/writing project files.

This setting is used globally, so it is valid for all List & Label jobs in one task, and the hJob parameter is ignored.

The code page has to be installed on the system (NLS for this code page must be installed).

Default: CP_ACP.


This prevents the link from being created using a filter when a table sub-element is added. The dialog for selecting the link type is not displayed and the link is always created using relations.

Default: FALSE


The text of an RTF control is stored in the project file. When this option is set to TRUE, the text will be compressed.

Set this option to FALSE if you want to see the text in the project file (for example for debugging).

Default: TRUE


TRUE: the preview data will be compressed. This is a bit slower, but saves a lot of disk space.

FALSE: no compression (default).


TRUE: List & Label translates CR-LF combinations in variable and field contents to LF (and prevents duplicate line breaks) (default).

FALSE: contents remain unchanged.


This option sets the number of decimal places that the Designer function Str$() uses if the number is not defined by the user in the Designer.

Default: 5


Allows you to set the handle of the font used as default for the project's default font. The handle need not be valid after the API call, an own copy of the font will be used.

This font can be set by LL_OPTIONSTR_DEFDEFFONT.

Default: GetStockObject(ANSI_VAR_FONT)


This option defines whether List & Label prints the table header when calling LlPrint() or when first printing a table line (LlPrintFields()):

TRUE: at LlPrintFields(), thus triggered by the first table line (Default)

FALSE: at LlPrint(). Of course, if fields are used in the header line, they must be defined at the LlPrint() call.


See chapter Direct Print and Export From the Designer.


See chapter Direct Print and Export From the Designer.


See chapter Direct Print and Export From the Designer.


TRUE: if a graphic file is not found during print time LL_ERR_DRAWINGNOTFOUND will be returned

FALSE: the error will be ignored without any feedback. (Default)


This option defines whether the "Escape" key closes the preview window. Default: FALSE.


Character code of the character that is used to divide an expression into multiple lines in the expression wizard.

This value might have to be changed for code pages other than standard Western code page, as the default might be used for a printable character.


This option defines the behavior of the property favorites. The following values can be comined.




Favorites are editable, button is activated by default, registry settings will be ignored.


Favorites are not editable, button is invisible.


Default: Favorites are editable, the button shows the last state from the registry.



Can be used to influence the Windows font mapper, for example to use a device font. The value set by this option will be used for the LOGFONT.lfQuality field when a font instance is being created.

The permitted values are referenced in the MSDN documentation.




Can be used to influence the font mapper of Windows, for example to use a device font. The value set by this option will be used for the LOGFONT.lfOutPrecision field when a font instance is being created.

The permitted values are referenced in the MSDN documentation.



TRUE: printer name setting will not passed on to the preview, so that the preview always uses the default printer in its print routines

FALSE: printer name setting will be passed on to the preview (default)


Selects whether all fonts in the system are offered in font selection combo boxes or whether they must support the charset of the default LCID (or the font set with LL_OPTION_LCID). See also LL_­OPTION_­SCALABLEFONTSONLY.

Default: FALSE


Set to TRUE to force the first group header to be printed even if the evaluated result of the "group by" property is empty.

Default: FALSE


TRUE: display help buttons (default)

FALSE: do not display help buttons


This option is used to set the maximum number of attempts to print an object. Useful to prevent endless loops if non-wrappable content is exceeding the available space.

Default: 0 (no limit)


FALSE: the LastPage() flag will not be set before all objects have been printed (up to a table in case of a report project).

TRUE: a non-finished object will immediately force LastPage() to be FALSE, and will reset all its appended objects.

Default: TRUE


TRUE: The preview is displayed as soon as the first page has been created and further pages are added to the display incrementally. If the user closes the preview window during printing, you will receive LL_ERR_USER_ABORTED from the print functions. This error code must therefore be processed in any case. If LlPreviewDisplay() is called at the end of printing, this API will only return when the user closes the preview window.

FALSE: The preview is not displayed immediately, the application must explicitly call LlPreviewDisplay() for display.

Default: TRUE


TRUE: the space between the characters for block-justified text will vary.

FALSE: only the width of spaces between words will be varied (default)


TRUE: the logfont member LOGFONT.lfDescent is considered when calculating the line distances. This leads to a wider line space but prevents extreme font descents from being cut off (Default from version 13 on).

FALSE: compatible mode


When you set this option, the default values for locale-dependent parameters are set accordingly (inch/metric unit, decimal point, thousands separator, currency symbol and fonts (see LL_OPTION_FORCEFONTCHARSET)).

It also defines the default locale for the Loc...$() and Date$() functions.



Character code of the character that represents a 'line break lock' in the Designer.

This value might have to be changed for code pages other than standard western code page, as the default might be used for a printable character.
In most cases you can also use the Code 160 (NO BREAK SPACE).


Windows or Microsoft applications are supplied with many different RTF controls that support different features and show a different behaviour.

Using this option, you can set the maximum version number of the RTF control to use in the first step. For example, setting the option to 0x100 causes List & Label to load RTF control version 1 (if it exists). Setting the option to 0x401 causes List & Label to try loading RTF control version 4.1. If no control with a version smaller or equal the selected version can be loaded a control with a higher version will be used instead to avoid a loss of data.

To not load any RTF control you should set this option to 0. Advantage is a faster start up and using less resources. However, this also means that the RTF API is not available, i.e. RTF functions such as ToRTF$(), LoadFile$ or RTFtoPlainText$ etc. cannot be used.

This option must be called with job handle –1 before the fist List & Label job has been opened.


TRUE: List & Label Designer is set to metric system

FALSE: List & Label Designer is set to imperial system (inches)

Default value depends on the system's setting.



FALSE: Setting interdependent properties mutually influences each other. (Default)

TRUE: Interdependent properties can be set independently.

This option is sometimes required when working with the DOM object model to prevent automatic property switching. If e.g. the font of a paragraph is set to a Chinese font, the property "Charset" would be automatically switched accordingly. If this is not desired, use this option to switch the behavior.


FALSE: Contrast optimization for table fields, charts and crosstab cells. This automatically changes from black to white and vice versa, based on the contrast of the font color when compared to the background. (Default)

TRUE: No contrast optimization.


FALSE: The variables for fax are visible in the Designer (default).

TRUE: The variables for fax are not visible in the Designer.


This option defines the behavior of the Designer when opening a project file from an older version of List & Label.

TRUE: Conversion takes place without user interaction.

FALSE: A warning box is displayed to the user, indicating that the project file will not be editable by an older version of List & Label once it has been saved with the current version (default).


FALSE: The variables for email are visible in the Designer (default).

TRUE: The variables for email are not visible in the Designer.


TRUE: For a list project, List & Label does not check whether at least one table object is present (default).

FALSE: List & Label performs the check and returns LL_ERR_NO_TABLEOBJECT if the project contains no table.


TRUE: List & Label does not check the parameters passed to its DLL functions, which results in a higher processing speed.

FALSE: The parameters will be checked (default).


TRUE: List & Label does not check if the printers that are relevant for the project exists. If for example network printers are used in the project, that are currently not available, waiting time will occur.

FALSE: List & Label checks if the printers that are relavant for the project exist (default).


With this option monitoring of the print jobs can be switched on (see LL_INFO_PRINTJOBSUPERVISION). Default: TRUE.


Sets the window that is to receive notification messages (callbacks) when no callback procedure is explicitly set.

Usually events are sent to the first non-child window, starting with the window handle given in LlDefineLayout() or LlPrintWithBoxStart(). You can modify the destination with this call.

Default: NULL (default behavior)


List & Label handles NULL-values according to the SQL-92 specification where possible. An important effect of that is, that functions and operators, which get NULL-values as parameter or operator generally also return NULL as the result. An example is the following Designer formula:

Title+" "+Firstname+" "+Lastname

If Title is filled with NULL, the result of the formula is also NULL according to the standard. As it often can be desired to get

Firstname+" "+Lastname

instead, the option LL_OPTION_NULL_IS_NONDESTRUCTIVE defines that NULL-values do not result in the complete expression to become NULL (against the specification) but according to the data type will become "0", an empty string or an invalid date. The better alternative is however to work with NULLSafe() Designer functions, where the replacement value can be defined exactly in case of NULL.

TRUE: NULL-values will be displayed by replacement values.

FALSE: NULL-values as operators or parameter result in NULL as function value (default).


This option allows you to use the variables passed to List & Label within the report sections Table of Contents, Index and Reverse Side. The following flags can be or'ed:




Table of contents




Reverse side



Character code of the character that represents a 'phantom space' in the Designer.

This value might have to be changed for code pages other than standard Western code page, as the default might be used for a printable character.


TRUE: In a table object, the cell borders will be painted only after painting the complete background so that rounding errors during painting (background of the following line can paint over the lower frame line) are avoided (Default from version 23 on).

FALSE: Compatible mode, the cell borders will be painted directly after each cell.


This option allows by using flags (0x1: Designer, 0x2: Preview Window) to decide where the preview should match the true physical size on screen when setting the zoom to 100%. Requires Win 8.1 or newer.


Determines how long (in seconds) printer device contexts are cached. Please note that some printers do not start a print job before the corresponding device context is closed. For these, you might want to change this setting to 0. The default value is 60.


TRUE: Printers that are effectively equal concerning their DEVMODE structs are optimized away (default). This also means that print jobs may be collated even if there are pages with different printer settings in between. To prevent this from happening, you may switch this option to FALSE.

FALSE: All printers are shown, print jobs are not collated.


TRUE: List & Label uses a virtual device for the rendering. This means that no printer driver is required and used on the system. Note that this may have a minimal impact on the positioning of the output.

FALSE: List & Label uses the printer (drivers) installed in the system for rendering (default).

This option must be called with job handle –1 before the fist List & Label job has been opened.


TRUE: This can be used in "Formatted Text" (RTF) objects to prevent any OLE objects from being loaded.

FALSE: OLE objects will be loaded (default).


TRUE: No message boxes and dialogs will be displayed. Message boxes will automatically return the default value. This option is usually set automatically in webserver environments. If the webserver detection should fail for some reason, you can manually force the non-UI mode via this option.

FALSE: Message boxes and dialogs are displayed (default).


TRUE: A backup file is generated during editing in the Designer (default).

FALSE: No backup file is generated.


Preview: the rectangle coordinates of the preview window in percentage of the screen. If this is not set (set to -1), the positions of the window when it was last closed will be used.


The same in screen pixels.


Preview: initial zoom factor in percentage (default: 100). To zoom to page width, set the value to -100.


TRUE: Time() and Now() will always use the current time

FALSE: The time will be fixed once when the project is loaded (default)


TRUE: The output device context will be created new after LlPrintResetProjectState() (default).

FALSE: The device context is preserved after LlPrintResetProjectState(). Is not supported by all printers, but results in increased performance with merge print.


TRUE: A new print job is forced after LlPrintResetProjectState(). This option is especially of use if the same project is printed consecutively multiple times and when it is important that every one of the prints creates its own job in the spooler.

FALSE: Multiple reports can be merged into one print job. A new print job is only created if it is necessary due to duplex prints (default).


Character code of the character that represents a 'new line' in the Designer.

This value might have to be changed for code pages other than standard Western code page, as the default might be used for a printable character.


TRUE: The Designer and the print preview use the Windows Ribbon framework. The Ribbon may be switched off in the project's options dialog (default).

FALSE: Usage of the Ribbon has to be enabled explicitly in the project's options dialog.


Percentage value to wrap RTF text a bit earlier so that MS Word does show RTF text completely (default: 100).


Here you can choose which fonts can be selected in font selection dialogs: only scalable fonts (TrueType and Vector fonts, TRUE) or all (FALSE).

Raster fonts have the disadvantage of not being scalable, so the preview may not appear as expected.

Default: TRUE


List & Label can store some information about the user (user and computer name, date and time of creation as well as last modification) in the project file and the preview file. This can be important for tracing modifications.

TRUE: Save info (default)

FALSE: Suppress info


TRUE: The internal variables of List & Label will be listed in the variable selection dialog of the formula wizard (default).

FALSE: These will be suppressed.


This option sets the color depth of the sketch files for the file selection dialogs. Default is 8, i.e. 256 colors. 32 would be true color.


RTF texts may contain blank lines at the end.

TRUE: These are removed

FALSE: The blank lines are printed (default).


TRUE: The variables and fields in the selection dialog are sorted alphabetically.

FALSE: The variables and fields in the selection dialog are not sorted (default).


TRUE: List & Label will default the "space optimization" feature for new paragraphs in text objects and new fields (default).

FALSE: The default state will be unchecked.

This does not apply to existing objects!


TRUE: All menu options are allowed, and even locked objects are not locked. This mode enables sections that are not accessible to the user to be used without much additional programming.

FALSE: Limitations are valid (default)


TRUE: The user can choose a default exporter for the project, which will be preset in the print options dialog

FALSE: Usually means that the application sets the default exporter

The default print medium is stored in the Project file.

Default: FALSE


TRUE: The Designer does not display detailed info tooltips.

FALSE: The info tooltips are displayed.

Default: FALSE


LL_COLORING_DESIGNER: the coloring of list objects may only be carried out by List & Label (default)

LL_COLORING_PROGRAM: the coloring of list objects is only carried out by notifications or callback (see chapter "Notifications and Callbacks"); color setting in the Designer is not possible

LL_COLORING_DONTCARE: the coloring is first of all carried out by the program by notification or callback and then additionally by List & Label.


Character code of the character that represents a 'tab' in the Designer.

This value might have to be changed for code pages other than standard Western code page, as the default might be used for a printable character.


Description and values see LL_PRNOPT_UNIT.


Some barcodes have size limitations (minimum and/or maximum sizes). If this option is set to TRUE, the user is allowed to switch on the size limitation feature so that when resizing the barcode object, only sizes in the standard size range will be allowed.


TRUE: Chart objects will get their data through the chart API.

FALSE: Compatible mode, charts get their data through LlPrintFields(). (Default)

Please read the hints in the Chart chapter of this manual.


TRUE: List & Label passes all printer device operations to the host application, which then has more freedom but also has to work harder. See LL_CMND_HOSTPRINTER.

FALSE: List & Label manages the printer device


TRUE: The standard simple frame lines for tables and objects such as dotted, dashed, dashed-dotted, and dashed-dotted-dotted are more effectively output directly by Windows and the PDF viewer, respectively. May result in higher overall performance and smaller export files when creating reports.

FALSE: Uses a custom drawing method (individual objects) to output frame lines. This can lead to better results when outputting to printers.

Default: FALSE


TRUE: List & Label embeds JPEG files as JPEG stream into the preview (meta) files. This leads to a significantly decreased file size but the meta files will only be readable from List & Label and not from any third-party picture editors anymore. (Default).

FALSE: JPEG files will be embedded as bitmap records into the preview (meta) files, which will result in significantly larger file sizes.


Determines the order of the variables/fields and folders in the associated tool window.

The following flag groups can be oreded:




Display of variables in declaration order


Display of variables in alphabetical order





Display folders in declaration order


Display folders in alphabetical order


Display folders top


Display folders below



TRUE: Variable and field names are case-sensitive

FALSE: Variable and field names are not case-sensitive ("Name" defines the same variable as "NAME"). This option results in a slightly lower speed. (Default)



This option is important for optimizing text placement in environments without printer drivers (see LL_OPTION_PRINTERLESS). Too small a magnification can lead to "poor" placement accuracy of output, a too large one (option value between 72 and 2400) can result in objects or parts of them not being output. In any case, you should check the results in the target environment.


The following values can be used:




The project is rendered 1:1 in the selected size with the screen device context as reference with the resolution/size of the screen context - can lead to inaccuracies in the placement of outputs if they are calculated using the device coordinates (default).


The resolution for the output is converted so that it is optimally fitted to the size of the screen device context.


The resolution for the output is converted to fit the size of the screen device context exactly, provided that the resolution does not have to be reduced for this purpose.


The resolution for the output in DPI.



TRUE: Special characters in variable and field names will be converted to '_'. (Default)

FALSE: Variable and field names will not be modified. This has a speed advantage, but you must make sure that the field and variable names do not contain these characters. Should be switched to FALSE when using MBCS.

Return value:

Error Code


Please call this function before LlDefineLayout() and before the LlPrint...Start() functions, so preferably directly after LlJobOpen()/ LlJobOpenLCID().


  HLLJOB hJob = LlJobOpen(0);
  // ....

See also:

LlGetOption, LlGetOptionString, LlSetOptionString