Oracle 11.1.1 Production Reporting Developer’s Guide

Oracle 11.1.1 Production Reporting Developer’s Guide

Below you will find brief information for Production Reporting 11.1.1. This software provides a powerful language to access, manipulate, and report enterprise data, enabling you to build complex reporting procedures that can execute multiple calls to multiple datasources and implement nested, hierarchical, or object-oriented program logic.

advertisement

Assistant Bot

Need help? Our chatbot has already read the manual and is ready to assist you. Feel free to ask any questions about the device, but providing details will make the conversation more productive.

Oracle Production Reporting 11.1.1 Developer’s Guide | Manualzz
HYPERION® SQR® PRODUCTION REPORTING
RELEASE 11.1.1
DEVELOPER’S GUIDE
VOLUME 2: LANGUAGE REFERENCE
Production Reporting Developer’s Guide, 11.1.1
Copyright © 1996, 2008, Oracle and/or its affiliates. All rights reserved.
Authors: EPM Information Development Team
This software and related documentation are provided under a license agreement containing restrictions on use and
disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or
allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit,
perform, publish or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation
of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find
any errors, please report them to us in writing.
If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S.
Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS: Programs, software, databases, and related
documentation and technical data delivered to U.S. Government customers are "commercial computer software" or
"commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental
regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and
license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government
contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).
Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
This software is developed for general use in a variety of information management applications. It is not developed or
intended for use in any inherently dangerous applications, including applications which may create a risk of personal
injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe,
backup, redundancy and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim
any liability for any damages caused by use of this software in dangerous applications.
This software and documentation may provide access to or information on content, products and services from third
parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with
respect to third party content, products and services. Oracle Corporation and its affiliates will not be responsible for any
loss, costs, or damages incurred due to your access to or use of third party content, products or services.
Contents
Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
About the Production Reporting Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Production Reporting Language Program Structure . . . . . . . . . . . . . . . . . . . . . . . . . 11
Production Reporting Language Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . 12
Production Reporting Language Syntax Abbreviation Conventions . . . . . . . . . . . . . . 13
Rules for Entering Production Reporting Commands . . . . . . . . . . . . . . . . . . . . . . . . 13
Production Reporting Data Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Literals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Chapter 2. Production Reporting Command-line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Production Reporting Command-line Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Production Reporting Command-line Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Chapter 3. Production Reporting Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
About Production Reporting Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
ADD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
ALTER-COLOR-MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
ALTER-CONNECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
ALTER-LOCALE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
ALTER-PRINTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
ALTER-REPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
ALTER-TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
ARRAY-ADD, ARRAY-DIVIDE, ARRAY-MULTIPLY, ARRAY-SUBTRACT . . . . . . . . . . 58
ASK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
BEGIN-DOCUMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
BEGIN-EXECUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
BEGIN-FOOTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
BEGIN-HEADING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
BEGIN-PROCEDURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
BEGIN-PROGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Contents
iii
BEGIN-SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
BEGIN-SETUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
BEGIN-SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
CALL, CALL SYSTEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
CLEAR-ARRAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
CLOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
CLOSE-RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
COLUMNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
COMMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
CONCAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
CONNECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
CREATE-ARRAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
CREATE-COLOR-PALETTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
CREATE-LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
CREATE-TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
#DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
DECLARE-CHART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Attributes Argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
DECLARE-COLOR-MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
DECLARE-CONNECTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
DECLARE-IMAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
DECLARE-LAYOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
DECLARE-PRINTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
DECLARE-PROCEDURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
DECLARE-REPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
DECLARE-TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
DECLARE-TOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
DECLARE-VARIABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
#DEFINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
DISPLAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
DIVIDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
DO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
DRAW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
DUMP-TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
#ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
ELSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
ENCODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
iv
Contents
END-DECLARE, END-DOCUMENT, END-EVALUATE, END-FOOTING,
END-HEADING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
#END-IF, #ENDIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
END-IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
END-PROCEDURE, END-PROGRAM, END-SELECT, END-SETUP, END-SQL,
END-WHILE, END-EXECUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
EVALUATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
EXECUTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
EXIT-SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
EXTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
FILL-TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
FIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
GET-COLOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
GOTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
#IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
#IFDEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
#IFNDEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
#INCLUDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
INPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
LAST-PAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
LET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Operands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
LOAD-LOOKUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
LOOKUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
LOWERCASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
MBTOSBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
MOVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
MULTIPLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
NEW-PAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
NEW-REPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
NEXT-COLUMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
NEXT-LISTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
OPEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
OPEN-RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
PAGE-NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Contents
v
POSITION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
BOLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
BOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
BOX-FILL-COLOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
BOX-LINE-COLOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
CENTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
CENTER-WITHIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
CODE-PRINTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
DELAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
EDIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
FILL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
FONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
FOREGROUND/BACKGROUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
ITALIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
MATCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
MONEY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
NOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
NUMBER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
ON-BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
POINT-SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
SHADE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
UNDERLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
URL-TARGET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
WRAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
PRINT-BAR-CODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
PRINT-CHART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
PRINT-DIRECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
PRINT-IMAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
PRINT-TABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
PUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
READ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
ROLLBACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
SBTOMBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
SECURITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
SET-COLOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
SET-DELAY-PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
vi
Contents
SHOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
STRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
SUBTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
TOC-ENTRY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
UNSTRING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
UPPERCASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
USE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
USE-COLUMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
USE-PRINTER-TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
USE-PROCEDURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
USE-REPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
WRITE-RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Chapter 4. HTML Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
About HTML Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
HTML General Purpose Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
HTML Heading Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
HTML Highlighting Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
HTML Hypertext Link Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
HTML List Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
HTML Table Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Chapter 5. Encoding in Production Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Encoding Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Encoding Keys in SQR.INI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Encoding Keys in the [Default-Settings] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Encoding Keys in the [Environment] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Encodings Supported without Using Unicode Internally . . . . . . . . . . . . . . . . . . . . . . . . 318
Encodings Supported in Production Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Chapter 6. SQR.INI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Installation of SQR.INI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
For Windows Platforms Only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
For All Other Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
[Default-Settings] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
[Environment: environment] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Using the Java Virtual Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Contents
vii
DDO Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Encoding Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
[SQR Extension] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
[Locale:local-name] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
[Fonts] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Adding [Fonts] Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Specifying Character Sets in Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
[PDF Fonts] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Embedding Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Available Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
[PDF Settings] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
[HTML Fonts] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
[HTML:Images] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
[Enhanced-HTML] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
[Color Map] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
[MAP-ODBC-DB] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
[MAP-DDO-DB] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
[SQR Remote] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Chapter 7. Production Reporting Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Chapter 8. Production Reporting Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Unnumbered Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Numbered Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Appendix A. Production Reporting Language Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Appendix B. Deprecated Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Deprecated Production Reporting Command-line Flags . . . . . . . . . . . . . . . . . . . . . . . . 435
Deprecated SQR.INI Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Values for the FullHTML Keyword in the [Enhanced-HTML] Section . . . . . . . . . . . 436
[Processing-Limits] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Values for PDFCompressionText and PDFCompressionGraphics in the [DefaultSettings] Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Deprecated Transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Deprecated Production Reporting Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
BEGIN-REPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
DATE-TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
DECLARE PRINTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
DECLARE PROCEDURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
DOLLAR-SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
viii
Contents
GRAPHIC BOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
GRAPHIC FONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
GRAPHIC HORZ-LINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
GRAPHIC VERT-LINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
MONEY-SYMBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
NO-FORMFEED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
PAGE-SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
PRINT …CODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
PRINTER-DEINIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
PRINTER-INIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Contents
ix
x
Contents
Introduction
1
In This Chapter
About the Production Reporting Language ......................................................................................11
Production Reporting Data Elements.............................................................................................14
About the Production Reporting Language
The Oracle's Hyperion® SQR® Production Reporting language is a specialized programming
language for accessing, manipulating, and reporting enterprise data. Using the Production
Reporting language, you can build complex procedures that execute multiple calls to multiple
datasources and implement nested, hierarchical, or object-oriented program logic.
The Production Reporting language has several key benefits:
●
Flexibility and scalability
●
Comprehensive facilities for combined report and data processing
●
Multiple platform availability
●
Multiple datasource compatibility
With the Production Reporting language, you can design custom reports by defining the page
size, headers, footers, and layout. The Production Reporting language enables you to generate
a wide variety of output such as complex tabular reports, multiple page reports, and form letters.
You can display data in columns, produce special formats such as mailing labels, and create
HTML, PDF, or customized output for laser printers and phototypesetters.
The high-level programming capabilities that the Production Reporting language provides
enable you to add procedural logic and control to datasource calls. You can use the Production
Reporting language to write other types of applications, such as database manipulation and
maintenance, table load and unload, and interactive query and display.
Production Reporting Language Program Structure
The Production Reporting language processes source code from standard text files and generates
reports. Text files containing source code contain sections delimited with BEGIN-section and
END-section commands. The following examples show the general structure of the Production
Reporting language.
The SETUP section describes overall characteristics of the report:
About the Production Reporting Language
11
BEGIN-SETUP
{setup commands}...
END-SETUP
The HEADING and FOOTING sections specify what is printed in the header and footer on each
page of the report:
BEGIN-HEADING {heading_lines}
{heading commands}...
END-HEADING
BEGIN-FOOTING {footing_lines}
{footing commands}...
END-FOOTING
The PROGRAM section executes the procedures contained in the report:
BEGIN-PROGRAM
{commands}...
END-PROGRAM
The PROCEDURE section accomplishes the tasks associated with producing the report:
BEGIN-PROCEDURE {procedure_name}
{procedure commands}...
END-PROCEDURE
Production Reporting Language Syntax Conventions
Table 1
Syntax Conventions
Symbol
Description
{}
Braces enclose required items.
[]
Square brackets enclose optional items.
...
An ellipsis shows that the preceding parameter can be repeated.
|
A vertical bar separates alternatives within brackets, braces, or parentheses.
'
A single quote starts and ends a literal text constant or any argument with more than one word.
Caution: If you copy codes directly from the examples in the pdf file, make sure you change the slanted
quotes to regular quotes or else you will get an error message.
!
An exclamation point begins a single-line comment that extends to the end of the line. Each comment
line must begin with an exclamation point.
Do not use !=========== to delineate a comment block unless it starts in the first column. The
characters "!=" denotes a relational operator, and Production Reporting could confuse it with a
comment where a relational argument could occur.
12
Introduction
,
A comma separates multiple arguments.
()
Parentheses must enclose an argument or element.
Symbol
Description
UPPERCASE
Production Reporting commands and arguments are specified in UPPERCASE.
Italics
Information and values that you must supply are specified in italics.
Production Reporting Language Syntax Abbreviation
Conventions
Table 2
Syntax Abbreviation Conventions
Abbreviation
Description
Example
any_col
A column of any type.
&string &number &date
date_col
Date or datetime column retrievable from a database.
&date1
num_col
Numeric column retrievable from a database.
&price
txt_col
Text column retrievable from a database.
&address
any_lit
A literal of any type.
'abc' 12
int_lit
Integer literal defined in a program.
12345
num_lit
Numeric literal defined in a program.
12345.67
txt_lit
Text literal defined in a program.
'Company Confidential'
any_var
A variable of any type.
$string #number $date
date_var
A variable explicitly defined as a date variable.
$date1
num_var
Numeric variable defined in a program.
#total_cost
txt_var
String variable defined in a program.
$your_name
nn
Integer literal used as an argument to a command.
123
position
The position qualifier, which consists of the line, column, and
length specification. The minimum position, (), means to use the
current line and column position on the page for the length of the
field being printed.
(5,10,30)
Rules for Entering Production Reporting Commands
●
Production Reporting commands are not case sensitive. Common practice is to use upper
case for commands, but Production Reporting ignores case when compiling source code.
●
Separate command names and arguments by at least one space or tab character.
●
Begin each command on a new line; however, you can develop commands that extend
beyond one line.
About the Production Reporting Language
13
●
Break a line in any position between words except within a quoted string.
●
Use a hyphen (-) at the end of a line to indicate that it continues on the next line. (Production
Reporting ignores hyphens and carriage returns within commands.)
●
Begin each comment line with an exclamation point (!).
●
To display the ! or ' symbols in a report, type the symbols twice to indicate that they are text.
For example, DON'T is typed DON''T.
Note:
You do not need to type quotation and exclamation marks twice in the DOCUMENT section
of form letter reports
Production Reporting Data Elements
Production Reporting data elements include columns, literals, and variables. Each element
begins with a special character that denotes the type of data element.
Columns
Columns are fields defined in the database.
●
& begins a database column or expression name. It can be any type of column as long as it
is a standard SQL datatype. Except for dynamic columns and database or aggregate
functions, it is declared automatically for columns defined in a query.
Literals
Literals are text or numeric constants.
●
A single quote begins and ends a text literal. For example, 'Hello'.
●
0-9 begin any numeric literals. Numerals that include digits with an optional decimal point
and leading sign are acceptable numeric literals. For example, -543.21. Numeric literals can
also be expressed in scientific form. For example, 1.2E5.
Variables
Variables are storage places for text or numbers.
14
Introduction
●
$ begins a text or date variable
●
# begins a numeric variable
●
% begins a list variable
●
@ begins a variable name for a marker location. Marker locations are used to identify
positions to begin printing inside a BEGIN-DOCUMENT paragraph.
Variable Rules
●
Variables can be almost any name of almost any length. For example, $state_name or
#total_cost. For exceptions, see “Production Reporting Reserved Variables” on page 16.
●
Do not use “_ ” or “:” as the first character of a two variable name.
●
Variable names are not case sensitive. That is, you can use a name as uppercase on one line
and lowercase on the next; both refer to the same variable.
●
Production Reporting initializes variables to null (text and date) or zero (numeric).
●
Commands can grow to whatever length the memory of your computer can accommodate.
●
Numeric variables can be FLOAT, INTEGER, or DECIMAL. See “DECLARE-VARIABLE” on
page 150 for more information.
●
Variables and columns are known globally throughout a report, except if used in a local
procedure (one with arguments or declared with the LOCAL argument) in which case they
are known in that procedure only. See “BEGIN-PROCEDURE” on page 69 for more
information.
List Variables
List variables contain an ordered collection of Production Reporting variables and are
nonrecursive (you cannot nest lists within lists).
Indicate list variables with the % symbol. Create list variables with the LET command along with
a list of variables. For example,
LET %LIST1 = LIST (num_var1|str_var1, num_var2|str_var2,...)
Note:
List variables are used in Production Reporting DDO only.
You can perform the following actions with list variables:
●
Define a list variable—List variables can hold multiple rows of information. Before you
assign a list variable, define it using the following syntax:
let %listname=LIST(col_var|num_var|str_var|str_lit|num_lit[,...])
or
let %listname[num_lit]=list(NUMBER|DATE|TEXT$colname
|'.colname'[,...])
●
Assign a list variable—Use the following syntax:
let %listname|%listname[num_var|num_lit]=list(col_var|str_var
|num_var|str_lit|num_lit[,…])
●
Access a list variable—Use the following syntax:
let str_var|num_var=%listname[num_var|num_lit].#colname
Production Reporting Data Elements
15
●
Modify a list variable—When you modify a list variable, you can modify a specific row
element of any list item.
In list-variable arguments, the value between the brackets indicates either the number of rows
in the list for the definition case or the row within the list to be modified or assigned.
If no brackets exist, there is no need to predefine; assign the types based on the given variable
types. For multirow lists, the assignment must be compatible with the types given in the
definition.
A NUMBER field has the same characteristics as an undeclared #var; the underlying storage
depends on the contents, and the DEFAULT-NUMERIC setting applies.
The usual Production Reporting rules for variable assignment apply to list access. Assignment
is prohibited only between Date and Numeric types. Assignment of a numeric column to a string
variable returns the string representation of the numeric value; assignment of a date variable to
a string variable returns the default-edit-mask representation of the date.
Production Reporting Reserved Variables
When you create multiple reports, the variables apply to the current report. Production
Reporting reserves a library of predefined variables for general use.
Note:
All of Production Reporting's reserved variables are global variables. Reference reserved variables
in local procedures with a leading underscore. For example, #_sqlstatus or $_sql-error. See
“BEGIN-PROCEDURE” on page 69 for information on defining local procedures.
Table 3
Production Reporting Reserved Variables
Variable
Description
#current-column
Current column on the page.
$current-date
Current date-time on the local machine when Production Reporting
starts running the program.
#current-line
Current line on the page. This value is the physical line on the page,
not the line in the report body.
Line numbers are referenced in PRINT and other Production Reporting
commands used for positioning data on the page. Optional page
headers and footers, defined BEGIN-HEADING and BEGINFOOTING, have their own line sequences. Line 2 of the heading is
different from line 2 of the report body or footing.
16
Introduction
Variable
Description
#end-file
Set to one (1) if end of file occurs when reading a flat file; otherwise,
set to zero (0). Your program should check this variable after each
READ command. (See “READ” on page 275 for more information.)
#page-count
Current page number.
#return-status
Value returned to the operating system when Production Reporting
exits. Can be set in your report. #return-status is initialized to the
“success” return value for the operating system.
#sql-count
Count of rows affected by a DML statement (INSERT, UPDATE, or
DELETE). This is equivalent to ROWCOUNT in Oracle and Sybase.
$sql-error
Text message from the database explaining an error. This variable is
rewritten when a new error is encountered.
#sql-status
Value of #SQL-STATUS set whenever BEGIN-SELECT executes.
Normally this variable is checked from within an ON-ERROR
procedure so its value describes the error condition (whereas the
$SQL-ERROR variable contains the error message). The actual
meaning of #SQL-STATUS is database dependent. Consult the proper
database manual to fully interpret its meaning.
$sql-text
Last SQL statement sent to the database by Production Reporting.
The variable contents are valid after Production Reporting processes
BEGIN-SQL, BEGIN-SELECT, or LOAD-LOOKUP , or within the
ON-ERROR-procedure for BEGIN-SQL and BEGIN-SELECT.
The variable is populated for ODBC, Sybase, Oracle, Informix,
Teradata, DB2, and DDO.
$sqr-connected-db {sqr-connected-db}
Class of the backend database from the initial connection or from
CONNECT.
For ODBC, the class is: ODBC, Sybase, Oracle, Informix, Redbrick,
Teradata, or DB2.
For DDO, the class is: XML, CSV, SAP, MSOLAP, Essbase, SQLServer,
Sybase, Oracle, Informix, or DB2.
The information is derived from $sqr-connected-db-name / {sqrconnected-db-name}.
$sqr-connected-db-name
{sqr-connected-db-name}
Name of the database driver from the initial connection or from
CONNECT.
Production Reporting Data Elements
17
Variable
Description
For ODBC, the value is derived from the ODBC Driver Manager. For
DDO, the value is derived from the driver used. For all other
databases, the value is the same as the value in $sqr-database /
{sqr-database}.
18
Introduction
$sqr-database {sqr-database}
Database type for which Production Reporting was compiled. Valid
values are: DB2, ODBC, Sybase, Informix, and Oracle.
$sqr-dbcs {sqr-dbcs}
Defines whether Production Reporting recognizes double-byte
character strings. The value can be either YES or NO.
$sqr-encoding {sqr-encoding}
Name of the default encoding as defined by the ENCODING
environment variable when Production Reporting is invoked.
$sqr-encoding-console
{sqr-encoding-console}
Name of encoding for character data written to the log file or console.
$sqr-encoding-database
{sqr-encoding-database}
Character data retrieved from and inserted into the database.
$sqr-encoding-file-input {sqr-encoding-fileinput}
Name of encoding for character data read from files used with
OPEN.
$sqr-encoding-file-output
{sqr-encoding-file-output}
Name of encoding for character data written to files used with
OPEN.
$sqr-encoding-report-output
{sqr-encoding-report-output}
Report generated by Production Reporting (for example, an LIS file
or a PostScript file).
$sqr-encoding-source {sqr-encoding-source}
Name of encoding for Production Reporting source files and include
files.
$sqr-hostname {sqr-hostname}
Name of the computer on which Production Reporting is currently
executing.
$sqr-locale
Name of the current locale. A + at the end of the name indicates an
argument used in the locale has changed.
#sqr-max-columns
Maximum number of columns as determined by the layout. When a
new report is selected, this variable is automatically updated to
reflect the new layout.
Variable
Description
#sqr-max-lines
Maximum number of lines as determined by the layout. When a new
report is selected, this variable is automatically updated to reflect
the new layout.
#sqr-pid
Process ID of the current Production Reporting process. #sqr-pid is
unique for each run of Production Reporting. This variable is useful
in creating unique temporary names.
$sqr-platform {sqr-platform}
Hardware/operating system type for which Production Reporting was
compiled. Valid values are WINDOWS and UNIX.
$sqr-program
Name of the Production Reporting program file.
$sqr-report
Name of the report output file. $sqr-report reflects the actual name
of the file to be used (as specified by the -F flag or the NEWREPORT command).
$sqr-ver
Text string shown with the -ID flag. Production Reporting version.
$username
Database user name specified on the command line.
Production Reporting Data Elements
19
20
Introduction
Production Reporting
Command-line
2
In This Chapter
Production Reporting Command-line Flags......................................................................................21
Production Reporting Command-line Arguments ...............................................................................31
Production Reporting Command-line Flags
Production Reporting command-line flags begin with a dash (-). When a flag takes an argument,
the argument must follow the flag with no intervening space.
Table 4
Production Reporting Command-line Flags
Flag
Description
Program
Database
-A
Appends output to a file with the same name as the source. If the
file does not exist, a new one is created. Useful for running a report
multiple times with a single output file.
Production Reporting
Server
All
Restrictions:
-Bnn
-BURST:{xx}
●
Only works with LIS files. Does not work with SPF files.
●
Only applies to line printers (-PRINTER:LP). Ignored for other
printer types and output formats.
●
Only applies to SQR and SQRP in non-Windows environments.
Production
Reporting Execute
Production
Reporting Print
Defines the number of rows to buffer when retrieving data. The
default is 10 rows. Regardless of the setting, all rows are retrieved.
On the command line, -B controls the setting for all BEGIN-SELECT
commands. In a program, each BEGIN-SELECT command can have
its own -B flag for further optimization.
Production Reporting
Server
Specifies the bursting type.
Production Reporting
Server
●
-BURST:T generates the Table of Contents.
●
-BURST:S generates report output according to the symbolic
Table of Contents entries defined with the level argument in
TOC-ENTRY. In -BURST:S[ {l} ], {l} is the level at which to burst.
-BURST:S is equivalent to -BURST:S1.
●
ODBC Oracle
Sybase
Production
Reporting Execute
All
Production
Reporting Execute
Production
Reporting Print
-BURST:P generates report output by report page numbers.
In -BURST:P[ {l} , {s} [, {s}.…] ] , {l} is the number of logical
report pages that each HTML file contains and {s} is the page
selection: {n}, {n}-{m}, -{m}, or {n}-. -BURST:P is equivalent
Production Reporting Command-line Flags
21
Flag
Description
Program
Database
Production Reporting
Server
All
to -BURST:P0,1- when using -PRINTER:HT or -BURST:P1 when
using -PRINTER:EH.
See “Bursting and Demand Paging” in Volume 1 of the Hyperion
SQR Production Reporting Developer's Guide for more information.
Note: -BURST:P and -BURST:S require -PRINTER:EH
or -PRINTER:HT. The Page range selection feature of -BURST:P
requires -PRINTER:HT. -BURST:T requires -PRINTER:HT.
-C
(Windows) Displays the Cancel dialog box while the program runs
to terminate program execution.
Production
Reporting Execute
-CB
(Windows, Callable Production Reporting) Forces the
communication box to be used.
Production Reporting
Server
All
-Dnn
(non-Windows) Displays the report output at the same time it is
written to the output file. nn is the maximum number of lines to
display before pausing. If no number is entered after -D, the display
scrolls continuously.
Production Reporting
Server
All
-DBdatabase
Production
Reporting Execute
Note: The printer type must be LP or the display is ignored. If the
program produces multiple reports, the display is for the first report
only.
Production
Reporting Print
Uses the specified database, which overrides any USE command
in the Production Reporting program.
Production Reporting
Server
Sybase
Production
Reporting Execute
-DEBUG[xxx]
Compiles lines preceded by #DEBUG. Without this flag, Production
Reporting ignores these lines.
Production Reporting
Server
All
(See “#DEBUG” on page 99.)
-DNT:{xx}
Defines the default behavior for numeric variables. The value for
xx can be INTEGER, FLOAT, DECIMAL, or V30. To specify a precision
for DECIMAL, append it with a colon delimiter (:)—for
example, -DNT:DECIMAL:20. See the DEFAULT argument for
“DECLARE-VARIABLE” on page 150 for a detailed explanation. If
used, the DEFAULT argument in DECLARE-VARIABLE takes
precedence.
Production Reporting
Server
All
-E[file]
Directs error messages to the named file, or to the default file
program.err. If no errors occur, no file is created.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-EH_APPLETS:dir
22
Defines the directory for Enhanced HTML applets. (The default
directory for applets is IMAGES.)
Production Reporting
Server
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production
Reporting Execute
Production Reporting Command-line
All
Flag
Description
Program
Database
Production
Reporting Print
-EH_BQD
Generates a {report}.bqd file from the report data and associates
a BQD (Brio Query Format File) icon with {report}.bqd in the
navigation bar.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-EH_BQD:file
Associates BQD icons with the specified file.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-EH_BROWSER:xx
Defines the browser and generates the HTML.
●
BASIC—Generates HTML suitable for all browsers.
●
IE—Generates HTML for Internet Explorer.
●
NETSCAPE —Generates HTML for Netscape.
●
ALL—If necessary, Production Reporting generates Basic, IE,
and Netscape HTML files. Report_frm.htm contains Javascript
to “sense” the browser on the user’s machine and display the
appropriate version. (In this case, the user’s machine is the
machine of the person reading the report, not the person
writing it.)
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
Note: Only applicable with -PRINTER:EH or -PRINTER:EP. Only
recognized when combined with -EH_FULLHTML.
-EH_CSV
Generates a {report}.csv file from report data.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-EH_CSV:file
Associates the CSV icon with the specified file.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-EH_CSVONLY
Creates a CSV file but does not create an HTML file.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
All
Production
Reporting Execute
Production Reporting Command-line Flags
23
Flag
Description
Program
Database
Production
Reporting Print
-EH_DEBUG[:opts]
Produces a DBG output file containing compiler and internal error
messages.
Production Reporting
Server
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production
Reporting Execute
All
Production
Reporting Print
-EH_ICONS:dir
Defines the directory where HTML should look for the referenced
icons.
Production Reporting
Server
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production
Reporting Execute
All
Production
Reporting Print
-EH_IMAGES:dir
Defines the directory path for the GIF files used by the Navigation
Bar.
Production Reporting
Server
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production
Reporting Execute
All
Production
Reporting Print
-EH_KEEP
Copies (does not move) the files when used in conjunction
with -EH_ZIP.
Production Reporting
Server
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production
Reporting Execute
All
Production
Reporting Print
-EH_LANGUAGE:xx
Defines the HTML navigation bar language. You can specify English,
French, German, Italian, Japanese, Korean, Portuguese, Spanish,
SChinese, or TChinese.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-EH_PDF
Associates a PDF icon with {report}.pdf in the navigation bar.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-EH_SCALE:{nn}
Sets the scaling factor from 50 to 200.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
Production
Reporting Execute
24
Production Reporting Command-line
All
Flag
Description
Program
Database
Production
Reporting Print
-EH_XIMG
Specifies to not remove the directory path from the IMAGE
reference.
Production Reporting
Server
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production
Reporting Execute
All
Production
Reporting Print
-EH_XML:file
Associates an XML icon with a file.
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-EH_ZIP[:file]
Moves generated files to the specified file or {report}.zip if {file} is
not specified.
Production Reporting
Server
Note: Only applicable with -PRINTER:EH or -PRINTER:EP.
Production
Reporting Execute
All
Production
Reporting Print
-F[file|directory]
Overrides the default output file name, program.lis.
The default action places the program.lis file in the same directory
as the program.sqr file. To use the current directory, specify -F
without an argument. To change the name of the output file, specify
-F with the new name. If the new name does not specify a directory,
the file is created in the current directory. The output file is not
created until data actually prints on the page. If no data prints, no
output file is created.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
The following shows how to specify file names and directories for
different operating systems.
-ID
Operating System
Directory
Character
Example
UNIX
/
-F$HOME/reports/
Windows
\
-FC:\Oracle\Files\
(non-Windows) Displays the copyright banner.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-Idir_list
Specifies the directories that Production Reporting searches when
processing the #INCLUDE directive if the include file does not exist
in the current directory and no path was specified for the file. The
Production Reporting
Server
All
Production Reporting Command-line Flags
25
Flag
Description
Program
Database
Creates SPF files in addition to LIS files for each report generated.
(See Chapter 28, “Printing Issues,” in Volume 1 of the Hyperion
SQR Production Reporting Developer's Guide for more information
on LIS and SPF files.)
Production Reporting
Server
All
LOAD-LOOKUP: s = SQR, d = DB, c = case-sensitive,
i = case-insensitive
Production Reporting
Server
All
Production Reporting
Server
All
directory names must be separated by either commas (,) or
semicolons (;).
In UNIX, if your shell uses semicolons as command delimiters,
precede each semicolon with a backslash (\). Always append the
directory character to the end of each directory name. See the -F
flag for a list of directory characters by operating system. For
example, under UNIX:
sqr myreport sammy/baker -I/home/sqr/inc/,/
usr/sqr/incl/
-KEEP
-LL{s|d}{c|i}
Production
Reporting Execute
(See “LOAD-LOOKUP ” on page 217)
-NOLIS
Prevents the creation of all Production Reporting output file types.
SPF output is created instead.
Production
Reporting Execute
-O[file]
-PB
Directs log messages to the specified file or to program.log if no
file is specified. By default, the file sqr.log is used in the current
working directory.
Production Reporting
Server
Retains trailing blanks in column data.
Production Reporting
Server
All
Production
Reporting Execute
Informix
Production
Reporting Execute
-PRINTER:xx
Uses printer type xx when creating output files.
Production Reporting
Server
Production
Reporting Execute
Production
Reporting Print
xx
Printer Type
Example
EH
Enhanced HTML
-PRINTER:EH
EP
Enhanced
HTML/PDF
-PRINTER:EP
GD
Generic Output
Driver
-PRINTER:GD
-GD_DRIVER:name
defines the name
26
Production Reporting Command-line
To generate Excel documents, enter:
-PRINTER:GD -GD_DRIVER:EXCEL
All
Flag
Description
Program
of the Generic
Output Driver.
To generate Word documents, enter:
-PRINTER:GD -GD_DRIVER:WORD
-GD_OPTION:opts
defines optional
parameters to pass
to the Generic
output Driver. (The
optional
parameters are
used to pass
command line data
to your personal
application. The
parameters
entered depend on
your application.)
HP
Database
To generate Power Point documents, enter:
-PRINTER:GD -GD_DRIVER:PP
These commands create Office HTML files that can be opened by Word
2003, Word XP, Power Point 2003, Power Point XP, Excel 2003, and
Excel XP. (For Office 2000 products, you can download a Microsoft tool
to convert Office HTML files into something that Office 2000 products
can open.)
Note: You can use the -F flag to change the output file name to
report.doc, report.ppt, or report.xls.
HP LaserJet
-PRINTER:HP
Note: Production
Reporting does not
support color
for -PRINTER:HP (HP
PCL) output
generation.
LP
Line Printer
-PRINTER:LP
PD
PDF
-PRINTER:PD
PS
PostScript
-PRINTER:PS
WP
Windows
-PRINTER:WP
Notes:
●
LP, HP, and PS produce files with the .lis extension.
●
EH and HT produce .htm file output.
❍
HT is controlled by the PrinterHT setting in the [DefaultSettings] section of SQR.INI. If PrinterHT is set to
standard, HT produces version 2.0 HTML files with the
report content inside <PRE></PRE> tags. If PrinterHT is set
to enhanced, HT is mapped to EH.
(See “[Default-Settings] Section” on page
328on page 333 for additional information.)
❍
EH produces reports fully formatted with version 1.1 XHTML
tags.
●
PD produces PDF 1.3 compliant files. When -PRINTER:PD is
used, PRINT-DIRECT, PRINT …Code, and Print with CODEPRINTER commands are processed but ignored.
●
On Windows systems, WP sends output to the default Windows
printer. To specify a non-default Windows printer, use PRINTER:WP:{Printer Name}. The {Printer Name} can be the
name assigned to a printer; or, if the operating system permits
Production Reporting Command-line Flags
27
Flag
Description
Program
Database
Production Reporting
Server
Sybase
it, the UNC name (i.e.\\Machine\ShareName). For example,
to send output to a Windows printer named NewPrinter, you
could use -PRINTER:WP:NewPrinter. If your printer name has
spaces, enclose the entire command in double quotes.
-PSnn
Sets the TDS (Tabular Data Stream) packet size to the specified
value.
Production
Reporting Execute
-RS
Saves the program in a run-time file. The program is scanned,
compiled, and checked for correct syntax. Queries are validated
and compiled. Then, the executable version is saved in a file with
the name program.sqt. Note that Production Reporting does not
prompt for ASK variables after compilation.
Production Reporting
Server
All
-RT
Uses the run-time file saved with -RS. Skips syntax and query
checking and begins processing immediately. Note that Production
Reporting does not prompt for ASK variables after compilation.
Production Reporting
Server
All
-S
Displays the status of all cursors at the end of the report run. Status
includes the text of each SQL statement, the number of times each
was compiled and executed, and the total number of rows
selected. The output goes directly to the screen. This information
can be used for debugging SQL statements and enhancing
performance and tuning.
Production Reporting
Server
All
Specifies that you want to test your report for nn pages. To save
time during testing, Production Reporting ignores all ORDER BY
clauses in SELECT statements. For multiple reports, Production
Reporting stops after the specified number of pages defined for
the first report.
Production Reporting
Server
Trims trailing blanks from database character columns.
Production Reporting
Server
-Tnn
-T{B}
Production
Reporting Execute
All
Production
Reporting Execute
DB2 Sybase
ODBC Teradata
Production
Reporting Execute
-T{Z}
Trims trailing zeros from the decimal portion of numeric columns.
Production Reporting
Server
Production
Reporting Execute
-U{priv_connectivity}
Directs SQR to connect to a privileged user and then proxy as the
"user" from the normal connectivity piece.
sqr {program} {connectivity} Upriv_connectivity [flags] [args]
For example:
sqr scott {prg} -Upriv/priv@instance
Logs in in as "priv/priv@instance" and then proxies to user "scott".
All access is then be based "scott" and not "priv".
28
Production Reporting Command-line
DB2 Teradata
Flag
Description
Program
Database
-Vserver
Uses the named server.
Production Reporting
Server
Sybase
Production
Reporting Execute
-XB
(non-Windows) Suppresses the Production Reporting banner and
the “Production Reporting... End of Run” message.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-XC
(Callable Production Reporting) Suppresses the database commit
when the report finishes running.
Production Reporting
Server
All
-XCB
(Windows) Defines to not use the communication box. Requests
for input are made in Windows dialog boxes.
Production Reporting
Server
All
Production
Reporting Execute
-XFRM
Prevents Production Reporting from creating a frame in HTML files
generated with -PRINTER:EH.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-XI
Prevents user interaction during a program run. If ASK or INPUT
requires user input, an error displays and the program ends.
Production Reporting
Server
All
Production
Reporting Execute
-XL
Prevents Production Reporting from logging onto the database.
Programs run in this mode cannot contain any SQL statements. -XL
lets you run Production Reporting without accessing the database.
You still must supply at least an empty slash (/) on the command
line as a placeholder for the connectivity information.
Production Reporting
Server
All
Production
Reporting Execute
For example: sqr myprog / -xl
-XLFF
Prevents trailing form feed.
Production Reporting
Server
All
Production
Reporting Execute
-XMB
(Windows) Disables error message display so programs can run
without interruption by error messages/warnings generated by
Production Reporting, or by user generated messages (SHOW/
DISPLAY). All messages still go to their designated output files
(SQR.ERR or -E{filename} / SQR.LOG or -O{filename})
Production Reporting
Server
All
-XNAV
Prevents Production Reporting from creating the Navigation Bar in
HTML files generated with -PRINTER:HT and -PRINTER:EH. This
Production Reporting
Server
All
Production Reporting Command-line Flags
29
Flag
-XP
-XTB
Description
Program
occurs when only a single HTML file is produced. Multiple HTML
files generated from a single report always contain the Navigation
Bar.
Production
Reporting Execute
Prevents Production Reporting from creating temporary stored
procedures.
Production Reporting
Server
See “BEGIN-SELECT” on page 72 for more information.
Production
Reporting Execute
Preserves trailing blanks in LIS files at the end of a line.
Production Reporting
Server
Database
Production
Reporting Print
Sybase
All
Production
Reporting Execute
Production
Reporting Print
-XTOC
Prevents Production Reporting from generating the Table of
Contents for the report. This flag is ignored when -PRINTER:HT or PRINTER:EP is also specified.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-ZEN{name}
Sets the default encoding name.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-ZIF{file}
Sets the full path and name of the SQR initialization file, SQR.INI.
Production Reporting
Server
All
Production
Reporting Execute
Production
Reporting Print
-ZIV
-ZMF{file}
Invokes the SPF Viewer after generating the program.spf file.
Implicitly invokes -KEEP to create program.spf. For multiple output
files, only the first report file passes to the Production Reporting
Viewer.
Production Reporting
Server
Defines the full path and name of the Production Reporting error
message file, sqrerr.dat.
Production Reporting
Server
Production
Reporting Execute
Production
Reporting Execute
Production
Reporting Print
30
Production Reporting Command-line
All
All
Flag
Description
Program
Database
-ZRF{file}
(DDO) Sets the full path and name of an alternate
registry.properties file. Following is a common default path to the
registry.properties file on a Windows system:
Production Reporting
Server
All
c:\program files\hyperion\properties\registry.properties
Production
Reporting Execute
The registry.properties file lists datasources that Production
Reporting can access. The information in the registry.properties
file makes it possible for Production Reporting to access
datasources for which DDO drivers have been loaded and
configured.
Production Reporting Command-line Arguments
Table 5
Production Reporting Command-line Arguments
Argument
Description
Program
program
Name of the text file containing source code. The default file type or extension is .sqr. If
entered as “?” or omitted, Production Reporting prompts for the report program name. On
UNIX, if your shell uses the question character as a WILD CARD character, precede it with
a backslash (\).
Production Reporting Server
Any flag in Production Reporting Command-line Flags.
Production Reporting Server
-flags
Production Reporting Execute
Production Reporting Execute
Production Reporting Print
pars...
@file...
connectivity
Report parameters for ASK and INPUT commands. Enter the parameters on the command
line in the same sequence they are expected by the program—first ASK parameters in order
and then INPUT parameters.
Production Reporting Server
File containing program arguments, one argument per line. Arguments are processed one
at a time—first ASK arguments in order and then INPUT arguments. For non-Windows
platforms, the command-line arguments program, connectivity, and args can be specified
in this file.
Production Reporting Server
Information needed to connect to the database. If entered as “?” or omitted, Production
Reporting prompts for the information.
Production Reporting Server
DB2
Informix
ODBC
Production Reporting Execute
Production Reporting Execute
Production Reporting Execute
[Database]/[Username]/ [Password]
●
Database—Database name.
●
Username—User name for the database.
●
Password—Password for the database.
Database[/username/password]
●
Database—Database name.
●
Username—User name for the database.
●
Password—Password for the database.
Data_Source_Name/[Username]/[Password]
Production Reporting Command-line Arguments
31
Argument
Description
Program
●
Data_Source_Name—ODBC driver name.
●
Username—User name for the database.
●
Password—Password for the database.
Note: This port has been certified against Microsoft SQL Server.
Oracle
Sybase
Teradata
32
Production Reporting Command-line
[Username]/[Password[@Database]]
●
Database—(Optional) Database connection string (for example,
@sales.2cme.com).
●
Username—Username for the database.
●
Password—Password for the database.
Username/[Password]
●
Username—User name for the database.
●
Password—Password for the database.
[tdpid/]username[,password]
●
tdpid—Teradata tdp name.
●
username—User name for the database.
●
password—Password for the database.
3
Production Reporting
Command Reference
In This Chapter
About Production Reporting Commands.........................................................................................36
ADD .................................................................................................................................36
ALTER-COLOR-MAP ................................................................................................................37
ALTER-CONNECTION ...............................................................................................................39
ALTER-LOCALE......................................................................................................................41
ALTER-PRINTER.....................................................................................................................48
ALTER-REPORT .....................................................................................................................50
ALTER-TABLE .......................................................................................................................55
ARRAY-ADD, ARRAY-DIVIDE, ARRAY-MULTIPLY, ARRAY-SUBTRACT............................................................58
ASK..................................................................................................................................60
BEGIN-DOCUMENT.................................................................................................................61
BEGIN-EXECUTE ...................................................................................................................62
BEGIN-FOOTING ....................................................................................................................66
BEGIN-HEADING ...................................................................................................................68
BEGIN-PROCEDURE................................................................................................................69
BEGIN-PROGRAM ..................................................................................................................72
BEGIN-SELECT......................................................................................................................72
BEGIN-SETUP.......................................................................................................................76
BEGIN-SQL..........................................................................................................................77
BREAK...............................................................................................................................80
CALL, CALL SYSTEM ...............................................................................................................80
CLEAR-ARRAY ......................................................................................................................85
CLOSE...............................................................................................................................86
CLOSE-RS...........................................................................................................................86
COLUMNS...........................................................................................................................88
COMMIT .............................................................................................................................88
CONCAT .............................................................................................................................89
CONNECT ...........................................................................................................................91
CREATE-ARRAY .....................................................................................................................92
CREATE-COLOR-PALETTE ..........................................................................................................94
CREATE-LIST ........................................................................................................................95
CREATE-TABLE......................................................................................................................96
#DEBUG ............................................................................................................................99
33
DECLARE-CHART ................................................................................................................. 100
DECLARE-COLOR-MAP........................................................................................................... 126
DECLARE-CONNECTION ......................................................................................................... 128
DECLARE-IMAGE ................................................................................................................. 130
DECLARE-LAYOUT ................................................................................................................ 132
DECLARE-PRINTER ............................................................................................................... 137
DECLARE-PROCEDURE .......................................................................................................... 143
DECLARE-REPORT................................................................................................................ 144
DECLARE-TABLE.................................................................................................................. 146
DECLARE-TOC .................................................................................................................... 148
DECLARE-VARIABLE.............................................................................................................. 150
#DEFINE .......................................................................................................................... 153
DISPLAY ........................................................................................................................... 155
DIVIDE............................................................................................................................. 158
DO ................................................................................................................................. 159
DRAW ............................................................................................................................. 160
DUMP-TABLE ..................................................................................................................... 163
#ELSE ............................................................................................................................. 164
ELSE............................................................................................................................... 164
ENCODE........................................................................................................................... 164
END-DECLARE, END-DOCUMENT, END-EVALUATE, END-FOOTING, END-HEADING ........................................ 165
#END-IF, #ENDIF................................................................................................................. 166
END-IF............................................................................................................................. 167
END-PROCEDURE, END-PROGRAM, END-SELECT, END-SETUP, END-SQL, END-WHILE, END-EXECUTE ................. 167
EVALUATE ......................................................................................................................... 168
EXECUTE .......................................................................................................................... 170
EXIT-SELECT ...................................................................................................................... 175
EXTRACT........................................................................................................................... 176
FILL-TABLE ........................................................................................................................ 177
FIND ............................................................................................................................... 179
GET ................................................................................................................................ 180
GET-COLOR ....................................................................................................................... 181
GOTO .............................................................................................................................. 183
#IF ................................................................................................................................. 184
IF................................................................................................................................... 186
#IFDEF ............................................................................................................................ 187
#IFNDEF........................................................................................................................... 188
#INCLUDE......................................................................................................................... 188
INPUT.............................................................................................................................. 189
LAST-PAGE........................................................................................................................ 192
LET................................................................................................................................. 192
LOAD-LOOKUP ................................................................................................................... 217
LOOKUP ........................................................................................................................... 222
34
Production Reporting Command Reference
LOWERCASE ...................................................................................................................... 223
MBTOSBS ........................................................................................................................ 224
MOVE.............................................................................................................................. 224
MULTIPLY.......................................................................................................................... 228
NEW-PAGE ........................................................................................................................ 229
NEW-REPORT ..................................................................................................................... 230
NEXT-COLUMN.................................................................................................................... 231
NEXT-LISTING ..................................................................................................................... 232
OPEN .............................................................................................................................. 233
OPEN-RS.......................................................................................................................... 235
PAGE-NUMBER ................................................................................................................... 237
POSITION ......................................................................................................................... 238
PRINT.............................................................................................................................. 239
PRINT-BAR-CODE ................................................................................................................ 260
PRINT-CHART ..................................................................................................................... 263
PRINT-DIRECT..................................................................................................................... 270
PRINT-IMAGE ..................................................................................................................... 271
PRINT-TABLE...................................................................................................................... 273
PUT ................................................................................................................................ 274
READ .............................................................................................................................. 275
ROLLBACK ........................................................................................................................ 277
SBTOMBS ........................................................................................................................ 278
SECURITY ......................................................................................................................... 278
SET-COLOR ....................................................................................................................... 280
SET-DELAY-PRINT ................................................................................................................ 282
SHOW ............................................................................................................................. 283
STOP .............................................................................................................................. 287
STRING ............................................................................................................................ 288
SUBTRACT ........................................................................................................................ 289
TOC-ENTRY ........................................................................................................................ 290
UNSTRING ........................................................................................................................ 291
UPPERCASE ...................................................................................................................... 292
USE................................................................................................................................ 293
USE-COLUMN .................................................................................................................... 293
USE-PRINTER-TYPE............................................................................................................... 294
USE-PROCEDURE ................................................................................................................ 295
USE-REPORT...................................................................................................................... 296
WHILE ............................................................................................................................. 297
WRITE ............................................................................................................................. 299
WRITE-RS ......................................................................................................................... 300
35
About Production Reporting Commands
This chapter describes each command in the Production Reporting lexicon. The commands
follow the conventions in Table 1, “Syntax Conventions,” on page 12 and use the abbreviations
in Table 2, “Syntax Abbreviation Conventions,” on page 13.
Caution!
If you copy codes directly from the examples in the PDF file, change the slanted quotes to regular
quotes to avoid error messages.
Note:
For information on commands that are DDO-specific or have special instructions for DDO, see
“DDO” in the index.
ADD
Function
Adds one number to another.
Syntax
ADD {src_num_lit|_var|_col} TO dst_num_var [ROUND=nn]
Arguments
src_num_lit|_var|_col
Numeric source value added to dst_num_var.
dst_num_var
Numeric destination variable containing results after execution.
ROUND
Results rounded to the number of digits to the right of the decimal point. Float variables: valid
values are 0 to 15. Decimal variables: valid values are 0 to the precision of the variable. Integer
variables: N/A.
Description
The source value is added to the destination variable and the result is placed in the destination.
Source is always first and destination is always second. Money-related values (dollars and cents)
use decimal variables.
36
Production Reporting Command Reference
Examples
add
add
add
10 to #counter
#counter to #new_count
&price to #total round=2
See Also
LET for information on complex arithmetic expressions
ALTER-COLOR-MAP
Function
Dynamically alters a color.
Syntax
ALTER-COLOR-MAP
NAME={color_name_lit|_var|_col}
VALUE=({color_name_lit|_var|_col}|{rgb})
Arguments
NAME
Name of the color. For example, light blue.
VALUE
RGB value of the color. For example, (193, 233, 230).
{color_name_lit|_var|_col}
●
Includes alphanumeric characters (A-Z, 0-9), the underscore (_), and the dash (-)
●
Must start with an alpha (A-Z) character
●
Case insensitive
●
A name in the format (RGBredgreenblue) cannot be assigned a value.
●
'None' and 'default' are reserved. 'Default' is used during execution when a referenced color
is not defined in the runtime environment.
{rgb}
red_lit|_var|_col, green_lit|_var|_col, blue_lit|_var|_col where each component is a value in the
range of 000 to 255. In BEGIN-SETUP, only literal values are allowed.
Default colors implicitly installed with Production Reporting:
black= (0,0,0)
white=(255,255,255)
gray=(128,128,128)
ALTER-COLOR-MAP
37
silver=(192,192,192)
red=(255,0,0)
green=(0,255,0)
blue=(0,0,255)
yellow=(255,255,0)
purple=(128,0,128)
olive=(128,128,0)
navy=(0,0,128)
aqua=(0,255,255)
lime=(0,128,0)
maroon=(128,0,0)
teal=(0,128,128)
fuchsia=(255,0,255)
Description
ALTER-COLOR-MAP is allowed wherever PRINT is allowed. ALTER-COLOR-MAP dynamically
alters a color; it does not define a color.
Examples
begin-setup
declare-color-map
light_blue = (193, 222, 229)
end-declare
end-setup
begin-program
alter-color-map name = 'light_blue' value = (193, 233, 230)
print 'Yellow Submarine' ()
foreground = ('yellow')
background = ('light_blue')
get-color print-text-foreground = ($print-foreground)
set-color print-text-foreground = ('purple')
print 'Barney' (+1,1)
set-color print-text-foreground = ($print-foreground)
end-program
See Also
DECLARE-COLOR-MAP, SET-COLOR, and GET-COLOR
38
Production Reporting Command Reference
ALTER-CONNECTION
Function
Alters data source logon parameters prior to logon. Can be used to override default connection
logon parameters.
Note:
ALTER-CONNECTION is specific to Production Reporting DDO ports only.
Syntax
ALTER-CONNECTION
NAME=connection_name
[DSN={uq_txt_lit|_var}]
[USER={uq_txt_lit|_var}]
[PASSWORD={uq_txt_lit|_var}]
[PARAMETERS=keyword_str=attr_str;
[, keyword_str=attr_str;...]]
[NO-DUPLICATE=TRUE|FALSE]
SET-GENERATIONS=([{dimension1, hierarchy1}
[,dimensioni, hierarchyi] ...])
SET-LEVELS=([{dimension1, level1} [,dimensioni, leveli] ...])
SET-MEMBERS=([{dimension1, level1} [,dimensioni, leveli] ...])
Arguments
NAME
User-defined name for describing a data source connection.
DSN
Logical data source name recorded in Registry.properties.
USER, PASSWORD
Traditional logon semantics.
PARAMETERS
Keyword-attribute pairs required by data source drivers for logon. Syntax restrictions include
delimiting semi-colons (;) and equal signs (=). Keywords must match logon property names for
data sources in property files.
NO-DUPLICATE=TRUE|FALSE (default is FALSE)
(Optional) Prevents Production Reporting from creating additional logins to data sources
handling previous queries. Creating a new login is the default behavior, allowing a single
CONNECTION declaration in a subquery. This behavior, while allowing dynamic logins as needed,
causes difficulties when doing DDL (BEGIN-SQL) and DML (BEGIN-SELECT) against
temporary tables in some data sources. In such cases, you must fetch from the temporary table
ALTER-CONNECTION
39
using the same login in which it was created. Here, you should code CONNECTION as NODUPLICATE=TRUE, and then use that connection in both the table creation logic of BEGINSQL and the row fetching logic of BEGIN-SELECT.
SET-GENERATIONS
Dimension hierarchy for the previously-declared dimension. In the following example:
set-generations=('product',5,'time',1 )
SET-GENERATIONS:
●
Returns the members in the ‘product’ dimension at the 5th generation in the hierarchy.
For example, returns all ‘Brand Name’ members (Generation Level 5) under the product
hierarchy of ‘all products.drink.alcoholic beverages.beer and wine’. This increases the result
set to a list of beers and wines.
●
Returns the members in the ‘time’ dimension at the 1st generation in the hierarchy.
For example, returns all ‘Year’ members (Generation Level 1) under the time hierarchy of
‘1997.Q.2.’ This reduces the result set to ‘1997’.
To clear values defined with SET-GENERATIONS, use:
set-generations=()
SET-LEVELS
Extends dimension hierarchies for previously-declared dimensions. Dimensions and hierarchies
defined with SET-LEVELS can be literal values only. In the following example:
set-levels=('product',2 )
●
SET-LEVELS used with the previous SET-MEMBERS returns all members under the product
hierarchy and the next two generations (Product SubCategory and Brand Name) for the
product hierarchy of ‘all products.drink.alcoholic beverages.beer and wine’.
●
SET-LEVELS used with the previous SET-MEMBERS and SET-GENERATIONS returns all
members for generation levels 5 through 7 under the product hierarchy of ‘all
products.drink.alcoholic beverages.beer and wine.’
To clear values defined with SET-LEVELS, use:
set-levels=()
SET-MEMBERS
Returns the members in a dimension, level, or hierarchy whose name is specified by a string.
Dimensions and hierarchies defined with SET-MEMBERS can be literal values only. In the
following example:
set-members=('product','all products.drink.alcoholic beverages.beer and
wine','time','1997.Q1.2' )
SET-MEMBERS:
40
Production Reporting Command Reference
●
Returns the members in the ‘product’ dimension, at the ‘all products’ hierarchy, at the
‘drink’, ‘alcoholic beverages’, and ‘beer and wine’ levels.
●
Returns the members in the ‘time’ dimension, at the ‘1997’ hierarchy, at the ‘Q1’ and ‘2’
levels.
To clear values defined with SET-MEMBERS, use:
set-members=()
Examples
alter-connection
name=SAPR3-1
password=psswd
parameters=logon.client=600;logon.ashost=starfish;logon.sysnr=
00;logon.language=EN;
Note:
Do not wrap the lines in the 'parameters=' line. Space restrictions dictate the wrapped line in
the preceding example.
See Also
DECLARE-CONNECTION
ALTER-LOCALE
Function
Selects a locale or changes locale parameters for printing date, numeric, and money data and for
data accepted by INPUT. Locales are preferences for language, currency, and the presentation of
charts and numbers.
Syntax
ALTER-LOCALE
[LOCALE={txt_lit _var|DEFAULT|SYSTEM}]
[NUMBER-EDIT-MASK={txt_lit|_var|DEFAULT|SYSTEM}]
[MONEY-EDIT-MASK={txt_lit|_var|DEFAULT|SYSTEM}]
[DATE-EDIT-MASK={txt_lit|_var|DEFAULT|SYSTEM}]
[INPUT-DATE-EDIT-MASK={txt_lit|_var|DEFAULT|SYSTEM}]
[MONEY-SIGN={txt_lit|_var|DEFAULT|SYSTEM}]
[MONEY-SIGN-LOCATION={txt_var|DEFAULT|SYSTEM|LEFT|RIGHT}]
[THOUSAND-SEPARATOR={txt_lit|_var|DEFAULT|SYSTEM}]
[DECIMAL-SEPARATOR={txt_lit|_var|DEFAULT|SYSTEM}]
[DATE-SEPARATOR={txt_lit|_var|DEFAULT|SYSTEM}]
[TIME-SEPARATOR={txt_lit|_var|DEFAULT|SYSTEM}]
[EDIT-OPTION-NA={txt_lit|_var|DEFAULT|SYSTEM}]
[EDIT-OPTION-AM={txt_lit|_var|DEFAULT|SYSTEM}]
[EDIT-OPTION-PM={txt_lit|_var|DEFAULT|SYSTEM}]
[EDIT-OPTION-BC={txt_lit|_var|DEFAULT|SYSTEM}]
ALTER-LOCALE
41
[EDIT-OPTION-AD={txt_lit|_var|DEFAULT|SYSTEM}]
[DAY-OF-WEEK-CASE={txt_var|DEFAULT|SYSTEM|UPPER|LOWER
|EDIT|NO-CHANGE}]
[DAY-OF-WEEK-FULL=({txt_lit1|_var1}...{txt_lit7|_var7})]
[DAY-OF-WEEK-SHORT=({txt_lit1|_var1}...{txt_lit7|_var7})]
[MONTHS-CASE={txt_var|DEFAULT|SYSTEM|UPPER|LOWER|EDIT|NO-CHANGE}]
[MONTHS-FULL=({txt_lit1|_var1}...{txt_lit12|_var12})]
[MONTHS-SHORT=({txt_lit1|_var1}...{txt_lit12|_var12})]
Arguments
Note:
Many of the settings can have a value of DEFAULT or SYSTEM. DEFAULT retrieves values from
the corresponding setting of the default locale in the [Default-Settings] section of SQR.INI.
SYSTEM retrieves values from the corresponding setting of the system locale. You can alter the
system locale using ALTER-LOCALE; however, you cannot define it in SQR.INI.
LOCALE
Locale name. This name must be defined in SQR.INI. If omitted, the current locale is used. The
locale name is case-insensitive and is limited to A-Z, 0-9, underscore, or hyphen. To determine
the current locale, print the reserved variable $sqr-locale.
NUMBER-EDIT-MASK
Numeric edit mask used with the keyword NUMBER in PRINT, MOVE, SHOW, or DISPLAY.
MONEY-EDIT-MASK
Numeric edit mask used with the keyword MONEY in PRINT, MOVE, SHOW, or DISPLAY.
DATE-EDIT-MASK
Date edit mask used with the keyword DATE in PRINT, MOVE, SHOW, or DISPLAY, or the
LET functions datetostr() or strtodate().
INPUT-DATE-EDIT-MASK
Default date format to use with INPUT when TYPE=DATE is specified or the input variable is a
date variable.
Note:
For more information on Edit Masks, see ““Edit Masks” on page 247”.
MONEY-SIGN
Character(s) that replace $ or other currency symbols used in edit masks.
MONEY-SIGN-LOCATION
42
Production Reporting Command Reference
Where to place the MONEY-SIGN character(s). Valid values are LEFT and RIGHT.
THOUSAND-SEPARATOR
Character to replace the ',' edit character.
DECIMAL-SEPARATOR
Character to replace the '.' edit character.
DATE-SEPARATOR
Character to replace the '/' character.
TIME-SEPARATOR
Character to replace the ':' character.
EDIT-OPTION-NA
Character(s) to use with the 'na' option.
EDIT-OPTION-AM
Character(s) to replace 'AM'.
EDIT-OPTION-PM
Character(s) to replace 'PM'.
EDIT-OPTION-BC
Character(s) to replace 'BC'.
EDIT-OPTION-AD
Character(s) to replace 'AD'.
DAY-OF-WEEK-CASE
How the case for DAY-OF-WEEK-FULL or DAY-OF-WEEK-SHORT is affected when used with
'DAY' or 'DY'. Valid values are:
●
UPPER, LOWER—Forces output to all uppercase or lowercase, ignoring the case of the format
code in the edit mask.
●
EDIT—Uses the case specified with the format code in the edit mask.
●
NO-CHANGE—Ignores the case of the format code and outputs the day of week defined in
DAY-OF-WEEK-FULL or DAY-OF-WEEK-SHORT.
DAY-OF-WEEK-FULL
Full names for the days of the week. Production Reporting considers the first day to be Sunday.
You must specify all seven days.
DAY-OF-WEEK-SHORT
ALTER-LOCALE
43
Abbreviated names for the days of the week. Production Reporting considers the first day to be
Sunday. You must specify all seven abbreviations.
MONTHS-CASE
How the case for MONTHS-FULL or MONTHS-SHORT is affected when used with 'MONTH' or
'MON'. Valid values are:
●
UPPER, LOWER—Forces output to all uppercase or lowercase, ignoring the case of the format
code in the edit mask.
●
EDIT—Uses the case specified with the format code in the edit mask.
●
NO-CHANGE—Ignores the case of the format code and outputs the month defined in
MONTHS-FULL or MONTHS-SHORT
MONTHS-FULL
Full names for the months of the year. Production Reporting considers the first month to be
January. You must specify all 12 months.
MONTHS-SHORT
Abbreviated names for the months of the year. Production Reporting considers the first month
to be January. You must specify all 12 abbreviations.
Description
When you install Production Reporting, the default locale is set to SYSTEM.
Table 6
SYSTEM Locale Settings
Keyword
Value
NUMBER-EDIT-MASK
PRINT prints two digits to the right of the decimal point and left justifies the number.
MOVE, SHOW, and DISPLAY format the number with six digits to the right of the decimal
point and left justifies the number.
44
MONEY-EDIT-MASK
Same default values as those in NUMBER-EDIT-MASK.
DATE-EDIT-MASK
Date formats in Table 61, “Default Formats by Database,” on page 251.
INPUT-DATE-EDIT-MASK
Date edit masks in Table 59, “Sample Date Edit Masks,” on page 247.
MONEY-SIGN
'$'
MONEY-SIGN-LOCATION
LEFT
THOUSAND-SEPARATOR
','
DECIMAL-SEPARATOR
'.'
DATE-SEPARATOR
'/'
TIME-SEPARATOR
':'
EDIT-OPTION-NA
'n/a'
Production Reporting Command Reference
Keyword
Value
EDIT-OPTION-AM
'am'
EDIT-OPTION-PM
'pm'
EDIT-OPTION-BC
'bc'
EDIT-OPTION-AD
'ad'
DAY-OF-WEEK-CASE
EDIT
DAY-OF-WEEK-FULL
('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')
DAY-OF-WEEK-SHORT
('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat')
MONTHS-CASE
EDIT
MONTHS=FULL
('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October',
'November', 'December')
MONTHS-SHORT
('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')
Examples
The following code:
!
! The following program segments will illustrate the various
! ALTER-LOCALE features.
!
begin-setup
declare-variable
date $date $date1 $date2 $date3
end-declare
end-setup
!
! Set default masks
!
alter-locale
number-edit-mask = '9,999,999.99'
money-edit-mask = '$999,999,999.99'
date-edit-mask
= 'Mon DD, YYYY'
let #value = 123456
let $edit = 'Mon DD YYYY HH:MI:SS'
let $date = strtodate('Jan 01 1995
show 'With NUMBER option
#Value
show 'With MONEY option
#Value
show 'Without NUMBER option #Value
show 'With DATE option
$Date
show 'Without DATE option
$Date
11:22:33', $edit)
= ' #value number
= ' #value money
= ' #value
= ' $date date
= ' $date
Produces the following output:
With NUMBER option
With MONEY option
#Value =
123,456.00
#Value = $123,456.00
ALTER-LOCALE
45
Without NUMBER option #Value = 123456.000000
With DATE option
$Date = Jan 01, 1995
Without DATE option
$Date = 01-JAN-95
The following code:
!
! Reset locale to Production Reporting defaults and assign a multicharacter
! money-sign.
!
alter-Locale
locale = 'System'
money-sign = 'AU$'
! Australian dollars
let #value = 123456
show #value edit '$999,999,999,999.99'
show #value edit '$$$$,$$$$999,999.99'
Produces the following output:
AU$
123,456.00
AU$123,456.00
The following code:
!
! Move the money-sign to the right side of the value. Note
! the leading space.
!
alter-locale
money-sign = ' AU$'
! Australian dollars
money-sign-location = right
let #value = 123456
show #value edit '$999,999,999,999.99'
show #value edit '$$$$,$$$$999,999.99'
Produces the following output:
123,456.00 AU$
123,456.00 AU$
The following code:
!
! Reset locale to Production Reporting defaults and flip the thousand and
! decimal separator characters.
!
alter-locale
locale = 'System'
thousand-separator = '.'
decimal-separator = ','
let #value = 123456
show #value edit '999,999,999,999.99'
Produces the following output:
46
Production Reporting Command Reference
123.456,00
The following code:
!
! Reset locale to Production Reporting defaults and change the date and
time
! separators
!
alter-locale
locale = 'System'
date-separator = '-'
time-separator = '.'
let $edit = 'Mon/DD/YYYY HH:MI:SS'
let $date = strtodate('Jan/01/1995 11:22:33', $edit)
show $date edit :$edit
Produces the following output:
Jan-01-1995 11.22.33
The following code:
!
! Reset locale to Production Reporting defaults and change the text used
with
! the edit options 'na', 'am', 'pm', 'bc, 'ad'
!
alter-locale
locale = 'System'
edit-option-na = 'Not/Applicable'
edit-option-am = 'a.m.'
edit-option-pm = 'p.m.'
edit-option-bc = 'b.c.'
edit-option-ad = 'a.d.'
let $value = ''
let $edit = 'Mon DD YYYY HH:MI'
let $date1 = strtodate('Jan 01 1995 11:59', $edit)
let $date2 = strtodate('Feb 28 1995 12:01', $edit)
show $value edit '999,999,999,999.99Na'
show $date1 edit 'Mon DD YYYY HH:MI:SS PM'
show $date2 edit 'Mon DD YYYY HH:MI:SS pm'
Produces the following output:
Not/Applicable
Jan 01 1995 11:59:00 A.M.
Feb 28 1995 12:01:00 p.m.
The following code:
!
! Input some dates using the 'system' locale and
! output using other locales from the SQR.INI file.
!
alter-locale
ALTER-LOCALE
47
locale = 'System'
let $date1 = strtodate('Jan 01 1995', 'Mon DD YYYY')
let $date2 = strtodate('Feb 28 1995', 'Mon DD YYYY')
let $date3 = strtodate('Mar 15 1995', 'Mon DD YYYY')
show 'System:'
show
show $date1 edit 'Month DD YYYY' ' is ' $date1 edit 'Day'
show $date2 edit 'Month DD YYYY' ' is ' $date2 edit 'Day'
show $date3 edit 'Month DD YYYY' ' is ' $date3 edit 'Day'
alter-locale
locale = 'German'
show
show 'German:'
show
show $date1 edit 'DD Month YYYY' ' ist ' $date1 edit 'Day'
show $date2 edit 'DD Month YYYY' ' ist ' $date2 edit 'Day'
show $date3 edit 'DD Month YYYY' ' ist ' $date3 edit 'Day'
alter-locale
locale = 'Spanish'
show
show 'Spanish:'
show
show $date1 edit 'DD Month YYYY' ' es ' $date1 edit 'Day'
show $date2 edit 'DD Month YYYY' ' es ' $date2 edit 'Day'
show $date3 edit 'DD Month YYYY' ' es ' $date3 edit 'Day'
Produces the following output:
System:
January 01 1995 is Sunday
February 28 1995 is Tuesday
March 15 1995 is Wednesday
German:
01 Januar 1995 ist Sonntag
28 Februar 1995 ist Dienstag
15 März 1995 ist Mittwoch
Spanish:
01 enero 1995 es domingo
28 febrero 1995 es martes
15 marzo 1995 es miércoles
See Also
●
DISPLAY, LET, MOVE, PRINT, and SHOW
●
Chapter 6, “SQR.INI”
ALTER-PRINTER
Function
Alters printer parameters at run time.
Syntax
ALTER-PRINTER
48
Production Reporting Command Reference
[POINT-SIZE={point_size_num_lit|_var}]
[FONT-TYPE={font_type|txt_var}]
[SYMBOL-SET={symbol_set_id|txt_var}]
[FONT={font_int_lit|_var}]
[PITCH={pitch_num_lit|_var}]
Arguments
POINT-SIZE
New font point size.
FONT-TYPE
New font type. (PROPORTIONAL or FIXED)
SYMBOL-SET
New symbol set identifier.
FONT
New font as a number. (For example, 3 = Courier and 4 = Helvetica.)
PITCH
New pitch in characters per inch.
Note:
See Table 32, “DECLARE-PRINTER Command Arguments,” on page 138 for more information
on ALTER-PRINTER arguments.
Description
You can place ALTER-PRINTER in any part of an Production Reporting program except the
SETUP section.
ALTER-PRINTER changes the attributes of the current printer for the current report. Attributes
that do not apply to the current printer, are ignored. For example, ALTER-PRINTER is ignored
if it specifies proportional fonts for a report printed on a line printer. When a program creates
multiple reports and shares the printer with another report, the attributes are changed for that
report as well.
Examples
Change the font and symbol set for the current printer.
alter-printer
font=4
! Helvetica
symbol-set=12U
! PC-850 Multilingual
If the output prints to a PostScript printer, SYMBOL-SET ignored; however, if the SPF file is kept
(see the -KEEP command line flag) and later printed on an HP LaserJet, the symbol set 12U can
be used.
ALTER-PRINTER
49
See Also
DECLARE-PRINTER
ALTER-REPORT
Function
Alters report-specific functionality.
Syntax
ALTER-REPORT
[HEADING={heading_name_txt_lit|_var|_col]
[HEADING-SIZE={heading_size_int_lit|_var|_col]
[FOOTING={footing_name_txt_lit|_var|_col]
[FOOTING-SIZE={footing_size_int_lit|_var|_col}]
[PDF-APPEARANCE=(appearance_lit|_var|_col)]
[PDF-INFORMATION=(information_lit|_var|_col, value_lit|_var|_col
[,information_lit|_var|_col, value_lit|_var|_col]...)]
[PDF-OPEN-ACTION=(openaction_lit|_var|_col,
[,name_lit|_var|_col,value_lit|_var|_col]...)]
[PDF-PAGE-TRANSITION=(transition_lit|_var|_col, duration_lit|_var|_col)]
[PDF-SECURITY=(security_lit|_var|_col, value_lit|_var|_col[,security_lit|
_var|_col, value_lit|_var|_col]...)]
[PDF-VIEWER-PREFERENCE=(preference_lit|_var|_col, value_lit|_var|_col
[,preference_lit|_var|_col, value_lit|_var|_col]...)]
Arguments
HEADING
Name of the BEGIN-HEADING section.
HEADING-SIZE
Amount of space occupied by the BEGIN-HEADING section.
FOOTING
Name of the BEGIN-FOOTING section.
FOOTING-SIZE
Amount of space occupied by the BEGIN-FOOTING section.
PDF-APPEARANCE
Appearance of the document when opened.
50
Production Reporting Command Reference
Table 7
Appearance Values
Appearance
Description
None
Neither bookmarks nor thumbnails are visible. (Default value when the document does not contain
bookmarks.)
Bookmarks
Opens documents with bookmarks visible. (Default value when the document contains bookmarks.)
Thumbnails
Opens documents with thumbnails visible.
Fullscreen
Opens in full-screen mode. (This value does not work in the browser.)
For example:
ALTER-REPORT
PDF-APPEARANCE=('None')
PDF-INFORMATION
The information name to address and the data to apply to the information parameter. You can
specify any of the standard information names shown in Table 8, or you can specify any userdefined name with the exception of the following names which are reserved by the PDFlib:
CreationDate, Producer, ModDate, or Trapped.
Table 8
Standard PDF Information Names
Name
Description
Subject
Document subject.
Title
Document title. (The default is the product name and version string.)
Creator
Software used to create the document.
Author
Document author.
Keywords
Keywords describing the document contents.
For example:
ALTER-REPORT
PDF-INFORMATION=('Author', 'Peter Burton', 'Keywords',
'Sample
Private')
PDF-OPEN-ACTION
Action the PDF viewer takes when opening a file, name of the additional value, and value to
apply.
Table 9
Open Actions
Open Action
Description
Fixed
Use a fixed destination view defined with Zoom, Left, and Top.
ALTER-REPORT
51
Open Action
Description
Window
Fit the complete page to the window.
Width
Fit the page width to the window defined with Top.
Height
Fit the page height to the window defined with Left.
Rectangle
Fit the rectangle defined with Left, Bottom, Right, and Top.
Visible
Fit the visible contents of the page to the window.
VisibleWidth
Fit the visible contents of the page to the window defined with Top.
VisibleHeight
Fit the visible contents of the page to the window defined with Left.
Table 10
Additional Values
Value
Description
Page
Initial page to display. (default = 1)
Zoom
Zoom factor to use when the page displays. (default =100)
Left
Column number of the page to position at the left edge of the window. (default = 1)
Top
Line number of the page that will be positioned at the top edge of the window. (default = 1)
Bottom
Last line of the page to display. (default = entire page)
Right
Last column of the page to display. (default = entire page)
For example:
ALTER-REPORT
PDF-OPEN-ACTION=('Fixed', 'Zoom, 75, 'Page', 2)
PDF-PAGE-TRANSITION
Page transition for current and future pages and the duration (in seconds) for the transition.
Table 11
52
Transitions
Transition
Description
Split
Two lines sweeping across the screen reveal the page.
Blinds
Multiple lines sweeping across the screen reveal the page.
Box
A box reveals the page.
Wipe
A single line sweeping across the screen reveals the page.
Dissolve
The old page dissolves to reveal the new page.
Glitter
The dissolve effect moves from one screen edge to another.
Production Reporting Command Reference
Transition
Description
Replace
The old page is replaced by the new page. (default value)
For example:
ALTER-REPORT
PDF-PAGE-TRANSITION=('Wipe', 3.25)
PDF-SECURITY
Security parameter to address and value to apply to the security parameter.
Table 12
Security Parameters
Security
Description
User-Password
User level password applied to the generated PDF. Up to 32 characters. Needed to open the
document.
Master-Password
Master level password applied to the generated PDF. Up to 32 characters. Used to open
documents or override the permissions.
Permissions
Permissions applied to the generated PDF.
●
NoPrint—Prevents printing the file.
●
NoModify—Prevents users from adding form fields or making any other changes.
●
NoCopy—Prevents copying and extracting text and graphics and disables the accessibility
interface.
●
NoAnnots—Prevents adding or changing comments or form fields.
●
NoForm—Prevents form field filling, even if NoAnnots is not specified. (Requires Acrobat 5
or higher)
●
NoAccessible—Prevents extracting text or graphics for accessibility purposes. For example,
a screen reader program.(Requires Acrobat 5 or higher)
●
NoAssemble—Prevents inserting, deleting, or rotating pages and creating bookmarks and
thumbnails, even if NoModify is not specified. (Requires Acrobat 5 or higher)
●
NoHiResPrint—Prevents high-resolution printing. If NoPrint is not specified, printing this
setting is restricted to the Print As Image feature, which prints a low-resolution rendition of
the page. (Requires Acrobat 5 or higher)
Note:
Default documents have no passwords and all permissions.
For example:
ALTER-REPORT
PDF-SECURITY=('User-Password', $User_Password,
'Master-Password', &Master_Password, 'Permissions', 'NoPrint NoCopy')
PDF-VIEWER-PREFERENCE
Viewer preference to address and value to apply to the preference.
ALTER-REPORT
53
Table 13
Viewer Preferences
Preference
Description
Toolbar
True hides Acrobat’s tool bar. Default = False
MenuBar
True hides Acrobat’s menu bar. Default = False
WindowUI
True hides Acrobat’s windows controls. Default = False
FitWindow
True resizes the document’s window to the size of the first page. Default = False
CenterWindow
True positions the document’s windows in the center of the screen. Default = False
DisplayDocTitle
True displays the document information field in Acrobat’s title bar; False displays the
file name. Default = False
NonFullscreen-PageMode
How to display the document on exiting full-screen mode:
●
UseOutlines–Displays page and document outlines.
●
UseThumbs–Displays page and thumbnails.
●
UseNone–Displays neither document outlines nor thumbnails.
Default = UseNone
Direction
Reading order of the document. (Affects scroll ordering in double-page view.)
●
L2R–Left to right
●
R2L–Right to left (including vertical writing systems).
Default = L2R
For example:
ALTER-REPORT
PDF-VIEWER-PREFERENCE=('Direction', 'R2L')
Description
ALTER-REPORT dynamically changes how much space active heading and/or footing sections
occupy for the current report. For PDF reports, you can add information about the report,
control the display and appearance of the report, and control security settings.
If HEADING or FOOTING = ‘NONE’, the section is disabled for the current report.
If HEADING or FOOTING = ‘DEFAULT’, the section reverts to whatever was in effect when the
report was initiated.
If no HEADING or FOOTING value is set HEADING-SIZE and/or FOOTING-SIZE values affect the
HEADING/FOOTING currently used.
When HEADING, HEADING-SIZE, FOOTING, or FOOTING-SIZE is defined: the command is not
invoked in a BEGIN-HEADING and/or BEGIN-FOOTING section, the page is not written to, and
the assignment takes effect immediately. Otherwise, it takes effect for the next page.
Examples
begin-footing 2 name=confidental
54
Production Reporting Command Reference
print 'Company Confidential' (1,1,0) center
page-number (2,37,0)
end-footing
begin-footing 2 name=proprietary
print 'Company Proprietary' (1,1,0) center
page-number (2,37,0)
end-footing
begin-program
.
.
.
alter-report
footing = 'Proprietary'
footing-size = 6
! Increase depth
.
.
.
end-program
See Also
BEGIN-FOOTING and BEGIN-HEADING
ALTER-TABLE
Function
Manipulates table attributes.
Syntax
ALTER—TABLE
NAME=table_name_var|_lit|_col
ACTION=action_lit
[COUNT=count_var|_lit|_col]
[ROW=row_var|_lit|_col]
[ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
Arguments
NAME
Name of the table created by CREATE-TABLE.
ACTION
Action to perform on thee table.
●
When ACTION=ERASE, the underlying table data is removed from memory. When this
action is specified, no other keywords can be specified.
●
When ACTION=INFO, table information will be retrieved as defined. The following keywords
are allowed (you must specify at least one):
ALTER-TABLE
55
❍
ROW–The last table row acted upon.
❍
COUNT–Number of rows in the table.
When ACTION=ATTRIBUTES, table rows will have all unassigned columns set to the specified
attributes. If an attribute is not specified, the current setting is retained. The following
keywords are allowed:
●
❍
ROW–The row to be affected.
❍
COUNT–Number of rows. (Default=1)
❍
ATTRIBUTES–Attributes to apply to the rows.
COUNT
Number of affected rows.
ROW
The insertion row.
ATTRIBUTES
Attributes to apply to the row.
Table 14
ALTER-TABLE Attributes
Attribute
DEFAULT
Description
Causes all attributes to be set to their default values as defined by DECLARETABLE and CREATE-TABLE before applying any other attributes.
56
BACKGROUND
Background color name or RGB triplet
BOLD
YES | NO
CENTER
YES | NO
COLUMN-LEADING
Expressed in decipoints
COLUMN-LINE COLOR
Color name or RGB triplet
COLUMN-LINE-THICKNESS
Expressed in decipoints
COLUMN-LINE-STYLE
SOLID | SQUARE-DOT | DASH | DASH-DOT | LONG-DASH | LONG-DASH-DOT | LONGDASH-DOT-DOT
HEADER
YES | NO
FILL-COLOR
Fill color name or RGB triplet. Default=NONE
FONT
Font number
FOOTER
YES | NO
FOREGROUND
Foreground color name or RGB triplet
GROUP-HEADER
YES | NO
Production Reporting Command Reference
Attribute
Description
GROUP-FOOTER
YES | NO
ITALIC
YES | NO
POINT-SIZE
Point size of the font
ROW-BORDER-COLOR
Color name or RGB triplet
ROW-BORDER-LINE-STYLE
SOLID | SQUARE-DOT | DASH | DASH-DOT | LONG-DASH | LONG-DASH-DOT | LONGDASH-DOT-DOT
ROW-BORDER-THICKNESS
Expressed in decipoints
ROW-LINE-COLOR
Color name or RGB triple
ROW-LINE-STYLE
SOLID | SQUARE-DOT | DASH | DASH-DOT | LONG-DASH | LONG-DASH-DOT | LONGDASH-DOT-DOT
ROW-LINE-THICKNESS
Expressed in decipoints
UNDERLINE
YES | NO
WRAP
YES | NO | maximum number of lines
WRAP-HEIGHT
Number of lines between each wrapped line
WRAP-ON
Characters on which to force a WRAP
WRAP-STRIP
Characters to change to a space before the WRAP is done
Description
Use ALTER-TABLE in any section except BEGIN-SETUP, BEGIN-SQL, and BEGIN-DOCUMENT to
manipulate table objects.
Example
alter-table name='customers' action='attributes' count=1 row=1
attributes=('foreground',('green'),'background',('red'),
'center','no','italic','yes','row-border-color','black',
'row-border-thickness',4,'fill-color','yellow','point-size',8,
'bold','yes')
See Also
CREATE-TABLE, DECLARE-TABLE, DUMP-TABLE, FILL-TABLE, PRINT-TABLE
ALTER-TABLE
57
ARRAY-ADD, ARRAY-DIVIDE, ARRAY-MULTIPLY,
ARRAY-SUBTRACT
Function
Performs arithmetic on array elements.
Syntax
ARRAY-ADD{src_num_lit|_var|_col}...TO
dst_array_name (element_lit|_var|_col)[field
[(occurs_lit|_var|_col)]]...
ARRAY-DIVIDE{src_num_lit|_var|_col}...INTO
dst_array_name (element_int_lit|_var|_col)[field
[(occurs_lit|_var|_col)]]...
ARRAY-MULTIPLY{src_num_lit|_var|_col}...TIMES
dst_array_name (element_int_lit|_var|_col)[field
[(occurs_lit|_var|_col)]]...
ARRAY-SUBTRACT{src_num_lit|_var|_col}...FROM
dst_array_name (element_int_lit|_var|_col)[field
[(occurs_lit|_var|_col)]]...
Arguments
src_num_lit|_var|_col
Source value(s) are added, divided, multiplied, or subtracted from the respective destination
array fields. All variables must be numeric.
dst_array_name (element_int_lit|_var|_col)[field [(occurs_lit|_var|
_col)]]
Destination array field(s) contain the results after the operation. All variables must be numeric.
Description
The following information applies to the array arithmetic commands:
●
The array must be created with CREATE-ARRAY.
Array arithmetic commands perform on one or more source numbers and place the result
into the corresponding array field.
58
●
Array element and field occurrence numbers can be numeric literals (123) or numeric
variables (#j) and can be from zero (0) to one less than the size of the array.
●
If fields are not listed, the results are placed into consecutively defined fields in the array. If
fields are listed, results are placed into those fields, at the specified occurrence of the field.
If an occurrence is not specified the zeroth (0) occurrence is used.
●
All fields must be of the type NUMBER, DECIMAL, FLOAT, or INTEGER. They cannot be of type
DATE, CHAR, or TEXT.
●
If division by zero is attempted, a warning message is displayed, the result field is unchanged,
and Production Reporting continues executing.
Production Reporting Command Reference
Examples
array-add &salary #comm to emps(#j)
Adds &salary and #comm to the first two fields defined in the emps array. The #j'th element
of the array is used.
array-subtract #lost #count 1 from stats(#j2) loses tot sequence
Subtracts #lost, #count, and 1 from the fields loses, tot and sequence of the #j2'th element
of the stats array.
array-multiply 2 2 2 times percentages(#i) p(0) p(1) p(2)
Multiplies occurrences 0 through 2 of the field p in the #i'th element of the percentages array
by 2.
array-divide 100 into commissions(#j) salesman(#i2)
Divides the #i2'th occurrence of the salesman field of the #j'th element of the
commissions array by 100.
The following example uses ARRAY-ADD in an Production Reporting program.
begin-setup
! declare arrays
create-array name=emps size=1 ! one row needed for this example
field=Salary:number=35000
! initialize to 35,000
field=Comm:number=5000
! initialize to 5,000
end-setup
begin-program
do Main
end-program
begin-procedure Main local
! Show original contents of the arrays, then the modified arrays
! array-add
! retrieve values from the only row of array "emps"
get #sal #com FROM emps(0) Salary Comm
print 'Array-Add'
(+1, 1)
print 'Add 1000 to each column' (+1, 1)
print 'Salary' (+1, 3) bold underline
print 'Comm' (,25) bold underline
print #sal
print #com
(+1, 1) money
(,22) money
let #salary = 1000
let #commission = 1000
let #j = 0 ! address the array row with variable "#j"
! Add 1000 (in variables) to each column of row 0 (the 1st and only row)
array-add #salary #commission TO emps(#j)
! retrieved the new "added" values
get #sal #com FROM emps(0) Salary Comm
print #sal (+1,1) money
print #com (,22) money
ARRAY-ADD, ARRAY-DIVIDE, ARRAY-MULTIPLY, ARRAY-SUBTRACT
59
end-procedure
See Also
●
CREATE-ARRAY for information on creating an array.
●
CLEAR-ARRAY for information on clearing or initializing an array.
●
GET, PUT, and LET for information on using arrays.
ASK
Function
Retrieves values for compile-time substitution variables. Retrieval can be by user input,
command-line arguments, or as entries in @file on the command line. (See .“Production
Reporting Command-line Arguments” on page 31 for more information.)
Syntax
ASK substitution_variable [prompt]
Arguments
substitution_variable
Variable to use as the substitution variable.
prompt
(Optional) Literal text string displayed as a prompt if the substitution variable value is not
entered on the command line or in an argument file.
Description
The value of the substitution variable replaces the reference variable in the program. Variables
are referenced by enclosing the variable name in braces, for example, '{state_name}'. If the
substitution variable is text or date, surround the brackets by single quotes. Substitutions are
made as the program is compiled and are saved in the SQT file. Each variable can be referenced
multiple times.
ASK is used only in the SETUP section and must appear prior to any substitution variable
references.
You cannot break ASK across program lines.
Examples
In the following example, state takes the user-supplied value in response to the prompt Enter
state for this report.
begin-setup
ask state 'Enter state for this report'
end-setup
60
Production Reporting Command Reference
...
begin-select
name, city, state, zip
from customers where state = '{state}'
end-select
See Also
●
INPUT for information on input at run time
●
“Compiling Programs and using Production Reporting Execute” in Volume 1 of the
Hyperion SQR Production Reporting Developer's Guide
BEGIN-DOCUMENT
Function
Begins a DOCUMENT paragraph. Document paragraphs allow you to write free-form text (for
example, form letters and invoices).
Syntax
BEGIN-DOCUMENT position
.
.
.
END-DOCUMENT
Arguments
position
Location on the page where the document begins. Can be fixed or relative to the current position.
Description
Database columns, Production Reporting variables, and document markers can be referenced
within documents. Their location determines where they are printed. Do not use tabs in
document paragraphs. To indent text or fields, use the spacebar. If variables printed inside a
document paragraph are variable in length, manipulate the variables outside the DOCUMENT
paragraph.
Note:
Documents must be executed before referencing their document markers. Since documents can
be printed at relative positions on the page, the location of document markers may not be known
by Production Reporting until the document is executed.
Examples
begin-document (1,1)
BEGIN-DOCUMENT
61
.b
Dear $firstname
...
end-document
See Also
●
END-DOCUMENT
●
“Creating Form Letters” in Volume 1 of the Hyperion SQR Production Reporting Developer's
Guide for a full example of BEGIN-DOCUMENT
BEGIN-EXECUTE
Note:
BEGIN-EXECUTE is specific to Production Reporting DDO ports only.
Function
Begins a new query or procedure execution. BEGIN-EXECUTE is only required when additional
information about the DDO datasource or query is needed. In a BEGIN-EXECUTE paragraph,
the syntax of BEGIN-SELECT varies as shown below.
Syntax
BEGIN-EXECUTE
[CONNECTION=uq_txt_lit]
[ON-ERROR=sqr_procedure[(arg1[,argi]...)]]
[RSV=num_var]
[STATUS=list_var|num_var|txt_var]
[PROPERTIES=({key_txt_lit|_var}={{value_txt_lit|_var| _col}|{num_lit|_var|
_col},...)]
[SCHEMA={txt_lit|_var}]
[
PROCEDURE={txt_lit|_var}
[PARAMETERS=({{arg1 [IN|INOUT]}|NULL} [[,argi [IN|INOUT]]|NULL] ... )]
(or)
COMMAND={txt_lit|_var}
(or)
GETDATA={txt_lit|_var}
]
[BEGIN-SELECT[BEFORE=sqr_procedure[(arg1[,argi]...)]]
[AFTER=sqr_procedure[(arg1[,argi]...)]]]
col-name TYPE=CHAR|TEXT|NUMBER|DATE [edit-mask]
[on-break]...
[{FROM ROWSETS=({m|m-n|m-|-n} [,...]}|{ALL})}|
{FROM PARAMETER={txt_lit|_var}}|
{FROM {table_name}}]
END-SELECT]
END-EXECUTE
62
Production Reporting Command Reference
Arguments
CONNECTION
Name previously defined using DECLARE-CONNECTION. If not specified, Production Reporting
uses the default connection defined by the command-line entries for data source(DSN),
username (USER), and password (PASSWORD). Name is not case-sensitive.
ON-ERROR
Procedure to execute if errors occur.
RSV
Row Set Variable. Global Production Reporting variable containing the row set retrieved.
STATUS
List or scalar variable that receives the stored procedure status.
PROPERTIES
Keyword/value pair(s) that represent modifications made to the Properties of the data source
(defined by CONNECTION=).
SCHEMA
Data source location of the object queried. Valid options include:
●
PROCEDURE—Name of the data source/stored procedure to execute. If the data source is
SAP R/3, this procedure is a BAPI. The name can include spaces.
●
PARAMETERS—Scalar and/or list variables of the form list_var|num_lit|txt_lit|
txt_var|num_var|any_col. If you do not specify the keywords IN or INOUT, IN is the
default. Define all parameters in order; leaving any parameters unnamed causes a syntax
error. To ignore a parameter, fill its position with the keyword NULL.
●
COMMAND—Text string passed to the data source without modification by Production
Reporting. Can include embedded Production Reporting variables.
●
GETDATA—Supports the Java (DDO) GetData paradigm for data access.
BEFORE/AFTER
Production Reporting procedure to execute before or after the row set. The procedure is not
performed unless at least one row is returned from the specified rowset(s).
FROM ROWSETS
Special case addition to BEGIN-SELECT. Available for use with all data source types, including
SAP R/3 and JDBC. Names the rowset(s) from which to retrieve the column variables. For
multiple row sets, use identical column name/type signatures. Row set numbers must be
sequential from left-to-right within the parentheses, and they must not overlap as in this
example: (1-3, 2-4). Numeric literals or #variables are allowed.
In FROM ROWSETS, “m” and “n” are integer values (1, 2, 3, 4, 5). “m-n” is 3-5 (rowsets 3, 4, 5).
“m-” is 4- (rowsets 4, 5). “-n” is -3 (rowset 1, 2, 3).
BEGIN-EXECUTE
63
FROM PARAMETER
Special case addition to BEGIN-SELECT. Available only for SAP R/3 data sources. Use only with
thePROCEDURE keyword. Names an output parameter containing one or more rows from which
column variables are to retrieve.
Note:
This is similar to the PARAMETERS= statement in DECLARE-CONNECTION and ALTERCONNECTION, except the properties specified here alter the flow of returned information, as
opposed to simply setting login properties. Can be used with any data-access model (Procedure,
Command, Getdata). An application of this statement would be in the MDB setting, where it
might be used to specify such things as Level, Generation, or Include-Column. For example,
PROPERTIES = ( ‘SetColumn’ = 5 )
FROM {table_name}
Relational data source table name. Literals or variables are not allowed.
Examples
begin-setup
declare-variable
date $when_ordered
text $ship_method
integer #theRow
integer #theStatus
integer #howMany
end-declare
end-setup
input #howMany type=integer
input $pword
let %parm1 = list($when_ordered, $ship_method, #howMany)
declare-connection SAPR3
user=scott
parameters=clientno=5;node=starfish;
end-declare
alter-connection
name=SAPR3
password=$pword
begin-execute
connection=SAPR3
rsv=#theRow
status=#theStatus
on-error=it_failed(#theStatus)
procedure='CreditHistory version 5'
parameters=(%parm1,'recalculate')
print 'proc ran OK, status is '(+1,1)
print #theStatus (,+5) edit 999
64
Production Reporting Command Reference
begin-select before=do_eject after=cleanup
city &col=char (1,1) on-break level=1 after=city-tot
keyval type=number (1,+1)
rcvd type=date (0,+2)
from Rowsets=(1)
end-select
end-execute
Tip:
When you set up DECLARE-CONNECTION, you must use the same name defined in
Registry.properties. For example, if Registry.properties contains:
XML_DATA.desc=Sample XML files
XML_DATA.class=com.sqribe.xmlacc.XMLDataSource
XML_DATA.lib=
XML_DATA.load=
XML_DATA.conn=D:\\SampleData\\XML_DATA
Then the Production Reporting code should look similar to:
begin-setup
declare-connection default
DSN=XML_DATA
! Use the same name as specified in the
end-declare
! Registry.properties file. Case sensitive.
end-setup
begin-procedure domystuff
begin-execute
GetData='sample' ! The filename is sample.xml. Substitute
the
! filename of your xml file here. The path to
the
! file is in the Registry.properties file.
begin-select
CUSTOMERS.cust_num type=num (+1,1) edit 099999
CUSTOMERS.name type=char (,30)
from customers
end-select
end-execute
end-procedure
The previous Production Reporting code produces the following output:
<CUSTOMERS>
<Customer cust_num='100013'>
<CUSTOMERS.CUST_NUM>100013</CUSTOMERS.CUST_NUM>
<CUSTOMERS.NAME>Gregory Stonehaven</CUSTOMERS.NAME>
<CUSTOMERS.ADDR1>Middlebrook Road</CUSTOMERS.ADDR1>
<CUSTOMERS.ADDR2>Grey Quarter</CUSTOMERS.ADDR2>
<CUSTOMERS.CITY>Everretsville</CUSTOMERS.CITY>
<CUSTOMERS.STATE>OH</CUSTOMERS.STATE>
<CUSTOMERS.ZIP>402331000</CUSTOMERS.ZIP>
<CUSTOMERS.PHONE>2165553109</CUSTOMERS.PHONE>
<CUSTOMERS.TOT>39</CUSTOMERS.TOT>
</Customer>
</CUSTOMERS>
BEGIN-EXECUTE
65
Tip:
BEGIN-EXECUTE is only required when additional information about the DDO data source or
query is needed, such as 'Connection', 'Schema', 'Command','GetData', 'Procedure', or
'Parameters'. The following example does not require BEGIN-EXECUTE since it does not require
information about the DDO datasource or query.
begin-setup
page-size 58 80
declare-connection ORACLE_CONNECTION
dsn=saw806
user=jerryh
password=canttellyou
end-declare
end-setup
begin-procedure print_customers
print 'FULL CUSTOMER LIST BY Customer Number' (+1) center
begin-select
cust_num
(+1,1,6) edit 099999
name
(0,+2,30)
addr1
(+1,12,30)
addr2
(0,+4,30)
city
(+1,12,16)
state
(0,+2,2)
zip
(0,+2,10)
phone
(0, +2, 0) edit (xxx)bxxx-xxxx
!Edit phone number for’ easy reading.
next-listing
skiplines=2 need=3
!Skip 2 lines between listings. Since each listing takes 3 lines,
we
!specify 'need=3' to prevent a customer's data from being broken
across two pages.
from customers
order by cust_num
end-select
end-procedure
See Also
EXECUTE
BEGIN-FOOTING
Function
Begins the FOOTING section.
66
Production Reporting Command Reference
!
Syntax
BEGIN-FOOTING footing_lines_int_lit
[FOR-REPORTS=(report_name1[,report_namei]...)]
[FOR-TOCS=(toc_name1[,toc_namei]...)]
[NAME={footing_name}]
END-FOOTING
Arguments
footing_lines_int_lit
Number of lines to reserve at the bottom of each page.
FOR-REPORTS
Reports to which this footing applies. Required only for programs with multiple reports.
FOR-TOCS
Table of Contents to which this heading applies.
NAME
Name associated with this footing section. Used with ALTER-REPORT. Cannot be NONE or
DEFAULT.
Description
FOOTING sections define and control information printed at the bottom of each page.
Define report_name in DECLARE-REPORT. If you do not use DECLARE-REPORT, the footing is
applied to all reports. You can also specify FOR-REPORTS=(ALL). (The parentheses are
required).
There can only be one BEGIN-FOOTING section for each report. A BEGIN-FOOTING section with
FOR-REPORTS=(ALL) can be followed by other BEGIN-FOOTING sections for specific reports,
which override ALL.
Define toc_name in DECLARE-TOC. You can also specify FOR-TOCS=(ALL). (The parentheses
are required.)
There can only be one BEGIN-FOOTING section for each Table of Contents. A BEGINFOOTING section with FOR-TOCS=(ALL) can be followed by other BEGIN-FOOTING sections
for a specific Table of Contents, which override ALL.
BEGIN-FOOTING sections can be shared between reports and Table of Contents.
You can print outside the Footing area of the report from the Footing, but you cannot print into
the Footing area from the body.
Examples
begin-footing 2 for-reports=(customer, summary)
print 'Company Confidential' (1,1,0) center
page-number (2,37,0)
end-footing
BEGIN-FOOTING
67
begin-footing 2
! For all reports
print 'Division Report' (1,1,0) center
page-number (2,37,0)
end-footing
begin-footing 2 for-tocs=(all)
print 'Table of Contents' (2,1)
let $page = roman(#page-count)
print $page (,64)
end-footing
! ROMAN numerals
See Also
●
ALTER-REPORT for information on dynamic headings/footings
●
DECLARE-LAYOUT for information on page layout
●
DECLARE-REPORT for information on programs with multiple reports
●
DECLARE-TOC for information on Table of Contents
●
END-FOOTING
BEGIN-HEADING
Function
Begins a HEADING section.
Syntax
BEGIN-HEADING heading_lines_int_lit
[FOR-REPORTS=(report_name1[, report_namei]...)]
[FOR-TOCS=(toc_name1[, toc_namei]...)]
[NAME={heading_name}]
END-HEADING
Arguments
heading_lines_int_lit
Number of lines to reserve at the top of each page.
FOR-REPORTS
Reports to which this heading applies. Only required for programs with multiple reports.
FOR-TOCS
Table of Contents to which this heading applies.
NAME
Name associated with this heading section. Cannot use if FOR-REPORTS or FOR-TOCS is also
defined. Used in conjunction with ALTER-REPORT. Cannot be NONE or DEFAULT.
68
Production Reporting Command Reference
Description
The HEADING section defines and controls information printed at the top of each page.
Define report_name in DECLARE-REPORT. If you do not use DECLARE-REPORT, the heading
is applied to all reports. You can also define FOR-REPORTS=(ALL). (The parentheses are
required.)
There can only be one BEGIN-HEADING section for each report. A BEGIN-HEADING section with
FOR-REPORTS=(ALL) can be specified followed by other BEGIN-HEADING sections for specific
reports, which override ALL.
Define toc_name in DECLARE-TOC. You can also specify FOR-TOCS=(ALL). (The parentheses
are required.)
There can only be one Table of Contents for each BEGIN-HEADING section. A BEGINHEADING section with FOR-TOCS=(ALL) can be specified followed by other BEGIN-HEADING
sections for specific Table of Contents, which override ALL.
BEGIN-HEADING sections can be shared between reports and Table of Contents.
You can print outside the heading area of the report from the heading, but you cannot print
into the heading area from the body.
Examples
begin-heading 2
print $current-date (1,1) edit MM/DD/YY
print 'Sales for the Month of ' (1,30)
print $month ()
end-heading
! Use 2 lines for heading,
! 2nd is blank.
begin-heading 2 for-tocs=(all)
print 'Table of Contents' (1,1) bold center
end-heading
See Also
●
ALTER-REPORT for information about dynamic headings/footings
●
DECLARE-LAYOUT for information on page layout
●
DECLARE-REPORT for information on programs with multiple reports
●
DECLARE-TOC for information on Table of Contents
●
END-HEADING
BEGIN-PROCEDURE
Function
Begins a procedure.
BEGIN-PROCEDURE
69
Syntax
BEGIN-PROCEDURE procedure_name [LOCAL|(arg1[, argi]...)]
END-PROCEDURE
Arguments
procedure_name
Procedure name. Not case-sensitive.
LOCAL
Defines that this is a local procedure.
arg1 [, argi]...
Arguments passed to or returned from the procedure. Can be string variables ($arg), numeric
variables (#arg), or date variables ($arg). To return a value passed back to the calling DO, place
a colon (:) before the variable name. Arguments in BEGIN-PROCEDURE and DO must match
in number, order, and type.
Description
The procedure name must be unique. The name is referenced in DO. Procedures contain other
commands and paragraphs (for example, SELECT, SQL, DOCUMENT).
By default, procedures are global. That is, variables or columns defined within a procedure are
known and can be referenced outside the procedure.
A procedure is local when the word LOCAL appears after the procedure name or when the
procedure is declared with arguments. That is, variables declared within the procedure are
available only within the procedure, even when the same variable name is used elsewhere in the
program. Queries defined in a local proceduresl have local database column variable names
assigned that do not conflict with similarly named columns defined in queries in other
procedures.
Production Reporting procedures can be called recursively. However, unlike C or Pascal,
Production Reporting only maintains one copy of the local variables and they are persistent.
Arguments passed by DO to a procedure must match in number:
70
●
Database text or date columns, string variables, and literals can be passed to procedure string
arguments. If passing a date string to a date argument, the date string must be in the format
specified by SQR_DB_DATE_FORMAT, a database dependent format (see Table 61, “Default
Formats by Database,” on page 251), or the database-independent format SYYYYMMDD
[HH24[MI[SS[NNNNNN]]]].
●
Database numeric columns, numeric variables, and numeric literals can be passed to
procedure numeric arguments.
●
Numeric variables (DECIMAL, INTEGER, FLOAT) can be passed to procedure numeric
arguments without regard to the argument type of the procedure. Production Reporting
automatically converts the numeric values upon entering and leaving the procedure as
required.
Production Reporting Command Reference
●
Date variables or columns can be passed to procedure date or string arguments. When
passing a date variable or column to a string argument, the date is converted to a string
according to the following rules:
❍
For DATETIME columns and Production Reporting DATE variables, Production
Reporting uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production
Reporting uses the first database-dependent format in Table 61, “Default Formats by
Database,” on page 251.
❍
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in
Table 62, “DATE Column Formats,” on page 252.
❍
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in
Table 63, “TIME Column Formats,” on page 252.
To reference or declare global variables from local procedures, add a leading underscore to the
variable name, after the initial $, #, or &. (Example: #_amount)
Note:
All Production Reporting reserved variables, such as #sql-status and $sql-error, are global
variables. Within local procedures, they must be referenced using the leading underscore:
#_sql-status or $_sql-error.
Examples
The following example shows a BEGIN-PROCEDURE MAIN, that also executes the procedure
PRINT-LIST, for each row returned from the SELECT statement. No parameters are passed to
PRINT-LIST.
begin-procedure main
begin-select
name
address
phone
do print_list
from custlist order by name
end-select
end-procedure
! main
In the following example, five arguments are passed to the CALC procedure:
do Calc (&tax, 'OH', &county_name, 12, #amount)
begin-procedure Calc(#rate, $state, $county, #months, :#answer)
.
.
.
let #answer = ...
end-procedure
In the preceding example the value for:#answer is returned to #amount in the DO command.
BEGIN-PROCEDURE
71
The following example references global variables:
begin-procedure print-it ($a, $b)
print $_deptname (+2,5,20) ! $deptname is
print $a
(,+1) ! declared outside
print $b
(,+1) ! this procedure
end-procedure
See Also
DO and END-PROCEDURE
BEGIN-PROGRAM
Function
Begins the program section of an Production Reporting program.
Syntax
BEGIN-PROGRAM
END-PROGRAM
Description
After processing the commands in SETUP, Production Reporting starts program execution at
BEGIN-PROGRAM. The PROGRAM section typically contains a list of DO commands, though other
commands can be used. This is the only required section in an Production Reporting program.
Examples
begin-program
do startup
do main
do finish
end-program
See Also
BEGIN-SETUP and END-PROGRAM
BEGIN-SELECT
Function
Begins a SELECT paragraph. A SELECT paragraph is the principal means of retrieving data from
the database and printing it in a report. A SELECT paragraph must be inside a PROCEDURE or
BEGIN-PROGRAM section.
72
Production Reporting Command Reference
Syntax
BEGIN-SELECT[DISTINCT][-Cnn][-Bnn][-XP][-NR][-SORTnn]
[-LOCK{RR|CS|RO|RL|XX}][-DBdatabase]
[-DBconnectionstring]
[LOOPS=nn][ON-ERROR=procedure[(arg1[,argi]...)]]
{column} [&synonym]
{expression &synonym}
{[$columnname] &synonym = (char|number|date)}
[sqr_commands]
FROM {table,...|[table:$tablename]}
[additional SQL]
[$variable]
END-SELECT
Arguments
Note:
Arguments can span multiple lines; however, do not use the first character position unless the
continuation character terminated the previous line. Otherwise, the argument will be
misconstrued as a SELECT column.
DISTINCT
Eliminates duplicate query rows.
-Cnn
(Oracle) Sets the context area size (buffer size for query) to larger or smaller than the default.
-Bnn
(ODBC, Oracle, Sybase) Sets the number of rows to retrieve at once. For performance purposes
only. Regardless of this setting, all rows are selected. The default, without using -B, is 10 rows.
An overall setting for a program can be indicated on the Production Reporting command line
with -B, which can be overridden by a separate -B flag on each BEGIN-SELECT command.
-XP
(Sybase) Prevents the creation of stored procedures for the SELECT paragraph. When specified,
Production Reporting generates a new SQL statement using the current value of any bind
variables each time BEGIN-SELECT is executed.
Use -XP if you change variables frequently during execution and do not want Production
Reporting to automatically create stored procedures. You can also use -XP if users do not have
permission to create stored procedures. If you do not change variables frequently during
execution, stored procedures may optimize program performance. In this case, do not use XP.
-XP improves performance when using bind variables and dynamic query variables in the same
query. Each time the dynamic query variable changes in value, a new stored procedure is created.
BEGIN-SELECT
73
If the dynamic query variable changes often and the query contains bind variables, you create
many stored procedures if you do not use -XP.
-XP is available as a command-line flag.
-DBconnectionstring
(ODBC) The ODBC connection string for this SELECT paragraph only. A connection string has
the following syntax:
DSN=data_source_name[;keyword=value[;keyword=value [;...]]]
Combines data from multiple databases in one program. For example, a connection string for
an Oracle database named “ora8” might look like the following:
'DSN=ora7;UID=scott;PWD=tiger'
where DSN, UID, and PWD are keywords common to all drivers (representing: name, user ID, and
password, respectively). Connection string options are always separated by a semicolon (;).
Other driver-specific options may be added to the connection string using driver-defined
keywords. See your ODBC driver documentation for available options.
LOOPS
Number of rows to retrieve. After processing the specified number, the SELECT loop exits.
ON-ERROR
Procedure to execute if errors occur due to incorrect SQL syntax. Use error trapping with
dynamic query variables. SELECT paragraphs without dynamic variables are checked for errors
before programs are processed and do not require special error procedures.
You can optionally specify arguments to pass to the ON-ERROR procedure. Arguments can be
any variable, column, or literal.
Note:
Production Reporting invokes ON-ERROR when it safely can. If Production Reporting can
recover from a database error, users are given the chance to fix the error. If Production Reporting
cannot recover from a database error, it will exit the program.
Description
BEGIN-SELECT can be placed inside a BEGIN-PROGRAM section. Note that SELECT * FROM is
not a valid Production Reporting SQL statement.
Note:
In Production Reporting DDO, you can name data source-specific aggregation functions in
place of column names in a BEGIN-SELECT block. This shifts the processing burden from
Production Reporting to the data' source host and usually improves performance. The
aggregation function feature also makes it possible to use literals (such as empty column) and
simple mathematical operations (such as 5+10) in place of column names.
74
Production Reporting Command Reference
In Production Reporting DDO-SAP, the TYPE=datatype qualifier used in a BEGIN-SELECT
block is optional. When you report on data sources that provide adequate metadata (such as
SAP), withholding the TYPE qualifier allows Production Reporting to generate code that is more
efficient and portable than it would be otherwise.
You can use the intersect, union, and minus SQL operators in Production Reporting queries
by adding them to the SQL statement that follows the FROM and WHERE clauses.
The SELECT list for the secondary SQL statement in the union, intersect, or minus query
must match the data type, number of columns, and length of columns selected in the first query.
If you select string expressions or literals, ensure that the lengths of the fields in both SELECT
lists are the same.
Note that intersect and minus are not available with SYBASE's Transact SQL.
Enter the part of the SQL statement following the union, minus, or intersect clauses
normally; that is, with commas between column names and without alias names, as shown below:
begin-select
cust_num (1,1) edit 099999
co_name
(,9,30)
name
(,+2,25)
city
(,+2,18)
state
(,+2,2)
zip
(,+1) edit xxxxx-xxxx
next-listing
from customers where state in ('OH', 'IN', 'MI')
union select cust_num, co_name, name, city, state, zip
from prospects where state in ('OH', 'IN', 'MI')
and first_contact >= '01-JAN-88'
order by 2
end-select
Examples
In this example, duplicate rows are not selected for the city, state, and zip columns because of
the “distinct” keyword. The numbers within parentheses accompanying City, State, and Zip
define the column positions of these rows. Column names can not have spaces in front of them.
See “Column Variables” in Volume 1 of the Hyperion SQR Production Reporting Developer's
Guide.
begin-select distinct
city
(1,1,30)
state
(0,+2,2)
zip
(1,+3,6)
from custlist order by city
end-select
In this example, the first two columns may, or may not, be present when the statement is
compiled. The column cust_id is declared to be a number. A runtime error is produced if the
database table, as identified by the variable $table_name, declares it to be something other than
a number.
begin-select
[$col_var_char]
loops=100
&col1=char
BEGIN-SELECT
75
[$col_var_num]
cust_id
from [$table_name]
[$where clause]
[$order_by_clause]
end-select
&col2=number
&id=number
See Also
●
“Selecting Data” and “Dynamic SQL and Error Checking” in Volume 1 of the Hyperion SQR
Production Reporting Developer's Guide
●
END-SELECT and EXIT-SELECT
BEGIN-SETUP
Function
Begins a SETUP section. This section is optional, but if included, it is processed prior to BEGINPROGRAM, BEGIN-HEADING, and BEGIN-FOOTING.
Syntax
BEGIN-SETUP
END-SETUP
Description
SETUP should be the first section in the program. It contains commands that determine overall
program characteristics. The commands used in SETUP cannot be used elsewhere unless
specified. SETUP can include the following commands:
ASK
BEGIN-SQL (can also be used in BEGIN-PROCEDURE.)
CREATE-ARRAY (can also be used in other Production Reporting programs sections)
DECLARE-CHART
DECLARE-IMAGE
DECLARE-LAYOUT
DECLARE-PRINTER
DECLARE-PROCEDURE
DECLARE-REPORT
DECLARE-TOC
DECLARE-VARIABLE (can also be used in LOCAL)
LOAD-LOOKUP (can also be used in the other Production Reporting program sections)
USE (Sybase and ODBC only)
76
Production Reporting Command Reference
Examples
begin-setup
declare-layout customer_list
paper-size=(8.5, 11)
left-margin=1.0
right-margin=1.0
end-declare
end-setup
See Also
ASK, BEGIN-SQL, CREATE-ARRAY, LOAD-LOOKUP , and USE
BEGIN-SQL
Function
Begins an SQL paragraph, which can reside in BEGIN-PROCEDURE, BEGIN-SETUP, or BEGINPROGRAM.
Syntax
BEGIN-SQL[-Cnn][-XP][-NR][-SORTnn]
[-LOCK{RR|CS|RO|RL|XX}]
[-DBdatabase][-DBconnectionstring]
[ON-ERROR=procedure[(arg1[,argi]...)](non-setup)
|[ON-ERROR={STOP|WARN|SKIP}](SETUP)
END-SQL
Arguments
-Cnn
(Oracle) Sets the context area size (buffer size for query) to larger or smaller than the default.
-XP
(Sybase) Prevents the creation of stored procedures for SQL paragraphs. When specified,
Production Reporting generates a new SQL statement using the current value of the bind
variables each time BEGIN-SQL is executed. This disables the performance optimization created
by stored procedures.
Use -XP if you change variables frequently during execution and do not want Production
Reporting to automatically create stored procedures. You can also use -XP if users do not have
permission to create stored procedures. If you do not change variables frequently during
execution, stored procedures may optimize program performance. In this case, do not use XP.
-XP improves performance when using bind variables and dynamic query variables in the same
query. Each time the dynamic query variable changes in value, a new stored procedure is created.
If the dynamic query variable changes often and the query contains bind variables, you create
many stored procedures if you do not use -XP.
BEGIN-SQL
77
-DBconnectionstring
(ODBC) The ODBC connection string for this SQL paragraph only. A connection string has the
following syntax:
DSN=data_source_name[;keyword=value[;keyword=value[;...]]]
Combines data from multiple databases in one program. For example, a connection string for
an Oracle named “ora8” might appear as:
'DSN=ora8;UID=scott;PWD=tiger'
where DSN, UID, and PWD are keywords common to all drivers (representing name, user ID, and
password, respectively). Connection string options are always separated by a semicolon (;).
Other driver-specific options may be added to the connection string using driver-defined
keywords. See your ODBC driver documentation for available options.
Connection=connstr
Used with Production Reporting DDO. The name of a data source previously declared using
DECLARE-CONNECTION. If not specified, the default connection is used. (See BEGIN-EXECUTE
for the behavior of the default connection.)
ON-ERROR
Procedure to execute if an error occurs due to incorrect SQL syntax except when executed in a
BEGIN-SETUP section. By default, Production Reporting reports any error and then halts. If an
error procedure is declared, you can trap errors, report or log them, and continue processing.
The procedure is invoked when an error occurs in any SQL statement in the paragraph. After
the error procedure ends, control returns to the next SQL statement, if any.
You can optionally specify arguments to pass to ON-ERROR. Arguments can be any variable,
column, or literal.
If ON-ERROR is used in SETUP, it is a condition flag supporting the following conditions:
●
STOP—Do not run the program.
●
WARN—Run the program with a warning message.
●
SKIP—Ignore any errors and run the program.
Note:
Production Reporting invokes the ON-ERROR procedure when it safely can. If Production
Reporting can recover from a database error, users are given the chance to fix the error. If
Production Reporting cannot recover from a database error, it will exit from the program.
Description
BEGIN-SQL starts all SQL statements except SELECT, which has its own BEGIN-SELECT
paragraph. If a single paragraph contains more than one SQL statement, terminate each
statement (except the last) by a semicolon (;).
78
Production Reporting Command Reference
If a single paragraph contains more than one SQL statement, and the -C flag is used, all are
assigned the same context area size or logical connection number.
Only non-SELECT statements can be used (except SELECT INTO for Sybase and Microsoft SQL
Server backends). Reference columns and variables in SQL statements.
Examples
begin-sql
update orders set invoice_num = #next_invoice_num
where order_num = &order_num
end-sql
begin sql
delete orders
where order_num = &order_num;
insert into orders values ($customer_name, #order_num,...)
end-sql
Stored Procedures
For Sybase, and Microsoft SQL Server, Production Reporting supports stored procedures with
EXECUTE. For Oracle, stored procedures are implemented using PL/SQL in the BEGIN-SQL
paragraph.
For some databases such as ORACLE, using DDL statements in BEGIN-SQL causes a commit of
outstanding inserts, updates, and deletes and releases cursors. For this reason, ensure that these
are done in the proper order or unpredictable results may occur.
Oracle PL/SQL
For Oracle, PL/SQL is supported in a BEGIN-SQL paragraph. This requires an additional
semicolon at the end of each PL/SQL statement.
For Oracle PL/SQL:
begin-sql
declare
varpl varchar2 (25);;
var2 number (8,2);;
begin
varpl :='abcdefg';;
$v1 :=varpl;;
$v2 :='1230894asd';;
var2 :=1234.56;;
#v :=var2;;
end;;
end-sql
For Oracle stored procedures:
begin-sql
begin
#dept_number :=get_dept_no($dept_name);;
end;;
end-sql
BEGIN-SQL
79
See Also
●
“Dynamic SQL and Error Checking” and “Using DML and DDL” in Volume 1 of the
Hyperion SQR Production Reporting Developer's Guide
●
END-SQL, BEGIN-PROCEDURE, and EXECUTE
●
The -S command-line flag.
BREAK
Function
Exits from EVALUATE or WHILE and continues to the command immediately following ENDWHILE or END-EVALUATE.
Syntax
BREAK
Description
BREAK is used inside a WHILE... END-WHILE loop or within an EVALUATE command.
See Also
WHILE and EVALUATE
CALL, CALL SYSTEM
Function
Issues an operating system command or calls a subroutine written in another language such as
C or COBOL and passes the specified parameters.
Note:
CALL is available in all Production Reporting environments except Oracle's Hyperion® SQR®
Production Reporting Studio. With Oracle's Hyperion® SQR® Production Reporting Studio,
use CALL SYSTEM instead.
Syntax
CALL subroutine USING {src_txt_lit|_var|_col}|{src_num_lit|_var|_col}
{dst_txt_var|_num_var}[param]
To issue operating system commands in an Production Reporting program, use the following
syntax:
CALL SYSTEM USING command status [WAIT|NOWAIT]
80
Production Reporting Command Reference
Arguments
subroutine
Name of the subroutine.
src_txt_lit|_var|_col
Text column, variable, or literal to input into the called subroutine.
src_num_lit|_var|_col
Numeric column, variable (decimal, float, or integer), or literal to input into the called
subroutine.
dst_txt_var|_num_var
Text or numeric variable (decimal, float, or integer) into which the called subroutine places the
return result. (See Table 16 on page 82 .)
param
(Optional) Alphanumeric string of characters passed as a parameter to the subroutine.
SYSTEM
Defines that this CALL command issues an operating system command.
command
Operating system command to execute. The command can be a quoted string, string variable, or
column.
status
Status returned by the operating system. The status must be a numeric variable. The value
returned in status is system-dependent as shown in Table 15.
Table 15
Operating System Status Values for the CALL Command
System
Value Returned
UNIX
Zero (0) indicates success. Any other value is the system error code.
PC/Windows
A value less than 32 indicates an error.
WAIT|NOWAIT
(Windows) - WAIT suspends execution until CALL SYSTEM finishes processing. NOWAIT starts
CALL SYSTEM while continuing its own processing.
For Windows, the default is NOWAIT. On UNIX operating systems the behavior is always
WAIT.
CALL, CALL SYSTEM
81
Description
You can write your own subroutines to perform tasks that are awkward in Production Reporting.
Subroutines can be written in any language.
Caution!
If ucall uses database calls, it may cause erroneous results.
Used in an Production Reporting program, CALL has the following format:
CALL your_sub USING source destination [param_literal]
CALL SYSTEM USING command status [WAIT|NOWAIT]
CALL SYSTEM is a subroutine provided with Production Reporting to allow the program to issue
operating system commands. Its arguments, command, status, and WAIT|NOWAIT are
described above.
The values of the source and destination variables and the parameter's literal value are passed
to the subroutine. Upon return from the subroutine, a value is placed in the destination variable.
If the arguments passed to the function are longer than the limit, they are truncated. (No warning
message displays, but the call proceeds.)
Write the subroutine and call it in one of the supplied ucall routines. (Optionally, you could
rewrite ucall in another language).
The source file UCALL.C contains sample subroutines written in C. :
Table 16
UCALL Subroutine Arguments
Argument
Description
How Passed
callname
Subroutine name.
By reference with a maximum of 31 characters, null
terminated.
strsrc
Source string.
By reference with a maximum of 511 characters, null
terminated.
strdes
Destination string.
By reference with a maximum of 511 characters, null
terminated.
dblsrc
Source double floating point.
By reference.
dbldes
Destination double floating point.
By reference.
param
Subroutine parameter string. It must be a literal.
By reference with a maximum of 2047 characters,
null terminated.
CALL arguments are handled as follows:
●
82
Arguments are copied into variables depending on argument type. Strings are placed in
strsrc, and numerics are placed in dblsrc.
Production Reporting Command Reference
●
Return values are placed in strdes or dbldes depending on whether the destination
argument for CALL is a string or numeric variable.
●
Destination arguments can be used to pass values to a subroutine.
●
To access a subroutine, add a reference to it in UCALL, passing along the needed arguments.
●
Relink Production Reporting to CALL after compiling a user-defined function that becomes
another Production Reporting function.
●
Add subroutines to the link command file (UNIX: SQRMAKE, Windows: SQREXT.MAK) for
new object files. (Alternatively, you could add the routine to the bottom of the UCALL source
module included in the link).
●
Subroutines and calling Production Reporting programs are responsible for passing correct
string or numeric variables and optional parameter strings to the subroutine. No checking
is performed.
Examples
Sample subroutines included in the UCALL source file:
●
TODASH shows how strings can be manipulated.
●
SQROOT demonstrates how to access numerics.
●
SYSTEM invokes a secondary command processor.
The following code calls these subroutines:
call
call
call
call
todash
sqroot
sqroot
system
using
using
using
using
$addr $newaddr '/.',! Convert these to dashes
#n #n2
! Put square root of #n into #n2
&hnvr #j
! Hnvr is numeric database column
'dir' #s
! Get directory listing
The following example uses the SYSTEM argument to issue an operating system command. Some
operating systems let you invoke a secondary command processor to enter one or more
commands and then return to Production Reporting.
! Unix (Type 'exit' to return to Production Reporting)
!
let $shell = getenv('SHELL')
if isblank($shell)
let $shell = '/bin/sh'
end-if
call system using $shell #unix_status
!Windows 98/NT (Type 'exit' to return to Production Reporting)
!
let $comspec = getenv('COMSPEC')
let $cmd = comspec || '/c' ||$comspec || ' /k'
call system using $cmd #win_status wait
The following example adds a user-defined subroutine to Production Reporting so that it can
be invoked using CALL. For this example, the C function initcap, which uppercases the first
letter of a string, is added. The function accepts two parameters. The first parameter is the string
to which initcap is applied. The second is the resultant string.
1. Add the initcap prototype
CALL, CALL SYSTEM
83
static void initcap CC_ARGS((char *, char *));
2. Modify ucall in UCALL.C. Specifically, add an else if statement at the end of the if
statement to check for initcap:
void ucall CC_ARGL((callname, strsrc, strdes, dblsrc, dbldes, params))
...
/* If other subroutines, add "else if..." statement for each */
else if (strcmp(callname,"initcap") == 0)
initcap(strsrc, strdes);
else
sq999("Unknown CALLed subroutine: %s\n", callname);
return;
}
3. At the end of UCALL.C, add the initcap routine listed in the following example. The routine
name must be lower case; however, in your Production Reporting program it can be
referenced with either upper or lower case.
static void initcap CC_ARGL((strsrc, strdes))
CC_ARG(char *, strsrc) /* Pointer to source string
*/
CC_LARG(char *, strdes) /* Pointer to destination string */
{
int nIndex;
int nToUpCase;
char cChar;
nToUpCase = 1;
for (nIndex = 0; cChar
{
if (isalnum(cChar))
{
if (nToUpCase)
strdes[nIndex] =
else
strdes[nIndex] =
nToUpCase = 0;
}
else
{
nToUpCase = 1;
strdes[nIndex] =
}
}
strdes[nIndex] = '\0';
}
= strsrc[nIndex]; nIndex++)
islower(cChar) ? toupper(cChar) : cChar;
isupper(cChar) ? tolower(cChar) : cChar;
cChar;
Note:
CC_ARG macros are defined in the UCALL.C source module. The macros allow you to define
a fully prototyped function without having to worry if the C compiler supports the feature.
After these modifications, recompile UCALL.C and relink Production Reporting. See
“Interoperability” in Volume 1 of the Hyperion SQR Production Reporting Developer's Guide for
details.
84
Production Reporting Command Reference
The following is an example of a simple Production Reporting program using initcap:
begin-program
input $name 'Enter the first name '
! Get the first name from the user
lowercase $name
! Set the first name to all lower case
call initcap using $name $capname
! Now set the first character to upper case
input $last 'Enter the last name '
! Get the last name from the user
lowercase $last
! Set the last name to all lower case
call initcap using $last $caplast
! Now set the first character to upper case
.
.
See Also
LET for information on user-defined functions using UFUNC.C that can be used in the context
of an expression and that can pass and/or return any number of arguments.
CLEAR-ARRAY
Function
Resets array fields to their initial values.
Syntax
CLEAR-ARRAY NAME=array_name
Arguments
NAME
Name of array to clear.
Description
CLEAR-ARRAY resets each field of the named array to its initial value specified in CREATEARRAY. If no initial value was specified, numeric fields are reset to zero, text fields are reset to
null, and date fields are reset to null. CLEAR-ARRAY releases all memory used by the specified
array.
Examples
clear-array
name=custs
CLEAR-ARRAY
85
See Also
CREATE-ARRAY
CLOSE
Function
Closes a file, specified by its file number.
Syntax
CLOSE {filenum_lit|_var|_col}
Arguments
filenum_lit|_var|_col
Number assigned to the file in OPEN.
Description
Closes flat files previously opened with OPEN.
Examples
close 5
close #j
See Also
OPEN, READ, and WRITE
CLOSE-RS
Function
Closes a row set.
Syntax
CLOSE-RS
NAME=row_set_name_var|_lit|_col
Arguments
NAME
Name of the row set.
86
Production Reporting Command Reference
Description
CLOSE-RS can reside in any section except BEGIN-SETUP, BEGIN-SQL, and BEGIN-
DOCUMENT. The row set specified by row_set_name must be active, or an exception is thrown.
The row set file is an XML file. You can define whether to create the XML file in a BI Publisher
(BIP) format or an SQR format in the FormatForRowsetXML entry in the [Default-Settings]
section of SQR.INI.
Example
Begin-Report
Open-RS Name='customer' FileName='customer.xml'
Column = ('cust_num', 'integer')
Column = ('name', 'string')
Column = ('addr1', 'string')
Column = ('addr2', 'string')
Column = ('city', 'string')
Column = ('state', 'string')
Column = ('zip', 'string')
Column = ('phone', 'string')
Column = ('tot', 'integer')
Begin-Select
cust_num
name
addr1
addr2
city
state
zip
phone
tot
Write-RS Name='customer'
Value = ('cust_num', &cust_num)
Value = ('name', &name)
Value = ('addr1', &addr1)
Value = ('addr2', &addr2)
Value = ('city', &city)
Value = ('state', &state)
Value = ('zip', &zip)
Value = ('phone', &phone)
Value = ('tot', &tot)
from customers
order by cust_num
End-Select
Close-RS Name='customer'
End-Report
See Also
OPEN-RS, WRITE-RS
CLOSE-RS
87
COLUMNS
Function
Defines logical columns to use for PRINT commands.
Syntax
COLUMNS {int_lit|_var|_col}[int_lit|_var|_col]...
Arguments
int_lit|_var|_col
Left margin position of each column.
Description
COLUMNS defines the left-most position of one or more columns in the page layout. It sets the
first column as current.
COLUMNS can be used for printing data either down the page or across the page, depending on
how you use NEXT-COLUMN and USE-COLUMN.
COLUMNS only applies to the current report. To print columns in multiple reports, specify
COLUMNS for each report.
USE-COLUMN 0 turns off columns.
See Also
NEXT-COLUMN, NEXT-LISTING, NEW-PAGE, USE-COLUMN, and USE-REPORT
COMMIT
Function
Causes a database commit.
Syntax
COMMIT
Description
COMMIT is useful for multiple inserts, updates, or deletes in SQL paragraphs. A database commit
releases the locks on inserted, updated, or deleted records. If used in an active SELECT paragraph,
unpredictable results may occur.
When the application completes, COMMIT is performed automatically unless ROLLBACK was done
or, for callable Production Reporting, the -XC flag was set.
88
Production Reporting Command Reference
Other commands or options, such as CONNECT and the use of DDL statements for some databases
with a BEGIN-SQL paragraph, can also cause the database to do a commit.
COMMIT is an Production Reporting command and should not be used within an SQL paragraph.
If used in an SQL paragraph, unpredictable errors can occur.
Note:
COMMIT can be used with DB2, ODBC, DDO, Teradata, and Oracle. For Sybase, use BEGIN
TRANSACTION and COMMIT TRANSACTION within SQL paragraphs as in the following
code segment.
Examples
add 1 to #updates_done
if #updates_done > 50
commit
move 0 to #updates_done
end-if
For Sybase:
...
! Begin Transaction occurred previously
begin-sql
insert into custlog values (&cust_num, &update_date)
end-sql
add 1 to #inserts
if #inserts >= 50
begin-sql
commit transaction;! Commit every 50 rows
begin transaction ! Begin next transaction
end-sql
move 0 to #inserts
end-if
...
! One more Commit Transaction is needed
Caution!
Any data changed by a current transaction is locked by the database and cannot be retrieved in
a SELECT paragraph until the transaction is completed by a COMMIT or ROLLBACK statement (or
COMMIT TRANSACTION or ROLLBACK TRANSACTION statement for Sybase and Microsoft SQL
Server backends).
CONCAT
Function
Concatenates variables, columns, or literals with string variables.
CONCAT
89
Syntax
CONCAT {src_any_lit|_var|_col} WITH dst_txt_var[[:$]edit_mask]
Arguments
src_any_lit|_var|_col
Source field to concatenate with dst_txt_var .
dst_txt_var
Result after execution.
edit_mask
Optional edit mask.
Description
The contents of the source field are appended to the end of the destination field.
CONCAT can optionally edit the source field before appending it. To dynamically change an edit
mask, place it in a string variable and reference the variable name preceded by a colon (:). (See
“Edit Masks” on page 247.)
The source can be a date variable or column. If an edit mask is not specified, the date is converted
to a string according to the following rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
Examples
concat &zip_plus_4 with $zip '-xxxx' ! Edit zip plus 4.
concat &descrip with $rec :$desc_edit ! Edit mask in variable.
concat $date1 with $string
! Concatenate a date.
See Also
90
●
PRINT or information on edit masks
●
LET for string functions.
●
STRING and UNSTRING
Production Reporting Command Reference
CONNECT
Function
Logs off the database and logs on under a new user name and password.
Syntax
CONNECT {txt_lit|_var|_col}[ON-ERROR=procedure[(arg1
[, argi]...)]]
Arguments
txt_lit|_var|_col
Username and password for logon.
ON-ERROR
Procedure to execute logon fails. If no ON-ERROR procedure is specified and the logon fails,
Production Reporting halts with an error message.
You can optionally specify arguments to pass to ON-ERROR. Arguments can be any variable,
column, or literal.
Note:
CONNECT is the same as the {connectivity} portion of the Production Reporting command
line as follows:
DB2: DB[/username/password]
DDO: DSN[/username/password]
INFORMIX: DB[/username/password][@InformixServer]
ODBC: DSN[/username/password]
ORACLE: [username/password][@OracleServer]
TERADATA: [TDPID/]username[,password]
Description
New connectivity information can be stored in a string variable, column, or literal.
After each CONNECT, the reserved variable $username is set to the new username.
All database cursors or logons are closed before the CONNECT occurs. Do not issue a CONNECT
within a SELECT or an SQL paragraph while a query is actively fetching or manipulating data
from the database.
Examples
connect
$new-user
on-error=bad-logon($new_user)
CONNECT
91
connect
'sqr/test'
Caution!
Connectivity information is not encrypted, so beware of security issues.
CREATE-ARRAY
Function
Creates an array of fields to store and process data.
Syntax
CREATE-ARRAY NAME=array_name SIZE=nn
[EXTENT=nn]
{FIELD=name:type[:occurs]
[={init_value_txt_lit|_num_lit|_binary_lit}]}...
Arguments
NAME
Name of the array. Referenced in other array commands.
SIZE
Number of array elements.
EXTENT
Number of array elements used to incrementally extend the array size beyond the initial
allocation defined in SIZE. The value entered for EXTENT must be a numeric literal.
FIELD
Defines each field or column in the array.
●
DECIMAL[(p)]—Decimal numbers with an optional precision (p).
●
FLOAT—Double precision floating point numbers.
●
INTEGER—Whole numbers.
●
NUMBER—Uses the DEFAULT-NUMERIC type. (See DECLARE-VARIABLE.)
●
CHAR (or TEXT)—Character string.
●
DATE—Same as date variable.
You can specify an initialization value for each field. Each field is set to this value when the array
is created and when CLEAR-ARRAY is executed. If no initialization value is specified, numeric
fields (DECIMAL, FLOAT, INTEGER) are set to zero, character fields are set to null, and date fields
are set to null. All occurrences of a multiple occurring field are set to the same value. For dates,
92
Production Reporting Command Reference
the initialization string must be formatted as 'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'. See
Table 57 on page 245 for a description of the format codes.
OCCURS
Fields can optionally have a number of occurrences (occurs), that is, they can be repeated any
number of times.
Description
You can define arrays to store intermediate results or data retrieved from the database. For
example, a SELECT paragraph can retrieve data, store it in an array, and gather statistics all at
the same time. When the query finishes, a summary could be printed followed by the data
previously stored in the array.
Production Reporting creates arrays before a program starts to execute. CREATE-ARRAY can be
used in any section of a program.
Commands to process arrays include:
CREATE-ARRAY
CLEAR-ARRAY
GET
PUT
ARRAY-ADD
ARRAY-SUBTRACT
ARRAY-MULTIPLY
ARRAY-DIVIDE
LET
The maximum number of arrays in a program is 128; the maximum number of fields per array
is 200.
Figure 1
Sample Array with Three Fields
The following CREATE-ARRAY command defines the array:
create-array name=emps size=10
field=name:char='Unknown'
CREATE-ARRAY
93
field=rate:number:2=10.50
field=phone:char='None'
The name is a simple field (one occurrence), rate has two occurrences, and phone is a simple
field. Both array elements and field occurrences are referenced beginning with zero (0). The
rate is referenced by rate(0) or rate(1). The emps array contains 10 elements, 0 through 9. All
name fields are initialized to “Unknown”, all phone fields are initialized to “None”, and all rate
fields are initialized to 10.50.
Examples
The following example defines an array names custs with 100 elements that can be incrementally
extended by 25 elements:
create-array name=custs size=100 extent=25
field=name:char
field=no:number
field=state:char
field=zip:char
field=contacts:char:5
field=last-contacted:date
The following example defines point labels as part of a data array.
create-array name=multi_series_radar_data_with_labels
field=label:char ! point label
field=theta:number:1 ! angle
field=radius:number:2 ! two series of point
size=7
See Also
●
The sample report CUSTOMR4.SQR included with Production Reporting
●
LOAD-LOOKUP for an alternative way to store database table(s) in memory
●
DECLARE-VARIABLE, ARRAY-ADD, ARRAY-DIVIDE, ARRAY-MULTIPLY,
ARRAY-SUBTRACT, GET, PUT, LET, and CLEAR-ARRAY
CREATE-COLOR-PALETTE
Function
Create a color palette.
Syntax
CREATE-COLOR-PALETTE
NAME={palette_name_txt_lit}
COLOR_1={rgb}
COLOR_2={rgb}
[COLOR_n]={rgb}
94
Production Reporting Command Reference
Arguments
NAME
Name of the color palette.
COLOR_1
First color in the palette.
COLOR_2
Second color in the palette.
COLOR_n
The n’th color in the palette. You can specify up to 64 colors in the palette.
{rgb}
A color reference. This can be expressed as (r,g,b) where r, g, and b are either a numeric literal
(0 to 255), a numeric variable, or a numeric column. It can also be expressed as a (c) where c is
a string literal, column, or variable that is the name of a color.
Description
This command creates a palette of colors. There is no limit to the number of palettes that can
be defined in a program. No gaps are permitted in the palette.
Examples
begin-report
create-color-palette
name = 'funky'
color_1 = ('blue')
color_2 = ('red')
color_3 = ('orange')
print-chart Groovy
color-palette = 'Funky'
end-report
See Also
●
DECLARE-CHART
●
PRINT-CHART
CREATE-LIST
Function
Creates a named list.
CREATE-LIST
95
Syntax
CREATE-LIST
NAME=list_name_txt_lit|_var|_col
LIST=(value_lit|var|_col|(r,g,b)...)
Arguments
NAME
Name of the list.
LIST
Values included in the list.
Description
This command creates named lists of items. This command may be used anywhere within an
Production Reporting program and will override a previously declared named list. The list and
internal copies of the variables placed into the structure used to maintain the list are established
at run-time. Updates to the elements used to define the list do not change the contents of the
list after the list has been established. To add an item to a list, reenter the complete list.
Examples
begin-report
create-list
name='linestyle'
list=('solid','longdash','dot')
end-report
CREATE-TABLE
Function
Creates a table from a template.
Syntax
NAME=table_name_var|_lit|_col
USING=table_template_var|_lit|_col
[COLUMN-COUNT=number_of_columns_var|_lit|_col]
[COLUMN-ATTRIBUTES=({column—number},{keyword1},{value1}, ..., {keywordn},
{valuen})]
[ROW-ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
[TABLE-ATTRIBUTES=({keyword1},{value1}, ...,{keywordn},{valuen})]
Arguments
NAME
Table name used by ALTER-TABLE, DUMP-TABLE, FILL-TABLE, and PRINT-TABLE. Valid
values include alphanumeric characters(A-Z, 0–9), underscore (_), and dash (-).
96
Production Reporting Command Reference
USING
Name of the table template. The template must be defined with DECLARE-TABLE. NONE indicates
that the table is defined solely by CREATE-TABLE parameters.
COLUMN-COUNT
Number of table columns.
COLUMN-ATTRIBUTES
Attributes to apply to column cells. The values defined are only applicable when USING=NONE.
Table 17
Column Attributes
Attribute
Description
BACKGROUND
Background color name or RGB triplet. Default=NONE.
BOLD
YES | NO
CENTER
YES | NO
DEFAULT
When the USING argument is anything other than NONE, this attribute causes all the attributes
to be set to default values prior to applying any other attributes.
FILL-COLOR
Fill color name or RGB triplet. Default=NONE
FONT
Font number. (Must be defined.)
FOREGROUND
Foreground color name or RGB triplet. Default=BLACK.
ITALIC
YES | NO
LEADING
Expressed in decipoints
LINE-COLOR
Color name or RGB triplet of column line (line after column). Default=NONE (no line).
LINE-STYLE
Column line style (SOLID, SQUARE-DOT, DASH, DASH-DOT, LONG-DASH, LONG-DASHDOT,LONG-DASH-DOT-DOT). Default=SOLID.
LINE-THICKNESS
Column line thickness expressed in decipoints. Default=two decipoints.
POINT-SIZE
Point size of the font. (Must be specified.)
UNDERLINE
YES | NO
WIDTH
Width expressed in coordinate units. (Must be specified.)
WRAP
YES | NO | maximum number of lines
WRAP-HEIGHT
Number of lines between each wrapped line. Default=one line.
WRAP-ON
Characters on which to force a WRAP. The default is not to force a WRAP.
WRAP-STRIP
Characters to change to a space before the WRAP is done. The default is not to strip any characters.
CREATE-TABLE
97
ROW-ATTRIBUTES
Attributes to apply to rows.
Table 18
Row Attributes
Attribute
Description
BORDER-COLOR
Color name or RGB triplet. Default=NONE (no border)
BORDER-LINE-STYLE
The border line style (SOLID, SQUARE-DOT, DASH, DASH-DOT, LONG-DASH, LONG-DASHDOT, LONG-DASH-DOT-DOT). Default=SOLID
BORDER-THICKNESS
Border thickness expressed in decipoints. Default=two decipoints
DEFAULT
When the USING argument is anything other than NONE, this attribute causes all the
attributesto be set to default values prior to applying any other attributes.
FILL-COLOR
Fill color name or RGB triplet. Default=NONE
HEIGHT
Number of lines between each printed row. Default=one line
LINE-COLOR
Color name or RGB triplet. Default=NONE (no line)
LINE-STYLE
The line style (SOLID, SQUARE-DOT, DASH, DASH-DOT, LONG-DASH, LONG-DASHDOT,LONG-DASH-DOT-DOT). Default=SOLID
LINE-THICKNESS
Line thickness expressed in decipoints. Default=two decipoints
TABLE-ATTRIBUTES
Attributes for the appearance of the table.
Table 19
Table Attributes
Attribute
Description
BORDER-COLOR
Color name or RGB triplet. Default=NONE (no border)
BORDER-LINE-STYLE
The border line style (SOLID, SQUARE-DOT, DASH, DASH-DOT, LONG-DASH, LONG-DASHDOT, LONG-DASH-DOT-DOT). Default=SOLID
BORDER-THICKNESS
Border thickness expressed in decipoints. Default=two decipoints
DEFAULT
When the USING argument is anything other than NONE, this attribute causes all the
attributesto be set to default values prior to applying any other attributes.
FILL-COLOR
Fill color name or RGB triplet. Default=NONE
LEADING
Expressed in decipoints. Default=0 decipoints
Description
Use CREATE-TABLE in any section except BEGIN-SETUP, BEGIN-SQL, and BEGIN-DOCUMENT
to create a table from a template.
98
Production Reporting Command Reference
Example
create-table
name='tab2'
using='template4'
column-count=4
table-attributes=('border-thickness',&int4 'leading',&int2,
'border-color',(&red),'border-line-style','square-dot')
row-attributes=('fill-color',(230,240,255))
column-attributes=(0,'italic',&yes,'bold',&yes,
'center',&no,'font',&int3,'point-size',&int10,
'foreground','white','background',(&blue), 'width', &int25)
column-attributes=(1,default,'background',('red'),
'foreground',('blue'))
See Also
ALTER-TABLE, DECLARE-TABLE, DUMP-TABLE, FILL-TABLE, PRINT-TABLE
#DEBUG
Function
Causes the current command to process during a debugging session.
Syntax
#DEBUG[x...]sqr_command
Arguments
x
Any letter or digit.
Description
A -DEBUG[xx] flag in the Production Reporting command line allows conditional compilation
of Production Reporting commands. When this flag is used, any command (including other
compiler directives) preceded by the word #DEBUG is processed; otherwise, the command is
ignored.
This is useful for placing DISPLAY, SHOW, PRINT or other commands in your program for testing
and for deactivating them when the report goes into production.
The -DEBUG flag can be suffixed by up to 36 letters or digits. These characters are used to match
any letters or digits appended to the #DEBUG preprocess command inside the program.
#DEBUG commands with one or more matching suffix characters are processed; other commands
are ignored. Commands without any suffix always match.
In addition, for each -DEBUGxx letter, a substitution variable is defined. For example, if the flag
-DEBUGab is used on the command line, three substitution variables are defined: debug,
debuga, and debugb. These variables can be referenced in #IFDEF commands to turn whole
sections of code on or off for debugging.
#DEBUG
99
Examples
The following Production Reporting command line contains the -DEBUG flag with no suffixes:
sqr
myprog
sammy/baker
-debug
The following SHOW command in the program executes if invoked with the previous command
line because the -DEBUG flag was used:
#debug show 'The total is ' #grand-tot 999,999,999
In the following example, the command line contains the -DEBUG flag with the suffixes a, b,
and c:
sqr
myprog
sammy/baker
-debugabc
In the following program segment, the first three #DEBUG commands are compiled, but the
fourth, beginning “#debuge”, is not since its suffix does not match any of the suffixes on
the -DEBUG flag:
#debuga
#debug
#debugb
#debuge
show
show
show
show
'Now selecting rows...'
'Finished query.'
'Inserting new row.'
'Deleting row.'
The following example shows the use of an #IF with a #DEBUG:
#debuga
#debuga
#debuga
#if {platform}='unix'
show 'Platform is UNIX'
#endif
See Also
#IF, #IFDEF, and #IFNDEF
DECLARE-CHART
Function
Defines the attributes of a chart that you can later display using PRINT-CHART.
Syntax
DECLARE-CHART chart_name
[TYPE=chart_type_lit]
[CHART-SIZE=(chart_width_int_lit,chart_depth_int_lit)]
[TITLE=title_txt_lit]
[SUB-TITLE=subtitle_txt_lit]
[FILL=fill_lit]
[3D-EFFECTS=3d_effects_lit]
[BORDER=border_lit]
[COLOR-PALETTE=color_palette_lit]
[POINT-MARKERS=point_markers_lit]
[ATTRIBUTES={selector_lit|
LIST:{selector_list_name_lit|(selector_lit,...)},
100 Production Reporting Command Reference
{decl_key_lit,{decl_value_lit|
LIST:{decl_val_list_name_lit|(decl_val_lit,...)}|
PALETTE:{color_palette_lit}}},...}}]
[DATA-ARRAY=array_name]
[DATA-ARRAY-ROW-COUNT=row_count_num_lit]
[DATA-ARRAY-COLUMN-COUNT=column_count_num_lit]
[DATA-ARRAY-COLUMN-LABELS={NONE|array_name|(txt_lit,...)}]
[DATA-LABELS=data_labels_lit]
[FOOTER-TEXT=NONE|text_lit]
[SUB-FOOTER-TEXT=NONE|text_lit]
[ITEM-COLOR=(item_color_keyword_lit,{color_value_lit|(r,g,b)})]
[ITEM-SIZE=(item_size_keyword_lit,item_size_num_lit)]
[LEGEND=legend_lit]
[LEGEND-TITLE=legend_title_txt_lit]
[LEGEND-PLACEMENT=legend_placement_lit]
[LEGEND-PRESENTATION=legend_presentation_lit]
[PIE-SEGMENT-QUANTITY-DISPLAY=pie_segment_quantity_display_lit]
[PIE-SEGMENT-PERCENT-DISPLAY=pie_segment_percent_display_lit]
[PIE-SEGMENT-EXPLODE=pie_segment_explode_lit]
[X-AXIS-GRID=x_axis_grid_lit]
[X-AXIS-LABEL=x_axis_label_txt_lit]
[X-AXIS-MIN-VALUE={x_axis_min_value_lit|_num_lit}]
[X-AXIS-MAX-VALUE={x_axis_max_value_lit|_num_lit}]
[X-AXIS-MAJOR-INCREMENT={x_axis_major_increment_lit|_num_lit}]
[X-AXIS-MINOR-INCREMENT=x_axis_minor_increment_num_lit]
[X-AXIS-MAJOR-TICK-MARKS=x_axis_major_tick_marks_lit]
[X-AXIS-MINOR-TICK-MARKS=x_axis_minor_tick_marks_lit]
[X-AXIS-TICK-MARK-PLACEMENT=x_axis_tick_mark_placement_lit]
[X-AXIS-ROTATE=x_axis_rotate_num_lit]
[X-AXIS-SCALE=x_axis_scale_lit]
[Y-AXIS-GRID=y_axis_grid_lit]
[Y-AXIS-LABEL=y_axis_label_lit]
[Y-AXIS-MASK=mask_txt_lit]
[Y-AXIS-MIN-VALUE={y_axis_min_value_lit|_num_lit}]
[Y-AXIS-MAX-VALUE={y_axis_max_value_lit|_num_lit}]
[Y-AXIS-MAJOR-INCREMENT={y_axis_major_increment_lit|_num_lit}]
[Y-AXIS-MINOR-INCREMENT=y_axis_minor_increment_num_lit]
[Y-AXIS-MAJOR-TICK-MARKS=y_axis_major_tick_marks_lit]
[Y-AXIS-MINOR-TICK-MARKS=y_axis_minor_tick_marks_lit]
[Y-AXIS-TICK-MARK-PLACEMENT=y_axis_tick_mark_placement_lit]
[Y-AXIS-SCALE=y_axis_scale_lit]
[Y2-AXIS-LABEL=y2_axis_label_lit]
[Y2-AXIS-MASK=mask_txt_lit]
[Y2-AXIS-MIN-VALUE={y2_axis_min_value_lit|_num_lit}]
[Y2-AXIS-MAX-VALUE={y2_axis_max_value_lit|_num_lit}]
[Y2-AXIS-MAJOR-INCREMENT={y2_axis_major_increment_lit|_num_lit}]
[Y2-AXIS-MINOR-INCREMENT=y2_axis_minor_increment_num_lit]
[Y2-AXIS-MAJOR-TICK-MARKS=y2_axis_major_tick_marks_lit]
[Y2-AXIS-MINOR-TICK-MARKS=y2_axis_minor_tick_marks_lit]
[Y2-AXIS-SCALE=y2_axis_scale_lit]
[Y2-COLOR-PALETTE=color_palette_lit]
[Y2-DATA-ARRAY=array_name]
[Y2-DATA-ARRAY-ROW-COUNT=row_count_num_lit]
[Y2-DATA-ARRAY-COLUMN-COUNT=column_count_num_lit]
[Y2-DATA-ARRAY-COLUMN-LABELS={NONE|array_name|(txt_lit,...)}]
[Y2-TYPE=chart_type_lit]
END-DECLARE
DECLARE-CHART 101
Note:
If you do not define the CHART-SIZE in DECLARE-CHART, you must define it in PRINTCHART.
Arguments
Table 20 describes the DECLARE-CHART arguments. (These arguments are also valid for
PRINT-CHART.) Default values are underlined.
Note:
Several of the arguments in Table 20 refer to NewGraphics. To invoke NewGraphics, change the
NewGraphics entry in the [Default-Settings] section of SQR.INI to TRUE (NewGraphics=True).
(See NewGraphics under “[Default-Settings] Section” on page 328 for more information.)
When you use NewGraphics, font values are interpreted as HTML text size values (not point
size values). For example, assume you have the following point values:
ITEM-SIZE= ('Title',12)
ITEM-SIZE= ('SubTitle',10)
ITEM-SIZE= ('XAxisLabel',8)
In this example, if NewGraphics=True, you would convert the points size values to HTML text
size values similar to the following:
ITEM-SIZE= ('Title',3)
ITEM-SIZE= ('SubTitle',2)
ITEM-SIZE= ('XAxisLabel',1)
HTML text size values are:
1- very small
2 - small
3 - normal size
4 - large
5 - larger
6 - very large
7 - largest
Table 20
DECLARE-CHART Arguments
Argument
Choices
Description
3D-EFFECTS
YES | NO
YES gives your chart depth. NO displays the
chart in a two-dimensional mode.
102 Production Reporting Command Reference
Argument
Choices
Description
Must be set to YES for other 3D parameters
to function.
ATTRIBUTES
See “Attributes Argument” on page
112 for information on the valid
choices.
Defines the appearance of a chart.
Production Reporting reads and processes
the keywords in the ATTRIBUTES argument
left-to-right and first-to-last. As a result, a
subsequent value setting overrides a
previously-established value. Values
assigned with DECLARE-CHART are
overridden by values assigned with PRINTCHART.
Setting the ATTRIBUTES for the ALL selector
establishes a default value for all property
values within a chart. Any subsequent entry
for a specific area, such as Header, overrides
the value previously established by the ALL
selector. Any invalid combination of
selectors, sub-selectors, or declarations
produce an error.
Note: Some of the keywords in the
ATTRIBUTES argument replace the
functionality previously provided by the ITEMCOLOR, ITEM-SIZE, LEGEND-PLACEMENT,
FILL, and COLOR-PALETTE arguments.
Production Reporting processes all old style
keyword, value parameters prior to the new
ATTRIBUTES argument. This may result in the
new ATTRIBUTES argument overriding a value
previously established with the old style
keyword, value parameter pairs.
BORDER
YES | NO
Defines whether to draw a border around the
chart.
chart_name
User defined chart name.
Name for referencing a chart.
CHART-SIZE
User defined chart size.
Size of the chart frame in standard
Production Reporting coordinate units.
COLOR-PALETTE
palette_name
Defines the color of the individual data points
in charts (for example, bar, slice, point). Use
CREATE-COLOR-PALETTE to define a valid
Production Reporting color palette to use.
Note: The defined color palette is only valid
when NewGraphics=TRUE.
Note: The FOREGROUND and BACKBROUND
declaration keywords in the ATTRIBUTES
argument replace the functionality provided
by COLOR-PALETTE . As a result, a value set
with FOREGROUND or BACKGROUND
overrides a value set with COLOR-PALETTE.
DECLARE-CHART 103
Argument
Choices
Description
DATA-ARRAY Y2-DATA-ARRAY
array_name
Name of the array containing the data to plot.
This must be the name of an array defined
with CREATE-ARRAY.
Use DATA-ARRAY to define the data array for
the Y-Axis.
Use Y2-DATA-ARRAY to define the data array
for the Y2-Axis. (Y2-Axis values are ignored
for pie charts.) Y2-DATA-ARRAY is only
available with NewGraphics.
DATA-ARRAY-ROW-COUNT
row_count
Number of rows or sets of data to use from
the DATA-ARRAY. If DATA-ARRAY has a
greater number of rows, only
DATA-ARRAY-ROW-COUNT is included in the
chart.
Y2-DATA-ARRAY-ROW-COUNT
row_count
(NewGraphics) Number of rows or sets of
data to use from Y2-DATA-ARRAY. If
Y2-DATA-ARRAY has a greater number of
rows, only Y2-DATA-ARRAY-ROW-COUNT is
included in the chart.
DATA-ARRAY-COLUMN-COUNT
column_count
Number of columns to use from
DATA-ARRAY. If the DATA-ARRAY has a
greater number of columns, only DATAARRAY-COLUMN-COUNT is included in the
chart.
Y2-DATA-ARRAY-COLUMN-COUNT
column_count
(New Graphics) Number of columns to use
from the Y2-DATA-ARRAY. If Y2-DATA-ARRAY
has a greater number of columns, only
Y2-DATA-ARRAY-COLUMN-COUNT is
included in the chart.
DATA-ARRAY-COLUMN-LABELS
NONE | array_name |
(label1,label2, …)
Labels for each Y-Axis value of the data set
(fields) in DATA-ARRAY. Labels are displayed
in the legend box. Column labels are ignored
for pie charts. See Table 65 on page 266 for
applicable fields for each type of chart.
Y2-DATA-ARRAY-COLUMN-LABELS
NONE | array_name| (label1,label2,
…)
(New Graphics) Labels for each Y2-Axis value
of the data set (fields) in Y2-DATA-ARRAY.
Labels are displayed in the legend box.
Column labels are ignored for pie charts.
SeeTable 65 on page 266 for applicable
fields for each type of chart.
DATA-LABELS
YES | NO
(NewGraphics) If YES, Production Reporting
prints the numeric value above the individual
data points. If NO, no numeric values are
displayed.
FILL
GRAYSCALE | COLOR |
CROSSHATCH | NONE
Type of filling applied to the shapes (for
example, bars, pie-segments) that represent
the data loaded in the chart. GRAYSCALE
varies the density of black dots. COLOR
104 Production Reporting Command Reference
Argument
Choices
Description
sends color instructions to the current
printer. If the current printer does not support
color, then it could appear in GRAYSCALE.
CROSSHATCH uses patterns to fill the shapes
representing each data set. With NONE all
graph shapes are filled with white.
Note: The STYLE declaration keyword in the
ATTRIBUTES argument replaces the
functionality provided by FILL. As a result, a
value set with STYLE overrides a value set
with FILL.
FOOTER-TEXT
NONE | text
Footer text for the chart. The text is placed at
the bottom of the chart.
Default value is NONE.
ITEM-COLOR
ChartBackground—Background color
of entire chart area.
ChartForeground—Text and Line color
of chart area.
HeaderBackground—Area within the
text box specified for the title and subtitle.
(NewGraphics) Color for individual chart
items. Specify a chart item and a valid (r,g,b)
color to set the color of the chart item.
Note: The COLOR declaration keyword in the
ATTRIBUTES argument replaces the
functionality provided by ITEM-COLOR. As a
result, a value set with COLOR overrides a
value set with ITEM-COLOR.
HeaderForeground—Text color of the
Title and sub-title.
LegendBackground—Area within the
box defining the legend.
LegendForeground—Text and Outline
color of the legend.
ChartAreaBackground—Area that
includes the body of the chart.
ChartAreaForeground—Text and Line
colors of the chart area.
PlotAreaBackground—Area within the
X and Y Axis of a chart.
Note: For more information see,
“Changing Colors with New Graphics”
in Volume 1 of the Hyperion SQR
Production Reporting Developer's
Guide.
ITEM-SIZE
Title|SubTitle|XAxisLabel|
XAxisMarkers|YAxisLabel|
YAxisMarkers|Y2AxisLabel|
Y2AxisMarkers|LegendText|
LegendTitle
(NewGraphics) Size of the following chart
objects. The value is based on HTML text
sizes.
●
Title—Chart title
ITEM-SIZE=('Title',value)
●
SubTitle—Chart subtitle
ITEM-SIZE= ('SubTitle',value)
DECLARE-CHART 105
Argument
Choices
Description
●
XAxisLabel—Label below the X Axis of the
chart
ITEM-SIZE= ('XAxisLabel',value)
●
XAxisMarkers—Point labels on the X Axis
ITEM-SIZE= ('XAxisMarkers',value)
●
YAxisLabel—Rotated label to the left of
the chart
ITEM-SIZE= ('YAxisLabel',value)
●
YAxisMarkers—Point labels on the Y Axis
ITEM-SIZE= ('YAxisMarkers',value)
●
Y2AxisLabel—Rotated Label to the right
of the chart
ITEM-SIZE= ('Y2AxisLabel',value)
●
Y2AxisMarkers—Point labels on the Y Axis
ITEM-SIZE= ('Y2AxisMarkers',value)
●
LegendText—Legend text
ITEM-SIZE= ('LegendText',value)
●
LegendTitle—Legend title
ITEM-SIZE= ('LegendTitle',value)
Note: If you do not define an ITEM-SIZE
value, Production Reporting uses the HTML
text value of 3 (normal size).
Note: The POINT-SIZE declaration keyword in
the ATTRIBUTES argument replaces the
functionality provided by ITEM-SIZE. As a
result, values set with POINT-SIZE override
values set with ITEM-SIZE.
LEGEND
YES | NO
Defines whether to display a legend.
LEGEND-PLACEMENT
CENTER-RIGHT | CENTER-LEFT |
UPPER-RIGHT | UPPER-LEFT |
UPPER-CENTER | LOWER-RIGHT |
LOWER-LEFT | LOWER-CENTER
Places the legend in the specified location
on the chart. The first portion of the
placement parameter (CENTER, UPPER, or
LOWER) is the vertical position, and the
second portion is the horizontal.
Note: The LOCATION declaration keyword in
the ATTRIBUTES argument replaces the
functionality provided by LEGENDPLACEMENT. As a result, values set with
LOCATION override values set with LEGENDPLACEMENT.
LEGEND-PRESENTATION
106 Production Reporting Command Reference
INSIDE | OUTSIDE
If INSIDE, then the legend is presented inside
the area defined by the two axes. If OUTSIDE,
then the legend is presented within the chart
border, but outside of the region represented
by the two axes.
Argument
Choices
Description
LEGEND-TITLE
NONE | text
Title for the legend. If NONE, then no title is
displayed in the legend box.
PIE-SEGMENT-EXPLODE
NONE | MAX |MIN | USE-3RD-DATACOLUMN
Controls what pie segments are exploded
(selected) within the pie chart. MAX selects
the largest segment. MIN selects the
smallest segment. If USE-3RD-DATACOLUMN, then the third field in the DATAARRAY is used to determine which pie
segments are exploded. This third field
should be a CHAR and values of 'YES' or 'Y'
indicate that the segment should be
exploded.
PIE-SEGMENT-PERCENT-DISPLAY
YES | NO
If YES, then percent-of-total figures is
presented for each pie segment.
PIE-SEGMENT-QUANTITY-DISPLAY
YES | NO
If YES, then the quantity is presented for each
pie segment.
POINT-MARKERS
YES | NO
If YES, then point markers are displayed for
line charts. If NO, then point markers are not
displayed.
SUB-FOOTER-TEXT
NONE | text
Sub-footer text for the chart. The text is
placed below the footer regardless of
whether the FOOTER-TEXT is specified.
Default value is NONE.
SUB-TITLE
NONE | text
Subtitle for the chart. Text is placed below
the title regardless of whether or not TITLE is
specified.
TITLE
NONE | text
Chart title. Text is placed at the top of the
chart.
TYPE Y2-TYPE (no pie charts)
PIE | BAR | AREA | LINE |
STACKED-BAR | OVERLAPPED-BAR |
FLOATING-BAR | HISTOGRAM |
100%-BAR | 100%-AREA |
STACKED-AREA | HIGH-LOW-CLOSE
| COMBO | XY-SCATTER-PLOT |
BUBBLE | RADAR | POLAR |
CANDLE-STICK | AREA-RADAR |
NONE
Chart type. See “Business Charts” in Volume
1 of the Hyperion SQR Production Reporting
Developer's Guide
(Y2-TYPE is only available with
NewGraphics.)
Note: NONE is only valid for Y2-TYPE.
Y2-AXIS-COLOR-PALETTE
palette_name
(NewGraphics) Color palette used to color
data points in charts (for example, bar, slice,
point). You must define a valid Production
Reporting color-palette with CREATE-COLORPALETTE.
X-AXIS-GRID Y-AXIS-GRID Y2-AXIS-GRID
YES | NO YES | NO YES | NO
If YES, then a dashed grid line is drawn for
each major tick-mark on the axis. If NO, then
no grid line is drawn on this axis.
DECLARE-CHART 107
Argument
Choices
Description
X-AXIS-LABEL Y-AXIS-LABEL Y2-AXIS-LABEL
NONE | text
Line of text to display below (or alongside)
the tick-mark labels on the axis.
(Y2-AXIS-LABEL is only available with
NewGraphics.)
X-AXIS-MAX-VALUE
AUTOSCALE | number
Maximum value on the X axis. Data values
greater than X-AXIS-MAX-VALUE are not
displayed. AUTOSCALE calculates an
appropriate maximum value.
Y-AXIS-MAX-VALUE
AUTOSCALE | number
Maximum value on the Y axis. Data values
greater than Y-AXIS-MAX-VALUE are not
displayed. AUTOSCALE calculates an
appropriate maximum value.
Y2-AXIS-MAX-VALUE
AUTOSCALE | number
(NewGraphics) Maximum value on the Y2
axis. Data values greater than Y2-AXIS-MAXVALUE are not displayed. AUTOSCALE
calculates an appropriate maximum value.
X-AXIS-MIN-VALUE
AUTOSCALE | number
Minimum value on the X axis. Data values
less than X-AXIS-MIN-VALUE are not
displayed. AUTOSCALE calculates an
appropriate minimum value.
Y-AXIS-MIN-VALUE
AUTOSCALE | number
Minimum value on the Y axis. Data values
less than Y-AXIS-MIN-VALUE are not
displayed. AUTOSCALE calculates an
appropriate minimum value.
Y2-AXIS-MIN-VALUE
AUTOSCALE | number
(NewGraphics) Minimum value on the Y2
axis. Data values less than Y2-AXIS-MINVALUE are not displayed. AUTOSCALE
calculates an appropriate minimum value.
X-AXIS-MAJOR-TICK-MARKS
YES | NO
YES displays tick-marks along the axis
between X-AXIS-MIN-VALUE and
X-AXIS-MAX-VALUE, according to the
X-AXIS-SCALE setting spaced by
X-AXIS-MAJOR-INCREMENT.
Y-AXIS-MAJOR-TICK-MARKS
YES | NO
YES displays tick-marks along the axis
between Y-AXIS-MIN-VALUE and
Y-AXIS-MAX-VALUE, according to the
Y-AXIS-SCALE setting spaced by
Y-AXIS-MAJOR-INCREMENT.
Y2-AXIS-MAJOR-TICK-MARKS
YES | NO
(NewGraphics) YES displays tick-marks
along the axis between Y2-AXIS-MIN-VALUE
and Y2-AXIS-MAX-VALUE, according to the
Y2-AXIS-SCALE setting spaced by
Y2-AXIS-MAJOR-INCREMENT.
Y-AXIS-MASK
‘$999,999.99’
Numeric mask used to format the Y Axis.
Follows the edit mask rules defined in
Table 56.
108 Production Reporting Command Reference
Argument
Choices
Description
Y2-AXIS-MASK
‘099999’
(NewGraphics) Numeric mask used to format
the Y2 Axis. Follows the edit mask rules
defined in Table 56.
X-AXIS-MINOR-TICK-MARKS
YES | NO
YES displays tick-marks along the axis
between X-AXIS-MIN-VALUE and
X-AXIS-MAX-VALUE, according to the
X-AXIS-SCALE setting spaced by
X-AXIS-MINOR-INCREMENT.
Y-AXIS-MINOR-TICK-MARKS
YES | NO
YES displays tick-marks along the axis
between Y-AXIS-MIN-VALUE and
Y-AXIS-MAX-VALUE, according to the
Y-AXIS-SCALE setting spaced by
Y-AXIS-MINOR-INCREMENT.
Y2-AXIS-MINOR-TICK-MARKS
YES | NO
(NewGraphics) YES displays tick-marks
along the axis between Y2-AXIS-MIN-VALUE
and Y2-AXIS-MAX-VALUE, according to the
Y2-AXIS-SCALE setting spaced by
Y2-AXIS-MINOR-INCREMENT.
X-AXIS-MAJOR-INCREMENT Y-AXIS-MAJORINCREMENT Y2-AXIS-MAJOR-INCREMENT
AUTOSCALE | number
Increment used to space major tick-marks on
the axis. AUTOSCALE calculates an
appropriate increment.
(Y2-AXIS-MAJOR-INCREMENT is only
available with NewGraphics)
X-AXIS-MINOR-INCREMENT Y-AXIS-MINORINCREMENT Y2-AXIS-MINOR-INCREMENT
number
Increment used to space minor tick-marks on
the axis. This must be set for the X-AXISMINOR-TICK-MARKS, the Y-AXIS-MINORTICK-MARKS, or the Y2-AXIS-MINOR-TICKMARKS to display.
(Y2-AXIS-MINOR-INCREMENT is only
available with NewGraphics)
X-AXIS-ROTATE
X-Axis-Rotate = 0 No Rotation
Defines the X Axis rotation of Markers.
X-Axis-Rotate = 1 Always Rotate
The default value is 5.
X-Axis-Rotate = n Rotate Labels if:
Data-Array-Row-Count > n
X-AXIS-TICK-MARK-PLACEMENT Y-AXIS-TICKMARK-PLACEMENT
INSIDE | OUTSIDE | BOTH
INSIDE (or OUTSIDE) directs Production
Reporting to place the tick marks on the
inside (or outside) of the axis only. BOTH
directs Production Reporting to draw the tickmarks such that they appear on both sides
of the axis.
These arguments have no meaning in
NewGraphics.
X-AXIS-SCALE Y-AXIS-SCALE Y2-AXIS-SCALE
LOG | LINEAR
LOG specifies a logarithmic scale for the axis.
Otherwise, the scale is LINEAR.
(Y2-AXIS-SCALE is only available with
NewGraphics)
DECLARE-CHART 109
Description
DECLARE-CHART defines the attributes of a chart to print as part of a report. You can use the
attributes in any order, with the exception of chart-name, which must follow the DECLARECHART keyword. DECLARE-CHART can only appear in the SETUP section.
A chart defined with DECLARE-CHART prints by referencing its name in PRINT-CHART. You can
override some or all of the chart attributes at run-time with PRINT-CHART. As such, DECLARECHART is useful when the basic properties of a chart are common to many PRINT-CHART
commands.
Tip:
All values declared for a chart in the DECLARE-CHART section of an Production Reporting
program become the default values for that chart. To override an assigned value, you must set
the value in the PRINT-CHART section of the Production Reporting program. The following
example illustrates this functionality.
begin-setup
declare-chart
attributes=
attributes=
attributes=
attributes=
default-chart
('All','Font',31,'Font-Style','Plain','Point-Size',12)
('Header','Font',31,'Font-Style','Bold','Point-Size',18)
('chart1','start-angle',0,''threshold-method','percent',
'threshold-value',20)
('chart1','3d-depth',5,'3d-rotation',65,
'3d-elevation',85)
('chart1','cluster-width',75,'cluster-overlap',65)
('legend','location','lower-center')
('chart1.fill','style',LIST:('25per','50per','75per'))
('chart1.line','style',LIST:'linestyle')
('all.line','size',2)
('all.line','color',LIST:(('red'),('green'),('blue')))
('chart1','sort-order','Largest')
('chart1','Background',(230,230,255))
('all-axis.marker','foreground',(230,0,100))
attributes=
attributes=
attributes=
attributes=
attributes=
attributes=
attributes=
attributes=
attributes=
end-declare
create-array
name = emp_sales
size = 20
field = col_name:char:1
field = sales:number:3
end-setup
begin-report
create-list
name='linestyle'
list=('longdash','shortdash','dashdot','longshort')
put 'Madeline' 10 12 12
into emp_sales(0) col_name(0) sales(0) sales(1) sales
put 'Jacob' 25 35 45
into emp_sales(1) col_name(0) sales(0) sales(1) sales
put 'Evan' 18 28 38
into emp_sales(2) col_name(0) sales(0) sales(1) sales
put 'Claire' 60 70 80
into emp_sales(3) col_name(0) sales(0) sales(1) sales
110 Production Reporting Command Reference
(2)
(2)
(2)
(2)
print-chart default-chart (4,1)
chart-size = (50,50)
title = 'Employee Sales'
type = overlapped-bar
3D-effects = yes
x-axis-label = 'Employees'
y-axis-label = 'Sales (in thousands)'
sub-yitle = 'Overlapped-Bar Chart'
data-array-row-count = 4
data-array-column-count = 4
data-array-column-labels = ('June', 'July', 'August')
data-array = emp_sales
footer-text = 'Keep up the good work'
sub-footer-text = 'my team'
attributes= (LIST:('header','footer'),'Font',32,
'font-style','bold italic','Point-Size',18)
end-report
The FILL specification in DECLARE-PRINTER can influence the appearance of the chart.
Table 21 lists the final appearance of the chart with a combination of values for
PRINTER.COLOR and CHART.FILL options.
Table 21
PRINTER.COLOR Setting Effect on CHART.FILL
CHART.FILL=
PRINTER.COLOR=Y
PRINTER.COLOR=N
GRAYSCALE
GRAYSCALE
GRAYSCALE
COLOR
COLOR
GRAYSCALE
CROSSHATCH
COLOR-CROSSHATCH
CROSSHATCH
NONE
NONE
NONE
Examples
This example declares a basic sales chart using DECLARE-CHART. Then, for each region, the
SUB-TITLE, DATA-ARRAY, and other elements are overridden to provide the chart with the
specific features desired.
begin-setup
declare-chart base_sales_chart
chart-size
= (30, 20 )
title
= 'Quarterly Sales'
sub-title
= none
fill
= color
3d-effects
= yes
type
= stacked-bar
legend-title
= 'Product'
x-axis-grid
= yes
end-declare
end-setup
begin-program
print-chart base_sales_chart
sub-title
= 'Region I'
DECLARE-CHART 111
data-array
= reg1_sales
data-array-row-count = #rows_reg1
data-array-column-count = 2
y-axis-max-value
= #max_of_all_regions
y-axis-min-value
= #min_of_all_regions
legend
= no
print-chart base_sales_chart
sub-title
= 'Region II'
data-array
= reg2_sales
data-array-row-count = #rows_reg2
data-array-column-count = 2
y-axis-max-value
= #max_of_all_regions
y-axis-min-value
= #min_of_all_regions
legend
= no
end-program
begin-procedure chart_region_sales ($sub, $ary,
#rows, #cols,
#max_of_all_regions,
#min_of_all_regions)
print-chart base_sales_chart (20, 15 )
sub-title
= $sub
data-array
= all sales
data-array-row-count
= #rows
data-array-column-count = #cols
data-array-column-labels = ('Q1', 'Q2', 'Q3', 'Q4' )
y-axis-max-value
= #max_of_all_regions
y-axis-min-value
= #min_of_all_regions
chart-size
= (50, 30)
end-procedure
Attributes Argument
The Attributes argument allows you to override the individual default values of most chart
elements. It consists of two sub-parameters: selector and declaration. The simplest form of the
Attributes argument is:
ATTRIBUTES=(selector,declaration,declaration value)
The selector identifies an element of the chart, the declaration identifies a property, and the
declaration value identifies the property’s value. For example, the following statement sets the
text point-size for the entire chart:
ATTRIBUTES=('all','point-size',12)
If desired, you can override a specific chart element. For example, to override the point-size for
the title, you could specify the following:
ATTRIBUTES=('title','point-size',16)
You can specify multiple selectors (use either an inline list, or a named list created with
CREATE-LIST) and multiple declarations. For example, the following statement sets the pointsize and foreground text color for Title and Sub-Title.
112 Production Reporting Command Reference
ATTRIBUTES=(LIST:('title','sub-title'),'point-size',16,foreground, ('red'))
Review the following topics for information on the selector and declaration sub-parameters.
●
Selector/Sub-Selector Keywords
●
Declaration Keywords
Selector/Sub-Selector Keywords
The combination of selector and sub-selector identifies specific chart elements. The format is
selector.sub-selector where a period is used as the delimiter. In most cases, each component is
optional. If you do not specify a selector, ALL is assumed. (ALL implies the complete set of
selectors.)
Possible selector values include: ALL, CHART1, CHART2, HEADER, TITLE, SUB-TITLE, FOOTER,
FOOTER-TEXT, SUB-FOOTER-TEXT, CHART-AREA, PLOT-AREA, LEGEND, LEGEND-SYMBOL,
LEGEND-TITLE, ALL-AXIS, X-AXIS, Y-AXIS, and Y2-AXIS.
Note:
For Combination charts, use CHART1 and CHART2 selectors to identify chart elements for the
primary and secondary charts, respectively. For example, to set the grid color for the primary
chart to red, enter: ATTRIBUTES=('chart1.grid', 'color', ('red'))
Possible sub-selector values include: FILL, GRADIENT, GRID, HILO-LINE, LABEL, LINE,
MARKER, OTHER, OUTLINE, RISING-FILL/FALLING-FILL, and SYMBOL.
Table 22
Sub-selector Descriptions
Sub_Selector
Description
FILL
Color of the fill area on a chart.
Example:
ATTRIBUTES=('fill','style','verticalstripe')
Creates a fill style of VerticalStripe for all charts.
GRADIENT
Color of the gradient fill area on a chart.
Example:
ATTRIBUTES=('chart1.gradient','color','none')
Declares that fill areas are not gradient.
ATTRIBUTES=('chart2.gradient','color','black')
Declares that fill areas are gradient and that black will be used to create the fill area.
GRID
Grid attributes (color, style, and line thickness) on a chart.
Example:
ATTRIBUTES=('x-axis.grid','style','solid')
Sets the style of the x-axis grid to a solid line.
DECLARE-CHART 113
Sub_Selector
Description
HILO-LINE
For HiLo and Candle charts, defines color, style, and line thickness of the Hi-Low line.
Example:
ATTRIBUTES=('chart1.hilo-line','color',('blue'))
Sets the HILO-LINE (line) color to blue.
LABEL
Label attributes.
Example:
ATTRIBUTES=('x-axis.label','foreground',('yellow'))
Sets the X-Axis label to the colors specified for all charts.
LINE
For Line charts, defines color, style, and thickness of data lines.
Example:
ATTRIBUTES=('chart1.line', 'color',list:(('red'),
('blue'),'(green'))
Sets the first, second, and third data lines to red, blue, and green, respectively.
MARKER
Marker label attributes.
Example:
attributes=('X-axis.marker','point-size',.10)
Sets the point size for X-axis markers to ten.
OTHER
For Pie charts, defines the “Other” pie chart slice.
Example:
attributes=('other','color',('red'))
Sets the “Other” pie slice to red.
OUTLINE
Attributes (color, style, border thickness) for outlines (bars, pie slices, legend, and
legend symbols).
Example:
ATTRIBUTES=('chart1.outline','style','shortdash')
Sets the outline of chart areas to be a short dashed line.
RISING-FILL/FALLING-FILL
For Candle charts, attributes (fill pattern, color, width of candle) for the fill area in the
rising and falling candle.
Example:
ATTRIBUTES=('rising-fill','size',5)
Sets the Rising Fill size to 5 pixels.
SYMBOL
For Line charts, defines the symbols that appear.
Example:
attributes=('chart1.symbol','style',list:
('diamond','circle','square'),'size',20)
114 Production Reporting Command Reference
Sub_Selector
Description
Identifies the symbols to be used for data points in a line chart. Diamonds, circles and
squares are used for first, second and third data line, respectively. Each symbol is
20x20 pixels.
Table 23
Valid Selector/Sub-selector Combinations
MARKER
LABEL
LINE
GRID
SYMBOL
OTHER
OUTLINE
GRADIENT
FILL
HILOLINE
RISINGFILL
FALLINGFILL
ALL
CHART1
CHART2
ALLAXIS
X-AXIS
Y-AXIS
Y2-AXIS
LEGEND
LEGENDSYMBOL
Some examples of valid combinations using the selectors/sub-selectors in Table 23 include
Chart1.Line, X-Axis.Marker, and Y2-Axis.Label.
Declaration Keywords
A declaration identifies a chart property followed by its value. Table 24 lists the declaration
keywords available for the ATTRIBUTES argument.
Table 24
ATTRIBUTES Declaration Keywords
Declaration Keyword
Choices
Description
3D-DEPTH
0 – 100
Depth of the three-dimensional display in
percent.
Default = 10
Note: You must set the 3d-EFFECTS argument
to YES for this keyword to work.
Example:
ATTRIBUTES=('All','3D-DEPTH',
15)
Displays all three-dimensional charts with a
depth of 15 percent.
DECLARE-CHART 115
Declaration Keyword
Choices
Description
3D-ELEVATION
0 – 180
Elevation of the three-dimensional display in
degrees.
Default = 45
Note: You must set the 3D-EFFECTS argument
to YES for this keyword to work.
Example:
ATTRIBUTES=('All','3DELEVATION',45)
Displays all three-dimensional charts with an
elevation of 45 degrees.
3D-ROTATION
0 – 90
Default = 40
Rotation of the three-dimensional display in
degrees.
Note: You must set the 3D-EFFECTS argument
to YES for this keyword to work.
Example:
ATTRIBUTES=('All','3DROTATION',50)
Displays all three-dimensional charts with a
rotation of 50 degrees.
BACKGROUND
Named color or value in the range of RGB.
Background color of a selected chart area.
Default = Transparent
Example:
See “DECLARE-COLOR-MAP” on page 126 for an
explanation of RGB values.
ATTRIBUTES=('All','BackGround',
('White'))
Sets the background color for all charts to
white.
Note: Along with FOREGROUND,
BACKGROUND replaces the functionality
provided by COLOR-PALETTE.
CLUSTER-OVERLAP
-100 – 100
Default = 0
Percentage of bar overlap. Negative values
add space between bars. Positive values
cause bars to overlap.
Example:
ATTRIBUTES=('All','CLUSTEROVERLAP',45)
Displays all bar charts with a cluster overlap
of 45 percent.
CLUSTER-WIDTH
0 – 100
Default = 80
Percentage of available space between each
bar cluster.
Example:
ATTRIBUTES=('All','CLUSTERWIDTH',60)
Displays all bar charts with a width of 60
percent between each bar cluster.
116 Production Reporting Command Reference
Declaration Keyword
Choices
Description
COLOR
List generated from CREATE-LIST, or an in-line list of values.
Defines a single color or a group of colors for
an individual chart element.
When referencing a list, the keyword LIST: must prefix the
name of the list. When using a named_color_palette, the
keyword PALETTE: must prefix the name of the color palette.
COLOR values are used in presentation order
and are reused once the current list is
exhausted. The COLOR keyword overrides the
default values established for the color
property of a chart.
An error occurs if the contents of the list do
not match the data type expected.
COLOR can reference a color palette or a
single color.
Example:
ATTRIBUTES=
('CHART2.LINE','COLOR', LIST:
(('red'),('yellow'),
('maroon')))
Creates a group of line colors of ‘red’, ‘yellow’
and ‘maroon’ for chart2.
ATTRIBUTES=('OTHER','COLOR',
('red'))
Sets the color for the ’Other’ pie chart slice to
’red’ for all pie charts.
Note: COLOR replaces the functionality
provided by ITEM-COLOR.
FONT
Values specified under [Fonts] in SQR.INI.
Each entry consists of a font number assigned to a named
font. For example, 3 may represent Courier.
Default = Times New Roman
Font for all text and/or for specific text areas
in a chart image.
Example:
ATTRIBUTES=('ALL','Font',
3,'Point-Size',12)
Sets the font typeface to the corresponding
value from SQR.INI in the [Fonts] section for
value 3 and the size to 12 point for all text
items for all charts.
FONT-STYLE
PLAIN | BOLD | ITALIC | UNDERLINE
Default = PLAIN
Style of the font for all text and/or for specific
text areas in a chart image. Separate multiple
values with a space.
Example:
ATTRIBUTES=('Title','FontStyle','Bold Underline')
Sets the font style to ‘BOLD’ and ‘Underline’
for all charts.
FOREGROUND
Named color or values in the range of RGB.
Text, outline, and line color for a chart area.
Default = Black
Example:
DECLARE-CHART 117
Declaration Keyword
Choices
Description
See “DECLARE-COLOR-MAP” on page 126 in the for an
explanation of RGB values.
ATTRIBUTES=('XAxis.Label','ForeGround',
('Yellow'))
Sets the X-Axis label for all charts to yellow.
Note: Along with BACKGROUND,
FOREGROUND replaces the functionality
provided by COLOR-PALETTE.
HALF-RANGE
YES | NO
Default = NO
Determines how the x-axis is displayed in
Polar charts.
NO—X-axis is displayed as one full range fro 0
to 360 degrees.
YES—X-axis is displayed as two half-ranges
from —180 to 180 degrees.
Example:
ATTRIBUTES=('Chart1', 'HALFRANGE','Yes')
Sets the axis label range from -180 to 180
degrees.
HOLE-VALUE
A value between the following minimum and maximum
values:
Value in the data to ignore. You can only have
one HOLE-VALUE per chart.
Min Value: -1.7976931348623157E+308
Example:
Max Value: 1.7976931348623157E+308
ATTRIBUTES=('All','HOLEVALUE',-1)
Default = None
Sets the HOLE-VALUE to -1. This means that
if DECLARE-CHART or PRINT-CHART finds a
value of -1 in the data to chart, the -1 value
is ignored.
LABEL-LOCATION
INNER | OUTER | AUTO
Location of labels in pie charts.
Default = AUTO
INNER—Labels are placed within the chart
area.
OUTER—Labels are placed outside the chart
area.
AUTO—The label location is controlled by the
charting application.
Example:
ATTRIBUTES=('All','LABELLOCATION’','OUTER')
Displays the pie chart labels outside of the
chart area.
LEGEND-COLUMNS
Any numeric value.
Default = 0
A value of 0 means the charting application will determine
the proper value.
118 Production Reporting Command Reference
Number of columns to use when generating
the chart legend. You can only have one
LEGEND-COLUMNS value per chart.
Example:
Declaration Keyword
Choices
Description
ATTRIBUTES=('All','LEGENDCOLUMNS',4)
Displays the chart legend with four columns.
LEGEND-ROWS
Any numeric value.
Default = 0
A value of 0 means the charting application will determine
the proper value.
Number of rows to use when generating the
chart legend. You can only have one LEGENDROWS value per chart.
Example:
ATTRIBUTES=('All','LEGENDROWS',2)
Displays the chart legend with two rows.
LOCATION
LOWER-RIGHT | CENTER-RIGHT | UPPER-RIGHT | LOWERLEFT | CENTER-LEFT | UPPER-LEFT | LOWER-CENTER |
UPPER-CENTER
Positions the main chart elements of the
Header, Footer, and Legend in pixels, or
controls the specific location for the Legend.
Note:CENTER-CENTER is reserved for ChartArea.
Each positional object is considered a
rectangle, and the (x,y) pixel location of (1,1)
relates to the upper left-hand coordinate of an
image. The charting application positions the
upper left-hand corner of the rectangle at the
pixel location specified.
Example:
ATTRIBUTES=
('Legend’','LOCATION','CENTERRIGHT')
Positions the chart legend in the center
vertical and right horizontal location of the
chart.
Note: LOCATION replaces the functionality
provided by LEGEND-PLACEMENT.
ORIGIN-BASE-ANGLE
0 – 360
Default = 0
Position of the x-axis for Polar, Radar, and
Area Radar charts in degrees.
Example:
ATTRIBUTES=('CHART1','ORIGINBASE-ANGLE','90')
Sets the ORIGIN-BASE-ANGLE to 90 degrees.
OTHER-LABEL
Any value.
Default = Other
Name of the label used for the “Other” pie
chart segment.
Example:
ATTRIBUTES=('ALL','OTHERLABEL','OTHER-PRODUCTS')
Declares the label used for the “Other” pie
chart segment is “Other-Products”.
PATTERN
CIRCULAR | WEBBED
Default = CIRCULAR
Sets the gridlines in Radar and Area Radar
charts to circular or webbed.
DECLARE-CHART 119
Declaration Keyword
Choices
Description
Example:
ATTRIBUTES=
('CHART1.GRID','PATTERN','WEBBE
D')
Sets the Radar chart grid to webbed..
PERCENTAGE-PRECISION
0 – 15
Default = 2
Number of digits to the right of the decimal
point in a pie chart.
Example:
ATTRIBUTES=('All','PERCENTAGEPRECISION',5)
Displays the pie chart percentage with five
digits to the right of the decimal point.
POINT-SIZE
Any point size.
Default = 12
Font size (in points) for all areas in a chart
image. Control can be for all text on a chart
and/or for specific text areas on a chart.
Example:
ATTRIBUTES=
('Title','Style','Bold
Underline', 'Point-Size',16)
Sets the font style to ‘Bold’ and ‘Underline’
and font size to 16 point for the ‘Title’ text item
for all charts.
Note: POINT-SIZE replaces the functionality
provided by ITEM-SIZE.
SIZE
Depends on the SUB-SELECTOR:
●
LINE – 1 to 10 pixels
●
SYMBOL – 1 to 100 pixels
●
GRID – 1 to 10 pixels
Size of the lines, symbols, and grids for a chart
element.
The SIZE keyword overrides the default values
established for the size property of a chart.
The default line and grid width is 1 pixel. The
default symbol width is a bounding box of 6x6
pixels.
Example:
ATTRIBUTES=
('CHART1.LINE','SIZE',2)
Sets the line size for all lines to 2 pixels for
chart1.
SORT-ORDER
LARGEST | SMALLEST | DATAORDER
Default = DATAORDER
120 Production Reporting Command Reference
Defines whether to display pie-chart slices
largest-to-smallest, smallest-to-largest, or the
order they appear in the data.
●
LARGEST—Largest-to-smallest
●
SMALLEST—Smallest-to-largest
●
DATAORDER—Order they appear in the
data.
Declaration Keyword
Choices
Description
Example:
ATTRIBUTES=('All','SORTORDER','Largest’')
Sets the display order of the pie slices from
largest to smallest for all charts.
START-ANGLE
0 – 359
For Pie Charts:
Default = 0
Position in the pie chart where the first pie
slice is drawn.
A value of zero degrees represents a horizontal
line from the center of the pie to the right-hand
side of the pie chart.
A value of 90 degrees represents a vertical
line from the center to the top of the pie.
Slices are drawn clockwise from the specified
angle.
The default position for the first pie segment
is 90 degrees.
Example:
ATTRIBUTES=('All','STARTANGLE',45)
Sets the starting location of the first pie slice
to a line 45 degrees to the right and down of
a horizontal line.
For Polar, Radar, and Area Radar Charts:
Angle that the y-axis makes with the ORIGINBASE-ANGLE.
Example:
ATTRIBUTES=('Chart1','STARTANGLE',135)
Sets the START-ANGLE to 135 degrees.
STYLE
Depends on the SUB-SELECTOR:
●
LINE – Solid | LongDash | ShortDash | LongShort |
DashDot
●
SYMBOL – None | Dot | Box | Triangle | Diamond |
Star | VerticalLine | HorizontalLine | Cross | Circle |
Square
●
FILL – None | Solid | 25Per | 50Per | 75Per |
HorizontalStripe | VerticalStripe | 45Stripe | 135Stripe
| DiagonalHatch | CrossHatch
Group of styles for an individual chart
element.
This keyword can use the list generated from
CREATE-LIST, or you can enter an in-line list
of values. When using a named list, the
keyword LIST: must prefix the name of the list.
An error occurs if the contents of the list do
not match the data type expected.
STYLE values are used in presentation order
and are reused once the current list is
exhausted. The STYLE keyword overrides the
default values established for the style
property of a chart.
The default line and fill style is Solid. The
default symbol style is Dot.
DECLARE-CHART 121
Declaration Keyword
Choices
Description
Example:
ATTRIBUTES=
('Chart1.Line','Style',LIST:
('shortdash','longdash','solid'
))
Creates a group of line styles of ‘shortdash’,
’longdash’, and ‘solid’ for chart1.
Note: STYLE replaces the functionality
provided by FILL.
THRESHOLD-METHOD
VALUE | PERCENT
Default = VALUE
Grouping method to use for the Other slice in
a pie chart.
●
VALUE —Use when you know the data
value to group into the Other slice. Value
places only those items that are less than
the Threshold-Value into the Other slice.
●
PERCENT—Use when you want to devote
a certain percentage of the pie to the
Other slice. Percent places only those
items that are accumulatively less than
the Threshold-Value into the Other slice.
Example:
ATTRIBUTES=('All','THRESHOLDMETHOD', 'Value')
Sets the THRESHOLD-METHOD to indicate
that the THRESHOLD-VALUE is a data value for
all charts.
THRESHOLD- VALUE
Depends on the THRESHOLD-METHOD:
●
●
UNITS
When THRESHOLD-METHOD is set to Value, valid values
are numbers greater than or equal to 0.
When THRESHOLD-METHOD is set to Percent, valid
values are from 0 to 100.
Data value to group into the Other slice in a
pie chart.
Example:
ATTRIBUTES=('All','THRESHOLDVALUE',10)
Default = 0 (No Other Slice)
Together with THRESHOLD-MEHTOD
establishes that values less than 10 will be
grouped into the ‘Other’ pie slice for all charts.
DEGREES | RADIANS | GRADS
Angular units used for Polar, Radar, and Area
Radar charts. Affects the ORIGIN-BASEANGLE and START-ANGLE.
Default = DEGREES
Example:
ATTRIBUTES=
('Chart1','UNITS','Radians')
Displays the ORIGIN-BASE-ANGLE and STARTANGLE in radians.
In certain instances, the declaration value must be a list (either an inline list, or a named list
previously created using CREATE-LIST).
122 Production Reporting Command Reference
●
A list is always required for the STYLE declaration. For example:
ATTRIBUTES=('Chart1.Fill', 'Style',
LIST:('Solid','45Stripe','DiagonalHatch'))
ATTRIBUTES=('Chart2.Line', 'Style',
LIST:('LongDash','DashDot','Solid'))
ATTRIBUTES=('Symbol', 'Style',
LIST:('Square','Diamond','Triangle'))
●
A list can also be specified for the COLOR declaration when used with the LINE, SYMBOL, or
FILL sub-selector. For example:
ATTRIBUTES=('Chart1.Symbol', 'Color',
LIST:(('Red'), ('Blue'),(100, 200, 130)))
Selector/Sub-Selector - Declaration Keyword Combinations
Table 25 and Table 26 show which selectors/sub-selectors are valid for each declaration keyword.
(The selectors and sub-selectors are listed in the first column, and the declaration keywords are
listed in the first row.) Production Reporting does not allow invalid combinations of selectors,
sub-selectors, and declarations.
Table 25
Valid Selector/Sub-selector -Declaration Keyword Combinations
Font
Font Style
Color
Style
Size
Pattern
Point Size
Sort Order
Background Colors
ForeGround Colors
Selectors
ALL
CHART1
CHART2
HEADER
SUBTITLE
FOOTER
FOOTER-TEXT
SUB-FOOTER-TEXT
CHART-AREA
PLOT-AREA
LEGEND
DECLARE-CHART 123
Font
Font Style
Color
Style
Size
Pattern
Point Size
Sort Order
Background Colors
ForeGround Colors
LEGEND-TITLE
LEGEND-SYMBOL
ALL-AXIS
X-AXIS
Y-AXIS
Y2-AXIS
Sub-selectors
MARKER
LABEL
LINE
GRID
SYMBOL
FILL
OTHER
Table 26
Valid Selector/Sub-selector -Declaration Keyword Combinations
Start
Angle
3dDepth
3dElevation
3dRotation
ClusterWidth
ClusterOverlap
ALL
CHART1
CHART2
HEADER
FOOTER
LEGEND
124 Production Reporting Command Reference
Threshold
Value
Threshold
Method
Location
Hole
Value
Legend
Columns
Legend
Rows
Percentage
Precision
Label
Location
Other
Label
Units
Origin
BaseAngle
3dDepth
3dElevation
3dRotation
Start
Angle
ClusterWidth
ClusterOverlap
Threshold
Value
Threshold
Method
Location
Hole
Value
Legend
Columns
Legend
Rows
Percentage
Precision
Label
Location
Other
Label
Y-AXIS
Sub-Selector - Declaration Keyword Value Ranges
Table 27 shows the value ranges for sub-selector - declaration keywords. These are the values
assigned for each property not defined in DECLARE-CHART.
Table 27
Sub-selector - Declaration Keyword Value Ranges
Sub-selector
Declaration
Value
LINE
STYLE
Solid, LongDash, ShortDash, LongShort, Dot, DashDot
Default value = Solid
LINE
SIZE
1 – 10 pixels
Default value = 1
LINE
COLOR
Named colors or values in the range of RGB.
See “DECLARE-COLOR-MAP” on page 88 in the for an explanation of RGB values.
SYMBOL
STYLE
None, Dot, Box, Triangle, Diamond, Star, VerticalLine, HorizontalLine, Cross, Circle, Square
Default value = Dot
SYMBOL
SIZE
1 – 100 pixels
Default value = bounding box 6x6
SYMBOL
COLOR
Named color or Values in the range of RGB.
See “DECLARE-COLOR-MAP” on page 88 in the for an explanation of RGB values.
FILL
STYLE
None, Solid, 25Per, 50Per, 75Per, HorizontalStripes, VerticalStripe, 45Stripe, 135Stripe, DiagonalHatch,
CrossHatch
Default value = Solid
FILL
COLOR
Named color or values in the range of RGB.
See “DECLARE-COLOR-MAP” on page 88 in the for an explanation of RGB values.
GRID
SIZE
1 – 10 pixels
Default value = 1
GRID
COLOR
Named color or values in the range of RGB.
See “DECLARE-COLOR-MAP” on page 88 in the for an explanation of RGB values.
GRID
STYLE
None, Solid, LongDash, ShortDash, LongShort, DashDot
DECLARE-CHART 125
Units
O
B
A
Sub-selector
Declaration
Value
Default value = Solid
OUTLINE
STYLE
None, Solid, LongDash, ShortDash, LongShort, DashDot
Default value = Solid
OUTLINE
SIZE
1 – 10 pixels
Default value = 1
OUTLINE
COLOR
Named color or values in the range of RGB.
See “DECLARE-COLOR-MAP” on page 88 in the for an explanation of RGB values.
OTHER
COLOR
Named color or values in the range of RGB. See SQR Language Reference/Declare-Color-Map for
explanation of RGB values.
Default value = Purple - RGB(170,00,255)
See Also
PRINT-CHART
DECLARE-COLOR-MAP
Function
Defines colors in an Production Reporting report.
Syntax
In the SETUP section:
DECLARE-COLOR-MAP
color_name=({rgb})
color_name=({rgb})
.
.
.
END-DECLARE
Arguments
color_name
A color_name is composed of the alphanumeric characters (A-Z, 0-9), the underscore (_)
character, and the dash (-) character. It must start with an alpha (A-Z) character. It is case
insensitive. The name 'none' is reserved and cannot be assigned a value. A name in the format
(RGBredgreenblue) cannot be assigned a value. The name 'default' is reserved and can be
126 Production Reporting Command Reference
assigned a value. 'Default' is used during execution when a referenced color is not defined in the
runtime environment.
{rgb}
red_lit|_var|_col, green_lit _var|_col, blue_lit|_var|_col where each component is a value in the
range of 000 to 255. In the BEGIN-SETUP section, only literal values are allowed.
Default colors implicitly installed with Production Reporting include:
black = (0,0,0)
white=(255,255,255)
gray=(128,128,128)
silver=(192,192,192)
red=(255,0,0)
green=(0,255,0)
blue=(0,0,255)
yellow=(255,255,0)
purple=(128,0,128)
olive=(128,128,0)
navy=(0,0,128)
aqua=(0,255,255)
lime=(0,128,0)
maroon=(128,0,0)
teal=(0,128,128)
fuchsia=(255,0,255)
Description
DECLARE-COLOR-MAP in the BEGIN-SETUP section defines or redefines colors in an Production
Reporting report. You can define an endless number of entries.
Examples
begin-setup
declare-color-map
light_blue = (193, 222, 229)
end-declare
end-setup
See Also
ALTER-COLOR-MAP, GET-COLOR, and SET-COLOR
DECLARE-COLOR-MAP 127
DECLARE-CONNECTION
Function
Defines data source logon parameters prior to logon. Can be used to override default connection
logon parameters.
Note:
DECLARE-CONNECTION is specific to Production Reporting DDO ports only.
Syntax
In the SETUP section:
DECLARE-CONNECTION connection_name
DSN={uq_txt_lit}
[USER={uq_txt_lit}]
[PASSWORD={uq_txt_lit}]
[PARAMETERS=keyword_str=attr_str;[keyword_str=attr_str;...]]
[NO-DUPLICATE=TRUE|FALSE]
SET-GENERATIONS=({dimension1, hierarchy1}[,dimensioni, hierarchyi] ...)
SET-LEVELS=({dimension1, level1} [,dimensioni, leveli] ...)
SET-MEMBERS=({dimension1, level1} [,dimensioni, leveli] ...)
END-DECLARE
Arguments
connection_name
User-defined name for describing a datasource connection.
DSN
Logical datasource name recorded in the DDO Registry (Registry.properties file).
USER, PASSWORD
Traditional logon semantics.
PARAMETERS=keyword_str=attr_str;
List of keyword-attribute pairs required by a datasource driver for logon. There is no syntax
restriction on these entries apart from the delimiting semi-colons (;) and equal signs (=). The
keywords must match the logon property names listed for a datasource.
NO-DUPLICATE=TRUE|FALSE (default is FALSE)
(Optional) Prevents Production Reporting from automatically creating additional logins to
datasources that are busy handling a previous query. Creating a new login in such cases is the
default behavior for Production Reporting, which allows a single CONNECTION declaration to
use in a subquery. This behavior, while allowing dynamic logins as-needed, causes difficulties
when doing both DDL (BEGIN-SQL) and DML (BEGIN-SELECT) against temporary tables in
certain vendors datasources. In such cases, you must fetch from the temporary table using the
128 Production Reporting Command Reference
same login in which it was created. Here, you should code the CONNECTION as NODUPLICATE=TRUE, and then use that connection in both the table creation logic of BEGINSQL and the row fetching logic of BEGIN-SELECT.
SET-GENERATIONS
Dimension hierarchy for the previously-declared dimension. The dimension and hierarchy
defined with SET-GENERATIONS can be a literal value only. Consider the following example:
set-generations=('product',5,'time',1 )
In this example, SET-GENERATIONS:
●
Returns the set of members in the ‘product’ dimension that are at the 5th generation in the
dimension’s hierarchy.
For example, returns all ‘Brand Name’ members (Generation Level 5) under the product
hierarchy of ‘all products.drink.alcoholic beverages.beer and wine’. This would increase the
result set to a list of beers and wines.
●
Returns the set of members in the ‘time’ dimension that are at the 1st generation deep into
the dimension.
For example, returns all ‘Year’ members (Generation Level 1) under the time hierarchy of
‘1997.Q.2.’ This reduces result set to ‘1997’.
See “Set Generations” in Volume 3 of the Hyperion SQR Production Reporting Developer's
Guide for detailed examples of SET-GENERATIONS.
SET-LEVELS
Extends the dimension hierarchy for the previously-declared dimension. The dimension and
hierarchy defined with SET-LEVELS can be a literal value only. Consider the following example:
set-levels=('product',2 )
In this example:
●
SET-LEVELS used with only the previous SET-MEMBERS returns all members under the
product hierarchy and the next two generations (Product SubCategory and Brand Name)
for the product hierarchy of ‘all products.drink.alcoholic beverages.beer and wine’.
●
SET-LEVELS used with the previous SET-MEMBERS and SET-GENERATIONS returns all
members for generation levels 5 through 7 under the product hierarchy of ‘all
products.drink.alcoholic beverages.beer and wine.’
See “Set Levels” in Volume 3 of theHyperion SQR Production Reporting Developer's Guide detailed
examples of SET-LEVELS.
SET-MEMBERS
Returns the set of members in a dimension, level, or hierarchy whose name is specified by a
string. The dimension and hierarchy defined with SET-MEMBERS can be a literal value only.
Consider the following example:
set-members=('product','all products.drink.alcoholic beverages.beer and
wine','time','1997.Q1.2' )
DECLARE-CONNECTION 129
In this example, SET-MEMBERS:
●
Returns the set of members in the dimension ‘product’ at the specific hierarchy of ‘all
products’, at a specific level of ‘drink’, at a specific level of ‘alcoholic beverages’, at a specific
level of ‘beer and wine’.
●
Returns the set of members in the dimension ‘time’ at the specific hierarchy of ‘1997’, at the
specific level of ‘Q1’, at the specific level of ‘2’.
See “Set Members” in Volume 3 of the Hyperion SQR Production Reporting Developer's Guide
for detailed examples of SET-MEMBERS.
Examples
declare-connection SAPR3-1
dsn=SAPR3
username=guest
password=guest
end-declare
See Also
ALTER-CONNECTION
DECLARE-IMAGE
Function
Declares the type, size, and source of an image to print.
Syntax
DECLARE-IMAGE image_name
[TYPE=image_type_lit]
[IMAGE-SIZE=(width_num_lit,height_num_lit)]
[SOURCE=file_name_lit]
[[FOR-PRINTER=({POSTSCRIPT|HPLASERJET|HTML|PDF|WINDOWS |PS|HP|HT|PD|
WP},image_type_lit,file_name_lit) . . .]
END-DECLARE
Note:
DECLARE-IMAGE and PRINT-IMAGE work together to identify information about the image.
The IMAGE-SIZE argument is required and must be defined in either DECLARE-IMAGE or
PRINT-IMAGE. The SOURCE and TYPE arguments are optional; however, if you define one
you must define the other.
Arguments
image_name
Unique name for referencing the image declaration.
130 Production Reporting Command Reference
TYPE
Image type. Types can be EPS-FILE, HPGL-FILE, GIF-FILE, JPEG-FILE, BMP-FILE, PNGFILE, or AUTO-DETECT.
IMAGE-SIZE
Width and height of the image in Production Reporting coordinates.
SOURCE
Name of a file containing the image. The file must be in the SQRDIR directory, or you must
specify the full path.
FOR-PRINTER
Separate image file for each report output type.
Tip:
The TYPE and SOURCE arguments contain the default values. You can override these defaults for
a specific printer by using the FOR-PRINTER argument.
Note:
If the file is not in the SQRDIR directory, the full path or no path should be given. A relative
path will not do, because you need to know where you execute the file from.
Description
DECLARE-IMAGE defines and names an image. This image can then be placed in a report at the
position specified with PRINT-IMAGE.
If an image has not been declared, or if the image type is not supported for a particular report
output type, or if the image file has incomplete header information, then a box (either shaded
for HP printers or with a diagonal line through it for Postscript printers) appears where the
image is expected. Table 28 illustrates the valid relationships between image type and report
output type.
Table 28
Valid Images Types
BMP
EPS
GIF
HPLaserJet
JPEG
PNG
X
X
X
X
X
HTML
X
PDF
X
Postscript
Windows
HPGL
X
X
X
X
X
X
DECLARE-IMAGE 131
Examples
declare-image officer-signature
type= eps-file
source= 'off_sherman.eps'
image-size= (40, 5)
end-declare
declare-image oracle-logo
type='auto-detect'
image-size=(40,10)
source=$BLOB_Column
The following example defines separate image files for different printer types:
begin-setup
declare-image oracle_logo
type=GIF-FILE
Image-size=(40,10)
source=oracle.gif
for-printer=(PS, EPS-FILE, 'oracle.eps')
for-printer=(HP, HPGL-FILE, 'oracle.hpgl')
end-declare
end-setup
begin-report
move 'hyperion.bmp' to $image_src
print-image oracle_logo (10,15)
for-printer=(WP, BMP-FILE, $image_src)
end-report
In this example, the image file used for each printer type is:
●
HP—‘oracle.hpgl’ (Identified using FOR-PRINTER in DECLARE-IMAGE)
●
PS—‘oracle.eps’ (Identified using FOR-PRINTER in DECLARE-IMAGE)
●
PD—‘oracle.gif’ (Declared as default using SOURCE= in DECLARE-IMAGE)
●
HT—‘oracle.gif ’ (Declared as default using SOURCE= in DECLARE-IMAGE)
●
WP—‘oracle.bmp’ (Identified using FOR-PRINTER in PRINT-IMAGE)
See Also
●
PRINT-IMAGE
●
“Adding Graphics” in Volume 1 of the Hyperion SQR Production Reporting Developer's
Guide.
DECLARE-LAYOUT
Function
Defines the attributes for the layout of an output file.
132 Production Reporting Command Reference
Syntax
DECLARE-LAYOUT layout_name
[PAPER-SIZE=({paper_width_num_lit[uom],paper_depth_num_lit[uom]}|
{paper_name})]
[FORMFEED=form_feed_lit]
[ORIENTATION=orientation_lit]
[LEFT-MARGIN=left_margin_num_lit[uom]]
[TOP-MARGIN=top_margin_num_lit[uom]]
[RIGHT-MARGIN=right_margin_num_lit[uom]
|LINE-WIDTH=line_width_num_lit[uom]
|MAX-COLUMNS=columns_int_lit]
[BOTTOM-MARGIN=bottom_margin_num_lit[uom]
|PAGE-DEPTH=page_depth_num_lit[uom]
|MAX-LINES=lines_int_lit]
[CHAR-WIDTH=char_width_num_lit[uom]]
[LINE-HEIGHT=line_height_num_lit[uom]]
END-DECLARE
Arguments
layout_name
Unique layout name used to reference the layout and its attributes.
uom
Optional suffix which denotes the unit of measure applied to the preceding value.
Table 29
Valid uom Suffixes
Suffix
Meaning
Definition
dp
decipoint
0.001388 inch
pt
point
0.01388 inch
mm
millimeter
0.03937 inch
cm
centimeter
0.3937 inch
in
inch
1.0000 inch
paper_name
An option of PAPER-SIZE. This name is associated with predefined dimensions.
Table 30
Valid Paper Names
Name
Width
Depth
Orientation
Letter
8.5 in
11 in
Portrait
Legal
8.5 in
14 in
Portrait
A4
8.27 in
11.69 in
Portrait
DECLARE-LAYOUT 133
Table 31
Name
Width
Depth
Orientation
A3
11.69 in
16.54 in
Portrait
Executive
7.25 in
10.5 in
Portrait
B5
7.17 in
10.12 in
Portrait
Com-10
4.125 in
9.5 in
Landscape
Monarch
3.875 in
7.5 in
Landscape
DL
4.33 in
8.66 in
Landscape
C5
6.378 in
9.016 in
Landscape
DECLARE-LAYOUT Command Arguments
Argument
Choice or Default uom
Default Value
Description
PAPER-SIZE
inches
8.5 in, 11 in
Physical size of the page. The first parameter is the width of the page.
The second parameter is the depth or length. It may also be a predefined
name. (See Table 30.) Note: When ORIENTATION= LANDSCAPE the
default values are 11 in, 8.5 in.
FORMFEED
YES, NO
YES
Whether to write form feeds at the end of each page.
ORIENTATION
PORTRAIT, LANDSCAPE
PORTRAIT
Portrait = vertical. Landscape = horizontal. Printing in landscape for the
printer type HPLASERJET requires landscape fonts.
LEFT-MARGIN
inches
0.5 in
Amount of blank space to leave at the left side of the page.
TOP-MARGIN
inches
0.5 in
Amount of blank space to leave at the top of the page.
RIGHT-MARGIN
inches
0.5 in
Amount of blank space to leave at the right side of the page. If you specify
LINE-WIDTH or MAX-COLUMNS, you cannot use this parameter.
LINE-WIDTH
inches
7.5 in
Length of the line. If you specify RIGHT-MARGIN or MAX-COLUMNS, you
cannot use this parameter.
75
Maximum number of columns in a line. If you specify RIGHT-MARGIN or
LINE-WIDTH, you cannot use this parameter.
MAX-COLUMNS
BOTTOM-MARGIN
inches
0.5 in
Amount of blank space to leave at the bottom of the page. If you specify
PAGE-DEPTH or MAX-LINES, you cannot use this parameter.
PAGE-DEPTH
inches
10 in
Depth of the page. If you specify BOTTOM-MARGIN or MAX-LINES, you
cannot use this parameter.
60
Maximum number of lines printed on the page. If you specify
PAGE-DEPTH or BOTTOM-MARGIN, you cannot use this parameter.
12 pt
Size of each line on the page. There are 72 points per inch. If LINE-HEIGHT
is not specified, it follows the value for POINT-SIZE, if specified. The
default value of 12 points yields 6 lines per inch. For the printer type
LINEPRINTER, this value is used only to calculate the TOP-MARGIN and
BOTTOM-MARGIN (for example, not in computing the position on the
page).
MAX-LINES
LINE-HEIGHT
points
134 Production Reporting Command Reference
Argument
Choice or Default uom
Default Value
Description
CHAR-WIDTH
points
7.2 pt
Size of each horizontal character column on the page (for example, the
distance between the locations (1, 12) and (1, 13)). For the printer type
LINEPRINTER, this value is used only to calculate the TOP-MARGIN and
BOTTOM-MARGIN (not in computing the position on the page).
Description
DECLARE-LAYOUT describes the characteristics of a layout to use for an output file. A layout can
be shared by more than one report. You can define as many layouts as are necessary for the
requirements of the application. You can override the default layout attributes by defining a
layout called DEFAULT in your program. Each layout name must be unique.
Production Reporting maps its line and column positions on the page by using a grid determined
by the LINE-HEIGHT and CHAR-WIDTH arguments. That is, Production Reporting calculates the
number of columns per row by dividing the LINE-WIDTH by the CHAR-WIDTH and calculates
the number of lines by dividing the PAGE-DEPTH by the LINE-HEIGHT. Each printed segment
of text is placed on the page using this grid. Because the characters in proportional fonts vary in
width, it is possible that a word or string is wider than the horizontal space you have allotted,
especially in words containing uppercase letters or bold characters. To account for this behavior,
you can either move the column position in the PRINT or POSITION statements or indicate a
larger CHAR-WIDTH in DECLARE-LAYOUT.
The ORIENTATION parameter selects the proper fonts. In addition, the parameter interacts with
PAPER-SIZE as follows:
●
When you do not specify ORIENTATION=LANDSCAPE or the PAPER-SIZE dimensions,
Production Reporting creates a page with the dimensions set to 11 inch by 8.5 inch. This
results in a page of 100 columns by 45 lines with 0.5 inch margins.
●
When you specify PAPER-SIZE=(paper_name), the page orientation is set according to
the paper_name specified. If you also specify ORIENTATION and the value differs from the
PAPER-SIZE value, the ORIENTATION value overrides the PAPER-SIZE value.
●
When you specify PAPER-SIZE=(page_width, page_depth), Production Reporting does
not swap the page width and page depth if ORIENTATION=LANDSCAPE.
Note:
If none of the following commands are present in an Production Reporting report, none of
the default values in Table 31 take effect, and the report is created with 62 lines by 132
characters.
DECLARE-REPORT (Setup)
DECLARE-LAYOUT (Setup)
DECLARE-PRINTER(Setup)
DECLARE-PROCEDURE (Setup)
DECLARE-TOC (Setup)
USE-REPORT (Body)
DECLARE-LAYOUT 135
USE-PROCEDURE (Body)
USE-PRINTER-TYPE (Body)
TOC-ENTRY (Body)
ALTER-PRINTER (Body)
BEGIN-HEADING For-Tocs=( ) (Construct)
BEGIN-FOOTING For-Tocs=( ) (Construct)
BEGIN-HEADING For-Reports=( ) (Construct)
BEGIN-FOOTING For-Reports=( ) (Construct)
Examples
The following example illustrates the ability to specify parameters using a metrics measurement
system. (The syntax results in a paper size of 210mm by 297mm, a top margin of 12.7mm, a left
margin of 12.7mm, a right margin of 25.4mma bottom margin of 12.7mm, a portrait orientation,
67 columns, and 63 lines.
declare-layout my-layout
paper-size=(a4)
left-margin=12.7 mm
right-margin=25.4 mm
end-declare
The following example changes the page dimensions. It also changes the left and right margins
to one inch. (The syntax results in a paper size of 14 inches by 11 inches, a top margin of 0.5
inches, a left margin of one inch, a right margin of one inch, a bottom margin of 0.5 inches, a
portrait orientation, 120 columns, and 60 lines.)
declare-layout large-paper
paper-size=(14, 11)
left-margin=1
right-margin=1
end-declare
The following example retains the default page dimensions and changes the left and right margins
to one inch. (The syntax results in a paper size of 8.5 inches by 11 inches, a top margin of 0.5
inches, a left margin of one inch, a right margin of one inch, a bottom margin of 0.5 inches, a
portrait orientation, 65 columns, and 60 lines.)
declare-layout default
left-margin=1
right-margin=1
end-declare
The following example changes the orientation to landscape. The columns and rows are
recalculated. All other values remain the same. (The syntax results in a paper size of 11 inches
by 8.5 inches, a top margin of 0.5 inches, a left margin of 0.5 inches, a right margin of 0.5 inches,
a bottom margin of 0.5 inches, 100 columns and 45 lines.)
declare-layout default
orientation=landscape
136 Production Reporting Command Reference
end-declare
The following example changes the orientation to landscape. In addition the top margin is set
to one inch. (The syntax results in a paper size of 11 inches by 8.5 inches, a top margin of 0.5
inches, a left margin of 0.5 inches, a right margin of 0.5 inches, a bottom margin of 0.5 inches,
a landscape orientation, 100 columns and 43 lines.)
declare-layout my_landscape
orientation=landscape
top-margin=1
end-declare
The following example specifies the page dimensions using a predefined name. Note that the
orientation changes since this example is an envelope.(The syntax results in a paper size of 4.125
inches by 9.5 inches,. a top margin of 0.5 inches, a left margin of 0.5 inches, a right margin of
0.5 inches, a bottom margin of 0.5 inches, a landscape orientation, 85 columns and 18 lines.)
declare-layout envelope
paper-size=(com-10)
end-declare
See Also
DECLARE-REPORT
DECLARE-PRINTER
Function
Overrides the printer defaults for specified printer type.
Syntax
DECLARE-PRINTER printer_name
[FOR-REPORTS=(report_name1[,report_namei]...)]
[TYPE=printer_type_lit]
[INIT-STRING=initialization_string_txt_lit]
[RESET-STRING=reset_string_txt_lit]
[COLOR=color_lit]
[POINT-SIZE=point_size_num_lit]
[FONT-TYPE=font_type_int_lit]
[SYMBOL-SET=symbol_set_id_lit]
[STARTUP-FILE=file_name_txt_lit]
[PITCH=pitch_num_lit]
[FONT=font_int_lit]
[BEFORE-BOLD=before_bold_string_txt_lit]
[AFTER-BOLD=after_bold_string_txt_lit]
END-DECLARE
Arguments
printer_name
DECLARE-PRINTER 137
Unique name used to reference a printer definition and its attributes.
Table 32 describes the other DECLARE-PRINTER arguments.
Description
Each printer has a set of defaults in Table 32. DECLARE-PRINTER overrides these defaults.
Use DECLARE-PRINTER in the SETUP section to define the characteristics of the printer or
printers to use. If you need to change some of the arguments depending on the run-time
environment, you can use ALTER-PRINTER in any part of the program except the PROGRAM and
SETUP sections.
A program can contain no more than one DECLARE-PRINTER command for each printer type
for each report. If you do not provide a printer declaration, the default specifications are used.
The default printer attributes can be overridden by providing a DECLARE-PRINTER specification
for each printer. Their names are: DEFAULT-LP for line printer, DEFAULT-HP for HP LaserJet,
DEFAULT-HT for HTML, and DEFAULT-PS for PostScript.
Table 32 describes each of the arguments, the possible choices, and the default values.
Table 32
DECLARE-PRINTER Command Arguments
Argument
Choice or Measure
Default
Description
AFTER-BOLD
any string
(none)
See BEFORE-BOLD.
BEFORE-BOLD
any string
(none)
BEFORE-BOLD and AFTER-BOLD are for line
printers only. They specify the character string
to turn bolding on and off. If the string contains
blank characters, enclose it in single quotes
(‘...’).
To specify non-printable characters, such as
ESC, enclose the decimal value inside angle
brackets as follows:
BEFORE-BOLD=<27>[r ! Turn on
bold AFTER-BOLD=<27>[u ! Turn it
off
These arguments work with the BOLD argument
of PRINT.
COLOR
Yes, No
No
Defines whether the printer can print in color.
FONT
font_number
3
Font number of the typeface to use. For HP
LASERJET printers, this is the typeface value as
defined by Hewlett-Packard. For a complete list
of the typeface numbers, see the HP LaserJet
Technical Reference Manual. For POSTSCRIPT
printers, Production Reporting supplies a list of
fonts and arbitrary font number assignments in
the file POSTSCRI.STR.
The font numbers are the same as those for HP
LaserJet printers, wherever possible. You can
modify the font list in POSTSCRI.STR to add or
delete fonts. Read the POSTSCRI.STR file for
138 Production Reporting Command Reference
Argument
Choice or Measure
Default
Description
instructions. Table 33 lists the fonts available
in Production Reporting internally. This table
lists the fonts available in the Production
Reporting POSTSCRI.STR file.
Depends on the font
Applies only to HP LASERJET printers and
needs to be specified only for font types not
defined in Table 33.
FOR-REPORTS
ALL
Name of the reports that use this printer
definition (default = ALL). Required only for
programs with multiple reports. Ignore this
argument for programs that produce a single
report..
INIT-STRING
(none)
Sends control or other characters to the printer
at the beginning of the report. Designed
primarily for line printers and has limited use
with other printer types. Specify non-display
characters by placing their decimal values
inside angle brackets. For example, <27> is the
ESC or escape character.
FONT-TYPE
PROPORTIONAL, FIXED
PITCH
characters/inch
10
Required for HPLASERJET printers and SPF
Viewer. Fixed—pitched fonts should indicate
the pitch.
POINT-SIZE
points
12
Beginning size of the font. Does not apply to
line printers
(none)
Sends control or other characters to the printer
at the end of the report. Designed primarily for
line printers and has limited use with other
printer types. Specify non-display characters
by placing their decimal values inside angle
brackets. For example, <27> is the ESC or
escape character.
RESET-STRING
STARTUP-FILE
filename
POSTSCRI.STR
POSTSCRIPT printers only. Defines an alternate
startup file. Unless otherwise specified, the
default startup file is located in the directory
pointed to by the environment variable
SQRDIR.
SYMBOL-SET
HP defined sets
0U
HP LASERJET printers only. The default value of
“0U” is for the ASCII symbol set. For a complete
list of the symbol sets, see the HP LaserJet
Technical Reference Manual.
TYPE
LINEPRINTER, POSTSCRIPT, HPLASERJET,
HTML, LP, PS, HP, HT
LP
Production Reporting creates output specific to
each printer.
●
LINEPRINTER (LP) files generally consist of
ASCII characters and can be viewed by a
text editor.
●
POSTSCRIPT (PS) files consist of ASCII
characters, but you need to know
DECLARE-PRINTER 139
Argument
Choice or Measure
Default
Description
PostScript to understand what is shown on
the printer.
●
HPLASERJET (HP) files are binary files and
cannot be edited or viewed.
●
HTML (HT) files consist of ASCII characters
and can be viewed by a browser.
Table 33 lists the fonts available in Production Reporting for use with the FONT argument for
HPLaserJet printer types.
Table 33
Fonts Available for HP LaserJet Printers in Production Reporting
Value
Typeface
Style
0
Line printer
Fixed
1
Pica
Fixed
2
Elite
Fixed
3
Courier
Fixed
4
Helvetica
Proportional
5
Times Roman
Proportional
6
Letter Gothic
Fixed
8
Prestige
Fixed
11
Presentations
Fixed
17
Optima
Proportional
18
Garamondi
Proportional
19
Cooper Black
Proportional
20
Coronet Bold
Proportional
21
Broadway
Proportional
22
Bauer Bodini Black Condensed
Proportional
23
Century Schoolbook
Proportional
24
University Roman
Proportional
The font you choose—in orientation, typeface, and point size—must be an internal font,
available in a font cartridge, or downloaded to the printer.
For fonts not listed in Table 33, indicate the font style using the FONT-TYPE argument, or the
correct typeface cannot be selected by the printer.
140 Production Reporting Command Reference
Table 34 lists the fonts available in Production Reporting for use with the FONT argument for
PostScript printer types. Those for which bold face types are available are indicated by a “Y” in
the Bold column.
Table 34
Fonts Available for PostScript Printers
Value
Typeface
Bold
3
Courier
Y
4
Helvetica
Y
5
Times Roman
Y
6
Avant Garde Book
8
Palatino Roman
11
Symbol
12
Zapf Dingbats
17
Zapf Chancery Medium Italic
18
Bookman Light
23
New Century Schoolbook Roman
Y
30
Courier Oblique
Y
31
Helvetica Oblique
Y
32
Times Italic
Y
33
Avant Garde Demi
34
Avant Garde Book Oblique
35
Avant Garde Demi Oblique
36
Palatino Oblique
Y
37
New Century Schoolbook Italic
Y
38
Helvetica Narrow
Y
39
Helvetica Narrow Oblique
Y
40
Bookman Demi
41
Bookman Light Italic
42
Bookman Demi Italic
Y
Other type faces can be added to POSTSCRI.STR.
Table 35 lists the fonts available in Production Reporting when printing on Windows printer
drivers using -PRINTER:WP. When you use -PRINTER:WP, your report is sent directly to the
DECLARE-PRINTER 141
default Windows printer. To specify a non-default Windows printer, use -PRINTER:WP:
{Printer Name}. The {Printer Name} can be the name assigned to a printer; or, if the operating
system permits it, the UNC name (i.e.\\Machine\ShareName). For example, to send output to
a Windows printer named NewPrinter, you could use -PRINTER:WP:NewPrinter. If your
printer name has spaces, enclose the entire command in double quotes.
Fonts are specified in the ALTER-PRINTER FONT qualifier by their number.
Table 35
Fonts Available for Windows Printers
Value
Windows Font/Name
Style
3
Courier New
Fixed
300
Courier New
Bold
4
Arial
Proportional
400
Arial
Bold
5
Times New Roman
Proportional
500
Times New Roman
Bold
6
AvantGarde
Proportional
8
Palatino
Proportional
800
Palatino
Bold
11
Symbol
Proportional
Note:
Fonts 6, 8, and 800 are not supplied with Windows. You can get these fonts by purchasing the
ADOBE Type Manager (ATM). The advantage of using ATM fonts is the compatibility for
PostScript printer fonts.
The Symbol font uses the SYMBOL_CHARSET instead of the usual ANSI_CHARSET character
set.
To add more fonts, edit the [Fonts] section in SQR.INI.
Examples
declare-printer HP-definition
type=HP
font=4
symbol-set=12U
end-declare
!
!
!
!
Default HP definition
for all reports
Helvetica
PC-850 Multilingual
declare-printer PS-Sales ! PS definition
for-reports=(sales)
! for the Sales report
type=PS
font=5
! Times-Roman
142 Production Reporting Command Reference
end-declare
See Also
ALTER-PRINTER and DECLARE-REPORT
DECLARE-PROCEDURE
Function
Declares procedures triggered when a specified event occurs.
Syntax
DECLARE-PROCEDURE
[FOR-REPORTS=(report_name1[,report_namei]...)]
[BEFORE-REPORT=procedure_name[(arg1[,argi]...)]]
[AFTER-REPORT=procedure_name[(arg1[,argi]...)]]
[BEFORE-PAGE=procedure_name[(arg1[,argi]...)]]
[AFTER-PAGE=procedure_name[(arg1[,argi]...)]]
END-DECLARE
Arguments
FOR-REPORTS
Reports that use the given procedures. Required only for programs with multiple reports.
BEFORE-REPORT
Procedure executed at the time of the execution of the first command which causes output to
be generated (PRINT). It can be used, for example, to create a report heading.
AFTER-REPORT
Procedure executed just before the report file is closed at the end of the report. It can be used to
print totals or other closing summary information. If no report was generated, the procedure
does not execute.
BEFORE-PAGE
Procedure executed at the beginning of every page, just before the first output command for the
page. It can be used, for example, to set up page totals.
AFTER-PAGE
Procedure executed just before each page is written to the file. It can be used, for example, to
display page totals.
You can optionally specify arguments to pass to any of the procedures. Arguments can be any
variable, column, or literal.
DECLARE-PROCEDURE 143
Description
DECLARE-PROCEDURE can be used to define Production Reporting procedures to invoke before
or after a report is printed or before the beginning or end of each page.
Issue DECLARE-PROCEDURE in the SETUP section. For multiple reports, you can use the
command as often as required to declare procedures required by all the reports. If you issue
multiple DECLARE-PROCEDURE commands, the last one takes precedence. In this way, you can
use one command to declare common procedures for ALL reports and others to declare unique
procedures for individual reports. The referenced procedures can accept arguments.
If no FOR-REPORTS is specified, ALL is assumed. Initially, the default for each of the four
procedure types is NONE. If a procedure is defined in one DECLARE-PROCEDURE for a report,
that procedure is used unless NONE is specified.
Use the USE-PROCEDURE command to change the procedures to use at run-time. To turn a
procedure off, specify NONE in the USE-PROCEDURE statement.
Examples
declare-procedure
! These procedures will
before-report=report_heading ! be used by all reports
after-report=report_footing
end-declare
declare-procedure
for-reports=(customer)
before-page=page_setup
after-page=page_totals
end-declare
See Also
USE-PROCEDURE
DECLARE-REPORT
Function
Defines reports and their attributes.
Syntax
DECLARE-REPORT report_name
[TOC=toc_name]
[LAYOUT=layout_name]
[PRINTER-TYPE=printer_type]
END-DECLARE
Arguments
report_name
Report name.
144 Production Reporting Command Reference
! These procedures will
! be used by the customer
! report
TOC
Name of the Table of Contents.
LAYOUT
Layout name. If none is specified, the default layout is used.
PRINTER-TYPE
Type of printer. If none is specified, the default is the LINEPRINTER. If no
DECLARE-PRINTER is specified, DEFAULT-LP is used. Valid values for PRINTER-TYPE are HT,
HP, PD, PS, LP, HTML, HPLASERJET, POSTSCRIPT, and LINEPRINTER.
Description
Issue DECLARE-REPORT in the SETUP section.
You can use DECLARE-REPORT to declare one or more reports to be produced in the application.
You must use this command when developing applications to produce more than one report.
Multiple reports can share the same layout and the same printer declarations or each report can
use its own layout or printer definitions if the report has unique characteristics.
When you are printing multiple reports, unless report names are specified using the -F
command-line flag, the first report declared is generated with the name of program.lis, where
program is the application name.
Additional reports are generated with names conforming to the rules dictated by the SQR.INI
OUTPUT-FILE-MODE setting.
When the -KEEP or -NOLIS flags are used, the first intermediate print file (SPF file) is generated
with a name of program.spf and additional reports are generated with names conforming to the
rules dictated by the SQR.INI OUTPUT-FILE-MODE setting.
Examples
declare-layout customer_layout
left-margin
right-margin
end-declare
declare-layout summary_layout
orientation=landscape
end-declare
declare-report customer_detail
toc=detailed
layout=customer_layout
printer-type=postscript
end-declare
declare-report customer_summary
layout=summary_layout
printer-type=postscript
end-declare
DECLARE-REPORT 145
.
.
.
use-report customer_detail
...print customer detail...
use-report customer_summary
...print customer summary...
See Also
USE-REPORT, DECLARE-LAYOUT, DECLARE-PRINTER, and DECLARE-TOC
DECLARE-TABLE
Function
Defines a template for a table.
Syntax
DECLARE-TABLE table_template_name
COLUMN-COUNT=number_of_columns
[COLUMN-ATTRIBUTES=({column number},{keyword1},{value1}, ..., {keywordn},
{valuen})]
[ROW-ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
[TABLE-ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
Arguments
table_template_name
Name of the table template. Valid values include alphanumeric characters (A-Z, 0–9),
underscore (_), and dash (-). Do not use the reserved word NONE.
COLUMN-COUNT
Number of columns in the table.
COLUMN-ATTRIBUTES
Attributes to apply to column cells.
Table 36
Column Attributes
Attribute
Description
BACKGROUND
Background color name or RGB triplet. Default=NONE
BOLD
YES | NO
CENTER
YES | NO
FILL-COLOR
Fill color name or RGB triplet. Default=NONE
146 Production Reporting Command Reference
Attribute
Description
FONT
Font number. Cannot specify a default value
FOREGROUND
Foreground color name or RGB triplet. Default=BLACK
ITALIC
YES | NO
LEADING
Expressed in decipoints
LINE-COLOR
Color name or RGB triplet of column line (line after column). Default=NONE (no line)
LINE-STYLE
Column line style (SOLID, SQUARE-DOT, DASH, DASH-DOT, LONG-DASH, LONG-DASHDOT,LONG-DASH-DOT-DOT). Default=SOLID
LINE-THICKNESS
Thickness of the column line expressed in decipoints. Default=two decipoints
POINT-SIZE
Point size of the font. Cannot specify a default value.
UNDERLINE
YES | NO
WIDTH
Width expressed in coordinate units. Cannot specify a default value
WRAP
YES | NO | maximum number of lines
WRAP-HEIGHT
Number of lines between each wrapped line. Default=one line
WRAP-ON
Characters on which to force a WRAP. The default is not to force a WRAP
ROW-ATTRIBUTES
Attributes to apply to rows.
Table 37
Row Attributes
Attribute
Description
BORDER-COLOR
Color name or RGB triplet. Default=NONE (no border)
BORDER-LINE-STYLE
The border line style (SOLID, SQUARE-DOT, DASH, DASH-DOT, LONG-DASH, LONG-DASHDOT, LONG-DASH-DOT-DOT). Default=SOLID
BORDER-THICKNESS
Border thickness expressed in decipoints. Default=two decipoints
FILL-COLOR
Fill color name or RGB triplet. Default=NONE
HEIGHT
Number of lines between each printed row. Default=one line
LINE-COLOR
Color name or RGB triplet. Default=NONE (no line)
LINE-STYLE
Row line style (SOLID, SQUARE-DOT, DASH, DASH-DOT, LONG-DASH, LONG-DASHDOT,LONG-DASH-DOT-DOT). Default=SOLID
LINE-THICKNESS
Line thickness expressed in decipoints. Default=two decipoints
TABLE-ATTRIBUTES
DECLARE-TABLE 147
Attributes for the appearance of the table.
Table 38
Table Attributes
Attribute
Description
BORDER-COLOR
Color name or RGB triplet. Default=NONE (no border)
BORDER-LINE-STYLE
The border line style (SOLID, SQUARE-DOT, DASH, DASH-DOT, LONG-DASH, LONG-DASHDOT, LONG-DASH-DOT-DOT). Default=SOLID
BORDER-THICKNESS
Border thickness expressed in decipoints. Default=two decipoints
FILL-COLOR
Fill color name or RGB triplet. Default=NONE
LEADING
Expressed in decipoints. Default=0 decipoints
Description
Use DECLARE-TABLE in the BEGIN-SETUP section to define a template for a table.
Example
declare-table template4
column-count=3
column-attributes=(0,'line-color',('blue'))
column-attributes=(2,'point-size',16,'font',4,
'bold','No','italic','yes','center','yes',
'fill-color',('red'))
column-attributes=(3,'point-size',8,'font',300,
'bold','YES','italic','yes','center','yes')
row-attributes=('line-color',('green'),'height',5)
end-declare
See Also
ALTER-TABLE, CREATE-TABLE, DUMP-TABLE, FILL-TABLE, PRINT-TABLE,
DECLARE-TOC
Function
Defines the Table of Contents and its attributes.
Syntax
DECLARE-TOC toc_name
[FOR-REPORTS=(report_name1[,report_namei]...)]
[DOT-LEADER=YES|NO]
[INDENTATION=position_count_num_lit]
[BEFORE-TOC=procedure_name[(arg1[,argi]...)]]
[AFTER-TOC=procedure_name[(arg1[,argi]...)]]
[BEFORE-PAGE=procedure_name[(arg1[,argi]...)]]
[AFTER-PAGE=procedure_name[(arg1[,argi]...)]]
148 Production Reporting Command Reference
[ENTRY=procedure-name [(argi [,argi] ...)]]
END-DECLARE
Arguments
toc_name
Name of the Table of Contents.
FOR-REPORTS
One or more reports that use this Table of Contents.
DOT-LEADER
Whether a dot leader precedes the page number. The default is NO.
INDENTATION
Number of spaces to indent each level. The default is 4.
BEFORE-TOC
Procedure executed before generating the Table of Contents. If no Table of Contents is generated,
the procedure does not execute.
AFTER-TOC
Procedure executed after generating the Table of Contents. If no Table of Contents is generated,
the procedure does not execute.
BEFORE-PAGE
Procedure executed at the start of every page.
AFTER-PAGE
Procedure executed at the end of each page.
ENTRY
Procedure that is executed to process each Table of Contents entry (instead of Production
Reporting doing it for you). When this procedure is invoked, the following Production
Reporting-reserved variables are populated with data about the TOC entry:
#SQR-TOC-LEVEL
Contains the level
$SQR-TOC-TEXT
Contains the text
#SQR-TOC-PAGE
Contains the page number
DECLARE-TOC 149
These are global variables. If the procedure is local, you must precede it with an underscore (for
example, #_sqr-toc-page). These three Production Reporting-reserved variables are only valid
within the scope of the ENTRY procedure. They can be referenced outside the scope, but their
contents are undefined.
Description
Use DECLARE-TOC in the SETUP section.
You can use DECLARE-TOC to declare one or more Table of Contents for the application.
A Table of Contents can be shared between reports.
Example
begin-setup
declare-toc common
for-reports=(all)
dot-leader=yes
indentation=2
end-declare
end-setup
.
.
.
toc-entry level=1 text=$Chapter
toc-entry level=2 text=$Heading
.
.
See Also
BEGIN-FOOTING, BEGIN-HEADING, DECLARE-REPORT, and TOC-ENTRY
DECLARE-VARIABLE
Function
Explicitly declares a variable type.
Syntax
DECLARE-VARIABLE
[DEFAULT-NUMERIC={DECIMAL[(prec_lit)]|FLOAT|INTEGER}]
[DECIMAL[(prec_lit)]num_var[(prec_lit)][num_var[(prec_lit)]]...]
[FLOAT num_var[num_var]...]
[DATE date_var[date_var]...]
[INTEGER num_var[num_var]...]
[TEXT string_var[string_var]...]
[BINARY binary_var[binary_var]...]
END-DECLARE
150 Production Reporting Command Reference
Arguments
DEFAULT-NUMERIC
Default type for numeric variables. Unless explicitly declared otherwise, a numeric variable
assumes the variable type. This qualifier overrides any setting from the command-line
flag -DNT or the DEFAULT-NUMERIC entry in the [Default-Settings] section of SQR.INI.
If -DNT was not specified on the command line and SQR.INI has no DEFAULT-NUMERIC entry,
then the default numeric type is FLOAT.
DECIMAL
Defines that the numeric variables that follow are decimal variables with a precision specified
with prec_lit. The precision can be assigned to the group of variables or to each individual
variable. The precision is the total number of digits used to represent the number. This precision
can range from 1 to 38. The default value is 16. The range of decimal numbers is
from -9.9999999999999999999999999999999999999E±4096 to
+9.9999999999999999999999999999999999999E±4096
FLOAT
Defines that the numeric variables that follow are used as double precision floating point. The
range and precision of these numbers are machine- dependent.
DATE
Defines that the date variables that follow can contain a date in the range of January1,4713 BC
to December 31, 9999 AD.
INTEGER
Defines that the numeric variables that follow are used as integers with a range of -2147483648
to +2147483647.
TEXT
Defines that the string variables that follow are text (character) variables.
BINARY
Defines that the variables that follow support BINARY data.
Description
You can set the default numeric type externally, using the -DNT command-line flag or the
DEFAULT-NUMERIC setting in the [Default-Settings] section of SQR.INI. However, the setting
in DECLARE-VARIABLE takes precedence over all other settings. If the command has not been
used, then the -DNT command-line flag takes precedence over the setting in SQR.INI.
Besides FLOAT, INTEGER, or DECIMAL, the DEFAULT-NUMERIC setting in SQR.INI and -DNT
command-line flag can be set to V30. With V30, the program acts in the same manner as in preversion 4.0 releases; that is, all variables are FLOAT. Incidentally, V30 is not a valid setting for the
DEFAULT-NUMERIC setting in DECLARE-VARIABLE.
DECLARE-VARIABLE 151
DECLARE-VARIABLE allows the user to determine the type of variables to use to fit their needs.
This command can only appear in the SETUP section or as the first statement of a local procedure.
The placement of the command affects its scope. When used in the SETUP section, it affects all
variables in the entire program. Alternately, when it is placed in a local procedure, its effect is
limited to the scope of the procedure. If the command is in both places, the local declaration
takes precedence over the SETUP declaration.
In addition to declaring variables, the command allows the default numeric type to be specified
using the DEFAULT-NUMERIC setting as FLOAT, INTEGER, or DECIMAL. When dealing with
money or where more precision is required, you can use the DECIMAL qualifier.
DECLARE-VARIABLE, the -DNT command-line flag, and the DEFAULT-NUMERIC setting in
SQR.INI affects the way numeric literals are typed. If V30 is specified, then all numeric literals
are FLOAT (just as in pre-version 4.0 releases); otherwise, the use or lack of a decimal point
determines the type of the literal as either FLOAT or INTEGER, respectively. Finally, not specifying
DECLARE-VARIABLE, the -DNT command-line flag, and the DEFAULT-NUMERIC setting in
SQR.INI is the same as specifying V30.
Note:
In Production Reporting DDO, list variables should not be declared using this construct.
Example
begin-setup
declare-variable
default-numeric=float
decimal #decimal(10)
integer #counter
date
$date
end-declare
end-setup
.
.
let $date = strtodate('Jan 01 1995','Mon DD YYYY')
print $date (1,1)
position (+2,1)
let #counter = 0
while #counter < 10
let #decimal = sqrt(#counter)
add 1 to counter
print #decimal (+1,1) 9.999999999
end-while
do sub1($date, 'day', 10)
do sub2
.
.
begin-procedure sub1(:$dvar, $units, #uval)
declare-variable
date $dvar
152 Production Reporting Command Reference
integer #uval
end-declare
let $dvar = dateadd($dvar, $units, #uval)
print $dvar (+1,1)
position (+2,1)
end-procedure
.
.
begin-procedure sub2 LOCAL
declare-variable
date $mydate
end-declare
let $mydate = dateadd($_date, 'year', 5)
print $mydate (+1,1)
position (+2,1)
end-procedure
.
.
See Also
●
The -DNT command-line flag, described in Chapter 1, “Introduction.”
●
The [Default-Settings] section of SQR.INI described in Chapter 6, “SQR.INI.”
#DEFINE
Function
Declares a value for a substitution variable within the body of the report (rather than using
ASK).
Syntax
#DEFINE substitution_variable value
Arguments
substitution_variable
Variable to use as the substitution variable. The substitution variable is used to substitute any
command, argument, or part of a SQL statement at compile time.
value
Value to substitute.
Description
#DEFINE is useful for specifying constants such as column locations, printer fonts, or any
number or string that is used in several locations in the program. When the value of the number
or string must be changed, you need only change your #DEFINE command. All references to
that variable change automatically, which makes modifying programs much simpler.
#DEFINE 153
If ASK is used to obtain the value of a substitution variable that has already been defined, ASK
uses the previous value and the user is not prompted. This gives you the flexibility of being able
to predefine some variables and not others. When the report runs, ASK requests values for only
those variables that have not had a value assigned.
You can use #DEFINE commands inside an include file. This is a method of gathering commonly
used declarations into one place, and reusing them for more than one report.
The value in the #DEFINE command can have embedded spaces, and needs no enclosing quotes.
The entire string is used as is.
The #DEFINE command cannot be broken across program lines.
Examples
The following code defines several constants:
#define
#define
#define
#define
#define
#define
#define
#define
page_width 8.5
page_depth 11
light LS^10027
bold LS^03112
col1 1
col2 27
col3 54
order_by state, county, city, co_name
The following excerpt from a report uses the preceding definitions:
begin-setup
declare-printer contacts
type=hp
paper-size=({page_width}, {page_depth})
end-declare
end-setup
begin-heading 5
print 'Company Contacts'
(1,1)
print 'Sort: {order_by}' (2,1)
print 'Company' (4,{col1})
print 'Contact' (4,{col2})
print 'Phone'
(4,{col3})
end-heading
begin-procedure main
begin-select
company
(1,{col1})
print '{bold}' (0,{col2}
contact
()
print '{light}' ()
phone
(0,{col3})
next-listing
from customers
order by {order_by}
end-select
end-procedure
154 Production Reporting Command Reference
center
center
! Print contact in boldface.
!
!
!
!
!
!
Back to lightface.
Note:There must be enough
space between col2
and col3 for both
font changes and the
contact field.
See Also
ASK
DISPLAY
Function
Displays the specified column, variable, or literal.
Syntax
DISPLAY {any_lit|_var|_col}
[[:$]edit_mask|NUMBER|MONEY|DATE][NOLINE]
Arguments
any_lit|_var|_col
Text, number, or date to display.
edit_mask
Edits the field before displaying it. (see “Edit Masks” on page 247)
NUMBER
Formats any_lit|_var|_col with the NUMBER-EDIT-MASK of the current locale. This option
is not legal with date variables.
MONEY
Formats any_lit|_var|_col with the MONEY-EDIT-MASK of the current locale. This option
is not legal with date variables.
DATE
Formats any_lit|_var|_col with the DATE-EDIT-MASK of the current locale. This option is
not legal with numeric variables. If DATE-EDIT-MASK has not been specified, then the date is
displayed using the default format for that database (see Table 61 on page 251).
NOLINE
Suppresses the carriage return after displaying the field.
Description
DISPLAY can display data to a terminal. The data is displayed to the current location on the
screen. If you wish to display more than one field on the same line, use NOLINE on each display
except the last.
DISPLAY 155
Dates can be contained in a date variable or column, or a string literal, column, or variable.
When a date variable or column is displayed without an edit mask, the date appears in the
following manner:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If this is not set, Production Reporting uses the format in
Table 62, “DATE Column Formats,” on page 252.
●
For TIME columns,Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
When displaying a date in a string literal, column, or variable using EDIT or DATE, the string
uses the format specified by SQR_DB_DATE_FORMAT, one of the database-dependent formats in
Table 61 on page 251, or the database-independent format SYYYYMMDD[HH24[MI[SS
[NNNNNN]]]].
If you require more control over the display, use SHOW.
Examples
The following segments illustrate the various features of DISPLAY:
The following code:
!
! Display a string using an edit mask
!
display '123456789' xxx-xx-xxxx
Produces the following output:
123-45-6789
The following code:
!
! Display a number using an edit mask
!
display 1234567.89 999,999,999.99
Produces the following output:
1,234,567.89
The following code:
!
! Display a number using the default edit mask (specified in SQR.INI)
!
display 123.78
Produces the following output:
156 Production Reporting Command Reference
123.780000
The following code:
!
! Display a number using the locale default numeric edit mask
!
alter-locale number-edit-mask = '99,999,999.99'
display 123456.78 number
Produces the following output:
123,456.78
The following code:
!
! Display a number using the locale default money edit mask
!
alter-locale money-edit-mask = '$$,$$$,$$9.99'
display 123456.78 money
Produces the following output:
$123,456.78
The following code:
!
! Display a date column using the locale default date edit mask
!
begin-select
dcol
from tables
end-select
alter-locale date-edit-mask = 'DD-Mon-YYYY'
display &dcol date
Produces the following output:
01-Jan-1999
The following code:
!
! Display two values on the same line
!
display 'Hello' noline
display ' World'
Produces the following output:
Hello World
The following code:
!
! Display two values on the same line with editing of the values
!
DISPLAY 157
alter-locale money-edit-mask = '$$,$$$,$$9.99'
let #taxes = 123456.78
display 'You owe ' noline
display #taxes money noline
display ' in back taxes.'
Produces the following output:
You owe $123,456.78 in back taxes.
See Also
●
SHOW for information on screen control
●
LET for information on copying, editing, or converting fields
●
The EDIT parameter of PRINT for edit mask descriptions
●
ALTER-LOCALE for descriptions of NUMBER-EDIT-MASK, MONEY-EDIT-MASK, and DATEEDIT-MASK
DIVIDE
Function
Divides one number into another.
Syntax
DIVIDE {src_num_lit|_var|_col} INTO dst_num_var
[ON-ERROR={HIGH|ZERO}][ROUND=nn]
Arguments
src_num_lit|_var|_col
Divided into the contents of dst_num_var.
dst_num_var
Result after execution.
ON-ERROR
Sets the result to the specified number when a division by zero is attempted. If ON-ERROR is
omitted and a division by zero is attempted, Production Reporting halts with an error message.
ROUND
Rounds the result to the specified number of digits to the right of the decimal point. For float
variables, this value can be from 0 to 15. For decimal variables, this value can be from 0 to the
precision of the variable. For integer variables, this argument is not appropriate.
158 Production Reporting Command Reference
Description
The source field is divided into the destination field and the result is placed in the destination.
The source is always first, the destination always second.
When dealing with money-related values (dollars and cents), use decimal variables rather than
float variables. Float variables are stored as double precision floating point numbers, and small
inaccuracies can appear when dividing many numbers in succession. These inaccuracies can
appear due to the way different hardware and software implementations represent floating point
numbers.
Examples
divide
divide
divide
37.5 into #price
! #price / 37.5
&rate into #tot on-error=high
#j into #subtot on-error=zero
Note:
High in the preceding example is the “Maximum Value,” while zero is the “Lowest Value.”
See Also
●
LET for a discussion of complex arithmetic expressions
●
ADD
DO
Function
Invokes the specified procedure.
Syntax
DO procedure_name[(arg1[, argi]...)]
Arguments
procedure_name
Name of the procedure to execute.
arg1 [, argi ]
Arguments to pass to the procedure. Arguments can be any type of variable or constant value.
Description
When the procedure ends, processing continues with the command following DO. You can use
arguments to send values to or receive values from a procedure.
Arguments passed by DO to a procedure must match in number:
DO 159
●
Database text columns, string variables, and literals can be passed to procedure string or
date arguments.
●
Database numeric columns, numeric variables, and numeric literals can be passed to
procedure numeric arguments.
●
Numeric variables (DECIMAL, INTEGER, FLOAT) can be passed to procedure numeric
arguments without regard to the argument type of the procedure. Production Reporting
automatically converts the numeric values upon entering and leaving the procedure as
required.
●
Date variables can be passed to procedure date or string arguments.
When a field in DO receives a value back from a procedure (a colon indicates it is a back value—
that is, a value that’s being returned), it must be a string, numeric, or date variable, depending
on the procedure argument; however, a date can be returned to a string variable and vice versa.
When a date is passed to a string, the date is converted to a string according to the following
rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
Examples
do get_names
do add_to_list ($name)
do print_list ('A', #total, &co_name, $name)
See Also
BEGIN-PROCEDURE for information on passing arguments
DRAW
Function
Draws an object.
Syntax
DRAW {position}
TYPE={type_lit_|_var|_col}
160 Production Reporting Command Reference
[HEIGHT={height_lit_|_var|_col}]
[WIDTH={width_lit_|_var|_col}]
[RULE={rule_lit_|_var|_col}]
[FILL-COLOR=({color_name_lit|_var|_col}|{rgb})]
[LINE-COLOR= {color_name_lit|_var|_col}|{rgb})]
[CAP={cap_lit_|_var|_col}]
[LINE-STYLE={line_style_lit_|_var|_col}]
[END-POINT=(row_lit_|_var|_col, column_lit_|_var|_col)]
Arguments
position
Starting position of the object.
TYPE
Type of object to draw. The value can be BOX,HORZ-LINE, VERT-LINE,LINE,or OVAL.
(LINE and OVAL are not supported with –PRINTER:LP, –PRINTER:HP, or PRINTER:PS.)
HEIGHT
Object’s vertical length. Applies to BOX, VERT-LINE, and OVAL.
WIDTH
Object’s horizontal length. Applies to BOX, HORZ-LINE, and OVAL.
RULE
Line thickness. Applies to BOX, HORZ-LINE, VERT-LINE, LINE, and OVAL. This value is expressed
in decipoints. (There are 720 decipoints per inch.) The default value is two decipoints.
FILL-COLOR
Color used to fill the object. Applies to BOX and OVAL. The default value is the FILL COLOR value
in SET-COLOR.
LINE-COLOR
Color of the lines in the object. Applies to BOX, HORZ-LINE, VERT-LINE, LINE, and OVAL. The
default value is the LINE COLOR value in SET-COLOR.
CAP
Type of cap used with an object. Applies to BOX, HORZ-LINE, VERT-LINE, and LINE. BOX CAP
values can ROUND, BEVEL, or MITER HORZ-LINE, VERT-LINE, and LINE CAP values can be
ROUND, SQUARE, or FLAT.
Note:
CAP settings are ignored with -PRINTER:HT and -PRINTER:EH. When using -PRINTER:WP,
MITER is substituted for BEVEL. CAP is ignored unless the LINE-SYTLE is set to SOLID.
DRAW 161
LINE-STYLE
Line style of the object. Applies to HORZ-LINE, VERT-LINE, LINE, BOX, and OVAL.
Table 39
LINE-STYLE Values
Line Style
Value
SOLID
SQUARE-DOT
DASH
DASH-DOT
LONG-DASH
LONG-DASH-DOT
LONG-DASH-DOT-DOT
Note:
LINE STYLE settings are ignored with –PRINTER:LP, –PRINTER:HP, or PRINTER:PS. If you
use one of these flags, the default value of SOLID is applied to the line.
END-POINT
The object’s ending coordinate. Applies to LINE.
Description
Draws the specified object on the page. For horizontal lines (TYPE=HORZ-LINE), the line is
drawn just below the base of the line. For vertical lines (TYPE=VERT-LINE), the line is drawn
just below the base of the starting line position to just below the base of the ending line position.
After DRAW executes, Production Reporting changes the current print location to the starting
location of the object. (This is different from the way PRINT works.)
Examples
Draw a wide box around the page:
DRAW (1,1) TYPE='BOX' WIDTH=78 HEIGHT=66 RULE=20
Draw a five-line shaded box without a border:
DRAW (1,1) TYPE='BOX' WIDTH=66 HEIGHT=5 RULE=0 FILL COLOR=(204,204,204)
Draw a line under the page heading:
DRAW (1,1) TYPE='HORZ LINE' WIDTH=66 RULE=10
Redline the paragraph:
DRAW (+3,+2) TYPE='VERT LINE' HEIGHT=4 RULE=6
162 Production Reporting Command Reference
Draw a blue circle with a red border (assumes that the layout line height and character width
are the same value)
DRAW (1,1) TYPE='OVAL' HEIGHT=10 WIDTH=10 RULE=20 FILL COLOR=(’BLUE’) LINE
COLOR=('RED')
Draw a box using a dashed line
DRAW (1,1) TYPE='BOX' WIDTH=78 HEIGHT=66 RULE=20 LINE STYLE='DASH'
See Also
GET-COLOR, PRINT, and SET-COLOR
DUMP-TABLE
Function
Dumps table data into an SPF file.
Syntax
DUMP—TABLE
NAME=table_name_var|_lit|_col
[CONTINUATION=continuation_var|_lit|_col]
Arguments
NAME
Name of the table created by CREATE-TABLE.
CONTINUATION
Defines whether the table data is a continuation of a previous DUMP-TABLE command. Valid
values are YES and NO. The default is NO.
Description
Use DUMP-TABLE in any section except BEGIN-SETUP, BEGIN-SQL, and BEGIN-DOCUMENT. The
data dumped into the SPF file will be in a format that the Enhanced HTML or Generic Driver
can use to provide coherent output such as XML, BQD, and CSV.
Example
dump-table
name='customers'
continuation='yes'
See Also
ALTER-TABLE, CREATE-TABLE, DECLARE-TABLE, FILL-TABLE, PRINT-TABLE
DUMP-TABLE 163
#ELSE
Function
Compiles the code following #ELSE when a preceding #IF, #IFDEF, or #IFNDEF is FALSE.
(#ELSE is a compiler directive that works with the #IF, #IFDEF, and #IFNDEF compiler
directives.)
Syntax
#ELSE
See Also
#IF, #IFDEF, and #IFNDEF for descriptions of compiler directives
ELSE
Function
An optional command in IF.
Syntax
ELSE
See Also
IF for a description and example.
ENCODE
Function
Assigns a non-display or display character to a string variable.
Syntax
ENCODE src_code_string_lit INTO dst_txt_var
Arguments
src_code_string_lit
String of characters to encode and place in dst_txt_var.
dst_txt_var
Result after execution.
164 Production Reporting Command Reference
Description
ENCODE can define nondisplay characters or escape sequences sent to an output device. These
characters or sequences can perform complex output device manipulations. ENCODE also
displays characters not in the keyboard. If your keyboard does not have the Euro symbol, use
the Encode feature to create a string variable for it.
The encode characters can be included in a report at the appropriate location using PRINT or
PRINT-DIRECT.
Only values <001> to <255> can be defined in ENCODE.
Examples
encode '<27>L11233' into $bold
print $bold () code-printer=lp
! Code sequence to turn bold on.
See Also
●
The chr function described in Table 52 on page 212 under LET
●
PRINT and PRINT-DIRECT
●
“Encode Variables” in Volume 1 of the Production Reporting User's Guide
END-DECLARE, END-DOCUMENT, END-EVALUATE,
END-FOOTING, END-HEADING
Function
Completes a section or paragraph.
Syntax
END-DECLARE
END-DOCUMENT
END-EVALUATE
END-FOOTING
END-HEADING
Description
END-DECLARE completes a paragraph started with:
●
DECLARE-CHART
●
DECLARE-IMAGE
●
DECLARE-LAYOUT
●
DECLARE-PRINTER
●
DECLARE-PROCEDURE
●
DECLARE-REPORT
END-DECLARE, END-DOCUMENT, END-EVALUATE, END-FOOTING, END-HEADING 165
●
DECLARE-VARIABLE
Other END-section commands complete the corresponding BEGIN-section command:
●
BEGIN-DOCUMENT
●
EVALUATE
●
BEGIN-FOOTING
●
BEGIN-HEADING
Each command must begin on its own line.
Examples
begin-footing 2
print 'Company Confidential'
end-footing
(1)
center
See Also
●
DECLARE-paragraph
●
BEGIN-section
#END-IF, #ENDIF
Function
Ends an #IF, #IFDEF, or #IFNDEF command. (#END-IF is a compiler directive.)
Syntax
#END-IF
Description
#ENDIF (without the dash) is a synonym for #END-IF.
Examples
#ifdef debuga
show 'DebugA: #j = '
show 'Cust_num
= '
#end-if
#j edit 9999.99
&cust_num
See Also
#IF, #IFDEF, and #IFNDEF for a descriptions of compiler directives
166 Production Reporting Command Reference
END-IF
Function
Ends an IF command.
Syntax
END-IF
See Also
IF
END-PROCEDURE, END-PROGRAM, END-SELECT, END-SETUP,
END-SQL, END-WHILE, END-EXECUTE
Function
Completes the corresponding section or paragraph.
Syntax
END-PROCEDURE
END-PROGRAM
END-SELECT
END-SETUP
END-SQL
END-WHILE
END-EXECUTE
Description
Each END-section command completes the corresponding BEGIN-section command:
●
BEGIN-PROCEDURE
●
BEGIN-PROGRAM
●
BEGIN-SELECT
●
BEGIN-SETUP
●
BEGIN-SQL
●
WHILE
●
BEGIN-EXECUTE
Each command must begin on its own line.
END-IF 167
Note:
END-EXECUTE (and BEGIN-EXECUTE) is only required when additional information about
the datasource or query is needed, such as 'Connection', 'Schema', 'Command' ,'GetData',
'Procedure', or 'Parameters'.
Examples
begin-program
do main
end-program
See Also
●
BEGIN-section
●
WHILE
EVALUATE
Function
Determines the value of a column, literal, or variable and takes action based on that value.
Syntax
EVALUATE {any_lit|_var|_col}
This command is equivalent to case/switch in C or Java. The general format of EVALUATE is:
EVALUATE {any_lit|_var|_col}
WHEN comparison_operator {any_lit|_var|_col}
SQR_Commands...
[BREAK]
[WHEN comparison_operator {any_lit|_var|_col}
SQR_Commands...
[BREAK]]
[WHEN-OTHER SQR_Commands...
[BREAK]]
END-EVALUATE
Arguments
any_lit|_var|_col
A text or numeric column; a text, numeric, or date variable; or a text or numeric literal to use
in the evaluation. In short, an evaluation argument.
comparison_operator
Any valid comparison operator. See comparison operators in Table 45 on page 194.
WHEN
168 Production Reporting Command Reference
Evaluation expression. The evaluation argument is compared with the argument, beginning
from the first WHEN. If the expression is TRUE, Production Reporting processes the commands
after the WHEN. If the expression is FALSE, Production Reporting processes the next WHEN
expression. Each WHEN must be on its own line.
If more than one WHEN expression appears directly before a set of commands, any one of them,
if TRUE, causes the commands to execute.
BREAK
Immediately exits EVALUATE. Use BREAK at the end of a set of commands.
WHEN-OTHER
Signifies the start of default commands to process if all other WHEN expressions are FALSE.
WHEN-OTHER must appear after all other WHEN expressions.
Description
EVALUATE is useful for branching to different commands depending on the value of a specified
variable or column.
EVALUATE commands can be nested.
Evaluating a date variable or column with a string results in a date comparison (chronological,
not a byte by byte comparison as is done for strings). The string must be in the proper format
as follows:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT, one of the database-dependent formats
(see Table 61, “Default Formats by Database,” on page 251), or the database-independent
format 'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format inTable 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
Examples
evaluate &code
when = 'A'
move 1 to #j
break
when = 'B'
when = 'C'
move 2 to #j ! Will happen if &code is B or C.
break
when > 'D'
move 3 to #j ! Move 3 to #j and continue checking.
when > 'H'
add 1 to #j ! Add 1 to #j and continue checking.
EVALUATE 169
when > 'W'
add 2 to #j
break
when-other
if isnull (&code)
do null_code
else
move 0 to #j ! Unknown code.
end-if
break
end-evaluate
See Also
IF and LET
EXECUTE
Function
Executes a stored procedure. EXECUTE is available with the DB2, ODBC, Oracle, and Sybase
versions of Production Reporting. (For DB2, Production Reporting does not support overloaded
stored procedures.)
Syntax
EXECUTE [-XC][ON-ERROR=procedure[(arg1[,argi]...)]]
[DO=procedure[(arg1[,argi]...)]]
{[@#status_var=]stored_procedure_name}|
{[@$return_var=]stored_procedure_name}
[[@param=]{any_col|_var|_lit}[OUTPUT][,...]]
[INTO any_coldata_type[(length_int_lit)]
[,...]][WITH RECOMPILE]
The syntax of EXECUTE roughly follows that of the Sybase Transact-SQL EXECUTE command,
with the exception of optional arguments and the INTO argument.
Arguments
-XC
(Sybase only) Specifies that EXECUTE shares the same connection as the DO= procedure it can
invoke. This argument is required to share Sybase temporary tables.
ON-ERROR
Production Reporting procedure to execute if an error occurs. If ON-ERROR is omitted and an
error occurs, Production Reporting halts with an error message. For severe errors (for example,
passing too few arguments) Production Reporting halts, even if an error procedure is specified.
You can specify arguments to pass to the ON-ERROR procedure. Arguments can be any variable,
column, or literal.
170 Production Reporting Command Reference
DO
Production Reporting procedure to execute for each row selected in the query. Processing
continues until all rows are retrieved.
You can specify arguments to pass to the procedure. Arguments can be any variable, column,
or literal.
@#status_var
The procedure’s status in the specified numeric variable. The status is returned only after selected
rows are retrieved.
@$return_var
(Oracle only) The called stored function's return value into the specified variable. Oracle stored
functions can return any column data type. No procedure status is returned for Oracle stored
procedures.
stored_procedure_name
Stored procedure or function to execute.
For Oracle installations only, you can add schema and package information to the stored
procedure name as follows: [[schema.][package.]].stored_procedure_name.
@param
Parameter passed to the stored procedure. Parameters can be passed with or without names. If
used without names, they must be listed in the same sequence as defined in the stored procedure.
any_lit|_var|_col
Value passed to the stored procedure. It can be a string, numeric, or date variable, a previously
selected column, a numeric literal, or a string literal.
OUTPUT
Indicates that the parameter receives a value from the stored procedure. The parameter must be
a string, numeric, or date Production Reporting variable. Output parameters receive their values
only after rows selected have been retrieved. If you specify multiple output parameters, they
must be in the same sequence as defined in the stored procedure.
INTO
Where to store rows retrieved from the stored procedure's SELECT statement. The INTO
argument contains the names of the columns with data types and lengths (if needed). You must
specify the columns in the same sequence and match the data type used in the stored procedure's
SELECT statement.
Table 40 lists the valid data types for each database.
EXECUTE 171
Table 40
Valid Data Types
Database
Valid Data Types
Oracle
CHAR[(n)]
DATE
DECIMAL[(p[,s])]
FLOAT[(b)]
INTEGER
LONG
NCHAR[(n)]
NVARCHAR2[(n)]
NUMBER[(p[,s])]
NUMERIC[(p[,s])]
REAL
ROWID
SMALLINT
VARCHAR[(n)]
VARCHAR2[(n)]
ODBC
BIT
TINYINT
SMALLINT
INT
CHAR[(n)]
NCHAR[(n)]
VARCHAR[(n)]
NVARCHAR[(n)]
NTEXT
TEXT
REAL
FLOAT[(b)]
IMAGE
SMALLMONEY
MONEY
DECIMAL[(p[,s])]
NUMERIC [(p[,s])]
SYSNAME
SMALLDATETIME
DATETIME
TIMESTAMP
172 Production Reporting Command Reference
Database
Valid Data Types
BINARY
VARBINARY
Sybase
BIT
TINYINT
SMALLINT
INT
CHAR[(n)]
NCHAR[(n)]
VARCHAR[(n)]
NVARCHAR[(n)]
TEXT
REAL
FLOAT[(b)]
IMAGE
SMALLMONEY
MONEY
DECIMAL[(p[,s])]
NUMERIC [(p[,s])]
SYSNAME
SMALLDATETIME
DATETIME
TIMESTAMP
BINARY
VARBINARY
UNICHAR[(n)]
UNIVARCHAR[(n)]
DB2
CHAR[(n)]
VARCHAR[(n)]
DATE
TIME
TIMESTAMP
FLOAT
DOUBLE
NUMERIC
DECIMAL[(p[,s])]
INTEGER
GRAPHIC[(n)]
EXECUTE 173
Database
Valid Data Types
VARGRAPHIC[(n)]
If the stored procedure contains more than one result set, only the first query is described with
the INTO argument. Rows from subsequent queries are ignored.
WITH RECOMPILE
(Sybase and ODBC only) Causes the query to recompile each time it executes rather than using
the plan stored with the procedure. Normally, this is not required or recommended.
Description
If the stored procedure specified in stored_procedure_name contains a SELECT query,
EXECUTE must specify an INTO argument in order to process the values from the query. If no
INTO argument is specified, then the values from the query are ignored.
EXECUTE retrieves just the first row when the following instances are true:
●
The DO procedure is not specified.
●
The stored procedure, stored_procedure_name selects one or more rows.
●
An INTO argument is specified.
This is useful for queries returning a single row.
Note:
Oracle stored functions can return any column data type. ODBC, Sybase and DB2 can only
return a numeric status.
Note:
If you are using Oracle or DB2 keep in mind the following:
●
Oracle and DB2 can return multiple Result Sets of data; however, Production Reporting
only processes the first Result Set returned from a stored procedure or function. After
processing the first Result Set, all other Result Sets are ignored.
●
When Oracle or DB2 encounters an INTO clause, an implied Result-Set handle is created.
The implied Result-Set handle processes an open cursor returned from a stored procedure
or function. The procedure or function is “described” to ensure that the stored object returns
a handle to a result set. The data returned from the “describe” is then used to validate the
data types declared for each column contained in the INTO clause of the EXECUTE
command.
Examples
The following example invokes the stored procedure get_total with two parameters: a string
literal and a string variable. The result from the stored procedure is stored in the variable
#total.
174 Production Reporting Command Reference
execute get_total 'S. Q. Reporter' $State #Total Output
The following example invokes the stored procedure get_products with two parameters. The
stored procedure selects data into five column variables. The Production Reporting procedure
print_products is called for each row retrieved. The return status from the stored procedure
is placed in the variable #proc_return_status.
execute do=print_products
@#proc_return_status=
get_products
@prodcode=&code,@max=#maximum
INTO &prod_code int,
&description char(45),
&discount float,
&restock char,
&expire_date datetime
begin-procedure print_products
print &prod_code(+1,1)
print &description(+5,45)
print &discount(+5) edit 99.99
print &restock(+5) match Y 0 5 Yes N 0 5 No
print &expire_date(+5,) edit 'Month dd, yyyy'
end-procedure
EXIT-SELECT
Function
Exits a SELECT paragraph immediately.
Syntax
EXIT-SELECT
Description
Jumps to the command immediately following END-SELECT.
Use EXIT-SELECT when you need to end a query before all rows are retrieved.
Examples
begin-select
cust_num, co_name, contact, city, state, zip, employees
add &employees to #tot_emps
if #tot_emps >= 5000
exit-select ! Have reached required total emps.
end-if
do print_company
from customers order by employees desc
end-select
EXIT-SELECT 175
See Also
BEGIN-SELECT
EXTRACT
Function
Copies a portion of a string into a string variable.
Syntax
EXTRACT {dst_txt_var|date_var} FROM
{{src_txt_lit|_var|_col}|{src_date_var|_col}}
{start_num_lit|_var}{length_num_lit|_var}
Arguments
dst_txt_var|date_var
Text or date variable into which the extracted string is placed.
{src_txt_lit|_var|_col}|{src_date_var|_col}
Text or date variable, column, or literal from which to extract the string.
start_num_lit|_var
Starting location of the string.
length_num_lit|_var
Length of the string.
Description
You must specify the starting location of the string as an offset from the beginning of the string
and its length. An offset of zero (0) begins at the left-most character; an offset of 1 begins one
character beyond that, and so on.
If the source is a date variable or column, it is converted to a string before the extraction according
to the following rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses SQR_DB_DATE_FORMAT. If not set, Production Reporting uses the first databasedependent format in Table 61, “Default Formats by Database,” on page 251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
176 Production Reporting Command Reference
If the destination is a date variable, the string extracted from the source must be in one of the
following formats:
●
The format specified by SQR_DB_DATE_FORMAT.
●
One of the database-dependent formats (see Table 61, “Default Formats by Database,” on
page 251)
●
The database-independent format 'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'.
Examples
extract
extract
extract
extract
$state from $record 45 2
$foo from “Oracle Rocks” 0 4 ! $foo=’Oracle’
$zip_four from &zip 5 4
$rec from $tape_block #loc #rec_len
See Also
●
The substr function described in Table 52 on page 212 under LET
●
FIND
FILL-TABLE
Function
Manipulates table attributes.
Syntax
FILL-TABLE
NAME=table_name_var|_lit|_col
VALUE=value_var|_lit|_col
LOCATION=(row_var|_lit|_col, column_var|_lit[,length_var|_lit])
[ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
Arguments
NAME
Name of the table created by CREATE-TABLE.
VALUE
Value to insert into the table.
LOCATION
Where to place the data in the table. The row and column elements define where to place the
data. The length element, expressed in coordinate units, temporarily overrides the width of the
column and allows data to span multiple columns.
ATTRIBUTES
FILL-TABLE 177
Attributes to apply to the specified location. If an attribute is not specified, the current value as
defined by CREATE-TABLE and ALTER-TABLE is used.
Table 41
FILL-TABLE Attributes
Attribute
Description
ANNOTATION
Arbitrary text string associated with the specified location. SQR passes the data to the
backend printer driver–it does not validate the data.
BACKGROUND
Background color name or RGB triplet
BOLD
YES | NO
CENTER
YES | NO
COLUMN-LEADING
Expressed in decipoints
COLUMN-LINE-COLOR
Color name or RGB triplet
COLUMN-LINE-STYLE
SOLID | SQUARE-DOT | DASH | DASH-DOT | LONG-DASH | LONG-DASH-DOT | LONGDASH-DOT-DOT
COLUMN-LINE-THICKNESS
Expressed in decipoints
EDIT-MASK
Edit mask or keyword to use
FILL-COLOR
Fill color name or RGB triplet. Default=NONE
FONT
Font number
FOREGROUND
Foreground color name or RGB triplet
FORMULAE
Arbitrary formula associated with the specified location. SQR passes the data to the
backend printer driver – it does not validate the data.
ITALIC
YES | NO
POINT-SIZE
Point size of the font
ROW-LINE-COLOR
Color name or RGB triplet
ROW-LINE-STYLE
SOLID | SQUARE-DOT | DASH | DASH-DOT | LONG-DASH | LONG-DASH-DOT | LONGDASH-DOT-DOT
ROW-LINE-THICKNESS
Expressed in decipoints
UNDERLINE
YES | NO
URL
Specifies the hypertext link for the specified location. SQR does not validate the
address.
URL-TARGET
Specifies the target within the URL. SQR does not validate the target.
WRAP
YES | NO | maximum number of lines
WRAP-HEIGHT
Expressed as the number of lines between each wrapped line.
178 Production Reporting Command Reference
Attribute
Description
WRAP-ON
Characters on which to force a WRAP
WRAP-STRIP
Characters to change to a space before the WRAP is done
Description
Use FILL-TABLE in any section except BEGIN-SETUP, BEGIN-SQL, and BEGIN-DOCUMENT to
manipulate table attributes.
Example
fill-table
name='tab2'
value=$column1
location=(3,2)
attributes=('column-line-color',('green'),'row-line-color',
('black'),'font',5)
See Also
ALTER-TABLE, CREATE-TABLE, DECLARE-TABLE, DUMP-TABLE, PRINT-TABLE
FIND
Function
Determines the location of a character sequence within a string.
Syntax
FIND {{obj_txt_lit|_var|_col}|{date_var|_col}} IN
{{src_txt_var|_col}|{date_var|_col}}
{start_int_lit|_var} dst_location_int_var
Arguments
{obj_txt_lit|_var|_col}|{date_var|_col}
Text variable, column, or literal in src_txt_var|_col.
{src_txt_var|_col}|{date_var|_col}
Text variable or column to search.
start_int_lit|_var
Starting location of the search.
dst_location_int_var
FIND 179
Returned starting location of the left-most character of the matching text in {src_txt_var|
_col|date_var|_col}.
Description
FIND searches the specified string for a character sequence and, if the string is found, returns its
location as an offset from the beginning of the specified string. If the sequence is not found,
FIND returns -1 in dst_location_int_var.
You must specify an offset from which to begin the search and supply a numeric variable for the
return of the location.
If the source or search object is a date variable or column, it is converted to a string before the
search according to the following rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
Examples
find 'aw.2' in &code5 0 #loc
find ',' in &name 0 #comma_loc
if #comma_loc = -1
...comma not found...
See Also
●
The instr function described in Table 52 on page 212 under LET
●
EXTRACT
GET
Function
Retrieves data from an array and places it into a date, string, or numeric variable.
Syntax
GET dst_any_var...FROM src_array_name(element)
[field[(occurs)]]...
180 Production Reporting Command Reference
Arguments
dst_any_var
Dates, strings, or numeric variables (not database columns) can be destination variables.
Numeric variables (decimal, float, integer) are copied from number fields. String variables are
copied from char, text, or date fields. Date variables are copied from char, text, or date fields.
When a date field is copied to a string variable, Production Reporting converts the date to a
string in the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61 on page 251.
If the destination is a date variable, the string extracted from the source must be in the format
specified by SQR_DB_DATE_FORMAT, one of the database-dependent formats (see Table 61 on
page 251), or the database-independent format 'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'.
src_array_name(element)
If the array's field names are listed, Production Reporting takes the values from the fields and
occurrences specified. If the array's field names are not listed, the values are taken from
consecutively defined fields in the array.
field[(occurs)]
Array element and field occurrence numbers can be numeric literals (such as 123) or numeric
variables (such as #j). If no field occurrence is stated, occurrence zero is used.
Examples
The following example copies $name, $start_date, and #salary from the first three fields in
the #j'th element of the emps array.
get $name $start_date #salary from emps(#j)
The following example copies #city_tot and #county_tot from the fields cities and
counties in the #j'th element of the states array.
get #city_tot #county_tot from states(#j) cities counties
The following example copies $code from the #j'th occurrence of the code field in the #n'th
element of the codes array.
get $code from codes(#n) code(#j)
See Also
●
LET for information on assigning the value of an expression
●
PUT for information on moving data into an array
GET-COLOR
Function
Retrieves the current colors.
GET-COLOR 181
Syntax
GET-COLOR
[PRINT-TEXT-FOREGROUND=({color_name_var})]
[PRINT-TEXT-BACKGROUND=({color_name_var})]
[PRINT-PAGE-BACKGROUND=({color_name_var})]
[LINE-COLOR=({color_name_var})]
[FILL-COLOR=({color_name_var})]
Arguments
PRINT-TEXT-FOREGROUND
Color in which the text prints.
PRINT-TEXT-BACKGROUND
Background color behind the text.
PRINT-PAGE-BACKGROUND
Page background color.
LINE-COLOR
Line color used in DRAW and PRINT BOX.
FILL-COLOR
Fill color used in DRAW (TYPE=BOX) and PRINT BOX.
{color_name_var}
Text variable that receives the name of the specified color.
Description
GET-COLOR is allowed wherever PRINT or DRAW is allowed. It is used to retrieve certain attributes
of PRINT and DRAW. If the requested attribute does not map to a defined color name, then the
name is returned as RGBredgreenblue, where each component is a three digit number. For
example, RGB127133033. You can use this format wherever you use a color name. The color
name 'none' is returned if no color is associated with the requested attribute.
begin-setup
lighter_unknown = (93,122,129)
set-color print-text-foreground=('lighter_unknown')
get-color print-text-foreground=($print-foreground)
print $print-foreground (+2,7)
end-setup
Examples
begin-program
declare-color-map
light_blue = (193, 222, 229)
end-declare
182 Production Reporting Command Reference
end-program
begin-program
alter-color-map name = 'light_blue' value = (193, 233, 230)
print 'Yellow Submarine' ()
foreground = ('yellow')
background = ('light_blue')
get-color print-text-foreground = ($print-foreground)
set-color print-text-foreground = ('purple')
print 'Barney' (+1,1)
set-color print-text-foreground = ($print-foreground)
end-program
begin-program
get-color line-color=($line-color)
set-color line-color=('purple')
draw (5,5) type='horz-line' width=10
set-color line-color=($line-color)
end-program
begin-program
get-color fill-color=($fill-color)
set-color fill-color=('light grey')
draw (5,5) type='box' width=10 height=10
set-color fill-color=($fill-color)
end-program
See Also
DECLARE-COLOR-MAP, ALTER-COLOR-MAP, and SET-COLOR
GOTO
Function
Skips to the specified label.
Syntax
GOTO label
Arguments
label
A label in the same section or paragraph.
Description
Labels must end with a colon (:) and can appear anywhere within the same section or paragraph
as GOTO.
Examples
begin-select
GOTO 183
price
if &price < #old_price
goto next
end-if
print &price (2,13,0) edit 999,999.99
...
next:
add 1 to #count
from products
end-select
#IF
Function
Indicates that the commands following are to be compiled when the expression is TRUE.
(#IF is a compiler directive.)
Syntax
#IF {txt_lit|num_lit}comparison_operator
{txt_lit|num_lit}
Arguments
txt_lit|num_lit
Any text or numeric literal.
comparison_operator
Any of the following comparison operators:
Operator
Description
=
Equal
!=
Not Equal
<>
Not Equal
<
Less than
>
Greater than
<=
Less than or equal
>=
Greater than or equal
Description
Production Reporting has five compiler directives that allow different pieces of Production
Reporting code to be compiled, depending on the existence or value of substitution variables
(not program variables, such as, string, numeric, or date).
184 Production Reporting Command Reference
Substitution variables defined automatically for each -DEBUGxxx letter can also be used with the
#IF, #IFDEF, and #IFNDEF directives. They can turn entire sections of an Production Reporting
program on or off from the command line, depending on the -DEBUGxxx flag.
You can nest #IF, #IFDEF, or #IFNDEF directives to a maximum of 10 levels.
The #IF, #IFDEF, or #IFNDEF directives cannot be broken across program lines.
Table 42 lists the compiler directives.
Table 42
Production Reporting Compiler Directives
Directive
Example
Description
#IF
#IF {option}='A'
Compiles the commands following the #IF directive if the substitution variable
option is equal to 'A'. The test is case-insensitive. Only one simple expression is
allowed per #IF command.
#ELSE
#ELSE
Compiles the commands following the #ELSE directive when the #IF expression
is FALSE.
#ENDIF
#ENDIF
Ends the #IF directive. #ENDIF can also be typed #END-IF (with a hyphen).
#IFDEF
#IFDEF option
Compiles the commands following the #IFDEF directive if the substitution variable
option is defined.
#IFNDEF
#IFNDEF option
Compiles the command following the #IFNDEF directive if the substitution variable
option is not defined.
Examples
begin-setup
ask type 'Use Male, Female or Both (M,F,B)'
end-setup
begin-procedure Main
#if {type} = 'M'
...code for M here
#else
#if {type} = 'F'
...code for F here
#else
#if {type} = 'B'
...code for B here
#else
show 'M, F or B not selected. Report not created.'
stop
#endif
! for B
#endif
! for F
#endif
! for M
#ifdef debug
show 'DEBUG:
#endif
Cust_num = '
&cust_num
edit
099999
#ifndef debugB ! DebugB turned on with -DEBUGB on
do test_procedure! Production Reporting command line.
#endif
#IF 185
See Also
#DEBUG for information on the -DEBUG command-line flag
IF
Function
Executes commands depending on the value of a condition.
Syntax
IF logical_expression
IF commands have the following structure:
IF logical_expression
sqr_commands...
[ELSE
sqr_commands...]
END-IF
Arguments
logical_expression
Any valid logical expression. See LET for a description of logical expressions.
Operators
See “Bit-Wise Operators” on page 195 for information on the bit-wise operators supported by
IF.
Description
The expression is evaluated as a logical TRUE or FALSE. A value or expression that evaluates to
nonzero is TRUE.
Each IF must have a matching END-IF.
IF commands can be nested.
Comparing a date variable or column with a string, results in a date comparison (chronological,
not a byte by byte comparison as is done for strings). The string must be in the proper format
as follows:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT, one of the database-dependent formats
(see Table 61, “Default Formats by Database,” on page 251), or the database-independent
format 'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
186 Production Reporting Command Reference
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
Examples
if &price > &old_price and instr(&code, 'M', 1) > 0
add 1 to #price_count
if #price_count > 50
show 'More than 50 prices found.' noline
input $x 'Continue? (Y/N)'
if upper($x) = 'N'
stop
end-if
end-if
else
add 1 to #old_price_count
end-if
if #rows
! Will be TRUE if #rows is non-zero.
do print-it
end-if
if $date1 > 'Apr 21 1996 23:59'
do past_due
end-if
See Also
●
LET for a description of logical expressions
●
EVALUATE
#IFDEF
Function
Indicates that the following commands are to be compiled when the substitution variable has
been declared by an ASK or #DEFINE command, or by the -DEBUG flag on the Production
Reporting command line. (#IFDEF is a compiler directive.)
Syntax
#IFDEF substitution_variable
Arguments
substitution_variable
Variable used as the substitution variable.
See Also
#IF for a description of each compiler directive
#IFDEF 187
#IFNDEF
Function
Indicates that the following commands are to be compiled when the substitution variable has
not been declared by an ASK or #DEFINE command, or by the -DEBUG flag on the Production
Reporting command line. (#IFNDEF is a compiler directive.)
Syntax
#IFNDEF substitution_variable
Arguments
substitution_variable
Variable used as the substitution variable.
See Also
#IF for descriptions of compiler directives
#INCLUDE
Function
Includes an external source file into the Production Reporting report specification.
Syntax
#INCLUDE filename_lit
Arguments
filename_lit
A valid filename for the platform on which this application is compiled.
Description
You may want to keep commonly used routines in a single file and reference or “include” that
file in programs that use the routine. For example, you might have a set of #DEFINE commands
for different printers to control initialization, font changes, and page size declarations. You can
reference the appropriate include file depending on which printer you want to use.
INCLUDE files can be nested up to four levels.
Variable substitution scanning takes place before the #INCLUDE command is processed. This
allows you to substitute all or part of the INCLUDE file name at run time, adding flexibility to
controlling which file is included for the run.
188 Production Reporting Command Reference
Examples
#include 'gethours.dat'
!
#include 'XYZheader.dat'
!
#include 'printer{num}.dat'!
!
!
!
!
!
!
!
!
!
!
Common procedure.
Common report heading for XYZ Company.
Include printer definitions for
printer {num},which is passed
on the command line:
SQR REP1A SAM/JOE 18
where 18 is the arbitrary
number assigned your printer
definition file, 'printer18.dat'.
The report would contain the
command: ASK num
in the SETUP section, preceding
this #include statement.
INPUT
Function
Accepts data entered by the user at a terminal.
Syntax
INPUT input_var[MAXLEN=nn][prompt]
[TYPE={CHAR|TEXT|NUMBER|INTEGER|DATE}]
[STATUS=num_var][NOPROMPT][BATCH-MODE]
[FORMAT={txt_lit|_var|_col}]
Arguments
input_var
Text, numeric, or date variable for the input data.
MAXLEN
Maximum length for the data.
prompt
Prompt (literal not variable) displayed to the user.
TYPE
Datatype required for the input.
STATUS
Numeric variable for a return status code.
NOPROMPT
Prevents the prompt from displaying before INPUT is processed.
INPUT 189
BATCH-MODE
If BATCH-MODE is specified and no more arguments are in the command line, a value of 3 is
returned in the STATUS variable and the user is not prompted for input.
FORMAT
Format for entering a date (see Table 57, “Date Edit Format Characters,” on page 245).
Description
Use MAXLEN to prevent entering data that is too long. If INSERT or UPDATE references a variable
whose length is greater than that defined in the database, the SQL is rejected and Production
Reporting halts. If the maximum length is exceeded, the terminal beeps (on some systems, this
may cause the screen to flash instead).
If prompt is omitted, Production Reporting uses the default prompt, Enter [$|#]var:. In any
case, a colon (:) and two spaces are added to the prompt.
Specifying TYPE causes data type checking to occur. If the string entered is not the type specified,
the terminal beeps and an error message is displayed. INPUT is then re-executed. If
TYPE=DATE is specified, then input_var can be a date or text variable; however, TYPE=DATE
is optional if input_var is a date variable. If a numeric variable is used, it is validated as a
numeric variable. CHAR, TEXT, and DATE are invalid types.
Table 43
Data Types Supported by INPUT
Datatype
Description
CHAR, TEXT
Any character. This is the default datatype.
NUMBER
A floating point number in the format [+|-]9999.999[E[+|-]99]
INTEGER
An integer in the format [+|-]99999
DATE
A date in one of the following formats:
MM/DD/YYYY [BC|AD] [HH:MI[:SS[.NNNNNN]] [AM|PM]]
MM-DD-YYYY [BC|AD] [HH:MI[:SS[.NNNNNN]] [AM|PM]]
MM.DD.YYYY [BC|AD] [HH:MI[:SS[.NNNNNN]] [AM|PM]]
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
Specifying STATUS causes INPUT to complete regardless of what the user enters. No error
message is displayed. A nonzero error code is stored in the indicated numeric variable if the
length or datatype entered is incorrect.
Table 44
Values of the STATUS Argument of the INPUT Command
Status Value
Indicates
0
Successful.
190 Production Reporting Command Reference
Status Value
Indicates
1
Bad type (did not match the datatype of TYPE).
2
Too long (longer than MAXLEN or the input for an INTEGER variable is < -2147483648 or
> +2147483647).
3
No arguments remain on the command line. The command was ignored.
By using NOPROMPT and STATUS with SHOW, you can write a sophisticated data entry routine.
FORMAT can only be used with dates. It can be a date edit mask or the keyword DATE. Use the
keyword DATE if the date must be in the format as specified with INPUT-DATE-EDIT-MASK for
the current locale. If FORMAT has not been set, use a database-independent format for the data
in Table 43 on page 190.
Examples
The following example shows several INPUT commands:
input
input
input
input
input
$state maxlen=2 'Please enter state abbreviation'
#age 'Enter lower age boundary' type=integer
$start_date 'Enter starting date for report' type=date
$date_in format='Mon dd yyyy'
$date format=date
The following example shows another INPUT command:
show clear-screen (5,32) reverse 'CUSTOMER SUMMARY' normal
Try_again:
show (12,20) 'Enter Start Date: ' clear-line
input $start-date noprompt status=#istat type=date
if #istat != 0
show (24,1) 'Please enter date in format DD-MON-YY' beep
goto try_again
end-if
show (24,1) clear-line! Clear error message line.
The following example illustrates the use of BATCH-MODE:
begin-program
while (1)
input $A status=#stat batch-mode
if #stat = 3
break
else
do procedure ($a)
end-if
end-while
end-program
See Also
●
ALTER-LOCALE
●
The INPUT-DATE-EDIT-MASK setting in Chapter 6, “SQR.INI.”
INPUT 191
LAST-PAGE
Function
Places the last page number on each page, as in “page n of m”.
Syntax
LAST-PAGE position [pre_txt_lit[post_txt_lit]]
Arguments
position
Position for printing the last page number.
pre_txt_lit
Text string printed before the last page number.
post_txt_lit
Text string printed after the last page number.
Description
The text strings specified in pre_txt_lit and post_txt_lit are printed immediately before
and after the number.
Using LAST-PAGE causes the SQR and SQRT executables to delay printing until the last page
has been processed so that the number of the last page is known.
Examples
begin-footing 1
page-number(1,37) 'Page ' Will appear as
last-page () ' of ' '.' ! "Page 12 of 25."
end-footing
See Also
PAGE-NUMBER, BEGIN-HEADING, and BEGIN-FOOTING
LET
Function
Assigns the value of an expression to a string, numeric, date, or list (DDO only) variable.
Syntax
LET dst_var=expression
192 Production Reporting Command Reference
Arguments
dst_var
String, numeric, date, or list (DDO only) variable or array field to which the result of the
expression is assigned.
expression
Expression to evaluate.
Description
Valid expressions are formed as a combination of:
●
Operands
●
Operators
●
Functions
String, numeric, date, and array field operands can be used in an expression as well as embedded
functions. Production Reporting supports a standardized set of mathematical operators and
logical comparison operators working within a carefully defined set of precedence rules.
Production Reporting also provides the user with a rich set of numeric, string, date, unicode,
and file manipulation functions along with a number of special purpose utility functions. All
combined, the Production Reporting expression provides the user with a very powerful tool that
can be tailored to suit any information processing need. (Note that all string indices are onebased, not zero-based.)
Examples
The following examples show some complex expressions:
let #j = ((#a + #b) * #c) ^ 2
if #j > 2 and sqrt(#j) < 20 or #i + 2 > 17.4
while upper(substr(&descrip,1,#j+2)) != 'XXXX'
and not isnull(&price)
let #len = length(&fname || &initial || &lname) + 2
let $s = edit(&price * &rate, '99999.99')
let summary.total(#j) = summary.total(#j) + (&price * &rate)
if summary.total(#j) > 1000000
let store.total (#store_id, #dept)
= store.total (#store_id, #dept) + #total
let #diff = datediff(datenow(), strtodate('1995','YYYY'),'day')
let $newdate = dateadd(datenow(),'month',50)
let $date1 = datetostr(strtodate(&sale_date), 'Day Month DD, YYYY')
Production Reporting analyzes LET, IF, and WHILE expressions when it compiles code and saves
the result in an internal format so that repetitive execution is at maximum speed.
Operands
Operands form the backbone of an Production Reporting expression. Operands do not have to
be the same type. You can combine string, numeric and array field operands to form a valid
LET 193
expression. Production Reporting performs a sequence of automatic operand conversions as it
evaluates expressions that contain dissimilar operand types. As the expression is evaluated,
operands of lower precision are converted to match the operand of higher precision. Consider
the following example:
let
#answer = #float * #decimal
/ #integer
Since the multiply and divide operators are equal in precedence, the expression is evaluated as
(#float * #decimal) / #integer. Working from the inside out, the #float variable is
converted to a decimal type where a multiply is performed yielding the simplified expression,
(#decimal)/#integer. Production Reporting now converts the #integer operand to a
decimal type before performing the final divide. When finished with the expression evaluation,
Production Reporting converts the result to match the type of the #answer variable.
Converting operands of lower precision to operands of higher precision preserves the number
of significant digits. The number of significant digits is not lost when an integer is converted to
float or decimal. In a similar manner, the number of significant digits is preserved when floating
point operands are converted to the decimal type. The number of significant digits is only
sacrificed when the final result is converted to match the type of the #answer variable and this
variable is less precise than the highest of the operands being evaluated. In the example, precision
is not lost if the #answer is declared as a decimal type. Production Reporting considers integer
variables as the lowest in the precision hierarchy, followed by float and then decimal.
Here are a few simple expression examples:
let #discount=round (&price * #rate / 100, 2)
let $name=$first_name || ' ' || $last_name
let customer.total (#customer_id) =
customer.total (#customer_id) + #invoice_total
if not range(upper($code), 'A', 'G')
...processing when out of range...
let store.total (#store_id, #qtr) =
store.total (#store_id, #qtr) + #invoice_total
let $date1 = strtodate ('Apr 10 1996', 'MON DD YYYY')
The following sections list operators and functions supported in expressions.
Operators
Table 45 lists operators in descending order of precedence. Operators listed in the same row
within the table have the same precedence (the operators *,/,% are equal in precedence).
Operators of the same precedence are processed in the sequence they appear in the expression,
from left to right. Use parentheses to override the normal precedence rules. All numeric types
(decimal, float, integer) are supported for all operators.
Table 45
Operators
Operator
Explanation
||
Concatenate two strings or dates
194 Production Reporting Command Reference
Operator
Explanation
+, -
Sign prefix (positive or negative)
^
Exponent
*, /, %
Multiply, divide, remainder: a % b = mod(a,b) for integers
+, -
Plus, minus
Note: Production Reporting distinguishes between a sign prefix and arithmetic operation
by the context of the expression.
>, <, >=, <=, <>, !=, =
Comparison operators: greater than, less than, greater or equal to, less than or equal to,
not equal (!= or <>), equal
not
Logical NOT
and
Logical AND
or, xor
Logical OR, XOR (exclusive OR)
Bit-Wise Operators
Bit-Wise operators allow you to utilize bitmasks within your program.
Bit-Wise operators act just like their logical counterparts (AND,OR,XOR) except that instead of
returning TRUE or FALSE, they return the actual result.
To facilitate the use of these operators, LET recognizes the hexadecimal notation of 0X? for
expressing a numerical constant. The ? character is from 1 to 8 hexadecimal characters (0-F).
Table 46
Bit-Wise Operators
Operator
Explanation
BitAND
Acts just like Logical AND except returns the actual result instead of TRUE or FALSE
BitOR
Acts just like Logical OR except returns the actual result instead of TRUE or FALSE
BitXOR
Acts just like Logical XOR except returns the actual result instead of TRUE or FALSE
Note:
In addition to BitAND, BitOR, and BitXOR, you can use the HEX function. The HEX function
takes a numerical argument and returns a string, in the form of 0X?, which is the hexadecimal
representation of the argument.
To prevent any loss of precision, declare the arguments to the Bit-Wise operators and the HEX
function as an INTEGER.
Sample program:
!
! Validation test for Bit-Wise LET operators
LET 195
!
begin-setup
declare-variable
integer #mask
end-declare
end-setup
begin-program
let #mask = 0x1000
if not (#mask BitAND 0x1000)
let $mask = hex(#mask)
show 'impossible ' $mask ' BitAND 0x1000 failed'
end-if
if (#mask BitOR 0x1000) <> 0x1000
let $mask = hex(#mask)
show 'impossible ' $mask ' BitOR 0x1000 failed'
end-if
if (#mask BitXOR 0x1000)
let $mask = hex(#mask)
show 'impossible ' $mask ' BitXOR 0x1000 failed'
end-if
let #Mask = 0
if (#mask BitXOR 0x1000) <> 0x1000
let $mask = hex(#Mask)
show 'impossible ' $mask ' BitXOR 0x1000 failed'
end-if
let $mask = hex(0xffffffff)
if $mask <> '0xffffffff'
show 'impossible ' $mask ' <> 0xffffffff'
end-if
let $mask = hex(0x12345678)
If $Mask <> '0x12345678'
show 'impossible ' $mask ' <> 0x12345678'
end-if
let $mask = hex(0xabcdef12)
if $mask <> '0xabcdef12'
show 'impossible ' $mask ' <> 0xabcdef12'
end-if
end-program
Functions
Production Reporting functions include:
●
Numeric Functions
●
File-Related Functions
●
String Functions
●
Date Functions
●
Unicode Functions
●
Miscellaneous Functions
196 Production Reporting Command Reference
Function arguments are enclosed in parentheses and can be nested. Arguments referenced as x,
y, or z indicate the first, second, or third argument of a function. Otherwise, functions take a
single argument or no arguments. All arguments are evaluated before a function is evaluated.
Not all functions support all numeric types (decimal, float, integer). Certain functions do not
support the decimal type directly, but convert input decimal operand(s) to the float type before
the function is evaluated. Table 47 annotates the functions that directly support the decimal type
and which ones do not.
Use parentheses to override the normal precedence rules.
Note:
In functions where a string argument is expected and a date variable, column, or expression is
entered, Production Reporting converts the date to a string according to the following rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified bySQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
On the other hand, except where noted in an individual function, if a string variable, column,
or expression is entered where a date argument is expected, then the string must be in the format
specified by SQR_DB_DATE_FORMAT, one of the database-dependent formats in Table 61,
“Default Formats by Database,” on page 251, or the database-independent format 'SYYYYMMDD
[HH24[MI[SS[NNNNNN]]]]'
Numeric Functions
Table 47
Numeric Functions
Function
Description
abs
Returns the absolute value of num_value.
Value type: Same as num_value
Syntax: dst_var = abs(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression.
●
dst_var = decimal, float, or integer variable.
Example: let#dabsvar = abs(#dvar)
LET 197
Function
Description
acos
Returns the arccosine of num_value in the range of 0 to p radians. The value of num_value must be
between -1 and 1.
Value type: float
Syntax: dst_var = acos(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #facosvar = acos(#fvar)
asin
Returns the arcsine of num_value in the range of -p/2 to p/2 radians. The value of num_value must be
between -1 and 1.
Value type: float
Syntax: dst_var = asin(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fasinvar = asin(#fvar)
atan
Returns the arctangent of num_value in the range of -p/2 to p/2 radians. The value of num_value must
be between -1 and 1.
Value type: float
Syntax: dst_var = atan(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fatanvar = atan(#fvar)
ceil
Returns a value representing the smallest integer that is greater than or equal to num_value.
Value type: Same as num_value.
Syntax: dst_var = ceil(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression.
●
dst_var = decimal, float, or integer variable.
Example: let #fceilvar = ceil(#fvar)
cos
Returns the cosine of num_value.
Value type: float
Syntax: dst_var = cos(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fcosvar = cos(#fvar)
cosh
Returns the hyperbolic cosine of num_value. This function returns a float value.
198 Production Reporting Command Reference
Function
Description
Syntax: dst_var = cosh(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fcoshvar = cosh(#fvar)
deg
Returns a value expressed in degrees of num_value which is expressed in radians.
Value type: float
Syntax: dst_var = deg(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fdegvar = deg(#fvar)
e10
Returns the value of 10 raised to num_value.
Value type: float
Syntax: dst_var = e10(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fe10var = e10(#fvar)
exp
Returns the value of e raised to num_value.
Value type: float
Syntax: dst_var = exp(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fexpvar = exp(#fvar)
floor
Returns a value representing the largest integer that is less than or equal to num_value.
Value type: Same as num_value
Syntax: dst_var = floor(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression.
●
dst_var = decimal, float, or integer variable.
Example: let #ffloorvar = floor(#fvar)
hex
Returns a string, in the form of 0x?, which is the hexadecimal representation of the argument
Syntax: dst_var = hex(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to an integer.
●
dst_var = string variable.
Example: let $hexvar = hex(#fvar)
LET 199
Function
Description
log
Returns the natural logarithm of num_value.
Value type: float
Syntax: dst_var = log(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #flogvar = log(#fvar)
log10
Returns the base-10 logarithm of num_value.
Value type: float
Syntax: dst_var = log10(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #flog10var = log10(#fvar)
mod
Returns the fractional remainder, f, of x_value/ y_value such that x_value = i * y_value + f, where i is an
integer, f has the same sign as x_value, and the absolute value of f is less than the absolute value of
y_value. The arguments are promoted to the type of the greatest precision and the function returns a
value of that type.
Syntax: dst_var = mod(x_value, y_value)
●
x_value = decimal, float, or integer literal, column, variable, or expression.
●
y_value = decimal, float, or integer literal, column, variable, or expression.
●
dst_var = decimal, float, or integer variable.
Example: let #fmodvar = mod(#fxvar, #fyvar)
power
Returns the value of x_value raised to the power of y_value.
Value type: float
Syntax: dst_var = power(x_value, y_value)
●
x_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
y_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fpowervar = power(#fxvar, #fyvar)
rad
Returns a value expressed in radians of num_value which is expressed in degrees.
Value type: float
Syntax: dst_var = rad(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
place_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
200 Production Reporting Command Reference
Function
Description
●
dst_var = decimal, float, or integer variable.
Example: let #fradvar = rad(#fvar)
round
Returns a value that is num_value rounded to place_value digits after the decimal separator.
Value type: Same as num_value
Syntax: dst_var = round(num_value, place_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression.
●
place_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #frndvar = round(#fvar, #fplace)
sign
Returns a -1, 0, or +1 depending on the sign of num_value.
Value type: float
Syntax: dst_var = sign(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression.
●
dst_var = decimal, float, or integer variable.
Example: let #fsignvar = sign(#fvar)
sin
Returns the sine of num_value.
Value type: float
Syntax: dst_var = sin(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fsinvar = sin(#fvar)
sinh
Returns the hyperbolic sine of num_value.
Value type: float
Syntax: dst_var = sinh(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fsinhvar = sinh(#fvar)
sqrt
Returns the square root of num_value..
Value type: float
Syntax: dst_var = sqrt(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #fsqrtvar = sqrt(#fvar)
LET 201
Function
Description
tan
Returns the tangent of num_value.
Value type: float
Syntax: dst_var = tan(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #ftanvar = tan(#fvar)
tanh
Returns the hyperbolic tangent of num_value.
Value type: float
Syntax: dst_var = tanh(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #ftanhvar = tanh(#fvar)
trunc
Returns a value that is num_value truncated to place_value digits after the decimal separator.
Value type: Same as num_value
Syntax: dst_var = trunc(num_value, place_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression.
●
place_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
dst_var = decimal, float, or integer variable.
Example: let #ftruncvar = trunc(#fvar, #fplace)
The transcendental functions sin, cos, tan, sinh, cosh, and tanh take their arguments in
radians. The functions asin, acos, and atan return radian values. To convert from radians to
degrees or degrees to radians, use the rad or deg functions as follows:
let #x = sin(rad(45)) ! Sine of 45 degrees.
let #y = deg(asin(#x))! Convert back to degrees.
If arguments or intermediate results passed to a numeric function are invalid for that function,
Production Reporting halts with an error message.
For example, passing a negative number to the sqrt function causes an error. Use the cond
function described in Table 52 to prevent division by zero or other invalid function or operator
argument values.
File-Related Functions
Note:
File-related functions return zero (0) if successful; otherwise, they return the system error code.
202 Production Reporting Command Reference
Table 48
File-Related Functions
Function
Description
delete
Deletes filename.
Syntax: stat_var = delete(filename)
●
filename = text literal, column, variable, or expression.
●
stat_var = decimal, float, or integer variable.
Example: let #fstatus = delete($filename)
exists
Determines if filename exists.
Syntax: stat_var = exists(filename)
●
filename = text literal, column, variable, or expression.
●
stat_var = decimal, float, or integer variable.
Example: let #fstatus = exists($filename)
filesize
Accepts the name of an external file and returns the number of bytes it contains. If the file size cannot be
determined, -1 is returned.
Syntax: dst_var = filesize(source_value)
●
source_value = text literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #size = filesize($file)
rename
Renames old_filename to new_filename.
Syntax: stat_var = rename(old_filename, new_filename)
●
old_filename = text literal, column, variable, or expression
●
new_filename = text literal, column, variable, or expression
●
stat_var = decimal, float, or integer variable
Example: let #fstatus = rename($old_filename, $new_filename)
String Functions
Table 49
String Functions
Function
Description
ascii
Returns the ASCII value for the first character in str_value.
Value type: float
Syntax: ascii_var = ascii(str_value)
●
str_value = date or text literal, column, variable, or expression
●
ascii_var = decimal, float, or integer variable
Example: let #fascii = ascii($filename)
asciic
Returns the numeric value for the first character (rather than byte) of the specified string.
Syntax: ascii_var = asciic(str_value)
LET 203
Function
Description
●
str_value = date or text literal, column, variable, or expression
●
ascii_var = decimal, float, or integer variable
Example: let #fascii = asciic($filename)
chr
Returns a string composed of a character with the ASCII value of num_value.
Syntax: dst_var = chr(num_value)
●
num_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to float.
●
dst_var = text variable
Example: let $svar = chr(#num)
edit
Formats source_value according to edit_mask and returns a string containing the result.
Syntax: dst_var = edit(source_value, edit_mask)
●
source_value = Any literal, column, variable, or expression
●
edit_mask = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $phone = edit(&phone, '(xxx) xxx-xxxxx') let $price = edit(#price, '999.99') let $today
= edit($date, 'DD/MM/YYYY')
fromhex
Accepts a TEXT variable that contains a string of hexadecimal characters (case insensitive) and
returns a BINARY variable. Each byte of BINARY data consists of two hexadecimal characters.
Syntax: dst_var = fromhex(source_value)
●
source_value = text literal, column, variable, or expression
●
dst_var = binary variable
Example: let $image = fromhex($hexchars)
instr
Returns the numeric position of sub_value in source_value or zero (0) if not found. The search
begins at offset offset_value.
Value type: float
Syntax: dst_var = instr(source_value, sub_value, offset_value)
●
source_value = date or text literal, column, variable, or expression
●
sub_value = text literal, column, variable, or expression
●
offset_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to integer.
●
dst_var = decimal, float, or integer variable
Example: let #offset = instr(&description, 'auto', 10)
instrb
Performs the same functionality as the instr function except that the starting point and returned
value are expressed in bytes rather than characters.
Syntax: dst_var = instrb(source_value, sub_value, offset_value)
●
source_value = date or text literal, column, variable, or expression
●
sub_value = text literal, column, variable, or expression
●
offset_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to integer.
204 Production Reporting Command Reference
Function
Description
●
dst_var = decimal, float, or integer variable
Example: let #offset = instrb(&description, 'auto', 10)
Note: instrb does not allow you to specify the target encoding. If you are using Unicode internally,
specify the target encoding with lengthp, lengtht, substrp, substrt, or transform.
isblank
Returns a value of one (1) if source_val is an empty string, null string, or composed entirely of
whitespace characters; otherwise, returns a value of zero (0).
Syntax: dst_var = isblank(source_value)
●
source_value = date or text literal, column, variable, or expression (character data type columns
only, no numeric data type columns)
●
dst_var = decimal, float, or integer variable
Example: let #blank = isblank(&description)
Note: isblank can only be used for character data type columns.
length
Returns the number of characters in source_value.
Syntax: dst_var = length(source_value)
●
source_value = date or text literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #length = length(&description)
lengthb
Same functionality as length except that the return value is expressed in bytes, rather than
characters.
Syntax: dst_var = lengthb(source_value)
●
source_value = date or text literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #length = lengthb(&description)
Note: lengthb does not allow you to specify the target encoding. If you are using Unicode
internally, specify the target encoding with lengthp, lengtht, substrp, substrt, or
transform.
lower
Converts the contents of source_value to lowercase and returns the result.
Syntax: dst_var = lower(source_value)
●
source_value = date or text literal, column, variable, or expression
●
dst_var = text variable
Example: let $lower = lower(&description)
lpad
Pads the source_value on the left to a length of length_value using pad_value and returns the
result.
Syntax: dst_var = lpad(source_value, length_value, pad_value)
●
source_value = date or text literal, column, variable, or expression
●
length_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to integer
●
pad_value = text literal, column, variable, or expression
●
dst_var = text variable
LET 205
Function
Description
Example: let $lpad = lpad($notice, 25, '.')
ltrim
Trims characters in source_value from the left until a character is not in set_value and returns the
result.
Syntax: dst_var = ltrim(source_value, set_value)
●
source_value = date or text literal, column, variable, or expression
●
set_value = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $ltrim = ltrim(&description, '.')
replace
Inspects the contents of source_value and replaces all occurrences of from_string with to_string
and returns the modified string.
Syntax: dst_var = replace(source_value, from_string, to_string)
●
source_value = date or text literal, column, variable, or expression
●
from_string = text literal, column, variable, or expression
●
to_string = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $replaced = replace($paragraph, ‘good’, ‘excellent’)
rpad
Pads the source_value on the right to a length of length_value using pad_value and returns the
result.
Syntax: dst_var = rpad(source_value, length_value, pad_value)
●
source_value = date or text literal, column, variable, or expression
●
length_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to integer.
●
pad_value = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $rpad = rpad($notice, 25, '.')
rtrim
Trims characters in source_value from the right until a character is not in set_value and returns the
result.
Syntax: dst_var = rtrim(source_value, set_value)
●
source_value = date, or text literal, column, variable, or expression
●
set_value = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $rtrim = rtrim(&description, '.')
substr
Extracts the specified portion source_value. The extraction begins at offset_value (origin is 1) for
a length of length_value characters.
Syntax: dst_var = substr(source_value, offset_value, length_value)
●
source_value = date or text literal, column, variable, or expression
●
offset_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to integer.
206 Production Reporting Command Reference
Function
Description
●
length_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to integer.
●
dst_var = text variable
Example: let $piece = substr(&record, 10, #len)
substrb
Has the same functionality as substr except that the starting point and length are expressed in
bytes, rather than in characters.
Syntax: dst_var = substrb(source_value, offset_value, length_value)
●
source_value = date or text literal, column, variable, or expression
●
offset_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to integer.
●
length_value = decimal, float, or integer literal, column, variable, or expression. The value is
always converted to integer.
●
dst_var = text variable
Example: let $piece = substrb(&record, 10, #len)
Note: substrb does not allow you to specify the target encoding. If you are using Unicode
internally, specify the target encoding with lengthp, lengtht, substrp, substrt, or
transform.
to_char
Converts source_value to a string, using maximum precision.
Syntax: dst_var = to_char(source_value)
●
source_value = decimal, float, or integer literal, column, variable, or expression
●
dst_var = text variable
Example: let $string = to_char(#number)
tohex
Accepts a BINARY variable and returns a string composed of uppercase hexadecimal characters
that represents the data. Each byte of BINARY data consists of two hexadecimal characters.
Syntax: dst_var = tohex(source_value)
●
source_value = binary literal, column, variable, or expression
●
dst_var = text variable
Example: let $hexchars = tohex($vargraphic)
to_multi_byte
Converts the specified string as follows: any occurrence of a single-byte character that also has a
multi-byte representation (numerals, punctuation, roman characters, and katakana) is converted.
Syntax: dst_var = to_multi_byte (source_value)
●
source_value = date or text literal, column, variable, or expression
●
dst_var = text variable
Example: let $multi = to_multi_byte (&text)
to_number
Converts source_value to a number.
Value type: float
Syntax: dst_var = to_number(source_value)
●
source_value = decimal, float, or integer literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
LET 207
Function
Description
Example: let #value = to_number($number)
to_single_byte
Converts the specified string as follows: any occurrence of a multi-byte character that also has a
single-byte representation (numerals, punctuation, roman characters, and katakana) is converted.
This function also converts a sequence of kana characters followed by certain grammatical marks
into a single-byte character that combines the two elements. For all other encodings, the string is
not modified.
Note: If you are running Production Reporting without the use of Unicode
(UseUnicodeInternal=FALSE in SQR.INI), this conversion only occurs when the database encoding
(ENCODING-DATABASE setting in SQR.INI) is set to SJIS, EBCDIK290, and EBCDIK1027.
Syntax: dst_var = to_single_byte (source_value)
●
source_value = date or text literal, column, variable, or expression
●
dst_var = text variable
Example: let $single = to_single_byte (&text)
translate
Inspects the contents of source_value and converts characters that match those in from_set to the
corresponding character in to_set and returns the translated string.
If to_set does not contain a matching translation character in the corresponding from_set, then
the original is left unchanged with regard to that character. If the translation string in to_set is
empty, then all characters specified in the from_set string are removed.
Syntax: dst_var = translate(source_value, from_set, to_set)
●
source_value = date or text literal, column, variable, or expression
●
from_set = text literal, column, variable, or expression
●
to_set = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $translated = translate(edit(&price, '999,999.99'), ',.', '.,')
upper
Converts the contents of source_value to uppercase and returns the result.
Syntax: dst_var = upper(source_value)
●
source_value = date or text literal, column, variable, or expression
●
dst_var = text variable
Example: let $upper = upper(&description)
Date Functions
Table 50
Date Functions
Function
Description
dateadd
Returns a date after adding (or subtracting) the specified units to the date_value.
Syntax: date_var = dateadd(date_value, units_value, quantity_value)
●
date_value = date variable or expression
●
units_value = text literal, column, variable, or expression. Valid units are 'year', 'quarter', 'week',
'month', 'day', 'hour', 'minute', and 'second'
208 Production Reporting Command Reference
Function
Description
●
quantity_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
date_var = date variable
Example: let $date = dateadd($startdate, 'day', 7.5)
datediff
Returns the difference between the specified dates expressed in units_value. The function returns a float
value. The result can be negative if the first date is earlier than the second date.
Syntax: dst_var = datediff(date1_value, date2_value, units_value)
●
date1_value = date variable or expression
●
date2_value = date variable or expression
●
units_value = text literal, column, variable, or expression. Valid units are 'year', 'quarter', 'week',
'month', 'day', 'hour', 'minute', and 'second'
●
dst_var = decimal, float, or integer variable
Example: let #diff = datediff($date1, $date2, 'hour')
datenow
Returns the current local date and time from the client machine.
Syntax: dst_var = datenow()
●
dst_var = date variable
Example: let $date = datenow()
datetostr
Converts the date date_value to a string in the format format_mask.
Syntax: dst_var = datetostr(date_value, [format_mask])
●
date_value = date variable or expression
●
format_mask = text literal, column, variable, or expression. DATE can be used to specify
DATE-EDIT-MASK from the current locale. If this argument is not specified, then the format specified
by SQR_DB_DATE_FORMAT is used. If this has not been set, then the first database-dependent
format in Table 61, “Default Formats by Database,” on page 251 is used.
●
dst_var = text variable
Example: let $formdate = datetostr($date, 'Day Mon DD, YYYY') let $localedate = datetostr($date, DATE)
strtodate
Converts the string source_value in the format format_mask to a date type.
Syntax: dst_var = strtodate(source_value [, format_mask])
●
source_value = text literal, column, variable, or expression
●
format_mask = text literal, column, variable, or expression that describes the exact format of the
source_value. DATE can specify the DATE-EDIT-MASK setting from the current locale. If not
specified, then source_value must be in the format specified by SQR_DB_DATE_FORMAT, one of
the database-dependent formats (see Table 61, “Default Formats by Database,” on page 251), or
the database-independent format 'SYYYYMDD[HH24[MI[SS[NNNNNN]]]]'. Valid format codes are
specified in Table 57 on page 245. See “PRINT” on page 239 for information regarding the default
date-time components as a result of converting an incomplete date.
●
dst_var = date variable
Example: let $date = strtodate($str_date, 'Mon DD, YYYY') let $date = strtodate($str_date, DATE)
LET 209
Unicode Functions
Note:
Unicode functions are only allowed when converting to Unicode internally.
Table 51
Unicode Functions
Function
Description
lengthp
Returns the string length in print position. Half-width characters take one print position, full-width
characters take two, and combining characters take zero.
Syntax: dst_var = lengthp(source_value)
●
source_value = date or text literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #printLen = lengthp($string))
lengtht
Returns the string length in bytes when converted (transformed) to a specified encoding. Encoding names
are the same as those allowed in OPEN or in SQR.INI. String and column variables can be used in place
of the literal encoding name.
Syntax: dst_var = lengtht(source_value, encoding_value)
●
source_value = date or text literal, column, variable, or expression
●
encoding_value = text literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #sjisLen = lengtht($string, ‘shift-jis’)
substrp
(Returns a substring of a given string starting at a specified print position into the string and of a specified
print length. When #printPos is in the middle of a full-width character, Production Reporting “rounds up”
to the next character. When #printLen ends in a partial character, Production Reporting “rounds down”
to the previous character.
Syntax: dst_var = substrb(source_value, offset_value, length_value)
●
source_value = date or text literal, column, variable, or expression.
●
offset_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to integer.
●
length_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to integer.
●
dst_var = text variable
Example: let $sub = substrp(&string, #printPos, #printlen)
substrt
Returns a Unicode string equivalent to a byte level substring of a given string after converting
(transforming) the given string to a given encoding. If the substring of the converted string yields a partial
character, that character will be truncated.
Syntax: dst_var = substrb(source_value, offset_value, length_value, encoding_value))
●
source_value = date or text literal, column, variable, or expression
●
offset_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to integer.
210 Production Reporting Command Reference
Function
Description
●
length_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to integer.
●
encoding_value = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $sjisPrep = SUBSTRT ($string, 1, 10, ‘Shift-JIS’)
transform
Returns a Unicode string which is specified transform of a given string.
Syntax: dst_var = transform (source_value, transform_value)
●
source_value = date or text literal, column, variable or expression
●
transform_value = text literal, column, variable, or expression
●
dst_var - text variable
Example: let $hiragana = transform (&string, ‘ToHiragana’)
Production Reporting supports the following transforms:
(***Source: Rosette API Reference)
●
ToLowercase—Transforms all uppercase Latin letters to lowercase (this includes both "half-width"
and "full-width" Latin characters).
●
ToUppercase—Transforms all lowercase Latin letters to uppercase (this includes both "half-width"
and "full-width" Latin characters).
●
ToFullwidth—Transforms all half-width characters that also have a full-width representation to their
full-width form.
Characters with full-width representations are: Roman alphabet characters (A-z), digits (0-9),
Japanese katakana characters, and the most commonly used punctuation characters (including
Space).
●
ToHalfwidth —ransforms all full-width characters that also have a half-width representation to their
half-width form.
Characters with half-width representations are: Roman alphabet characters (A-z), digits (0-9),
Japanese katakana characters, and the most commonly used punctuation characters (including
Space).
●
ToHiragana—Transforms all full-width katakana characters to hiragana.
To convert half-width katakana characters to hiragana, you must first convert the characters to fullwidth using the FullWidth transform.
●
ToParagraphSeparator—Standardizes the line/paragraph separators in the text according to the
following standards:
Standard Code Point Line/Paragraph Separator
Windows 0x0D0A 0x0D0A
Macintosh 0x0D ToCR
UNIX 0x0A ToLF
Unicode U+2028 ToLineSeparator
Unicode U+2029 ToParagraphSeparator
EBCDIC 0x15 ToEBCDICNewLine
●
HankakuKatakanaToZenkaku—Converts half-width (hankaku) Japanese katakana characters to the
full-width (zenkaku) form.
LET 211
Function
Description
This conversion is almost identical to ToFullwidth, except that it automatically composes and
combines katakana "accent" marks (dakuten and handakuten) appropriately, whereas ToFullwidth
does not provide any special treatment for these marks.
●
ZenkakuKatakanaToHankaku—Converts full-width (zenkaku) Japanese katakana characters to the
half-width (hankaku) form.
This conversion is almost identical to ToHalfwidth, except that it automatically decomposes and
separates katakana "accent" marks (dakuten and handakuten) appropriately, whereas ToHalfwidth
does not provide any special treatment for these marks.
unicode
Returns a Unicode string from the string of hexadecimal values provided. The syntax of the literal for
UNICODE is
'[whitespace | U+ | \u]XXXX…'
where X is a valid hexadecimal digit: 0-9, a-f, or A-F. The hexadecimal value will always be in big-endian
form.
Syntax: dst_var = unicode(source_value)
●
source_value = text literal, column, variable or expression
●
dst_var = text variable
Example: let $uniStr = unicode ('U+5E73 U+2294')
Miscellaneous Functions
Note:
Miscellaneous functions return a string value unless otherwise indicated.
Table 52
Miscellaneous Functions
Function
Explanation
array
Returns a pointer to the starting address of the specified array field. The value returned can only
be used by a user-defined function. See printarray in UFUNC.C.
Syntax: array_var = array(array_name, field_name)
●
array_name = text literal, column, variable, or expression
●
field_name = text literal, column, variable, or expression
●
array_var = text variable
Example: let #fstatus = printarray(array('products', 'name'), 10, 2, 'c')
command_line
Returns command line arguments passed to SQR (or SQRT).
Syntax: dst_var = command_line( )
●
dst_var = text variable
Example: let $cmdline = command_line( )
cond
Returns y_value if x_value is nonzero (0); otherwise, returns z_value. If y_value is numeric, then
z_value must also be numeric; otherwise, date and textual arguments are compatible. If either
212 Production Reporting Command Reference
Function
Explanation
y_value or z_value is a date variable, column, or expression, a date is returned. The return value
of the function depends on which value is returned.
Syntax: dst_var = cond(x_value, y_value, z_value)
●
x_value = decimal, float, or integer literal, column, variable, or expression. The value is always
converted to float.
●
y_value = Any literal, column, variable, or expression
●
z_value = Any literal, column, variable, or expression
●
dst_var = Any variable
Example: let #avg = #total / cond(&rate != 0, &rate, 1)
getenv
Returns the value of the environment variable. If the environment variable does not exist, an empty
string is returned.
Syntax: dst_var = getenv(env_value)
●
env_value = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $myuser = getenv('USER')
getfilemapname
Returns the mapped filename. In Oracle Enterprise Performance Management Workspace, Fusion
Edition, if the filename has a mapped equivalent the mapped filename is returned; otherwise, the
filename is returned unchanged. Outside of EPM Workspace, the filename is returned unchanged.
Syntax: dst_var = getfilemapename(source_value)
●
source_value = text literal, column, variable, or expression
●
dst_var = text variable
Example: let $realfile = getfilemapname('data.fil' )! get real filename is run under EPM Workspace
let #Status = System('cp ' || $RealFile || ' /tmp') ! Copy to temp directory
isnull
Returns one (1) if source_val is null; otherwise, returns zero (0).
Syntax: dst_var = isnull(source_value)
●
source_value = date or text literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #null = isnull($date)
isnumber
Returns one (1) if source_value is a number; otherwise, returns zero (0). A number is defined to
be of the form: [Sign] [Digits] [.Digits] [E] e [Sign] Digits]. Leading and trailing blanks are ignored.
Syntax: dst_var = isnumber(source_value)
●
source_value = text literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #isnumber = isnumber($string)
nvl
Returns y_value if the x_value is null; otherwise, returns x_value. If x_value is numeric, y_value
must also be numeric; otherwise, date and textual arguments are compatible. In any case, the
x_value determines the type of expression returned. The return value of the function depends on
which value is returned.
Syntax: dst_var = nvl(x_value, y_value)
●
x_value = Any literal, column, variable, or expression
LET 213
Function
Explanation
●
y_value = Any literal, column, variable, or expression
●
dst_var = Any variable
Example: let $city = nvl(&city, '-- not city --')
If x_value is a date and y_value is textual, then y_value is validated according to the following
rules:
range
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting uses
the format specified by SQR_DB_DATE_FORMAT, one of the database-dependent formats
(see Table 61, “Default Formats by Database,” on page 251), or the database-independent
format 'SYYYYMDD[HH24[MI[SS[NNNNNN]]]]'.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT, or the format in Table 62, “DATE Column Formats,” on page
252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT, or the format in Table 63, “TIME Column Formats,” on page
252.
Returns one (1) if x_value is between y_value and z_value; otherwise, returns zero (0). If the first
argument is text or numeric, the other arguments must be of the same type. If the first argument
is a date, the remaining arguments can be dates and/or text. It is also possible to perform a date
comparison on a mix of date and text arguments, for example, where x_value is a date and y_value
and z_value are text arguments. In a comparison of this sort, y_value must represent a date that
is earlier than that of z_value.
Syntax: dst_var = range(x_value, y_value, z_value)
●
x_value = Any literal, column, variable, or expression
●
y_value = Any literal, column, variable, or expression
●
z_value = Any literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #inrange = range(&grade, 'A', 'D') let #inrange = range($date, $startdate, $enddate)
let #inrange = range($date, $startdate, '15-Apr-97') let #inrange = range(#price, #low, #high)
If x_value is a date and y_value and/or z_value is textual, then y_value and/or z_value is validated
according to the following rules:
roman
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting uses
the format specified by SQR_DB_DATE_FORMAT, one of the database-dependent formats
(see Table 61, “Default Formats by Database,” on page 251), or the database-independent
format 'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT, or the format inTable 62, “DATE Column Formats,” on page
252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT, or the format in Table 63, “TIME Column Formats,” on page
252.
Returns a string that is the character representation of source_value expressed in lower case
roman numerals.
Syntax: dst_var = roman(source_value)
●
source_value = text literal, column, variable, or expression.
●
dst_var = text variable
214 Production Reporting Command Reference
Function
Explanation
Example: let $roman = roman(#page-count)
wrapdepth
Returns the number of print lines required by source_value. See the WRAP argument in PRINT for
detailed descriptions of the parameters to this function. This function returns a float value.
Syntax: dst_var = wrapdepth(source_value, wrap_width, line_height, on, strip)
●
source_value = text literal, column, variable, or expression wrap_width = decimal, float, or
integer literal, column, variable, or expression
●
line_height = decimal, float, or integer literal, column, variable, or expression
●
on = text literal, column, variable, or expression.
●
strip = text literal, column, variable, or expression
●
dst_var = decimal, float, or integer variable
Example: let #depth = wrapdepth(&description,40,1,'<13>','')
Writing Custom Functions
In addition to using Production Reporting’s built-in functions, you can write your own functions
in C using the supplied source file UFUNC.C (or EXTUFUNC.C on Windows). If the C routine
accesses a C++ routine, rename the file to UFUNC.CPP. (This enables the C++ compiler to
recognize that it is a C++ source file.) The supplied UFUNC.C source file is compatible with
both C and C++ compilers.
You can pass any number if arguments to your function. Values can be returned by the function
or passed back in variables. Arguments and return values can either be numeric, single byte
character strings, or UTF-8 encoded character strings. The specifics on how to specify the various
argument and return types are explained in the UFUNC.C module. When using UTF-8 encoded
strings, set UseUnicodeInternal=TRUE in SQR.INI.
After editing and recompiling the UFUNC.C module, you must recreate the Production
Reporting executables. For UNIX, execute the sqrmake script located in the lib directory. For
Windows, use the sqrext.mak make file located in the lib directory to recreate the DLL
module.
When adding a new user-defined function to UFUNC.C, follow these rules:
●
●
For routines that return a string value, define the routine to take the following arguments:
❍
(int) Number of arguments
❍
(char *) or (double *) Array of argument pointers, to either char[] or double.
❍
(char *) Address of the result string. If unchanged, the function returns a NULL string.
❍
(int) Maximum length of the result string, in bytes.
For routines that return a numerical value, define the routine to take the following
arguments:
❍
(int) Number of arguments
❍
(char *) or (double *) Array of argument pointers, to either char[] or double.
❍
(double *) Address of the result value. If unchanged, the function returns a zero.
LET 215
Following is an example of how to add a user-defined function to Production Reporting so that
is can be invoked using LET, IF, or WHILE. The example adds a new function called rand, which
returns a random number. The function accepts a single parameter used as the seed to start a
new sequence of numbers. If the seed is zero, the same sequence is used.
To add the rand function to the UFUNC.C module, make the following modifications:
1. Add the prototype for the function.
LINKAGE void sqr_ufunc_rand CC_ARGS((int, double *[], double *));
2. Add the function name to the declaration table.
●
The name in the table must be in lower case; however, you can reference it in either
upper case or lower case in your Production Reporting program.
●
The name of the function called from Production Reporting is rand.
●
The return type is n for numeric, the number of arguments is “1”, and the argument
type is n for numeric.
●
The function name in the UFUNC.C module is sqr_ufunc_rand.
●
You must enter the characters “PVR” before the function name.
Name
Return_Type
Number of Arguments
Arg_Types
Function
{(char *)"max",
'n',
0,
(char *)"n",
PVR sqr_ufunc_max},
{(char *)"split",
'n',
0,
(char *)"C",
PVR sqr_ufunc_split},
{(char
*)"printarray",
'n',
4,
(char *)"cnnc",
PVR
sqr_ufunc_printarray}
,
{(char *)"system",
'n',
1,
(char *)"c",
PVR sqr_ufunc_sys},
{(char *)"sleep",
'n',
1,
(char *)"n",
PVR sqr_ufunc_sleep},
{(char *)"rand",
'n',
1,
(char *)"n",
PVR sqr_ufunc_rand},
{(char *)"unitest",
'u',
2,
(char *)"uU",
PVR
sqr_ufunc_unitest},
/* Last entry must be NULL -- do not change
*/
{(char *)"", '\0', 0, (char *)"", 0}
3. At the end of the UFUNC.C module add the sqr_ufunc_rand routine.
/*
* RandNumb function -- Get random number and optionally set seed
*
* Usage: LET #Number = rand(#Seed)
*
*/
LINKAGE void sqr_ufunc_rand CC_ARGL((argc, argv, result))
CC_ARG(int, argc)
/* Number of actual arguments */
CC_ARG(double *, argv[])
/* Pointers to arguments */
216 Production Reporting Command Reference
CC_LARG(double *, result)
/* Where to store result */
{
#if defined(UNIX)
if (*argv[0] > 0)
/* If seed > 0 then set it */
srand48((unsigned int)*argv[0]);
*result = drand48();
/* Get random number */
#else
if (*argv[0] > 0)
srand((unsigned int)*argv[0]);
*result = (double)rand()/(double)(RAND_MAX);
#endif
return;
}
4. After you make these modifications, compile the UFUNC.C module and recreate the
Production Reporting executables.
The following is an example of a simple Production Reporting program that uses the newly
added function:
BEGIN-PROGRAM
DO Get-Random-Number
DO Process-Calculations
END-PROGRAM
BEGIN-PROCEDURE Get-Random-Number
LET #Seed = 44
LET #Ran = RAND(#Seed)
END-PROCEDURE
BEGIN-PROCEDURE Process-Calculations
.
.
.
END-PROCEDURE
LOAD-LOOKUP
Function
Loads an internal table with columns from the database. Allows for quick search using
LOOKUP.
Syntax
In the SETUP section:
LOAD-LOOKUP
NAME=lookup_table_name
TABLE=database_table_name
KEY=key_column_name
RETURN_VALUE=return_column_name
[ROWS=initial_row_estimate_int_lit]
[EXTENT=size_to_grow_by_int_lit]
[WHERE=where_clause_txt_lit]
LOAD-LOOKUP 217
[SORT=sort_mode]
[QUIET]
[SCHEMA=schema_txt_lit]
[
PROCEDURE=proc_txt_lit
[PARAMETERS=({{arg1 [IN|INOUT]}|NULL} [[,argi
NULL] ... )]
(or)
COMMAND=command_txt_lit
(or)
GETDATA=getdata_txt_lit
]
[{FROM-ROWSETS=({m|m-n|m-|-n} [,...]}|{ALL})}|
{FROM-PARAMETER=parameter_txt_lit}]
[IN|INOUT]]|
In the body of the report:
LOAD-LOOKUP
NAME=lookup_table_name
TABLE=database_table_name
KEY=key_column_name
RETURN_VALUE=return_column_name
[ROWS=initial_row_estimate_lit|_var|_col]
[EXTENT=size_to_grow_by_lit|_var|_col]
[WHERE=where_clause_txt_lit|_var|_col]
[SORT=sort_mode]
[QUIET]
[SCHEMA={txt_lit|_var}]
[
PROCEDURE={txt_lit|_var}
[PARAMETERS=({{arg1 [IN|INOUT]}|NULL} [[,argi
NULL] ... )]
(or)
COMMAND={txt_lit|_var}
(or)
GETDATA={txt_lit|_var}
]
[{FROM-ROWSETS=({m|m-n|m-|-n} [,...]}|{ALL})}|
{FROM-PARAMETER={txt_lit|_var}}]
[IN|INOUT]]|
Note:
The following LOAD-LOOKUP elements are specific to Production Reporting DDO:
●
SCHEMA
●
PROCEDURE
●
COMMAND
●
GETDATA
●
FROM ROWSETS
●
FROM PARAMETER
The following LOAD-LOOKUP elements are not supported (processed but not used) in Production
Reporting DDO:
218 Production Reporting Command Reference
●
TABLE
●
WHERE
●
SORT-DC
●
SORT-DI
Arguments
NAME
Name of the lookup table referenced in LOOKUP.
TABLE
Name of the table in the database, where the KEY and RETURN_VALUE columns or expressions
are stored (not supported for DDO).
KEY
Name of the column used as the key in the array that is used for looking up the information.
Keys can be character, date, or numeric data types. If numeric, Production Reporting permits
only integers 12 digits or less for the KEY column. Keys can be any database-supported
expression. See the RETURN_VALUE argument.
RETURN_VALUE
Name of the column (expression) returned for each corresponding key.
You can combine several columns into an expression if you need several fields returned for each
lookup. You can do this by concatenating columns. (This is not supported for DDO.)
The following example is for ORACLE. See your database manual for the correct syntax.
RETURN_VALUE='name||''-''||country||''-''||population'
ROWS
(Optional) Initial size of the lookup table. If not specified, a value of 100 is used.
EXTENT
(Optional) Amount to increase the array when it becomes full. If not specified, a value of 25%
of the ROWS value is used.
WHERE
WHERE clause used to select a subset of all the rows in the table. If specified, the selection begins
after the word WHERE. The WHERE clause is limited to 255 characters (not supported for DDO).
SORT
Sorting method.
●
DC—Database sorts data, case-sensitive sort (not supported for DDO)
●
DI—Database sorts data, case-insensitive sort (not supported for DDO)
LOAD-LOOKUP 219
●
SC—Production Reporting sorts data, case-sensitive sort
●
SI—Production Reporting sorts data, case-insensitive sort
The default is SC or the method specified by the -LL command-line flag. The DI method is
applicable only to databases that provide this feature and have been installed in that manner.
QUIET
Suppresses the message Loading lookup array... when the command executes. The warning
message stating the number of duplicate keys found is also suppressed.
SCHEMA (DDO only)
Identifies the location in the datasource of the object being queried. You can enter the following
options under SCHEMA:
●
PROCEDURE—Name of datasource-stored procedure to execute. If the datasource is SAP R/
3, this procedure is a BAPI. The name may include spaces.
●
PARAMETERS—Scalar and/or list variables of the form list_var|num_lit|txt_lit|
txt_var| um_var|any_col. If you do not specify the keywords IN or INOUT, IN is the
default. Specify all parameters in order; leaving any parameters unnamed causes a syntax
error. To ignore a parameter, fill its position with the keyword NULL. This results in a Null
value for that parameter position.
●
COMMAND—Text string passed to the datasource without modification by Production
Reporting. This string can include embedded Production Reporting variables.
●
GETDATA—Supports the Java (DDO) GetData paradigm for data access.
FROM-ROWSETS (DDO only)
Special case addition to the LOAD-LOOKUP syntax. Available for use with all datasource types,
including SAP R/3 and JDBC. Names the rowset(s) from which to retrieve the column variables.
For multiple row sets, use identical column name/type signatures. Row set numbers must be
sequential from left-to-right within the parentheses, and must not overlap as in this example:
(1-3, 2-4). Numeric literals or #variables are allowed.
In the FROM ROWSETS argument, “m” and “n” are integer values (1, 2, 3, 4, 5). “m-n” is 3-5
(rowsets 3, 4, 5). “m-” is 4- (rowsets 4, 5). “-n” is -3 (rowset 1, 2, 3).
FROM-PARAMETER (DDO only)
Special case addition to the LOAD-LOOKUP syntax. Available only for SAP R/3 datasources.Use
only in conjunction with the PROCEDURE keyword. This argument names an output parameter
containing one or more rows from which the column variables are retrieved.
Note:
This is a similar concept to the PARAMETERS = statement in DECLARE-CONNECTION and
ALTER-CONNECTION, execpt that the properties specified here alter the flow of returned
information, as opposed to simply setting login properties. Can be used in conjunction with any
data-access model (Procedure, Command, Getdata). An application of this statement would be
220 Production Reporting Command Reference
in the MDB setting, where it might be used to specify such things as Level, Generation, or IncludeColumn. For example, PROPERTIES = ( ‘SetColumn’ = 5 )
Description
Use LOAD-LOOKUP with one or more LOOKUP commands.
LOAD-LOOKUP retrieves two columns from the database, the KEY field and the RETURN_VALUE
field. Rows are ordered by KEY and stored in an array.
LOAD-LOOKUP commands specified in the SETUP section are always loaded and cannot reference
variables for the ROWS, EXTENT, and WHERE arguments.
When you use LOOKUP, Production Reporting searches the array (with a “binary” search) to find
the RETURN_VALUE corresponding to the KEY referenced in the lookup.
Usually this type of lookup can be done with a database join, but joins take substantially longer.
However, if your report is small and the number of rows joined is small, using a lookup table
can be slower, since the entire table has to be loaded and sorted for each report run.
By default, Production Reporting lets the database sort the data. This works fine if the database
and Production Reporting both use the same character set and collating sequence. The SORT
argument allows you to specify the sorting method if this is not true. Additionally, if the machine
that Production Reporting is running on is faster than the machine the database is running on,
letting Production Reporting perform the sort could decrease the execution time of the report.
The only limit to the size of a lookup table is the amount of memory your computer has available.
You could conceivably load an array with many thousands of rows. The binary search is
performed quickly regardless of how many rows are loaded.
Except for the amount of available memory, there is no limit to the number of lookup tables
that can be defined.
Examples
The following command loads the array states with the columns abbr and name from the
database table stateabbrs where country is “USA.”
load-lookup
name=states
rows=50
table=stateabbrs
key=abbr
return_value=name
where=country='USA'
The preceding array is used in the example for LOOKUP to retrieve the full text of a state name
from the abbreviation.
The following example uses LOOKUP to validate data entered by a user using INPUT:
get_state:
input $state 'Enter state abbreviation'
uppercase $state
lookup states $state $name
if $name = '' ! Lookup didn't find a match
LOAD-LOOKUP 221
show 'No such state.'
goto get_state
end-if
Surround any command argument with embedded spaces by single quotes, as shown here:
where='country=''USA'' and region = ''NE'''
The entire WHERE clause is surrounded by quotes. The two single quotes around USA and NE
are translated to one single quote in the SQL statement.
The following example uses joins in LOAD-LOOKUP by including two tables in TABLE and the
join in WHERE:
load-lookup
name=states
rows=50
sort=sc
table='stateabbrs s, regions r'
key=abbr
return_value=name
where='s.abbr = r.abbr and r.location = ''ne'''
The following example uses multiple columns as the KEY for LOAD-LOOKUP:
begin-program
load-lookup
name=emp
table=emp
key='ename||'',''||job_title'
return_value=comm
do main
end-program
begin-procedure main
lookup emp 'Martin,Salesperson' $comm
print $comm (+1,1)
end-procedure
See Also
LOOKUP
LOOKUP
Function
Searches a lookup table (an array) for a key value and returns the corresponding text string.
Syntax
LOOKUP lookup_table_name {key_any_lit|_var|_col}
{ret_txt_var|_date|_var}
222 Production Reporting Command Reference
Arguments
lookup_table_name
Name of the lookup table. This table must be previously loaded with LOAD-LOOKUP.
key_any_lit|_var|_col
Key used for the lookup.
ret_txt_var|_date|_var
String variable into which to return the corresponding value.
Description
Speeds up processing for long reports. For example, to print the entire state name rather than
the abbreviation, use LOAD-LOOKUP followed by LOOKUP.
Examples
The following example works in conjunction with the example for LOAD-LOOKUP:
lookup
states
&state_abbr
$state_name
This example searches the states lookup table for a matching &state_abbr value; if found,
it returns the corresponding state name in $state_name. If not found, a null is placed in
$state_name.
See Also
LOAD-LOOKUP
LOWERCASE
Function
Converts a text variable to lowercase.
Syntax
LOWERCASE txt_var
Arguments
txt_var
Text variable to convert to lowercase.
Description
Converts the contents of a text variable to lowercase.
LOWERCASE 223
Examples
input $answer 'Type EXIT to stop'
lowercase $answer
! Allows user to enter upper or lowercase.
if $answer = 'exit'
...etc...
See Also
The lower function listed in Table 52, “Miscellaneous Functions,” on page 212.
MBTOSBS
Function
Converts a double-byte string to its single-byte equivalent.
Syntax
MBTOSBS {txt_var}
Arguments
txt_var
String to convert.
Description
Converts the specified string as follows: Any occurrence of a double-byte character that also has
a single-byte representation (numerals, punctuation, roman characters, and katakana) is
converted.
See Also
The TO_SINGLE_BYTE function of LET
MOVE
Function
Moves one field to another field and optionally edits the field.
Syntax
MOVE {src_any_lit|_var|_col} TO dst_any_var
[[:$]format_mask|NUMBER|MONEY|DATE]
Arguments
src_any_lit|_var|_col
224 Production Reporting Command Reference
Specifies any source column, variable, or literal.
Note:
A date can be stored in a date variable or column, or a string literal, column, or variable. When
using a date format_mask or the keyword DATE with MOVE, the source, if a string literal,
column, or variable, must be in the format specified by SQR_DB_DATE_FORMAT, one of the
database-dependent formats in Table 61, “Default Formats by Database,” on page 251, or the
database-independent format 'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'.
When numerical precision is important, use LET. When no edit mask is specified, MOVE uses the
6 digit precision default mask.
dst_any_var
A destination variable.
format_mask
Optional format mask. (see “Edit Masks” on page 247)
NUMBER
Formats src_any_lit|_var|_col with the NUMBER-EDIT-MASK from the current locale. Not legal
with date variables. (see “Edit Masks” on page 247)
MONEY
Formats src_any_lit|_var|_col with the MONEY-EDIT-MASK from the current locale. Not legal
with date variables. (see “Edit Masks” on page 247)
DATE
Formats src_any_lit|_var|_col with the DATE-EDIT-MASK from the current locale. Not legal
with numeric variables. (see “Edit Masks” on page 247)
Description
Moves the source field to the destination field. Optionally, you can reformat the field using the
format_mask argument. Source and destination fields can be different types, numeric, text, or
date. MOVE is also useful for converting from one type to another; however, date and numeric
variables are incompatible.
When a date variable or column is moved to a string variable, the date is converted according
to the following rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
MOVE 225
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
Finally, as this example shows, the edit mask can be contained in a string variable.
Examples
This example illustrates the various features of MOVE:
The following code:
!
! Convert a string in place
!
move '123456789' to $ssn
move $ssn to $ssn xxx-xx-xxxx
show '$SSN = ' $ssn
Produces the following output:
$SSN = 123-45-6789
The following code:
!
! Convert a number to a string using an edit mask
!
move 1234567.89 to #value
move #value to $value 999,999,999.99
show '$Value = ' $value
Produces the following output:
$Value =
1,234,567.89
The following code:
!
! Convert a number to a string using a variable edit mask
!
move 123 to #counter
move '099999' to $mask
move #counter to $counter :$mask
show '$Counter = ' $counter
Produces the following output:
$Counter = 000123
The following code:
!
! Convert a number to a string using the default edit mask
226 Production Reporting Command Reference
!
! Production Reporting, by default, ouputs six digits of precision.
! If you require more or less precision, specify an edit mask.
!
move 123.78 to #defvar
move #defvar to $defvar
show '$DefVar = ' $defvar
Produces the following output:
$DefVar = 123.780000
The following code:
!
! Convert the number to a string using the locale default
! numeric edit mask
!
alter-locale number-edit-mask = '99,999,999.99'
move 123456.78 to #nvar
move #nvar to $nvar number
show '$NVar = ' $nvar
Produces the following output:
$NVar =
123,456.78
The following code:
!
! Convert the money value to a string using the locale default
! money edit mask
!
alter-locale money-edit-mask = '$9,999,999.99'
move 123456.78 to #mvar
move #mvar to $mvar money
show '$MVar = ' $mvar
Produces the following output:
$MVar = $
123,456.78
The following code:
!
! Convert the date column to a string using the locale default
! date edit mask
!
begin-select
dcol
from tables
end-select
alter-locale date-edit-mask = 'Mon-DD-YYYY'
move &dcol to $dvar date
show '$DVar = ' $dvar
Produces the following output:
$DVar = Jan-01-1999
MOVE 227
The following code:
!
! Reset date to first day of the month
! ($date1 and $date2 have been defined as date variables)
!
let $date1 = datenow()
move $date1 to $date2 'MMYYYY'
show '$Date2 = ' $date2 edit 'MM/DD/YY HH:MI'
Produces the following output if the report was run in October of 1995.
$Date2 = 10/01/95 00:00
The following code:
!
! Convert date to a string
! ($date1 has been defined as a date variable)
!
move $date1 to $str_date 'DD-MON-YYYY'
show '$Str_Date = ' $str_date
Produces the following output.
$Str_Date = 01-DEC-1995
The following code:
!
! Convert string (in partial format of SYYYYMMDDHHMISSNNN) to a
! date
!
move '19951129' to $date1
show '$Date1 = ' $date1 edit 'Mon DD YYYY HH:MI'
Produces the following output.
$Date1 = Nov 29 1995 00:00
See Also
●
LET for information on copying, editing, or converting fields
●
The EDIT parameter of PRINT for edit mask descriptions
●
ALTER-LOCALE for descriptions of NUMBER-EDIT-MASK, MONEY-EDIT-MASK, and
DATE-EDIT-MASK
●
PRINT for the default date-time components as a result of moving an incomplete date to a
date variable
MULTIPLY
Function
Multiplies one number by another.
228 Production Reporting Command Reference
Syntax
MULTIPLY {src_num_lit|_var|_col} TIMES dst_num_var
[ROUND=nn]
Arguments
src_num_lit|_var|_col
Numeric source column, variable, or literal.
dst_num_var
Destination numeric variable.
ROUND
Rounds the result to the specified number of digits to the right of the decimal point. For float
variables, this value can be from 0 to 15. For decimal variables, this value can be from 0 to the
precision of the variable. For integer variables, this argument is not appropriate.
Description
MULTIPLY multiplies the first field by the second and places the result into the second field.
When dealing with money-related values (dollars and cents), use decimal variables rather than
float variables. Float variables are stored as double precision floating point numbers, and small
inaccuracies can appear when multiplying many numbers in succession. These inaccuracies can
appear due to the way different hardware and software implementations represent floating point
numbers.
Examples
multiply
multiply
&quantity times #cost
1.5 times #result
See Also
●
ADD
●
LET for a discussion of complex arithmetic expressions
NEW-PAGE
Function
Writes the current page and begins a new one.
Syntax
NEW-PAGE [erase_from_line_num_lit|_var|_col]
NEW-PAGE 229
Arguments
erase_from_line_num_lit|_var|_col
Numeric column, variable, or literal for line printers.
Description
For line printers, NEW-PAGE can optionally erase the old page starting at a specified line. After
this action is performed, the location on the page is unchanged—that is, the value of
#CURRENT-LINE is the same. The default action is to erase the entire page and reset
#CURRENT-LINE to its initial value for the page.
In reports where an overflow page is needed, sometimes it is useful to retain information from
the first page on succeeding pages.
Each NEW-PAGE occurrence adds a form feed character to the output file unless you specify
FORMFEED=NO in the DECLARE-LAYOUT for this program in the SETUP section.
Note:
A NEW-PAGE automatically occurs if page overflow is detected. Tabular reports do not require
explicit NEW-PAGE commands; use NEXT-LISTING instead.
Examples
new-page 5
! Write current page, then erase it beginning at line 5.
NEW-REPORT
Function
Closes the current report output file and opens a new one with the specified filename.
Syntax
NEW-REPORT {report_filename_txt_lit|_var|_col}
Arguments
report_filename_txt_lit|_var|_col
A new file name.
Description
NEW-REPORT is normally used with single reports. When used with multiple report declarations,
NEW-REPORT affects the current report only.
The internal page counter is reset to 1 when NEW-REPORT is executed.
230 Production Reporting Command Reference
Note:
Production Reporting does not actually create a report output file until the first page is
completed. It is possible that NEW-REPORT will not create a new file, for example, if no data
is selected and nothing is printed on the page.
Examples
The following example shows the NEW-REPORT command:
new-report
new-report
'rep2a.lis'
$next-file
You can assign the report filename within an Production Reporting report by issuing
NEW-REPORT before printing. You might even prompt for the filename to use, as shown here:
begin-report
input $file 'Enter report filename'
new-report $file
...
After NEW-REPORT executes, the reserved variable $sqr-report updates to reflect the new
report name.
See Also
●
DECLARE-REPORT and USE-REPORT
●
The -F command-line flag
NEXT-COLUMN
Function
Sets the current position on the page to the next column defined with COLUMNS.
Syntax
NEXT-COLUMN [AT-END={NEWLINE|NEWPAGE}]
[GOTO-TOP={num_lit|_var|_col}]
[ERASE-PAGE={num_lit|_var|_col}]
Arguments
AT-END
Takes effect if the current column is the last one defined when NEXT-COLUMN is invoked.
GOTO-TOP
Causes the current line in the next column to be num_lit|_var|_col. This argument is useful when
printing columns down the page.
NEXT-COLUMN 231
ERASE-PAGE
Where to begin erasing the page when an AT-END=NEWPAGE occurs.
Examples
The following example prints columns across the page:
columns 10 50! Define two columns
begin-select
name
(0,1,20)
phone (0,+3,0) edit (xxx)bxxx-xxxx
next-column at-end=newline ! Print names across the page
order by name
! from phonelist within two columns.
end-select
The following example prints columns down the page:
columns 10 50
move 55 to #bottom_line
begin-select
name
(0,1,20)
phone (0,+3,0) edit (xxx)bxxx-xxxx
if #current-line >= #bottom_line
next-column goto-top=1 at-end=newpage
else
position (+1,1)
end-if
from phonelist
order by name
end-select
See Also
COLUMNS and USE-COLUMN
NEXT-LISTING
Function
Ends the current set of detail lines and begins another.
Syntax
NEXT-LISTING[NO-ADVANCE]
[SKIPLINES={num_lit|_var|_col}]
[NEED={num_lit|_var|_col}]
Arguments
NO-ADVANCE
Suppresses any line movement when no printing has occurred since the previous NEXTLISTING or NEW-PAGE. The default increments the line position even when nothing was printed.
232 Production Reporting Command Reference
SKIPLINES
Number of lines to skip before setting up the new offset.
NEED
Minimum number of lines needed to begin a new listing or set of detail lines. If this number of
lines does not exist, a new page is started. You can use NEED to prevent a group of detail lines
from being broken across two pages.
Description
Used in tabular reports, NEXT-LISTING causes a new vertical offset in the page.
After NEXT-LISTING executes, line 1 is reset one line below the deepest line previously printed
in the page body. That is, if you then write PRINT (1, 5), the string is printed on the next available
line starting in column 5. Note that the Production Reporting reserved variable #currentline still reflects the actual line number within the page body.
SKIPLINES must be a nonnegative integer. If it is less than 0, then 0 is assumed.
NEED must be an integer greater than 0. If it is less than or equal to 0, then 1 is assumed.
Examples
begin-select
cust_num (1,1)edit 099999
city(,+3)
name(2,10,30)
address(,+2)
next-listing skiplines=1 need=2
from customers order by cust_num
end-select
!
!
!
!
!
!
!
!
Each detail group prints
starting on line 1 since
NEXT-LISTING keeps
moving line 1 down the
page. NEED=2 keeps 2
line detail groups from
breaking across
pages.
Note:
NEXT-LISTING automatically issues a Use-Column 1 command if columns are active.
OPEN
Function
Opens an operating system file for reading or writing.
Syntax
OPEN {filename_lit|_var|_col} AS
{filenum_num_lit|_var|_col}
{FOR-READING|FOR-WRITING|FOR-APPEND}
{RECORD=length_num_lit|_var|_col[:FIXED|:FIXED_NOLF|:VARY:BINARY]}]
[STATUS=num_var]]
[ENCODING={_var|_col|ASCII|ANSI|SJIS|JEUC|EBCDIC| EBCDIK290|EBCDIK1027|
UCS-2|UTF-8|others... }]
OPEN 233
Note:
The ENCODING directive is only allowed when converting to Unicode internally.
Arguments
filename_lit|_var|_col
The file name. The file name can be literal, variable, or column. This makes it easy to prompt
for a file name at run time.
filenum_num_lit|_var|_col
Number that identifies the file in the application. All file commands use the file number to
reference the file. File numbers can be numeric variables as well as literals. The number can be
any positive integer less than 64,000.
FOR-READING
When a file is opened for reading, Production Reporting procures all data sequentially.
Production Reporting does not allow for random access of information.
FOR-WRITING
When a file is opened for writing, a new file is created. If a file of the same name already exists,
it can be overwritten (this depends on the operating system).
FOR-APPEND
When a file is opened in append mode, the current file contents are preserved. All data written
is placed at the end of the file. Production Reporting creates the file if one does not already exist.
For existing files, make sure the attributes used are the same as those used when the file was
created. Failure to do this can produce unpredictable results.
RECORD
For the VARY file type, this is the maximum size for a record. For the FIXED file type, this is the
size of each record without the line terminator. For the FIXED_NOLF file type, this is the size of
each record.
FIXED
Defines that all records contained within the file are the same length. Terminate each record by
a line terminator (system dependent). You can use this file type when writing or reading binary
data.
FIXED_NOLF
Defines that all records contained within the file are the same length with no line terminators.
When writing records, Production Reporting pads short records with blank characters to ensure
each record is the same length. This file type can be used when writing or reading binary data.
VARY
234 Production Reporting Command Reference
Defines that the records can be of varying length. Each record is terminated by a line terminator
(system-dependent). Only records containing display characters (no binary data) can be used
safely. When reading records, any data beyond the maximum length specified is ignored. This
is the default file type.
STATUS
Sets the numeric variable to zero if OPEN succeeds and to -1 if it fails. Without the STATUS
argument, a failure on OPEN causes Production Reporting to halt. By using a STATUS variable,
you can control what processing should occur when a file cannot be opened.
ENCODING
Allows differently encoded files to be managed in a single run of Production Reporting. When
no encoding is specified, Production Reporting uses the file input or output encoding specified
in the INI file unless the file is UCS-2 encoded and auto-detection of UCS-2 files is enabled.
Encoding is only allowed when converting to Unicode internally.
Description
After a file is opened, it remains open until explicitly closed by the CLOSE command. A maximum
of 256 files can be opened at one time.
Examples
open 'stocks.dat' as 1 for-reading
open 'log.dat'
as 5 for-writing
open $filename
as #j for-append
open $filename
as 2 for-reading
open $filename
as 6 for-reading
if #filestat != 0
... error processing ...
end-if
record=100
record=70
record=80:fixed
record=80:fixed_nolf
record=132:vary status=#filestat
See Also
READ, WRITE, and CLOSE for information about using files
OPEN-RS
Function
Opens a row set.
Syntax
OPEN-RS
NAME=row_set_name_var|_lit|_col
FILENAME=file_name_var|_lit|_col
COLUMN=({name_var|_lit|_col},{type_var|_lit|_col})
OPEN-RS 235
Arguments
NAME
Name of the row set.
FILENAME
Name of the external file used to hold the row set.
COLUMN
Column name and data type. Can be repeated as many times as needed. The column name is
case-sensitive.
Description
OPEN-RS is used to instantiate the specified row set. When executed, the specified external file
is created. If it already exists, the current contents are replaced. OPEN-RS can reside in any section
except BEGIN-SETUP, BEGIN-SQL, and BEGIN-DOCUMENT. Validation rules include:
●
The row set specified by row_set_name must not be active, or an exception is thrown.
●
The external file specified by file_name must be writable. An exception is thrown if the file
cannot be created or written to.
●
Column names must be unique within the row set.
●
The data type must be Integer, Double, Decimal, String, Date, Time, DateTime, or Binary.
●
If both the name and data type for a column are empty strings, then the corresponding
COLUMN entry is ignored.
●
You must define at least one active COLUMN entry, or an exception is thrown.
The row set file is an XML file. You can define whether to create the XML file in a BI Publisher
(BIP) format or an SQR format in the FormatForRowsetXML entry in the [Default-Settings]
section of SQR.INI.
Example
Begin-Report
Open-RS Name='customer' FileName='customer.xml'
Column = ('cust_num', 'integer')
Column = ('name', 'string')
Column = ('addr1', 'string')
Column = ('addr2', 'string')
Column = ('city', 'string')
Column = ('state', 'string')
Column = ('zip', 'string')
Column = ('phone', 'string')
Column = ('tot', 'integer')
Begin-Select
cust_num
name
addr1
addr2
city
236 Production Reporting Command Reference
state
zip
phone
tot
Write-RS Name='customer'
Value = ('cust_num', &cust_num)
Value = ('name', &name)
Value = ('addr1', &addr2)
Value = ('addr2', &addr2)
Value = ('city', &city)
Value = ('state', &state)
Value = ('zip', &zip)
Value = ('phone', &phone)
Value = ('tot', &tot)
from customers
order by cust_num
End-Select
Close-RS Name='customer'
End-Report
See Also
CLOSE-RS, WRITE-RS
PAGE-NUMBER
Function
Places the current page number on the page.
Syntax
PAGE-NUMBER position [pre_txt_lit [post_txt_lit]]
Arguments
position
Position of the page number.
pre_txt_lit
Text string to print before the page number.
post_txt_lit
Text string to print after the page number.
Description
The text specified in pre_txt_lit and post_txt_lit are printed immediately before and
after the number.
PAGE-NUMBER 237
Examples
begin-footing 1
page-number(1,37) 'Page '! Will appear as
last-page () ' of ' '.'! "Page 12 of 25."
end-footing
See Also
LAST-PAGE
POSITION
Function
Sets the current position on a page.
Syntax
POSITION position
[@document_marker [COLUMNS{num_lit|_var|_col}
[num_lit|_var|_col]...]]
Arguments
@document_marker
A location defined in a DOCUMENT paragraph. In this case, the position used is the location of
that marker in the text of the document.
COLUMNS
The columns beginning at the location of the document marker. The columns defined are relative
to the position of the document marker.
When COLUMNS is used, the entire command cannot be broken across more than one program
line.
Examples
position (12,5)! Set current position to line 12, column 5.
position (+2,25)! Set position 2 lines down, at 25th column.
position () @total_location! Set position to document
print #total () edit 999,999,999! marker @total_location.
position () @name_loc columns 1 30
print name ()! Columns are defined at @name_loc and
next-column! 29 characters to the right of @name_loc
print title ()
See Also
●
COLUMNS
238 Production Reporting Command Reference
●
The examples with the description of a DOCUMENT paragraph in “Creating Form Letters” in
Volume 1 of the Hyperion SQR Production Reporting Developer's Guide
PRINT
Function
Prints data on the page at a specified position.
Syntax
PRINT {any_lit|_var|_col} position[format_command[format_cmd_params]...]...
Arguments
any_lit|_var|_col
Data to print.
position
Position where the data is printed. (For additional information, see “Changing Fonts” in Volume
1 of the Hyperion SQR Production Reporting Developer's Guide.)
format_command[format_cmd_params]
Optional formatting commands and parameters.
Note:
Dates can be contained in a date column or variable, or in a string literal, column, or variable.
When using EDIT or DATE with PRINT, a date in a string literal, column, or variable must be
in an acceptable format. See the description for “EDIT” on page 244 for further details.
Note:
Production Reporting DDO does not support printing of List variables.
Description
PRINT has the following format commands:
BACKGROUND
EDIT
POINT-SIZE
BOLD
FILL
SHADE
BOX
FONT
UNDERLINE
BOX-FILL-COLOR
FOREGROUND
URL
BOX-LINE-COLOR
ITALIC
URL-TARGET
CENTER
MATCH
WRAP
PRINT 239
CENTER-WITHIN
MONEY
CODE-PRINTER
NOP
DATE
NUMBER
DELAY
ON-BREAK
Some format commands can be used with others and some are mutually exclusive. In
Table 53, “ ” indicates which format commands can be used together.
Table 53
Valid Print Format Command Combinations
BOLD
BOX
BOXFILLCOLOR
BOXLINECOLOR
BOLD
BOX
BOXFILLCOLOR
BOXLINECOLOR
CENTER
CENTERWITHIN
CODEPRINTER
DELAY
EDIT
NUMBER
MONEY
DATE
FILL
FONT
F/B
ITALIC
MATCH
NOP
240 Production Reporting Command Reference
CENTER
CENTERWITHIN
CODEPRINTER
DELAY
EDIT
NUMBER
MONEY
DATE
N
FI
LL
FONT
F/
B
IT
AL
IC
O
MATCH
P
BOLD
BOX
BOXFILLCOLOR
BOXLINECOLOR
CENTER
CENTERWITHIN
CODEPRINTER
DELAY
EDIT
NUMBER
MONEY
DATE
FI
LL
FONT
F/
B
IT
AL
IC
MATCH
ONBREAK
POINTSIZE
SHADE
UNDERLINE
URL
URLTARGET
WRAP
Note:
In the above table, F/B stands for FOREGROUND/BACKGROUND.
The following topics describe these format commands.
BOLD
Causes the string or number to print in bold type.
For HP LaserJets, the appropriate boldface font must be loaded in the printer.
For PostScript printers, the appropriate boldface must be defined in the PostScript startup file,
POSTSCRI.STR. See Table 32, “DECLARE-PRINTER Command Arguments,” on page 138 for
information on which fonts you can bold.
For line printers, when DECLARE-PRINTER uses the BEFORE-BOLD and AFTER-BOLD
arguments, the specified strings are added before and after the data to bold. If BEFORE-BOLD
and AFTER-BOLD are not specified, then BOLD has no effect.
For example:
print &name (+1, 20) bold
print 'Your account is in arrears' (1,1)
bold
BOX
Draws a one-line deep graphical box around printed data. BOX has no effect for line printers.
For example:
PRINT 241
print &grand_total (+5, 20) box
print 'Happy Birthday !!' (1,1)
box
Note:
For HP LaserJets using proportional fonts, BOX and SHADE cannot determine the correct length
of the box since it varies with the width of the characters printed. BOX and SHADE work well
with fixed-pitch fonts and with all PostScript fonts.
BOX-FILL-COLOR
The fill color used when BOX is specified. The default value is the FILL-COLOR value from the
SET-COLOR command. You cannot use BOX-FILL-COLOR with SHADE.
print 'Hello World' (5,5) box box-fill-color=('green')
BOX-LINE-COLOR
The line color used when BOX is specified. The default value is the LINE-COLOR value from the
SET-COLOR command.
print 'Hello World' (5,5) box box-line-color=('red')
CENTER
Centers the field on a line. The position qualifier for column is ignored. For example:
print
'Quarterly Sales'
(1)
center
CENTER-WITHIN
Centers the field within the specified number of characters. The centered text is relative to the
column value in the position qualifier. For example:
print 'Hello World' (+5,10) center-within=40
CODE-PRINTER
Adds nondisplay characters to the program for sending a sequence to the printer.
Syntax
CODE-PRINTER printer_type
Valid values for printer_type are HT, HP, PS, LP, HTML, HPLASERJET, POSTSCRIPT, and
LINEPRINTER.
242 Production Reporting Command Reference
CODE-PRINTER places the string “behind” the page buffer, rather than within it, so alignment
of printed data is not thrown off by the white space consumed by the nondisplay characters.
Only strings can be printed using CODE-PRINTER.
Since the report might be printed on different types of printers, you should specify for which
type this data is used. The report is ignored if printed to a different type. If necessary, you can
send a different sequence to another type with a second PRINT statement.
For example:
encode '<27>[5U' into $big_font
encode '<27>[6U' into $normal_font
...
print $big_font (0, +2) code-printer=lp
print &phone () edit '(xxx) xxx-xxxx'
print $normal_font () code-printer=lp
In the previous example, the two CODE-PRINTER arguments put the $big_font and
$normal_font sequences into the output, without overwriting any data in the page buffer.
Sequences printed with the CODE-PRINTER argument are positioned using the regular line and
column positioning. However, unlike PRINT, the current print location after execution is the
beginning location where the CODE-PRINTER string was placed. Multiple coded strings printed
using the same line and column location appear in the output in the same sequence in which
they were printed.
DATE
Formats the field using the DATE-EDIT-MASK from the current locale. (See “ALTER-LOCALE”
on page 41.) If not defined, the date prints according to the rules in Table 54.
Table 54
Date Formats if Column Type Not Set
Column Type
Default Mask
If not set
DATETIME
SQR_DB_DATE_FORMAT
See Table 61, “Default Formats by Database,” on page 251 for
the format.
DATE
SQR_DB_DATE_ONLY_FORMAT
See Table 61, “Default Formats by Database,” on page 251 for
the format.
TIME
SQR_DB_TIME_ONLY_FORMAT
See Table 63, “TIME Column Formats,” on page 252 for the
format.
You cannot use DATE with numeric columns or variables.
DELAY
Delays the printing of the data until a SET-DELAY-PRINT command is issued against the
variable used in PRINT. For example:
PRINT $Last_User (1,10) Delay
.
PRINT 243
.
.
SET-DELAY-PRINT $Last_User with &Username
EDIT
Syntax
EDIT=edit_format
Edits each field before printing it. The three types of edits are:
●
Text edit (see Table 55 on page 244)
●
Numeric edit (see Table 56 on page 244)
●
Date edit (see Table 57 on page 245)
Text Edit Format Characters
Table 55
Text Edit Format Characters
Character
Description
X
Use character in field.
B
Insert blank.
~ (tilde)
Skip character in field.
R[n]
Reverse sequence of string, for languages such as Hebrew. The optional number indicates right
justification within length indicated.
Any other character (for example, punctuation) in a text edit mask is treated as a constant and
is included in the edited field.
The characters 8, 9, 0, V, and $ are illegal in a text edit mask because they are used to indicate
that the mask is for a numeric edit.
Numeric Edit Format Characters
Table 56
Numeric Edit Format Characters
Character
Description
8
Digit, zero fill to the right of the decimal point, trim leading blanks (left justify the number).
9
Digit, zero fill to the right of the decimal point, space fill to the left.
0
Digit, zero fill to the left.
$
Dollar sign, optionally floats to the right.
244 Production Reporting Command Reference
Character
Description
B
Treated as a “9”, but if a value is zero, the field is converted to blanks.
C
Entered at the end of the mask, causes the comma and period characters to be transposed when the
edit occurs. This is to support monetary values where periods delimit thousands and commas delimit
decimals. (Example: 1.234,56).
E
Scientific format. The number of 9s after the decimal point determines the number of significant digits
displayed. The “E” can be upper or lower case; the display follows the case of the mask.
V
Implied decimal point.
MI
Entered at the end of the mask, causes a minus to display at the right of the number.
PR
Entered at the end of the mask, causes angle brackets (< >) to display around the number if the number
is negative.
PS
Entered at the end of the mask, causes parentheses to display around the number if the number is
negative.
PF
Entered at the end of the mask, causes floating parentheses to display around the number if the number
is negative.
NA
Entered at the end of the mask, causes “N/A” to display if the numeric column variable is null. The case
of N/A follows that of the mask.
NU
Entered at the end of the mask, causes blanks to display if the numeric column variable is null.
.
Decimal point.
,
Comma.
Note:
Characters other than those listed in Table 56 are illegal for numeric edit masks and cause errors
during processing.
Date Edit Format Characters
Table 57
Date Edit Format Characters
Character
Description
YYY YY Y
Last 3, 2, or 1 digit(s) of year. On input, for calculating the 4-digit year, the
current century and/or decade are used. For example, a ‘9' using the 'Y' mask
would result in 1999 as the year if the current year is in the 1990s.
YYYY SYYYY
4 digit year, “S” prefixes BC dates with “-”.
RR
Last 2 digits of year; for years in other centuries. See Table 58 on page 247.
CC or SCC
Century; “S” prefixes BC dates with “-”.
BC AD
BC/AD indicator.
PRINT 245
Character
Description
Q
Quarter of year (1,2,3,4; JAN-MAR=1).
RM
Roman numeral month (I-XII; JAN=I).
WW
Week of year (1-53) where week 1 starts on the first day of the year and
continues to the seventh day of the year.
W
Week of the month (1-5) where week 1 starts on the first day of the month and
ends on the seventh.
DDD
Day of year (1-366).
DD
Day of month (1 - 31).
D
Day of week (1-7). Sunday is first day of week.
DAY
Name of day.
DY
Abbreviated name of day.
ER
Japanese Imperial Era. Returns the name of the of the Japanese Imperial Era
in the appropriate kanji ('Heisei' is the current era).
EY
Year of the Japanese Imperial Era. Returns the current year within the Japanese
Imperial Era.
Note: The common Japanese date format is:
'YYYY<nen>MM<gatsu>DD<nichi>' where <nen>, <gatsu>, and <nichi> are
the kanji strings for year, month, and day respectively.
J
Julian day; the number of days since Jan 1, 4713 BC. Numbers specified with
'J' must be integers.
AM PM
Meridian indicator.
HH
Assumes 24 hour clock unless meridian indicator specified.
HH12
Hour of day (1-12).
HH24
Hour of day (0-23).
SSSSS
Seconds past midnight (0-86399).
N NN NNN NNNN NNNNN NNNNNN
Fractions of a second. Precise to microseconds; however, for most hardware
and databases, this much accuracy will not be attainable.
MONTH
Name of month.
MON
Abbreviated name of month.
MM
Month (01-12; JAN=01).
MI
Minute (0-59).
SS
Second (0-59).
|
Used to concatenate different masks.
246 Production Reporting Command Reference
Table 58
Date Edit Format Code-RR
Last 2 digits of current year
2-digit year is 00 - 49
2-digit year is 50 - 99
00 - 49
The return date is in the current century.
The return date is in the century before
the current one.
50 - 99
The return date is in the century after the
current one.
The return date is in the current century.
Edit Masks
As you work with edit masks, keep in mind the following:
●
When using text, date, and numeric scientific edit masks with PRINT, the specified width
value of PRINT sets the length allocated for the data displayed. For all other numeric edit
masks, the edit mask sets the allocated length.
●
All masks can be used by the strtodate function except for CC, SCC, Q, W, and WW.
●
A backslash forces the next character into the output from the mask. For example, a mask
of “The cu\rre\nt \mo\nth is Month” results in the output string of “The current month is
January”. Without the backslashes the output string would be “The cu95e7t january is
January”.
●
You can use a vertical bar as a delimiter between format codes; however, in most cases the
bar is not necessary. For example, the mask 'YYYY|MM|DD' is the same as 'YYYYMMDD'.
●
Any other character (for example, punctuation) in a date edit mask is treated as a constant
and is included in the edited field. If the edit mask contains spaces, you must enclose it in
single quotes (').
●
The masks MON, MONTH, DAY, DY, AM, PM, BC, AD, and RM are case-sensitive and follow the
case of the mask entered. For example, if the month is January, the mask Mon yields “Jan”
and MON yields “JAN”. All other masks are case-insensitive and can be entered in either
uppercase or lowercase.
●
National Language Support is provided for the following masks: MON, MONTH, DAY, DY, AM,
PM, BC, and AD. See “ALTER-LOCALE” on page 41 or in Chapter 7, “Production Reporting
Samples” for additional information.
If the value of the date field being edited is “Mar 14 1996 9:35”, the edit masks produce the
results in Table 59.
Table 59
Sample Date Edit Masks
Edit Mask
Result
dd/mm/yy
14/03/96
DD-MON-YYYY
14-MAR-1996
'Month dd, YYYY'
March 14, 1996
MONTH-YYYY
MARCH-1996
PRINT 247
Edit Mask
Result
HH:MI
09:35
'HH:MI PM'
09:35 AM
YYYYMMDD
19960314
MM.DD.YYYY
03.14.1996
Mon
Mar
DD|D|DDD
143073
●
In addition to the EDIT argument, you can use edit masks with MOVE, CONCAT, DISPLAY,
and SHOW, and with the edit function of LET. Edit the field using the supplied mask before
storing or displaying it.
●
When a date with missing date and/or time components displays or prints, the defaults are
as follows:
❍
The default year is the current year.
❍
The default month is the current month.
❍
The default day is one.
❍
The default time is zero (00:00:00.000000).
For example, assuming today is September 7, 1996, the following assignment would
produce an equivalent date-time of September 1, 1996 13:21:00.000000:
let $date1 = strtodate('13:21','HH:MI')
●
You can dynamically change edit masks by storing them in a string variable and referencing
the variable name preceded by a colon (:).
For example:
move '$999,999.99' to $mask
print #total (5,10) edit :$mask
show #total edit :$mask
●
●
When a date stored in a string literal, column, or variable prints with an edit mask, it must
be in one of the following formats:
❍
The format specified by SQR_DB_DATE_FORMAT, or the corresponding setting in
SQR.INI.
❍
One of the database-dependent formats in Table 61, “Default Formats by Database,” on
page 251.
❍
The database-independent format, 'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'.
When a date column or variable prints without an edit mask, the date prints in the format
specified by SQR_DB_DATE_FORMAT or the corresponding setting in SQR.INI. If this is not
set, the date prints in the primary database format (the first entry) in Table 61.
This applies to DISPLAY, MOVE, and SHOW as well as PRINT.
248 Production Reporting Command Reference
Sample Edit Masks
Table 60
Sample Edit Masks and Resulting Fields
Mask
Value
Display
999.99
34.568
34.57
9,999,999V9999
123,456.7890
123,4567890
8,888,888.888
123,456.789
123,456.789
9,999
1234
1,234
9,999
123
123
09999
1234
01234
9999
-123
-123
9999
-1234
****
9999
12345
****
9999mi
-123
123-
9999pr
-123
< 123>
999999ps
-123
( 123)
999999pf
-123
(123)
9999na
(null)
n/a
9999nu
(null)
(blank)
$$9,999.99c
1234.56
$1.234,56
$$9,999.99
1234.56
$1,234.56
$$9,999.99
12.34
$ 12.34
$$$,$$9.99
12.34
$12.34
9.999e
123456
1.235e+05
B9,999
0
(blank)
B9,999
12345
12,345
(xxx)bxxx-xxxx
2169910551
(216) 991-0551
xxx-xx-xxxx
123456789
123-45-6789
~~xx~xx
ABCDEFGHIJ
CDFG
r10
ABCDEFG
GFEDCBA
PRINT 249
Uses of Edit Masks
The following example shows some uses of edit masks:
print #total
print #total
print #total
! neg)
print #comm
print &cnum
print #cat
print #phone
print #total
(7,55,0)
(7,55,0)
(7,55,0)
edit $999,999.99 ! $ 12,345.67
edit $$$9,999.99
! $12,345.67
edit 999,999.99pr! < 12,345.67>(if
(7,55,0)
(16,1,0)
(5,10,0)
(16,60,0)
(7,55,0)
edit
edit
edit
edit
edit
b99,999.99! Blank if zero
099999! 001234
9.999E! 1.235E+04
(xxx)bxxx-xxxx ! (216) 397-0551
£££9,999.99! Dollar-Symbol £
Edit Masks with Specified Width Value
The following examples show some uses of edit masks with a specified width value.
●
Text Edit Masks – Print width sets the length allocated.
Print Statement
Display
Current Position
Print ‘ABCDEFGHIJ’ (1,1,5)
ABCDE
(1,1,6)
ABCDE
(1,1,6)
ABCDE
(1,1,11)
ABCDE
(1,1,11)
Edit xxxxxxxxxx
Print ‘ABCDEFGHIJ’ (1,1,5)
Edit xxxxx
Print ‘ABCDE’ (1,1,10)
Edit xxxxxxxxxx
Print ‘ABCDE’ (1,1,10)
Edit xxxxx
●
Date Edit Masks – Print width sets the length allocated.
Print Statement
Display
Current Position
Print $current-date (1,1,5)
16/05
(1,1,6)
16/05
(1,1,6)
16/05/2003
(1,1,11)
16/05
(1,1,11)
Edit DD/MM/YYYY
Print $current-date (1,1,5)
Edit DD/MM
Print $current-date (1,1,10)
Edit DD/MM/YYYY
Print $current-date (1,1,10)
Edit DD/MM
●
Numeric Scientific Edit Masks – Print width sets the length allocated.
250 Production Reporting Command Reference
Print Statement
Display
Current Position
Print 1234567890 (1,1,5)
1.23
(1,1,6)
1.234568e
(1,1,11)
1.234568e+009
(1,1,21)
Edit 9e999999
Print 1234567890 (1,1,10)
Edit 9e999999
Print 1234567890 (1,1,20)
Edit 9e999999
●
All other Numeric Edit Masks – Edit mask sets the length allocated.
Print Statement
Display
Current Position
Print 1234567890 (1,1,5)
12345
(1,1,11)
*****
(1,1,6)
_____12345
(1,1,11)
12345
(1,1,6)
12345
(1,1,11)
12345
(1,1,6)
12345
(1,1,6)
12345
(1,1,6)
Edit 9999999999
Print 1234567890 (1,1,5)
Edit 99999
Print 12345 (1,1,10)
Edit 9999999999
Print 12345 (1,1,10)
Edit 99999
Print 1234567890 (1,1,5)
Edit 8888888888
Print 1234567890 (1,1,5)
Edit 88888
Print 12345 (1,1,10)
Edit 8888888888
Print 12345 (1,1,10)
Edit 88888
Default Formats
Review the following tables for information on default formats by database, date column
formats, and time column formats.
Table 61
Default Formats by Database
Database
Default Formats
DB2
YYYY-MM-DD-HH:MI:SS.NNNNNN YYYY-MM-DD
PRINT 251
Database
Default Formats
Informix
YYYY-MM-DD HH:MI:SS.NNN MM/DD/YYYY MM-DD-YYYY MM.DD.YYYY
ODBC
'MON DD YYYY HH:MIPM'
Oracle
DD-MON-YY
Sybase
MON DD YYYY HH:MIPM MON DD YYYY [HH:MI[:SS[:NNN]][PM] MON DD YYYY [HH:MI[:SS[.NNN]][PM]
YYYYMMDD [HH:MI[:SS[:NNN]]PM] YYYYMMDD [HH:MI[:SS[.NNN]]PM]
Table 62
DATE Column Formats
Database
DATE Column Formats
DB2
YYYY-MM-DD
Informix
MM/DD/YYYY
ODBC
DD-MON-YYYY
Table 63
TIME Column Formats
Database
TIME Column Formats
DB2
HH24.MI.SS
ODBC
HH24:MI:SS
FILL
Fills the page with the specified character or string as indicated by the print position and length.
The following example prints a line of stars and then a line of dashes followed by stars:
print
print
'*' (1,1,79) fill ! Fill line with *'s
'-*' (+1,20,40) fill
! Fill with '-*' characters.
Note:
When using the Text, Numeric, and Date edit masks with PRINT, the specified width value of
PRINT determines the length allocated for the displayed data. For all other "Numeric" edit masks,
the edit mask sets the allocated length.
FONT
Prints the string in the specified font. For example:
print 'Hello world' (3,3) font=5
252 Production Reporting Command Reference
FOREGROUND/BACKGROUND
When you specify a color in PRINT, it has the same scope as PRINT. If you do not define the
specified color name, then the setting for “default” is used. Use the color name “none” to turn
off color for the specified area.
Syntax
PRINT {any_lit|_var|_col}
[FOREGROUND=({color_name_lit|_var|_col}|{rgb})]
[BACKGROUND=({color_name_lit|_var|_col}|{rgb})]
Note:
See the example in “ALTER-COLOR-MAP” on page 37 to better understand the
FOREGROUND and BACKGROUND commands.
ITALIC
Prints a string or number in italic type. For example:
print &name (+1, 20) italic
print 'Your account is in arrears' (1,1) bold
Note:
Italic is not applicable for Line and PostScript printers.
MATCH
Compares a field to a list of key values and if a match is found, prints the corresponding string
at the specified line and column.
If the match_text contains white space, it must be enclosed in single quotes (').
Any number of match text(s) can be tested, but each must have its own line, column, and
print_text.
If a match is not found, the unmatched field is printed at the position specified in the parentheses.
Line and column positions for each matched string are treated as fixed or relative positions
depending on the type of positioning used in the position qualifier for the PRINT command.
Syntax
MATCH match_text {line_num_lit|_var|_col}
{column_num_lit|_var|_col} print_text...
For example:
print
&type_buyer
(20,12)
match
PRINT 253
A
B
C
D
20
20
21
21
12
22
12
22
Casual
Impulsive
Informed
Choosey
To use relative line and fixed column positioning, you could enter:
print
OH
MI
NY
$state (0,25) match
0 25 Ohio
0 37 Michigan
0 25 'New York'
The column positions are treated as fixed locations due to the fixed “25” position declared in
parentheses.
MONEY
Formats the column or variable using the MONEY-EDIT-MASK from the current locale. (See
“ALTER-LOCALE” on page 41.) MONEY can only be used with a numeric column or variable.
NOP
Suppresses the print command, causing “no operation” to execute. NOP is useful for temporarily
preventing a field from printing.
For example:
print
&ssn
(1,1)
nop
! Hide the social security number.
NUMBER
Formats the column or variable using the NUMBER-EDIT-MASK from the current locale. (See
“ALTER-LOCALE” on page 41.) NUMBER can only be used with a numeric column or variable.
ON-BREAK
Causes the specified action in a tabular report when the value of a field changes (a break occurs).
The default action prints the field only when its value changes (PRINT=CHANGE).
Syntax
ON-BREAK [PRINT={ALWAYS|CHANGE|CHANGE/TOP-PAGE|NEVER}]
[SKIPLINES={num_lit|_var|_col}]
[PROCEDURE=procedure_name[(arg1[ ,argi]...)]]
[AFTER=procedure_name[(arg1[ ,argi]...)]]
[BEFORE=procedure_name[(arg1[ ,argi]...)]]
[SAVE=txt_var]
[LEVEL=nn]
[SET=nn]
254 Production Reporting Command Reference
ON-BREAK has the following qualifiers:
●
PRINT—Specifies when the break field prints.
❍
ALWAYS duplicates the break field for each detail group.
❍
CHANGE prints the value only when it changes. This is the default.
❍
CHANGE/TOP-PAGE prints the value both when it changes and at the top of each new
page.
❍
NEVER suppresses printing.
●
SKIPLINES—Specifies how many lines to skip when the value changes.
●
PROCEDURE—Specifies the procedure to invoke when the value changes. This qualifier
cannot be used with either the AFTER or BEFORE qualifiers.
●
AFTER/BEFORE—Specifies procedures to invoke either after or before the value changes.
If no rows are fetched, neither procedure executes. You can only use AFTER and BEFORE
within a SELECT paragraph.
Following is the sequence of events:
❍
SAVE—Indicates a string variable where the previous value of a break field is stored.
❍
LEVEL—Specifies the level of the break for reports containing multiple breaks. For
example, a report sorted by state, county, and city might have three break levels: state
is level 1 (the most major), and city is level 3 (the most minor). When a break occurs,
other breaks with equal or higher level numbers are cleared. The level number also affects
the sequence in which AFTER and BEFORE procedures are processed.
❍
SET—Assigns a number to the set of leveled breaks in reports with more than one set
of independent breaks.
The sequence of events for a query containing ON-BREAK fields is:
1. Any BEFORE procedures are processed in ascending LEVEL sequence before the first row of
the query is retrieved.
2. When a break occurs in the query, the following happens:
a. AFTER procedures are processed in descending sequence from the highest level to the
level of the current break field.
b. SAVE variables are set with the new value.
c. BEFORE procedures are processed in ascending sequence from the current level to the
highest level break.
d. Any breaks with the same or higher level numbers are cleared so they do not break on
the next value.
e. If a PROCEDURE has been declared, the procedure is invoked.
f.
If SKIPLINES was specified, the current line position is advanced.
g. The value is printed (unless PRINT=NEVER was specified).
3. After the query finishes (at END-SELECT) any AFTER procedures are processed in descending
level sequence.
PRINT 255
For example:
begin-select
state (+1,1,2)
county (,+2,14)
city
(,+2,14)
...
end-select
on-break level=1
on-break level=2
on-break level=3
after=state-tot skiplines=2
after=county-tot skiplines=1
after=city-tot
Breaks are processed as follows:
●
When city breaks, the city-tot procedure is executed.
●
When county breaks, first the city-tot procedure is executed, then the county-tot
procedure is executed.
●
When state breaks, the city-tot, county-tot, and state-tot procedures are processed
in that sequence.
If any BEFORE breaks were indicated, they are processed automatically, after all of the AFTER
breaks and in sequence from lower to higher level numbers.
For example:
begin-select
state (+1,1,2) on-break level=1 before=bef-state after=state-tot
county (,+2,14) on-break level=2 before=bef-cnty after=cnty-tot
city
(,+2,14) on-break level=3 before=bef-city after=city-tot
...
end-select
Now when state breaks, the sequence of procedures executed is as follows:
1. City-tot
2. Cnty-tot
3. State-tot
4. Bef-state
5. Bef-cnty
6. Bef-city
Upon entering the query at BEGIN-SELECT, the three BEFORE procedures are executed in
sequence:
1. Bef-state
2. Bef-cnty
3. Bef-city
After the last row is retrieved, at END-SELECT, the three AFTER procedures are executed in
sequence:
1. City-tot
2. Cnty-tot
3. State-tot
256 Production Reporting Command Reference
The SAVE qualifier saves the previous break value in the specified string variable for use in an
AFTER procedure. You may want to print the previous break field with a summary line:
print
&state
(+1,1)
on-break
after=state-tot
save=$old-state
The SET qualifier allows you to have sub-reports with leveled breaks. By separating the
ON-BREAKs into sets, the associated leveled breaks in each set will not interfere with each other.
begin-select
state (+1,1,2)
on-break
set=1
after=state-tot
level=1
SET=1 associates this leveled break with other breaks having the same set number.
POINT-SIZE
Prints the string in the specified point size. For example:
print 'This is large text' (5,5) point-size=36
SHADE
Draws a one-line deep, shaded graphical box around printed data. For line printers this argument
has no effect.
print 'Company Confidential' (1,1)
print &state (+2, 40) shade
shade
Note:
For HP LaserJets using proportional fonts, BOX and SHADE are not able to determine the
correct length of the box since it varies with the width of the characters printed. BOX and SHADE
work well with fixed pitch fonts and with all PostScript fonts.
UNDERLINE
Prints the specified data with underlined characters. For line printers, UNDERLINE causes
backspace and underscore characters to output, which emulates underlining.
For example:
print &name (+1, 45) underline
print 'Your account is in arrears' (1,1)
underline
URL
Creates a hypertext link to the specified address. (Production Reporting does not validate the
address.) For example:
Print "My web page" (40,10) URL="http://www.somewebhost.com/~myusername/index.htm"
Creates a link to the following URL in your report:
PRINT 257
http://www.somewebhost.com/~myusername/index.htm
When you click on the "My web page" your browser is directed to the page.
URL-TARGET
The target within the specified URL. (Production Reporting does not validate the target.) For
example:
Print $URL (40,10)
Point-Size=#Font
Font=8
URL=$URL
URL-TARGET=$Target
Background = (255, 0, 0)
Foreground = ('yellow')
Underline
WRAP
Wraps text at word spaces and moves additional text to a new line.
Syntax
WRAP {line_length_lit|_var|_col}
{max_lines_lit|_var|_col}[KEEP-TOP]
[STRIP=strip_chars][ON=break_chars][R]
[LINE-HEIGHT={line_height_lit|_var|_col}]
line_length_lit|_var|_col
The maximum paragraph width in characters.
Note:
After a string wraps, the current position is one character to the right of the last character in the
column. When a string ends on the last position of a line, an implicit line feed causes the new
current position to be the first character of the following line. In the SETUP section, use
DECLARE-LAYOUT to make the page width one character wider than the right edge of the
wrapped text to avoid generating an implicit line feed.
For example:
print
print
print
print
&comment
&note1
&note2
&note3
(48,20,0) wrap 50 3
(1,20,30) wrap 30
(1,+2,30) wrap 30
(1,+2,30) wrap 30
4
4
4
In this example, the paragraph is 50 characters wide with a maximum depth of 3 lines..The line
position is 1 for each of the three wrapped fields: note1, note2, and note3. The current print
position after a wrap occurs at the bottom right edge of the wrapped paragraph. To continue
printing on the same line, you must use a fixed line number for the next field.
258 Production Reporting Command Reference
max_lines_lit|_var|_col
Specifies the maximum paragraph depth in lines.Usually, the line length and maximum lines
are indicated with numeric literals. However, WRAP can also reference numeric variables or
columns. This is useful when you want to change the width or depth of a wrapped paragraph
during report processing. The numeric variable can optionally be preceded by a colon (:).
For example:
print
print
$comments
$message
(1,30) wrap
(5,45) wrap
#wrap_width 6
#msg_wid #msg_lines
KEEP-TOP retains the current line position except if a page break occurs, in which case, line 1 is
used as the current line position. The default action is to set the next print position at the bottom
of the wrapped data.
In the following example, the column &resolution prints on the same line as the first line of
the column &instructions:
print &phone (+1,10) edit '(xxx) xxx-xxxx'
print &instructions (+1,10,30) wrap 6 10 keep-top
print &resolution (0,+3,25)
The STRIP and ON arguments affect which characters are to convert before wrapping, and which
characters force a wrap to occur.
●
Characters in the STRIP string argument are converted to spaces before the wrap occurs.
●
Characters in the ON string argument cause a wrap at each ON character found. The ON
character is not printed.
Both arguments accept regular characters and nondisplay characters whose ASCII values are
surrounded by angled brackets, <nn>.
For example, to print a long data type that contains embedded carriage returns, the setup would
be:
print
&long_field
(5,20)
wrap 42
30
on=<13>
The paragraph wraps at each carriage return, rather than at the usual word boundaries. If the
ON character is not found within the width specified for the paragraph, the wrap occurs at a word
space.
The following example converts the STRIP characters to spaces before wrapping on either a line
feed <10> or a space (the default):
print &description (20,10) wrap 50 22
strip=/\^@<13>
on=<10>
WRAP can also be used to print reversed characters, for support of languages such as Hebrew. An
R after the length and max_lines arguments causes the field to be reversed before the wrap
takes place. In addition, the entire paragraph is right-justified within the length indicated.
! Reverse wrap, in 30 character field.
print &comment (2,35) wrap 30 5 r
print $notes (1,50) wrap 50 7 r
LINE-HEIGHT specifies the number of lines to skip between each line of the wrapped data. By
default a value of 1 (single space) is assumed.
PRINT 259
The following example prints the comment column with one blank line between each printed
line for a maximum of four printed lines:
print &comment (1,1) wrap 40 4 line-height = 2
See Also
●
LET for information on copying, editing, or converting fields
●
ALTER-LOCALE for a description of NUMBER-EDIT-MASK, MONEY-EDIT-MASK, and
DATE-EDIT-MASK
●
DISPLAY and SHOW
PRINT-BAR-CODE
Function
Prints bar codes.
Syntax
PRINT-BAR-CODE position
{TYPE={bar_code_type_num_lit|_var|_col}}
{HEIGHT={bar_code_height_num_lit|_var|_col}}
{TEXT={bar_code_txt_lit|_var|_col}}
[CAPTION={bar_code_caption_txt_lit|_var|_col}]
[CHECKSUM={bar_code_checksum_txt_lit|_var|col}]
Arguments
position
Position of the upper left corner. Position parameters can be relative. See POSITION for examples
of relative positioning. Document markers are not allowed. After execution, the current position
is returned to this location; however, the next listing line is the next line below the bottom of
the bar code. (This is different than the way PRINT works.)
TYPE
Type of bar code to print. (See Table 64, “Bar Code Types,” on page 261.)
HEIGHT
Height of the bar code in inches. The height must be between 0.1 and 2 inches. The code prints
to the nearest one-tenth of an inch. For Zip+4 Postnet, the height of the bar code is fixed. The
height should be between 0.2 and 2.0 for Zip+4 Postnet. If it is less than 0.2, the bar code extends
above the position specified.
TEXT
Text to encode and print. The number and type of text characters permitted or required depends
on the bar code type. See Table 64, “Bar Code Types,” on page 261 for specifications.
260 Production Reporting Command Reference
CAPTION
Optional text to print under the bar code in the current font. Production Reporting attempts to
center the caption under the bar code; however, for proportional fonts this may vary slightly.
CAPTION is not valid for Zip+4 Postnet. If specified, it is ignored.
CHECKSUM
Optional check sum to compute and print in the bar code. Valid values are YES and NO, where
NO is the default.
Note:
Some bar code types ignore the CHECKSUM qualifier. See Table 64 for those bar code types for
which CHECKSUM is relevant.
Description
PRINT-BAR-CODE prints industry standard bar codes. Production Reporting supports the bar
code types listed in Table 64.
Table 64
Bar Code Types
Type
Description
Text Length
Text Type*
1
UPC-A
11, 13, or 16
9
2
UPC-E
11, 13, or 16
9
3
EAN/JAN-13
12, 14, or 17
9
4
EAN/JAN-8
7, 9, or 12
9
5
3 of 9 (Code 39)
1 to 100
9, X, p
y
6
Extended 3 of 9
1 to 100
9, X, x, p, c
y
7
Interleaved 2 of 5
2 to 100
9
y
8
Code 128
1 to 100
9, X, x, p, c
9
Codabar
1 to 100
9, p
10
Zip+4 Postnet
5, 9, or 11
9
11
MSI Plessey
1 to 100
9
y
12
Code 93
1 to 100
9, X, p
y
13
Extended 93
1 to 100
9, X, x, p
y
14
UCC-128
19
9
15
HIBC
1 to 100
9
*9-
CHECKSUM RECOGNIZED
y
y
Numbers (0-9) X- Upper Case Letters (A-Z) x- Lower Case Letters (a-z) p- Punctuation c- Control Characters
PRINT-BAR-CODE 261
Note:
Production Reporting does not check bar code syntax. (For example, with bar code type 9,
Codabar, you must add your own start/stop character to the text argument.) See your bar code
documentation for the proper formatting of certain bar codes.
Examples
This example shows how to use PRINT-BAR-CODE to create a UPC-A bar code.
begin-program
print-bar-code (3,1)
type=1
! UPC-A
height=0.3
text='01234567890'
caption='0 12345 67890'
end-program
This example shows how to use PRINT-BAR-CODE to create a ZIP+4 Postnet code.
begin-program
print 'John Q. Public'
(3,1)
print '1234 Main Street' (4,1)
print 'AnyTown, USA 12345-6789' (5,1)
print-bar-code
(7,1)
type=10
height=0.2
text='12345678934'
end-program
This example references the last page value from within a bar code. When the report runs, the
meta sequence %LAST-PAGE% will be replaced with the value of the last page of the report. This
functionality is not available with bar code types 1,2,3,4,10 and 14.
begin-report
let $Caption = 'Page ' || Edit(#Page-Count, '88888') || ' of %LAST-PAGE%'
let $Text = Edit(#Page-Count, '88888') || ' %LAST-PAGE%'
print-bar-code (,30)
type=5
height=0.3
text=$Text
caption=$Caption
checksum=Yes
end-report
262 Production Reporting Command Reference
PRINT-CHART
Function
Prints a chart. Only PostScript printers or HP printers that support HPGL (generally, this is
HPLaserJet 3 and higher) render chart output.
Syntax
PRINT-CHART[chart_name]position
[TYPE={chart_type_txt_lit|_var|_col}]
[CHART-SIZE=(chart_width_num_lit|_var|_col, chart_depth_num_lit|_var|_col)]
[TITLE={title_txt_lit|_var|_col}]
[SUB-TITLE={subtitle_txt_lit|_var|_col}]
[FILL={fill_txt_lit|_var|_col}]
[3D-EFFECTS={3d_effects_txt_lit|_var|_col}]
[BORDER={border_txt_lit|_var|_col}]
[COLOR-PALETTE=color_palette_lit|_var|_col]
[POINT-MARKERS={point_markers_txt_lit|_var|_col}]
[ATTRIBUTES={selector_lit|_var|_col|
LIST:{selector_list_name_lit|_var|_col|
(selector_lit|_var|_col,...)},{decl_key_lit|_var|_col,
{decl_value_lit|_var|_col|
LIST:{decl_val_list_name_lit|_var|_col|
(decl_val_lit|_var|_col,...)}|
PALETTE:{color_palette_lit|_var|_col}}},...}}]
[DATA-ARRAY=array_name]
[DATA-ARRAY-ROW-COUNT={x_num_lit|_var|_col}]
[DATA-ARRAY-COLUMN-COUNT={x_num_lit|_var|_col}]
[DATA-ARRAY-COLUMN-LABELS={NONE|array_name|({txt_lit|
_var|_col},...)}]
[DATA-LABELS={data_labels_txt_lit|_var|_col}]
[FOOTER-TEXT=NONE|text_lit|_var|_lit]
[SUB-FOOTER-TEXT=NONE|text_lit|_var|_col]
[ITEM-COLOR=(item_color_keyword|_lit|_var|_col,
{color_txt_lit_var|_col}|(r,g,b))]
[ITEM-SIZE=(item_size_keyword_lit|_var|_col,
item_size_num_lit|_var|_col)]
[LEGEND={legend_txt_lit|_var|_col}]
[LEGEND-TITLE={legend_title_txt_lit|_var|_col}]
[LEGEND-PLACEMENT={legend_placement_txt_lit|_var|_col}]
[LEGEND-PRESENTATION={legend_presentation_txt_lit| _var|_col}]
[PIE-SEGMENT-QUANTITY-DISPLAY={pie_segment_quantity_
display_txt_lit|_var|_col}]
[PIE-SEGMENT-PERCENT_DISPLAY={pie_segment_percent_
display_txt_lit|_var|_col}]
[PIE-SEGMENT-EXPLODE={pie_segment_explode_txt_lit| _var|_col}]
[X-AXIS-GRID={x_axis_grid_txt_lit|_var|_col}]
[X-AXIS-LABEL={x_axis_label_txt_lit|_var|_col}]
[X-AXIS-MIN-VALUE={x_axis_min_value_num_lit|_var|_col}]
[X-AXIS-MAX-VALUE={x_axis_max_value_num_lit|_var|_col}]
[X-AXIS-MAJOR_INCREMENT={x_axis_major_increment_num_lit|_var|_col}]
[X-AXIS-MINOR-INCREMENT={x_axis_minor_increment_num_lit|_var|_col}]
[X-AXIS-MAJOR-TICK_MARKS={x_axis_major_tick_marks_txt_lit|_var|_col}]
[X-AXIS-MINOR-TICK-MARKS={x_axis_minor_tick_marks_txt_lit|_var|_col}]
PRINT-CHART 263
[X-AXIS-TICK-MARK-PLACEMENT={x_axis_tick_mark_placement
_txt_lit|_var |_col}]
[X-AXIS-ROTATE={x_num_lit|_var|_col}]
[X-AXIS-SCALE={x_axis_scale_txt_lit|_var|_col}]
[Y-AXIS-GRID={y_axis_grid_txt_lit|_var|_col}]
[Y-AXIS-LABEL={y_axis_label_txt_lit|_var|_col}]
[Y-AXIS-MASK={mask_txt_lit|_var|_col}]
[Y-AXIS-MIN-VALUE={y_axis_min_value_num_lit|_var|_col}]
[Y-AXIS-MAX-VALUE={y_axis_max_value_num_lit|_var|_col}]
[Y-AXIS-MAJOR-INCREMENT={y_axis_major_increment_num_lit|_var|_col}]
[Y-AXIS-MINOR_INCREMENT={y_axis_minor_increment_num_lit|_var|_col}]
[Y-AXIS-MAJOR-TICK-MARKS={y_axis_major_tick_marks_txt_lit|_var|_col}]
[Y-AXIS-MINOR-TICK-MARKS={y_axis_minor_tick_marks_txt_lit|_var|_col}]
[Y-AXIS-TICK-MARK-PLACEMENT={y_axis_tick_mark_placement
_txt_lit|_var|_col}]
[Y-AXIS-SCALE={y_axis_scale_txt_lit|_var|_col}]
[Y2-AXIS-LABEL={y2_axis_label_txt_lit|_var|_col}]
[Y2-AXIS-MASK={mask_txt_lit|_var|_col}]
[Y2-AXIS-MIN-VALUE={y2_axis_min_value_num_lit| _var|_col}]
[Y2-AXIS-MAX-VALUE={y2_axis_max_value_num_lit|_num_lit| _var|_col}]
[Y2-AXIS-MAJOR-INCREMENT={y2_axis_major_increment_num_lit|_var|_col}]
[Y2-AXIS-MINOR-INCREMENT={y2_axis_minor_increment_num_lit|_var|_col}]
[Y2-AXIS-MAJOR-TICK-MARKS={y2_axis_major_tick_marks
_txt_lit|_var|_col}]
[Y2-AXIS-MINOR-TICK-MARKS={y2_axis_minor_tick_marks
_txt_lit|_var|_col}]
[Y2-AXIS-SCALE={y2_axis_scale_txt_lit|_var|_col}]
[Y2-COLOR-PALETTE=color_palette_lit|_var|_col]
[Y2-DATA-ARRAY=array_name]
[Y2-DATA-ARRAY-ROW-COUNT={x_num_lit|_var|_col}]
[Y2-DATA-ARRAY-COLUMN-COUNT={x_num_lit|_var|_col}]
[Y2-DATA-ARRAY-COLUMN-LABELS={NONE|array_name|
({txt_lit|_var|_col},...)}]
[Y2-TYPE={chart_type_txt_lit|_var|_col}]
Note:
If you do not define CHART-SIZE with this command, you must define it with
DECLARE-CHART.
Arguments
chart_name
Name of the chart defined in DECLARE-CHART. This name is not necessary if you specify the
CHART-SIZE and all other pertinent attributes in PRINT-CHART.
position
(row, column) Position of the upper left corner. Position parameters can be relative. See
POSITION for examples of relative positioning. Document markers are not allowed. After
execution, the current position is returned to this location; however, the next listing line is the
next line below the bottom of the chart area. (This is different than the way the PRINT command
works.)
264 Production Reporting Command Reference
Note:
For definitions of the other arguments in PRINT-CHART, see “DECLARE-CHART” on page
100. For information on NewGraphics, see NewGraphics under “[Default-Settings] Section” on
page 328.
Description
PRINT-CHART directs Production Reporting to output a chart according to the named chart, if
any, and the overridden attributes, if any.
As you use PRINT-CHART, keep in mind the following:
●
All the arguments defined for DECLARE-CHART are valid for PRINT-CHART. (See
Table 20 on page 102 for argument descriptions.) The only exception is the position
argument, which specifies the position of the chart. This argument is required and is only
valid for PRINT-CHART.
●
The data that supports the charts is defined in the following arguments: (Y2 arguments are
for combination charts.)
●
●
●
❍
DATA-ARRAY
❍
DATA-ARRAY-ROW-COUNT
❍
DATA-ARRAY-COLUMN-COUNT
❍
DATA-ARRAY-COLUMN-LABELS
❍
Y2-DATA-ARRAY
❍
Y2-DATA-ARRAY-ROW-COUNT
❍
Y2-DATA-ARRAY-COLUMN-COUNT
❍
Y2-DATA-ARRAY-COLUMN-LABELS
The following arguments must be specified in either DECLARE-CHART or PRINT-CHART:
❍
DATA-ARRAY
❍
DATA-ARRAY-ROW-COUNT
❍
DATA-ARRAY-COLUMN-COUNT
The following arguments are required for combination charts and must be specified in either
DECLARE-CHART or PRINT-CHART:
❍
Y2-DATA-ARRAY
❍
Y2-DATA-ARRAY-ROW-COUNT
❍
Y2-DATA-ARRAY-COLUMN-COUNT
❍
Y2-TYPE
PRINT-CHART can be used without referencing a named chart if all required attributes for
the DECLARE-CHART are supplied in addition to all its required parameters.
PRINT-CHART 265
●
PRINT-CHART directs Production Reporting to display the chart on the current page using
the attribute values at the moment the command is executed. Manipulation of chart attribute
values has no effect on the appearance of the chart after PRINT-CHART is executed.
For example, if you execute a PRINT-CHART with TITLE=$ttl and $ttl='Encouraging
Results', and then change the value of $ttl to 'Discouraging Results' immediately afterward,
then the chart is printed with first value, 'Encouraging Results'.
●
PRINT-CHART expects the DATA-ARRAY to be organized in a particular way. See Table 65
on page 266 for details.
●
PRINT-CHART fills the area defined by CHART-SIZE as much as possible while maintaining
an aesthetically pleasing ratio of height to width. In cases where the display area is not well
suited to the chart display, the chart is centered within the specified region, and the
dimensions are scaled to accommodate the region. Therefore, do not be alarmed if the chart
does not fit exactly inside the box you have specified. It simply means that Production
Reporting has accommodated the shape of the region to provide the best looking chart
possible.
●
Chart commands used to send output to a line printer are ignored. Only PostScript printers
or HP printers that support Hewlett Packard's HPGL (generally, this is HP LaserJet model
3 and higher) render chart output. If you attempt to print a chart to a LASERJET printer
that does not support HPGL, the HPGL command output will likely become part of your
output, leaving one or more lines of meaningless data across your report.
●
If the first field in the array designated by DATA-ARRAY is of type CHAR, then the value on
the x-axis is the contents of that column. If the first field is not of type CHAR, then the value
of the x-axis is the row number of the array designated by DATA-ARRAY, beginning with
1. Pie charts show the character value in the legend area. Histograms show the character
value on the y-axis. XY-Scatter charts do not use the character value and none is needed in
the array.
●
If a PIE chart contains many small slices, the user must set the PIE-SEGMENT-QUANTITYDISPLAY and/or PIE-SEGMENT-PERCENT-DISPLAY arguments to NO to prevent the values
from one slice overwriting the values of another slice.
As was mentioned earlier, each chart type meets a specific organizational requirement.
Table 65 and Table 66 describe these requirements.
Table 65
Chart Array Field Types (fewer than four fields)
Chart Type
Field 0
Field 1
Field 2
BUBBLE
Type=num
Type=num
Type=num
X-Axis values
Y-Axis values
radius of bubble at (x,y)
Type=char
Type=num
(Optional)
Pie segment labels, the names
associated with each segment
The value associated with each
pie segment
Type=char
Type=char
Type=num
(Optional)
PIE
LINE BAR
266 Production Reporting Command Reference
Field 3
Pie segment explode flag
setting, 'Y' or 'N'
(Optional)
Chart Type
Field 0
Field 1
Field 2
Field 3
STACKED-BAR
X-Axis values
Series 1
Type=num Series 2
Type=num
Y-Axis values
Y-Axis values
Series 3…
100%-BAR
Y-Axis values
OVERLAPPED-BAR
HISTOGRAM
AREA
STACKED-AREA
100%-AREA
XY-SCATTER-PLOT
FLOATING-BAR
Type=num
Type=num
(Optional)
(Optional)
Series 1
Series 1
Type=num
Type=num
X-Axis values
Y-Axis values
Series 2
Series 2 ...
X-Axis values
Y-Axis values
Type=char
Type=num
Type=num
(Optional)
X-Axis values
Series 1
Series 1
Type=Num
Y-Axis offset
Y-Axis duration
Series 2 ...
Y-Axis offset
Table 66
Chart Array Field Types for HIGH-LOW-CLOSE
Chart Type
Field 0
Field 1
Field 2
Field 3
Field 4
HIGH-LOW-CLOSE
Type=char X-Axis
values
Type=num High
value
Type=num Low value
Type=num Closing
value
(Optional)
Type=num Opening
value
Examples
PRINT-CHART 267
268 Production Reporting Command Reference
Note:
See “Creating Bubble Charts” in Volume 1 of the Hyperion SQR Production Reporting Developer's
Guide for information on creating a Bubble Chart.
See”Use ATTRIBUTES in DECLARE-CHART and PRINT-CHART” in Volume 1 of the
Production Reporting Developer's Guide for information on combination charts created using the
Y2-Axis syntax in DECLARE-CHART and PRINT-CHART.
In the “Sales by Region for the Year” example below, a pie chart is printed without explicit
reference to a chart declared with DECLARE-CHART.
You must supply all necessary arguments in PRINT-CHART as shown in the following code:
.
.
create-array
name=q_four
size=8
field=name:char
field=num:number=0.
.
print-chart (,1)
title = 'Sales by Region for the Year'
sub-title = NONE
PRINT-CHART 269
chart-size = (40, 20)
type = pie
3d-effects = yes
legend-title = 'Region'
legend = yes
border = no
pie-segment-quantity-display = no
pie-segment-explode = max
data-array = q_four
data-array-column-count = 3
data-array-row-count = 8
See Also
DECLARE-CHART
PRINT-DIRECT
Function
Writes directly to the print output file without using the Production Reporting page buffer.
Syntax
PRINT-DIRECT
[NOLF]
[PRINTER={LINEPRINTER|POSTSCRIPT|HPLASERJET|HTML|LP|PS|HP|HT}]
{txt_lit|_var|_col}...
Arguments
NOLF
Defines that no carriage return and line feed is to print. By default, printed text is followed by a
carriage return and line feed character.
PRINTER
Type of printer to which this text applies.
txt_lit|_var|_col
Text to print.
Description
PRINT-DIRECT can be used for special applications that cannot be accomplished directly with
PRINT commands, such as initializing a page with graphics or other special sequences. Since this
text is often printer-dependent and since the report can be printed on different types of printers
that require different control characters, you can use the PRINTER qualifier to specify the printer
type. If no PRINTER qualifier is specified, the command applies to all printer types.
When using PRINT-DIRECT with PRINT, the Production Reporting page buffer is copied to the
output file only when each page is full or when a NEW-PAGE command is issued. One approach
270 Production Reporting Command Reference
is to use PRINT-DIRECT commands inside a BEFORE-PAGE or AFTER-PAGE procedure (declared
with the DECLARE-PROCEDURE command), so they are coordinated with the information
coming out of the page buffer.
Examples
print-direct
print-direct
printer=ps '%%Page: ' $page-number
nolf printer=lp reset
PRINT-IMAGE
Function
Prints an image.
Syntax
PRINT-IMAGE[image_name]position
[TYPE={image_type_lit|_var|_col}]
[IMAGE-SIZE=(width_num_lit|_var|_col,height_num_lit|_var|_col)]
[SOURCE={file_name_lit|_var|_col}]
[[FOR-PRINTER=({POSTSCRIPT|HPLASERJET|HTML|PDF| WINDOWS|PS|HP|HT|PD|WP|
printer_type_lit|_var|_col}, {image_type_lit|_var|_col},{file_name_lit
_var|_col})]...]
Note:
DECLARE-IMAGE and PRINT-IMAGE work together to identify information about the image.
The IMAGE-SIZE argument is required and must be defined in either DECLARE-IMAGE or
PRINT-IMAGE. The SOURCE and TYPE arguments are optional; however, if you define one
you must define the other.
Arguments
image_name
Name of an image specified by a DECLARE-IMAGE.
position
(row, column) Position of the upper left corner. Position parameters can be relative. See the
POSITION command for examples of relative positioning. Document markers are not allowed.
After execution, the current position is returned to this location; however, the next listing line
is the next line below the bottom of the image area. (This is different from the way PRINT works.)
TYPE
Image type. Types can be EPS-FILE, HPGL-FILE, GIF-FILE, JPEG-FILE, BMP-FILE., PNGFILE, or AUTO-DETECT.
IMAGE-SIZE
PRINT-IMAGE 271
Width and height of the image in Production Reporting coordinates.
SOURCE
Name of a file containing the image. The file must be in the SQRDIR directory, or you must
specify the full path.
FOR-PRINTER
Specific image file for each report output type.
Tip:
The TYPE and SOURCE arguments contain the default values. You can override these defaults for
a specific printer by using the FOR-PRINTER argument. (See the second example under
DECLARE-IMAGE.)
Description
PRINT-IMAGE can be placed in any section of a report except the SETUP section. The image file
pointed to can be any file of the proper format.
PRINT-IMAGE can be used without referencing a named image if all required attributes for
DECLARE-IMAGE are supplied in addition to all its required parameters.
If an image has not been declared, or if the image type is not supported for a particular report
output type, or if the image file has incomplete header information, then a box (either shaded
for HP printers or with a diagonal line through it for Postscript printers) appears where the
image is expected. Table 28, “Valid Images Types,” on page 131 illustrates the valid relationships
between image type and report output type.
Examples
For PostScript:
print-image office-signature (50, 20)
print-image (50, 20)
type = eps-file
source = 'sherman.eps'
image-size = (10, 3)
For Windows:
print-image company-logo (+21, 25)
type=bmp-file
source='m:\logos\gustavs.bmp'
image-size=(75,50)
print-image (1,1)
type='auto-detect'
image-size=(30,15)
source=$Binary_Variable
272 Production Reporting Command Reference
Note:
For an example of the FOR-PRINTER argument used with DECLARE-IMAGE and
PRINT-IMAGE, see the example under “DECLARE-IMAGE” on page 130.
See Also
●
DECLARE-IMAGE
●
“Adding Graphics” in Volume 1 of the Hyperion SQR Production Reporting Developer's Guide
PRINT-TABLE
Function
Prints a table.
Syntax
PRINT-TABLE [{position}]
NAME=table_name_var|_ lit|_col
[CONTINUATION=continuation_var|_lit|_col]
Arguments
NAME
Name of the table created with CREATE-TABLE.
CONTINUATION
Whether the table is a continuation of a previous PRINT-TABLE command. Valid Values are
YES and NO. The default is NO.
Description
Use PRINT-TABLE in any section except BEGIN-SETUP, BEGIN-SQL, and BEGIN-DOCUMENT to
print a table at the specified location. PRINT-TABLE also performs the functionality of fill.
Example
print-table (+1,10)
name=$table-name
continuation='yes'
See Also
ALTER-TABLE, CREATE-TABLE, DECLARE-TABLE, DUMP-TABLE, FILL-TABLE
PRINT-TABLE 273
PUT
Function
Moves data into an array.
Syntax
PUT {src_any_lit|_var|_col}...
INTO dst_array_name(element)[field[(occurs)]]...
Arguments
src_any_lit|_var|_col
Source variable or literal to move into the array. Numeric variables, literals, and database
columns can be put into number (decimal, float, integer) fields. String variables, literals, and
database columns can be put into char, text, or date fields. Date variables can be put into date,
char, or text fields.
When a date variable or column is moved into a text or char array field, the date is converted to
a string according to the following rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
When a string variable, column, or literal is moved to a date array field, the string must be in
the format specified by SQR_DB_DATE_FORMAT, one of the database-dependent formats in
Table 61, “Default Formats by Database,” on page 251, or the database-independent format
'SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]'.
dst_array_name(element)
If array fields are listed, data is placed into each field in the sequence it is listed, in the occurrence
specified of that field.
If array fields are not listed, data is placed into consecutive fields in the order they were defined
in CREATE-ARRAY; data is copied into occurrence zero of each field of the element specified in
the array.
field[(occurs)]
Array element and field occurrence numbers can be numeric literals (123) or numeric variables
(#j).
274 Production Reporting Command Reference
If no occurrence is specified, occurrence zero is used.
Description
Columns retrieved from the database and Production Reporting variables or literals can be
moved into an array. The array must have been created previously using CREATE-ARRAY.
Examples
In the following example, the four variables &name, #count, $date1, and $code is placed into the
first four fields defined in the names array. The data is put into the #j'th element of the array.
put
&name
#count $date1
$code
into
names(#j)
The following command places #j2, #j3, and #j4 into the zero through 2nd occurrences of the
tot field in the #j'th element of the totals array.
put
#j2
#j3
#j4
into
totals(#j)
tot(0)
tot(1)
tot(2)
The following command copies #count into the #j2'th occurrence of the count field in the
#j'th element of the states array.
put
#count
into
states(#j)
count(#j2)
READ
Function
Reads the next record of a file into the specified variables.
Syntax
READ {filenum_lit|_var|_col} INTO {any_var:length_int_lit|_var|_col}...
[STATUS=status_num_var]
Arguments
filenum_lit|_var|_col
Number assigned in OPEN to the file to be read.
any_var:length_int_lit|_var|_col
One or more variables into which data from the record read are to be put. length_int_lit|
_var|_col specifies the length of each field of data.
STATUS
Optional variable into which a read status is returned.
Description
Text and binary data is parsed according to the following:
READ 275
●
Text data is any string of characters. The length of the variable name indicates how many
characters to place into the variable. After being transferred, trailing blanks in the variable
are omitted.
●
If the field was written as a date variable, then it may be read into a date variable or text
variable. When reading a date into a date variable, it must be in the format specified by
SQR_DB_DATE_FORMAT, one of the database-dependent formats in Table 61 on page 251 or
the database-independent format 'SYYYYMMDD[HH24[MI[SS[NNNNNN]'.
●
Binary numbers, may be 1, 2, or 4 bytes in length. They must be read into numeric variables.
Note that the bytes making up the binary number must be in the standard sequence expected
by your operating system.
●
When reading binary data the file must be opened with the FIXED or FIXED-NOLF qualifier.
●
Only the integer portion of the number is represented with binary numbers. To maintain
the decimal portion of the number convert the number to a string variable.
●
If you use binary numbers, the file is not portable across platforms. This is because different
hardware represents binary numbers differently.
The total length indicated for the variables must be less than or equal to the length of the record
being read.
If there are no more records to read, the #end-file reserved variable is set to 1; otherwise, it
is set to 0 (zero). Your program should check this variable after each READ command.
If STATUS is specified, Production Reporting returns 0 if the read is successful; otherwise, it
returns the value of errno, which is system-dependent.
Examples
The following example shows several READ commands:
read
read
read
1 into
3 into
#j into
$name:30 $addr:30 $city:20 $state:2 $zip:5
$type:2 #amount:2 #rate:1 $code:5 $date:11
#sequence:2 $name:20 $title:15
The following example shows a READ command that reads two dates. One is loaded into a date
variable; the other is loaded into a string variable, which is then converted to a date using the
strtodate function.
.
.
.
declare-variable
date $date1 $date2
text $text
end-declare
.
.
.
read 4 into $date1:18 $text1:18
let $date2 = strtodate($text1,'SYYYYMMDDHHMISSNNN')
or
let $date2 = strtodate($text1)
276 Production Reporting Command Reference
The following example shows a READ command with an INSERT loop:
begin-sql
begin transaction
end-sql
while 1
! Infinite loop, exited by BREAK, below.
read 10 into $company:40 $parent:30 $location:50
if #end-file
break
! End of file reached.
end-if
begin-sql
insert into comps (name, parent, location)
values ($company, $parent, $location)
end-sql
add 1 to #inserts
if #inserts >= 100
begin-sql
end transaction;
begin transaction
end-sql
move 0 to #inserts
end-if
end-while
begin-sql
end transaction
end-sql
See Also
OPEN, CLOSE, and WRITE for information on files
ROLLBACK
Function
Causes a database rollback to the last commit.
Syntax
ROLLBACK
Description
An automatic rollback is performed whenever Production Reporting aborts due to program
errors. ROLLBACK is useful in testing or in certain error conditions.
ROLLBACK is an Production Reporting command and should not be used inside an SQL
paragraph.
ROLLBACK 277
Note:
ROLLBACK can be used with DB2, ODBC, DDO, Teradata, and Oracle. For Sybase, use BEGIN
TRANSACTION and ROLLBACK TRANSACTION within SQL paragraphs as in the following
example. See the COMMIT command for an example of ROLLBACK.
Examples
if #error-status = 1
rollback
stop
end-if
See Also
COMMIT
SBTOMBS
Function
Converts a single-byte character into a multi-byte equivalent.
Syntax
SBTOMBS {txt_var}
Arguments
txt_var
String to convert.
Description
Converts the specified string as follows: Any occurrence of a single-byte character that also has
a multi-byte representation (numerals, punctuation, roman characters and katakana) is
converted. SBTOMBS also converts a sequence of a kana character followed by certain
grammatical marks into a single multi-byte character that combines the two elements.
See Also
The TO_MULTI_BYTE function of LET
SECURITY
Function
Marks sections of a report for security purposes.
278 Production Reporting Command Reference
Syntax
SECURITY
[SET=(sid [,sid]...)]
[APPEND=(sid [,sid]...)]
[REMOVE=(sid [,sid]...)]
[MODE=mode]
Arguments
SET
List of security IDs for subsequent commands. The previous list of security IDs is replaced by
the specified security IDs. This argument is optional and can only be used once.
sid
Any string literal, column, or variable. The value is case sensitive.
APPEND
Appends the specified security IDS to the current list. This argument is optional and can be used
multiple times.
REMOVE
Removes the specified security IDS from the current list. This argument is optional and can be
used multiple times.
MODE
Turns on (reactivates) or turns off (suspends) the security feature for the current report. This
argument is optional and can only be used once.
mode
Any string literal, column, or variable. The value is not case sensitive and can be either ON or
OFF.
Description
SECURITY can be repeated as many times as desired for the current report. After SECURITY is
executed, all subsequent commands for the current report are constrained by the designated
Security IDS (SIDs) until the report ends or another SECURITY command executes.
You can use multiple SECURITY commands with the SET, APPEND, and REMOVE options. When
a SECURITY command with MODE=ON is processed, the resultant access control list (as built by
the previous and current command) is used.
Note:
SECURITY is useful only when used in conjunction with EPM Workspace. The Security IDs
refer to EPM Workspace groups. To have the Security ID refer to a specific user, prefix it with
U#. For example:
SECURITY 279
sales, marketing, u#King
refers to the sales group, the marketing group, and the user King.
You can use SECURITY wherever you use PRINT.
Examples
Begin-Report
Security Mode='On' Set=('Directors', 'Vice-Presidents')
.
. ! Only Directors and VPS can see this
.
Security Mode='On' Remove=('Directors')
.
. ! Only VPS can see this
.
Security Mode='Off'
.
.
! Anybody can see this
.
Security Mode='On' Append=('Managers')
.
. ! Only VPs and Managers can see this
.
Security Mode='On' Append=('Engineers')
.
. ! Only VPs, Managers, and Engineers can see this
.
End-report
SET-COLOR
Function
Defines default colors.
Syntax
SET-COLOR
[PRINT-TEXT-FOREGROUND=({color_name_lit|_var|_col}|{rgb})]
[PRINT-TEXT-BACKGROUND=({color_name_lit|_var|_col}|{rgb})]
[PRINT-PAGE-BACKGROUND=({color_name_lit|_var|_col}|{rgb})]
[LINE-COLOR=({color_name_lit|_var|_col}|{rgb})]
[FILL-COLOR=({color_name_lit|_var|_col}|{rgb})]
Arguments
PRINT-TEXT-FOREGROUND
Color in which the text is printed.
PRINT-TEXT-BACKGROUND
Background color behind the text.
280 Production Reporting Command Reference
PRINT-PAGE-BACKGROUND
Page background color.
LINE-COLOR
Line color used in DRAW and PRINT BOX. If not specified, the default is BLACK.
FILL-COLOR
Fill color used in DRAW (TYPE=BOX) and PRINT BOX. If not specified, the default is NONE.
{color_name_lit|_var|_col}
A color_name is composed of the alphanumeric characters (A-Z, 0-9), the underscore (_)
character, and the dash (-) character. It must start with an alpha (A-Z) character. It is case
insensitive. The name 'none' is reserved and cannot be assigned a value. A name in the format
(RGBredgreenblue) cannot be assigned a value. The name 'default' is reserved and may be
assigned a value. 'Default' is used during execution when a referenced color is not defined in the
runtime environment.
{rgb}
red_lit _var|_col, green_lit|_var|_col, blue_lit|_var|_col where each component is a value in the
range of 000 to 255. In the BEGIN-SETUP section, only literal values are allowed.
The default colors implicitly installed with Production Reporting include:
black = (0,0,0)
white=(255,255,255)
gray=(128,128,128)
silver=(192,192,192)
red=(255,0,0)
green=(0,255,0)
blue=(0,0,255)
yellow=(255,255,0)
purple=(128,0,128)
olive=(128,128,0)
navy=(0,0,128)
aqua=(0,255,255)
lime=(0,128,0)
maroon=(128,0,0)
teal=(0,128,128)
fuchsia=(255,0,255)
SET-COLOR 281
Description
SET-COLOR is allowed wherever PRINT or DRAW is allowed. It is used to set certain attributes of
PRINT and DRAW. If the specified color name is not defined, then the setting for the color name
'default' is used. Use the color name 'none' to turn off color for the specified attribute.
Examples
begin-setup
declare-color-map
light_blue = (193, 222, 229)
end-declare
end-setup
begin-program
alter-color-map name = 'light_blue' value = (193, 233, 230)
print 'Yellow Submarine' ()
foreground = ('yellow')
background = ('light_blue')
get-color print-text-foreground = ($print-foreground)
set-color print-text-foreground = ('purple')
print 'Barney' (+1,1)
set-color print-text-foreground = ($print-foreground)
end-program
begin-program
get-color line-color=($line-color)
set-color line-color=('purple')
draw (5,5) type='horz-line' width=10
set-color line-color=($line-color)
end-program
begin-program
get-color fill-color=($fill-color)
set-color fill-color=('light grey')
draw (5,5) type='box' width=10 height=10
set-color fill-color=($fill-color)
end-program
See Also
DECLARE-COLOR-MAP, ALTER-COLOR-MAP, and GET-COLOR
SET-DELAY-PRINT
Function
Sets the values of a DELAY variable.
Syntax
SET-DELAY-PRINT delay_var WITH {src_lit|_var|_col}
282 Production Reporting Command Reference
Arguments
delay_var
Affected delay variable.
{src_lit|_var|_col}
Source variable.
Description
Replaces each reference of delay_var with the specified value. The data is formatted according
to the PRINT command parameters.
Examples
print $Last_User (1,10) Delay
.
.
.
set-delay-print $Last_User with &Username
See Also
The DELAY parameter under PRINT
SHOW
Function
Displays one or more variables or literals on the screen. Cursor control is supported for ANSI
terminals.
Syntax
SHOW[cursor_position]
[CLEAR-SCREEN|CS|CLEAR-LINE|CL][any_lit|_var|_col]
[EDIT edit_mask|NUMBER|MONEY|DATE][BOLD][BLINK]
[UNDERLINE][REVERSE][NORMAL][BEEP][NOLINE]...
Arguments
cursor_position
Position to begin the display.
CLEAR-SCREEN or CS
Clears the screen and sets the cursor position to (1,1).
CLEAR-LINE or CL
Clears a line from the current cursor position to the end of the line.
SHOW 283
any_lit|_var|_col
Information to display.
EDIT
Variables under an edit mask. If the mask contains spaces, enclose it in single quotes. For
additional information regarding edit masks, see PRINT.
NUMBER
Formats any_lit|_var|_col with the NUMBER-EDIT-MASK from the current locale. (See
ALTER-LOCALE.) Not legal for date variables.
MONEY
Formats any_lit|_var|_col with the MONEY-EDIT-MASK from the current locale. (See
ALTER-LOCALE.) Not legal for date variables.
DATE
Formats any_lit|_var|_col with the DATE-EDIT-MASK from the current locale. (See
ALTER-LOCALE.) Not legal for numeric variables. If DATE-EDIT-MASK is not specified, the
date is displayed using the default format for that database (see Table 61 on page 251).
BOLD, BLINK, , UNDERLINE, and REVERSE
Changes the display of characters. Some terminals support two or more characteristics at the
same time for the same text. To turn all special display characteristics off, use NORMAL.
NORMAL
Turns off all special display characteristics set with BOLD, BLINK, UNDERLINE, and REVERSE.
BEEP
Causes the terminal to beep.
NOLINE
Inhibits a line advance.
Description
Any number of variables and screen positions can be used in a single command. Each one is
processed in sequence.
Screen locations can be indicated by either fixed or relative positions in the format (A,B), where
A is the line and B is the column on the screen. A and B can also be numeric variables. Relative
positions depend on where the previous SHOW command ended. If the line was advanced, the
screen cursor is usually immediately to the right of the previously displayed value and one line
down.
Fixed or relative cursor positioning can be used only within the boundaries of the terminal
screen. Scrolling off the screen using relative positioning, for example (+1,1), is not supported.
284 Production Reporting Command Reference
Instead, use SHOW without any cursor position when you want to scroll. You cannot mix SHOW
and DISPLAY while referencing relative cursor positions.
SHOW does not advance to the next line if a cursor location (...), CLEAR-SCREEN, CLEAR-LINE,
or BEEP is used. (SHOW without any of these arguments automatically advances the line.) To add
a line advance, add (+1,1) to the end of the line or use an extra empty SHOW command.
Only ANSI terminals are supported for cursor control, screen blanking, line blanking, and
display characteristics.
Dates can be contained in a date variable or column, or a string literal, column, or variable.
When displaying a date variable or column, without an edit mask, the date is displayed according
to the following rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified bySQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
When displaying a date in a string literal, column, or variable using EDIT or DATE, the string
must be in the format specified by SQR_DB_DATE_FORMAT, one of the database-dependent
formats in Table 61 on page 251, or the database-independent format 'SYYYYMMDD[HH24[MI
[SS[NNNNNN]]]].
Examples
The following code:
!
! Show a string using an edit mask
!
let $ssn = '123456789'
show $ssn edit xxx-xx-xxxx
Produces the following output:
123-45-6789
The following code:
!
! Show a number using an edit mask
!
show 1234567.89 edit 999,999,999.99
Produces the following output:
1,234,567.89
SHOW 285
The following code:
!
! Show a number using the default edit mask
!
show 123.78
Produces the following output:
123.780000
The following code:
!
! Show a number using the locale default numeric edit mask
!
alter-locale number-edit-mask = '99,999,999.99'
show 123456.78 number
Produces the following output:
123,456.78
The following code:
!
! Show a number using the locale default money edit mask
!
alter-locale money-edit-mask = '$$,$$$,$$8.99'
show 123456.78 money
Produces the following output:
$123,456.78
The following code:
!
! Show a date column using the locale default date edit mask
!
begin-select
dcol
from tables
end-select
alter-locale date-edit-mask = 'DD-Mon-YYYY'
show &dcol date
Produces the following output:
01-Jan-1999
The following code:
!
! Show two values on the same line
!
show 'Hello' ' World'
Produces the following output:
286 Production Reporting Command Reference
Hello World
The following code:
!
! Show two values on the same line with editing of the values
!
let #taxes = 123456.78
show 'You owe ' #taxes money ' in back taxes.'
Produces the following output:
You owe $123,456.78 in back taxes.
The following program illustrates the usage of additional options of SHOW. Only terminals that
support the ANSI escape characters can use the cursor control, screen blanking, line blanking
and display attributes.
begin-program
!
! Produces a menu for the user to select from
!
show clear-screen
(3,30) bold 'Accounting Reports for XYZ Company' normal
(+2,10) '1. Monthly Details of Accounts'
(+1,10) '2. Monthly Summary'
(+1,10) '3. Quarterly Details of Accounts'
(+1,10) '4. Quarterly Summary'
!
! Show a line of text and numerics combined
!
show (+2,1)
'The price is ' #price edit 999.99
'Total = ' #total edit 99999.99
!
! Put an error message on a particular line
!
show (24,1) clear-line 'Error in SQL. Please try again.' beep
end-program
See Also
●
LET for information on copying, editing, or converting fields
●
The EDIT parameter of PRINT for edit mask descriptions
●
ALTER-LOCALE for a description of NUMBER-EDIT-MASK, MONEY-EDIT-MASK, and
DATE-EDIT-MASK
●
DISPLAY
STOP
Function
Halts Production Reporting.
STOP 287
Syntax
STOP [QUIET]
Arguments
QUIET
Completes the report with the “Production Reporting: End Of Run” message, instead of aborting
with an error message.
Description
STOP halts Production Reporting and executes a ROLLBACK command (not in Sybase, ODBC,
or Informix). All report page buffers are flushed if they contain data; however, no headers or
footers are printed and the AFTER-PAGE and AFTER-REPORT procedures are not executed.
STOP is useful in testing.
Examples
if #error-status = 1
rollback
stop
else
commit
stop quiet
end-if
STRING
Function
Concatenates a list of variables, columns, or literals into a single text variable. Each member of
the list is separated by the specified delimiter string.
Syntax
STRING {src_any_lit|_var|_col}...BY {delim_txt_lit|_var|_col}
INTO dst_txt_var
Arguments
src_any_lit|_var|_col
One or more fields to concatenate, separated by the delim_txt_lit|_var|_col character or
characters, and placed into the dst_txt_var variable.
If the source is a date variable or column, it is converted to a string according to the following
rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
288 Production Reporting Command Reference
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
delim_txt_lit|_var|_col
Characters used as separators between source fields.
dst_txt_var
The destination field for the concatenated result.
Description
Do no include the destination string in the list of source strings.
Examples
string &name &city &state &zip by ' - ' into
! Result: Sam Mann - New York - NY - 11287
string &cust_num &entry-date &total
! Result: 100014,12-MAR-89,127
! Use null delimiter.
by
string &code1
! Result:
into
&code2
AGL
&code3
by
''
','
$show-info
into
$cust-data
$codes123
See Also
●
UNSTRING
●
The “||” concatenation operator in Table 45 on page 194under LET
SUBTRACT
Function
Subtracts one value from another.
Syntax
SUBTRACT {src_num_lit|_var|_col} FROM dst_num_var[ROUND=nn]
Arguments
src_num_lit|_var|_col
SUBTRACT 289
Subtracted from the contents of dst_num_var.
dst_num_var
The result after execution.
ROUND
Rounds the result to the specified number of digits to the right of the decimal point. For float
variables this value can be from 0 to 15. For decimal variables, this value can be from 0 to the
precision of the variable. For integer variables, this argument is not appropriate.
Description
Subtracts the first value from the second and moves the result into the second field.
When dealing with money-related values (dollars and cents), use decimal variables rather than
float variables. Float variables are stored as double precision floating point numbers, and small
inaccuracies can appear when subtracting many numbers in succession. These inaccuracies can
appear due to the way floating point numbers are represented by different hardware and software
implementations.
Examples
subtract 1 from #total
! #total - 1
subtract &discount from #price ! #price - &discount
See Also
●
ADD
●
LET for information on complex arithmetic expressions
TOC-ENTRY
Function
Places an entry into the Table of Contents.
Syntax
TOC-ENTRY
TEXT={src_txt_lit|_var|_col}
[LEVEL={level_num_lit|_var|_col}]
Arguments
TEXT
Text to place in the Table of Contents.
LEVEL
290 Production Reporting Command Reference
Level at which to place the text. If this argument is not specified, the value of the previous level
is used.
Description
Enter the text in the Table of Contents at the desired level.
Examples
toc-entry text = &heading
toc-entry text = &caption level=2
See Also
DECLARE-TOC
UNSTRING
Function
Copies portions of a string into one or more text variables.
Syntax
UNSTRING {{src_txt_lit|_var|_col}|{src_date_var|_col}}
BY {delim_txt_lit|_var|_col}
INTO dst_txt_var...
Arguments
{src_txt_lit|_var|_col}|{src_date_var|_col}
Source field to parse.
delim_txt_lit|_var|_col
Characters used to delimit the fields in {src_txt_lit|_var|_col}|{src_date_var|
_col}
dst_txt_var
Destination fields to receive the results.
Description
Each substring is located using the specified delimiter. The source string must not be included
in the list of destination strings.
If more destination strings than substrings are found in the source strings, the extra destination
strings are each set to an empty string.
If more substrings are found in the source string than in the destination strings, the extra
substrings are not processed. It is up to the programmer to ensure that enough destination strings
are specified.
UNSTRING 291
If the source is a date variable or column, it is converted to a string according to the following
rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
Examples
unstring $show-info by ' - ' into $name $city $state $zip
unstring $cust-data by ',' into $cust_num $entry-date $total
See Also
●
STRING and EXTRACT
●
The substr and instr functions in Table 52, “Miscellaneous Functions,” on page 212
underLET
UPPERCASE
Function
Converts a string variable to uppercase.
Syntax
UPPERCASE txt_var
Arguments
txt_var
The field to convert.
Examples
input $state 'Enter state abbreviation'
uppercase $state
! Force uppercase.
See Also
The upper function in Table 52, “Miscellaneous Functions,” on page 212 under LET
292 Production Reporting Command Reference
USE
Function
Uses the named database, rather than the default database associated with your user name.
(Sybase and ODBC only)
Syntax
USE database
Arguments
database
The name of the database to use.
Description
Use USE in the SETUP section only. When used, it must appear at the top of your report, before
any queries are defined.
To reference more than one database in a program, specify secondary databases explicitly. For
example:
from sqdb.sqr.customers
You cannot issue the Sybase or ODBC USE command from within an SQL paragraph.
Examples
begin-setup
use pubs
end-setup
See Also
The -DB command-line flag described in “Production Reporting Command-line Flags” on page
21.
USE-COLUMN
Function
Sets the current column.
Syntax
USE-COLUMN {column_number_int_lit|_var|_col}
Arguments
column_number_int_lit|_var|_col
USE 293
Number of the defined column (not the location on the page). For example, if five columns are
defined, then the column_number_int_lit|_var|_col can be 1 to 5.
Description
The column must be previously defined with the COLUMNS.
To stop printing within columns, use a column number of 0 (zero). Printing returns to normal;
however, the columns remain defined for subsequent NEXT-COLUMN or USE-COLUMN
commands.
Examples
use-column 3
print #total
use-column 0
()
! Print total in 3rd column.
999,999
! End of column printing.
USE-PRINTER-TYPE
Function
Sets the printer type to use for the current report.
Syntax
USE-PRINTER-TYPE printer-type
Arguments
printer-type
Printer type to use for the current report. See DECLARE-PRINTER for valid types.
Description
Sets or alters the printer type used for the current report. USE-PRINTER-TYPE must appear
before the first output is written to that report. If output has already been written to the report
file, USE-PRINTER-TYPE is ignored.
Examples
use-report customer_orders
use-printer-type PostScript
print (1, 1) 'Customer Name: '
print () $customer_name
See Also
DECLARE-PRINTER, DECLARE-REPORT, and USE-REPORT
294 Production Reporting Command Reference
USE-PROCEDURE
Function
Changes the procedure usage.
Syntax
USE-PROCEDURE
[FOR-REPORTS=(report_name1[,report_namei]...)]
[BEFORE-REPORT=procedure_name[(arg1[,argi]...)]]
[AFTER-REPORT=procedure_name[(arg1[,argi]...)]]
[BEFORE-PAGE=procedure_name[(arg1[,argi]...)]]
[AFTER-PAGE=procedure_name[(arg1[,argi]...)]]
Arguments
FOR-REPORTS
Reports that use the procedures. This argument is required only for a program with multiple
reports. If you are writing a program that produces a single report, you can ignore this argument.
BEFORE-REPORT
Procedure to execute when the first command execute, which causes output to be generated.
For example, you can use the command to create a report heading.
AFTER-REPORT
Procedure to execute just before the report file is closed at the end of the report. This argument
can be used to print totals or other closing summary information. If no report was generated,
the procedure does not execute.
BEFORE-PAGE
Procedure to execute at the beginning of every page, just before the first output command for
the page. It can be used, for example, to set up page totals.
AFTER-PAGE
Procedure to execute just before each page is written to the file. This argument can be used, for
example, to display page totals.
You can also specify arguments to pass to the procedure. Arguments can be any variable, column,
or literal.
Description
USE-PROCEDURE must be issued in the PROGRAM or PROCEDURE sections of an Production
Reporting program. USE-PROCEDURE is a run-time command; its compile-time equivalent is
DECLARE-PROCEDURE. You can use the command as often as required to change to the necessary
procedures required by the reports. If you issue multiple USE-PROCEDURE commands, each
remains in effect for that report until altered by another USE-PROCEDURE command for that
report. In this way, you can use one to change common procedures for ALL reports and others
USE-PROCEDURE 295
to change unique procedures for individual reports. The referenced procedures can accept
arguments.
If no FOR-REPORTS is specified, ALL is assumed. Initially, the default for each of the four
procedure types is NONE. If a procedure is defined in one DECLARE-PROCEDURE for a report,
that procedure is used unless NONE is specified.
You can change BEFORE-REPORT only before the first output is written to that report, since that
causes the BEFORE-REPORT procedure to execute.
Examples
use-procedure
! These procedures will
for-reports=(all)
! be used by all reports.
before-report=report_heading
after-report=report_footing
use_procedure
! These procedures will
for-reports=(customer)
! be used by the customer report.
before-page=page_setup
after-page=page_total
use-procedure
for-reports=(summary)
after-report=none
! The after-report procedure will be
! disabled for the summary report.
See Also
DECLARE-PROCEDURE
USE-REPORT
Function
For programs with multiple reports, allows the user to switch between reports.
Syntax
USE-REPORT {report_name_lit|_var|_col}
Arguments
report_name_lit|_var|_col
The report to become the “current” report. All subsequent PRINT and PRINT-DIRECT
statements are written to this report until the next USE-REPORT is encountered.
Description
Defines to which report file(s) the subsequent report output is to be written. An application can
contain several USE-REPORT statements to control several reports.
296 Production Reporting Command Reference
You must specify the report name and report characteristics in a DECLARE-REPORT paragraph
and in the associated DECLARE-LAYOUT and DECLARE-PRINTER paragraphs.
Examples
use-report customer_orders
use-printer-type PostScript
print (1, 1) 'Customer Name: '
print () $customer_name
See Also
DECLARE-REPORT, DECLARE-LAYOUT, DECLARE-PRINTER, and USE-PRINTER-TYPE
WHILE
Function
Begins a WHILE ... END-WHILE loop.
Syntax
WHILE logical_expression
The general format of WHILE is as follows:
WHILE logical_expression
SQR_commands...
[BREAK]
[CONTINUE]
SQR_commands...
END-WHILE
Arguments
logical_expression
A valid logical expression. See LET for a description of logical expressions.
Operators
See “Bit-Wise Operators” on page 195 for information on the bit-wise operators supported by
WHILE.
Description
The WHILE loop continues until the condition being tested is FALSE.
An expression returning 0 (zero) is considered FALSE; an expression returning nonzero is TRUE.
BREAK causes an immediate exit of the WHILE loop; Production Reporting continues with the
command immediately following END-WHILE.
CONTINUE ends the current iteration of a loop. Program control passes from the CONTINUE
parameter to the end of the WHILE loop body.
WHILE 297
WHILE commands can be nested to any level and can include or be included within IF and
EVALUATE commands.
Examples
The following example shows an IF nested within a WHILE:
while #count < 50
do get_statistics
if #stat_count = 100
break
! Exit WHILE loop.
end-if
add 1 to #count
end-while
You can use single numeric variables in your expression to make your program more readable,
for example when using flags.
move 1 to #have_data
...
while #have_data
...processing...
end-while
The following example sets up an infinite loop:
while 1
...processing...
if ...
break
! Exit loop
end-if
end-while
You can use any complex expression in WHILE as shown in the following example:
while #count < 100 and (not #end-file or isnull(&state))
...
end-while
The following example shows the use of CONTINUE in a WHILE loop:
while #count < 50
if #count = 10
continue
end-if
do get-statistics(#count)
add 1 to #count
end-while
See Also
LET for a description of expressions
298 Production Reporting Command Reference
WRITE
Function
Writes a record to a file from data stored in variables, columns, or literals.
Syntax
WRITE {filenum_lit|_var|_col} FROM
{{{txt_lit|_var|_col}|{date_var|_col}|num_col}
[:len_int_lit|_var|_col]}|{num_lit|_var:len_int_lit|_var|_col}}...
[STATUS=status_num_var]
Arguments
filenum_lit|_var|_col
Number assigned in OPEN to the file to write.
{{txt_lit|_var|_col}|{date_var|_col}|num_col} [:len_int_lit|_var|
_col]}|{num_lit|_var:len_int_lit|_var|_col}
Specifies one or more variables to write. len_int_lit|_var|_col specifies the length of each
field of data.
STATUS
An optional variable into which a write status is returned.
Description
The file must already be opened for writing.
If length is specified, the variable is either truncated at that length or padded with spaces to that
length. If length is not specified (for string variables or database columns), the current length of
the variable is used.
When writing numeric variables, the length argument is required. Only 1, 2, or 4 byte binary
integers are written. Floating point values are not supported directly in WRITE. However, you
can first convert floating point numbers to strings and then write the string.
When writing binary data the file must be open using the FIXED or FIXED-NOLF qualifiers. The
file is not portable across platforms since binary numbers are represented differently.
When writing a date variable or column, the date is converted to a string according to the
following rules:
●
For DATETIME columns and Production Reporting DATE variables, Production Reporting
uses the format specified by SQR_DB_DATE_FORMAT. If not set, Production Reporting uses
the first database-dependent format in Table 61, “Default Formats by Database,” on page
251.
●
For DATE columns, Production Reporting uses the format specified by
SQR_DB_DATE_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 62,
“DATE Column Formats,” on page 252.
WRITE 299
●
For TIME columns, Production Reporting uses the format specified by
SQR_DB_TIME_ONLY_FORMAT. If not set, Production Reporting uses the format in Table 63,
“TIME Column Formats,” on page 252.
Text literals take the length of the literal.
Files opened for writing are treated as having variable-length records. If you need a fixed-length
record, specify a length for each variable written to the file.
The total length of the variables and literals being written must not be greater (but can be less)
than the record length specified when the file was opened. Records are not padded, but are
written with the total length of all variables in WRITE.
If STATUS is specified, Production Reporting returns 0 if the write is successful; otherwise, it
returns the value of errno, which is system-dependent.
Examples
write 5 from $name:20 $city:15 $state:2
write 17 from $company ' - ' $city ' - ' $state ' ' $zip
write #j2 from #rate:2 #amount:4 #quantity:1
move #total to $tot 99999.99
! Convert floating point to
! string.
write 1 from $tot
let $date1 = datenow()
! Put the current date and time
! into DATE variable
write 3 from $date1:20
See Also
OPEN, CLOSE, and READ
WRITE-RS
Function
Writes values to the specified row set.
Syntax
WRITE-RS
NAME=row_set_name_var|_lit|_col
VALUE=({name_var|_lit|_col},{data_var|_lit|_col})
Arguments
NAME
Name of the row set.
VALUE
Column name and value. Can be repeated as many times as needed to satisfy the row set
definition.
300 Production Reporting Command Reference
Description
WRITE-RS can reside in any section except BEGIN-SETUP, BEGIN-SQL, and BEGIN-
DOCUMENT. Validation rules include:
●
The row set specified by row_set_name must be active, or an exception is thrown.
●
If NAME is an empty string, then VALUE is ignored.
●
If NAME is not an empty string, then it must be defined in OPEN-RS.
●
The data type should match the type specified for the column. If needed, implicit conversions
are performed according to SQR rules. If a required conversion cannot be done, an exception
is thrown (for example, a numeric value specified for a DATE column).
●
Based on the row set definition in OPEN-RS, if a column is not specified with a VALUE entry,
it is assumed to be a NULL value.
The row set file is an XML file. You can define whether to create the XML file in a BI Publisher
(BIP) format or an SQR format in the FormatForRowsetXML entry in the [Default-Settings]
section of SQR.INI.
Example
Begin-Report
Open-RS Name='customer' FileName='customer.xml'
Column = ('cust_num', 'integer')
Column = ('name', 'string')
Column = ('addr1', 'string')
Column = ('addr2', 'string')
Column = ('city', 'string')
Column = ('state', 'string')
Column = ('zip', 'string')
Column = ('phone', 'string')
Column = ('tot', 'integer')
Begin-Select
cust_num
name
addr1
addr2
city
state
zip
phone
tot
Write-RS Name='customer'
Value = ('cust_num', $cust_num)
Value = ('name', &name)
Value = ('addr1', &addr1)
Value = ('addr2', &addr2)
Value = ('city', &addr3)
Value = ('state', &addr4)
Value = ('zip', &zip)
Value = ('phone', &phone)
Value = ('tot', $&tot)
from customers
order by cust_num
End-Select
WRITE-RS 301
Close-RS Name='customer'
End-Report
See Also
OPEN-RS, CLOSE-RS
302 Production Reporting Command Reference
HTML Procedures
4
In This Chapter
About HTML Procedures ......................................................................................................... 303
HTML General Purpose Procedures............................................................................................. 303
HTML Heading Procedures ...................................................................................................... 305
HTML Highlighting Procedures .................................................................................................. 307
HTML Hypertext Link Procedures................................................................................................ 309
HTML List Procedures ............................................................................................................ 309
HTML Table Procedures.......................................................................................................... 312
About HTML Procedures
HTML procedures enable Production Reporting to generate HTML output. For information
on using HTML procedures, see “Working with HTML” in Volume 1 of the Hyperion SQR
Production Reporting Developer's Guide.
HTML General Purpose Procedures
Table 67
HTML General Purpose Procedures
Procedure
Description
html_br
Line break in a paragraph.
Syntax: html_br(number count, string attributes)
●
count = Number of <BR> tags
●
attributes = HTML attributes inside <BR>
Example:
print 'Here is some text' ()
do html_br(3,'')
print 'Here is some three lines down' ()
html_center
Start of centered text. (You can also use PRINT and specify CENTER in the code.)
Syntax: html_center(string attributes)
●
attributes = HTML attributes inside <CENTER>
Example:
About HTML Procedures 303
Procedure
Description
do html_center('')
print 'Here is some text' ()
do html_center_end
html_center_ end
End of centered text.
Syntax: html_center_end
html_hr
Horizontal divider between sections of text.
Syntax: html_hr(string attributes)
●
attributes = HTML attributes inside <HR>
Example::
print 'Here is some text' ()
do html_hr('')
print 'And some more text' ()
html_img
Image. (You can also use PRINT-IMAGE; however, html_img allows you to define the full set of available
HTML attributes.)
Syntax: html_img(string attributes)
●
attributes = HTML attributes inside <IMG>
Common attributes:src–URL of image (Example: src=/images/abc.gif)
height–Image height in pixels (Example: height=200)
width–Image width in pixels (Example: width=400)
Example:
do html_img('src="/images/stop.gif"')
html_nobr
Start of text that cannot be wrapped.
Syntax: html_nobr
Example:
do html_nobr('')
print 'Here's long text that should not wrap' ()
do html_nobr_end
html_nobr_end
End of text that cannot be wrapped.
Syntax: html_nobr_end
html_on
Turns on HTML procedures. Called at the start of Production Reporting programs.
Syntax: html_on
Example
do html_on
html_p
Start of a paragraph.
Syntax: html_p(string attributes)
●
attributes = HTML attributes inside <P>
Some common attributes:
align = left|right|center–Alignment of the paragraph.
304 HTML Procedures
Procedure
Description
Example:
do html_p('ALIGN=RIGHT')
print 'Right aligned text' (1,1)
do html_p_end
print 'Normal text' (+1,1)
html_p_end
End of a paragraph. Typically implied; however, can be defined for completeness.
Syntax: html_p_end
html_set_body_attributes
Attributes inside <BODY>. Called at the start of Production Reporting programs.
Syntax: html_set_body_attributes(string attributes)
●
attributes = HTML attributes inside <BODY>
Common attributes:
background–Image displayed on the background of the Web page.
(Example: background=/images/logo.gif)
bgcolor=#rrggbb–Background color of the Web page.
(Example: bgcolor=#80FFF)
Example:
do html_set_body_attributes('BACKGROUND="/images/x.gif"')
html_set_head_tags
Tags between <HEAD> and </HEAD>. (Empty by default.) Called at the start of Production Reporting
programs.
Syntax: html_set_head_tags(string attributes)
●
attributes = HTML attributes between <HEAD> and </HEAD>
Example:
do html_set_head_tags('<TITLE>My Report</TITLE>')
HTML Heading Procedures
Table 68
HTML Heading Procedures
Procedure
Description
html_h1
Start of heading level one text.
Syntax: html_h1(string attributes)
●
attributes = HTML attributes inside <H1>
Example::
do html_h1('')
print 'This is a heading' ()
do html_h1_end
html_h1_end
End of heading level one text.
Syntax: html_h1_end
HTML Heading Procedures 305
Procedure
Description
html_h2
Start of heading level two text.
Syntax: html_h2(string attributes)
●
attributes = HTML attributes inside <H2>
Example:
do html_h2('')
print 'This is a heading' ()
do html_h2_end
html_h2_end
End of heading level two text.
Syntax: html_h2_end
html_h3
Start of heading level three text. (This heading is the default.)
Syntax: html_h3(string attributes)
●
html_h3_end
attributes = HTML attributes inside <H3>
End of heading level three text.
Syntax: html_h3_end
html_h4
Start of heading level four text.
Syntax: html_h4(string attributes)
●
html_h4_end
attributes = HTML attributes inside <H4>
End of heading level four text.
Syntax: html_h4_end
html_h5
Start of heading level five text.
Syntax: html_h5(string attributes)
●
html_h5_end
attributes = HTML attributes inside <H5>
End of heading level five text.
Syntax: html_h5_end
html_h6
Start of heading level six text.
Syntax: html_h6(string attributes)
●
html_h6_end
attributes = HTML attributes inside <H6>
End of heading level six text.
Syntax: html_h6_end
306 HTML Procedures
HTML Highlighting Procedures
Table 69
HTML Highlighting Procedures
Procedure
Description
html_blink
Start of blinking text.
Syntax: html_blink(string attributes)
●
attributes = HTML attributes inside <BLINK>
Example:
do html_blink('')
print 'This is blinking' ()
do html_blink_end
html_blink_end
End of blinking text.
Syntax: html_blink_end
html_cite
Start of citation text.
Syntax: html_cite(string attributes)
●
attributes = HTML attributes inside <CITE>
Example:
do html_cite('')
print 'This is a citation' ()
do html_cite_end
html_cite_end
End of citation text.
Syntax: html_cite_end
html_code
Start of code text.
Syntax: html_code(string attributes)
●
attributes = HTML attributes inside <CODE>
Example:
do html_code('')
print 'Here is the code' ()
do html_code_end
html_code_end
End of code text.
Syntax: html_code_end
html_kbd
Start of keyboard input text.
Syntax: html_kbd(string attributes)
●
attributes = HTML attributes inside <KBD>
Example:
do html_kbd('')
print 'Here is keyboard' ()
do html_kbd_end
HTML Highlighting Procedures 307
Procedure
Description
html_kbd_end
End of keyboard input text.
Syntax: html_kbd_end
html_samp
Start of sample text.
Syntax: html_samp(string attributes)
●
attributes = HTML attributes inside <SAMP>
Example:
do html_samp('')
print 'Here is sample' ()
do html_samp_end
html_samp_end
End of sample text.
Syntax: html_samp_end
html_strike
Start of strike-through text.
Syntax: html_strike(string attributes)
●
attributes = HTML attributes inside <STRIKE>
Example:
do html_strike('')
print 'Here is strike-through' ()
do html_strike_end
html_strike_end
End of strike-through text.
Syntax: html_strike_end
html_sub
Start of subscript text.
Syntax: html_sub(string attributes)
●
attributes = HTML attributes inside <SUB>
Example:
print 'Here is' ()
do html_sub('')
print 'subscript text' ()
do html_sub_end
html_sub_end
End of subscript text.
Syntax: html_sub_end
html_sup
Start of superscript text.
Syntax: html_sup(string attributes)
●
attributes = HTML attributes inside <SUP>
Example:
print 'Here is' ()
do html_sup('')
print 'superscript text' ()
do html_sup_end
308 HTML Procedures
Procedure
Description
html_sup_end
End of superscript text.
Syntax: html_sup_end
HTML Hypertext Link Procedures
Table 70
HTML Hypertext Link Procedures
Procedure
Description
html_a
Start of a hypertext link.
Syntax: html_a(string attributes)
●
attributes = HTML attributes inside <A>. At a minimum, define HREF, which specifies the URL of HTML documents.
Common attributes:
href–Where the hypertext link points. (Example: href=home.html)
name–Anchor to which a hypertext link can point. (Example: name=marker1)
Example: Create an anchor with two hypertext links. Position the anchor at the top of the document. Point the first hypertext
link to otherdoc.html. Point the second hypertext link to the anchor named TOP.
do html_a('NAME=TOP')
do html_a_end
print 'At the top of document' ()
do html_br(20, '')
do html_a('HREF=otherdoc.html')
print 'Goto other document' ()
do html_a_end
do html_p('')
do html_a('HREF=#TOP')
print 'Goto top of document' ()
do html_a_end
html_a_end
End of a hypertext link.
Syntax: html_a_end
HTML List Procedures
Table 71
HTML List Procedures
Procedure
Description
html_dd
Start of a definition in a definition list.
Syntax: html_dd(string attributes)
●
attributes = HTML attributes inside <DD>
HTML Hypertext Link Procedures 309
Procedure
Description
html_dd_end
End of a definition in a definition list. Typically implied; however, can be defined for completeness.
Syntax: html_dd_end
html_dir
Start of a directory list.
Syntax: html_dir(string attributes)
●
attributes = HTML attributes inside <DIR>
Example:
do html_dir('')
do html_li('')
print 'First item' ()
do html_li('')
print 'Second item' ()
do html_li('')
print 'Last item' ()
do html_dir_end
html_dir_end
End of a directory list.
Syntax: html_dir_end
html_dl
Start of a definition list. Terms display above and to the left of definitions. html_dt displays terms. html_dd displays
definitions.
Syntax: html_dl(string attributes)
●
attributes = HTML attributes inside <DL>
Example: Definition list with two terms and definitions:
do html_dl('')
do html_dt('')
print 'A Daisy' ()
do html_dd('')
print 'A sweet and innocent flower.' ()
do html_dt('')
print 'A Rose' ()
do html_dd('')
print 'A very passionate flower.' ()
do html_dl_end
html_dl_end
End of a definition list.
Syntax: html_dl_end
html_dt
Start of a term in a definition list.
Syntax: html_dt(string attributes)
●
html_dt_end
attributes = HTML attributes inside <DT>
End of a term in a definition list.
Syntax: html_dt_end
html_li
Start of a list item.
Syntax: html_li(string attributes)
310 HTML Procedures
Procedure
Description
●
html_li_end
attributes = HTML attributes inside <LI>
End of a list item. Typically implied; however, can be defined for completeness.
Syntax: html_li_end
html_menu
Start of a menu. html_li identifies menu items.
Syntax: html_menu(string attributes)
●
attributes = HTML attributes inside <MENU>
Example:
do html_menu('')
do html_li('')
print 'First item' ()
do html_li('')
print 'Second item' ()
do html_li('')
print 'Last item' ()
do html_menu_end
html_menu_end
End of a menu.
Syntax: html_menu_end
html_ol
Start of an ordered list. List items typically display indented to the right with a number to the left. html_li identifies
list items.
Syntax: html_ol(string attributes)
●
attributes = HTML attributes inside <OL>
Example:
do html_ol('')
do html_li('')
print 'First item' ()
do html_li('')
print 'Second item' ()
do html_li('')
print 'Last item' ()
do html_ol_end
html_ol_end
End of an ordered list.
Syntax: html_ol_end
html_ul
Start of an unordered list. List items typically display indented to the right with a bullet to the left. html_li identifies
list items.
Syntax: html_ul(string attributes)
●
attributes = HTML attributes inside <UL>
Example:
do html_ul('')
do html_li('')
print 'First item' ()
do html_li('')
print 'Second item' ()
HTML List Procedures 311
Procedure
Description
do html_li('')
print 'Last item' ()
do html_ul_end
html_ul_end
End of an unordered list.
Syntax: html_ul_end
HTML Table Procedures
Table 72
HTML Table Procedures
Procedure
Description
html_caption
Start of a table caption.
Syntax: html_caption(string attributes)
●
html_caption_end
attributes = HTML attributes inside <CAPTION>
End of a table caption. Typically implied; however, can be defined for completeness.
Syntax: html_caption_end
html_table
Start of a table.
Syntax: html_table(string attributes)
●
attributes = HTML attributes inside <TABLE>
Common attributes:
border—Displays a border around each table cell.
width—Table width in pixels.
cols—Number of table columns. (Example: COLS=4)
Example: Database records in a tabular format. html_caption_end, html_tr_end, html_td_end, and
html_th_end are used for completeness; however, they are typically implied.
!start the table & display the column headings
do html_table('border')
do html_caption('')
print 'Customer Records' (1,1)
do html_caption_end
do html_tr('')
do html_th('')
print 'Cust No' (+1,1)
do html_th_end
do html_th('')
print 'Name" (,10)
do html_th_end
do html_tr_end
! display each record
begin-select
do html_tr('')
do html_td('')
cust_num (1,1,6) edit 099999
312 HTML Procedures
Procedure
Description
do html_td_end
do html_td('')
name (1,10,25)
do html_td_end
do html_tr_end
next-listing skiplines=1 need=1
from customers
end-select
! end the table
do html_table_end
html_table_end
End of a table.
Syntax: html_table_end
html_td
Start of a new column in a table row. The text that follows displays within the column.
Syntax: html_td(string attributes)
●
html_td_end
attributes = HTML attributes inside <TD>
End of a column in a table. Typically implied; however, can be defined for completeness.
Syntax: html_td_end
html_th
Start of a new column header in a table row. The text that follows displays as the column header.
Syntax: html_th(string attributes)
●
html_th_end
attributes = HTML attributes inside <TH>
End of a column header in a table. Typically implied; however, can be defined for completeness.
Syntax: html_th_end
html_tr
Start of a new table row.
Syntax: html_tr(string attributes)
●
html_tr_end
attributes = HTML attributes inside <TR>
End of a table row. Typically implied; however, can be defined for completeness.
Syntax: html_tr_end
HTML Table Procedures 313
314 HTML Procedures
Encoding in Production
Reporting
5
In This Chapter
Encoding Methods ............................................................................................................... 315
Encoding Keys in SQR.INI ....................................................................................................... 315
Encodings Supported without Using Unicode Internally...................................................................... 318
Encodings Supported in Production Reporting ................................................................................ 320
Encoding Methods
You can setup Production Reporting to:
●
Read character streams into the system by "widening" them into 16-bit character strings.
●
Use Unicode internally to normalize data.
The default method is to read character streams into the system. To override the default and use
Unicode internally, set the following in SQI.INI:
UseUnicodeInternal=TRUE
When UseUnicodeInternal=TRUE, any combination of encodings is valid in a single
Production Reporting run, including ASCII and EBCDIC.
Encoding Keys in SQR.INI
You can define encoding keys in the following sections of SQR.INI:
●
[Default-Settings]
●
[Environment]
Encoding Keys in the [Default-Settings] Section
Table 73
Encoding Keys in the [Default-Settings] Section
Encoding Key
Description
UseUnicodeInternal
TRUE uses Unicode internally.
AutoDetectUnicodeFiles
TRUE automatically detects UCS-2 encoded files.
Encoding Methods 315
Encoding Key
Description
Substitution-Character
Defines a substitution character on a character set by character set basis.
UseUnicodeInternal Key
Forces the use of Unicode internally. When UseUnicodeInternal=TRUE, any combination of
encodings is valid in a single Production Reporting run, including ASCII and EBCDIC.
AutoDetectUnicodeFiles Key
By convention, all UCS-2 encoded files start with a Byte Order Mark (BOM). The BOM is the
Unicode character ZERO WIDTH NO-BREAK SPACE that has a hexadecimal value of 0xFEFF.
The BOM serves two purposes:
●
Indicates that the file is encoded as UCS-2 (two bytes per character)
●
Indicates the order in which the individual bytes of each Unicode character are written to
the file.
On little-endian architectures such as Intel, the high order byte is written first so the BOM is
physically recorded in the file as 0xFFFE. On big-endian architectures, the BOM is recorded as
0xFEFF.
If auto-detection of UCS-2 encoded files is enabled, Production Reporting checks whether the
first two bytes of each file that it opens equal either 0xFEFF or 0xFFFE. If so, the file reads as a
UCS-2 encoded file.
If an ENCODING directive is specified on an OPEN statement, Production Reporting does not
attempt to auto-detect. It uses the encoding specified.
The BOM is not considered part of the file when performing fixed field width file I/O. In other
words, reading 2 bytes from a UCS-2 file after it is opened returns the first Unicode character
after the BOM, not the BOM itself.
When creating a UCS-2 output file, Production Reporting writes a BOM to the file as the file's
first two bytes.
Substitution-Character Key
Allows for the substitution character to be defined on a character set by character set basis. The
substitution character is the character placed in the output when a Unicode character does not
exist in the target encoding. For readability's sake and to avoid character conversion problems
when moving INI files between platforms, specify the substitution character as a hexadecimal
string.
The format of the entry is:
[Default-Settings]
SUBSTITUTION-CHARACTER=XX EncodingName1 [, XX EncodingName2...]
316 Encoding in Production Reporting
where XX is the complete hexadecimal representation of the substitution character and
EncodingName is a valid encoding name. Additionally, you can use the encoding name Default
to specify the substitution character for all the encodings not explicitly listed. A default
substitution character is used whenever no substitution character is explicitly or implicitly
specified in the Default settings.
Encoding Keys in the [Environment] Section
Table 74 describes the encoding keys in the [Environment] section of SQR.INI. All of these
encoding settings will accept as valid values any of the encoding literals. Any encoding can be
specified for any encoding setting entry.
Table 74
Encoding Keys in the [Environment] Section
Encoding Key
Description
Encoding
Default encoding.
Encoding-Console
Encoding used for console input and output.
Encoding-Database
Encoding used for interfacing with the database.
Encoding-File-Input
Default encoding used for “OPEN” for-reading files and argument files.
Encoding-File-Output
Default encoding used for “OPEN” for-writing files.
Encoding-Report-Output
Default encoding used for report output, such as, SPF, LIS, HTM, etc.
Encoding-SQR-Source
Encoding used for Production Reporting source and include files.
The following is an example of encoding settings in the [Environment] section:
[Environment:Common]
Encoding=ISO-8859-1
Encoding-File-Output=Greek
Encoding-File-Input=Shift-Jis
Encoding-Report-Output=UCS-2
Encoding-database=utf-8
Encoding-console=ascii
Encoding-SQR-Source=ucs-2
If these keys are not specified, encodings default to ASCII. The Encoding setting, which specifies
the default encoding, can be overridden by the other encoding settings.
As with other [Environment] section settings, Production Reporting first checks the
[Environment] section of its database type and then checks the [Common Environment] section.
For example, an ODBC version of Production Reporting first checks the [Environment:ODBC]
section of SQR.INI for a setting and, if not found, then checks the [Environment:Common]
section.
To access these encoding settings within an Production Reporting program, use the following
reserved variables.
Encoding Keys in SQR.INI 317
●
$SQR-ENCODING-REPORT-OUTPUT
{SQR-ENCODING-REPORT-OUTPUT}
●
$SQR-ENCODING-FILE-INPUT
{SQR-ENCODING-FILE-INPUT}
●
$SQR-ENCODING-FILE-OUTPUT
{SQR-ENCODING-FILE-OUTPUT}
●
$SQR-ENCODING-CONSOLE
{SQR-ENCODING-CONSOLE}
●
$SQR-ENCODING-SOURCE
{SQR-ENCODING-SOURCE}
●
$SQR-ENCODING-DATABASE
{SQR-ENCODING-DATABASE}
Encodings Supported without Using Unicode Internally
When you do not use Unicode internally (UseUnicodeInternal=FALSE), Production
Reporting supports the following encodings:
●
ASCII
●
EBCDIC
●
Shift-JIS
●
EUC-J
●
EBCDIK290
●
EBCDIK1027
●
UTF-8
●
UCS-2
When you do not use Unicode internally, Production Reporting does not perform character
conversion. As a result, you can only mix encodings that are logical supersets or subsets of each
other. For example, you can combine Shift-JIS and ASCII or EBCDIC and EBCDIK1027;
however, you cannot combine Shift-JIS with EBCDIC or UTF-8.
Table 75 identifies a valid set of encoding settings for an Production Reporting run. For
simplicity, ENCODING-SQR-SOURCE and ENCODING-CONSOLE have not been specified and are
assumed to be either ASCII or EBCDIC, depending on the platform.
Table 75
Compatible Encodings without Unicode
Encoding-File-Input
Encoding-Database
Encoding-File-Output
Encoding-Report-Output
ASCII
ASCII
ASCII
ASCII
318 Encoding in Production Reporting
Encoding-File-Input
Encoding-Database
Encoding-File-Output
Encoding-Report-Output
ASCII
ASCII
ASCII
Shift-JIS
ASCII
ASCII
ASCII
JEUC
ASCII
ASCII
ASCII
UTF-8/UCS-2
ASCII
Shift-JIS
ASCII
ASCII
ASCII
Shift-JIS
ASCII
Shift-JIS
ASCII
JEUC
ASCII
ASCII
ASCII
JEUC
ASCII
JEUC
ASCII
UTF-8/UCS-2
ASCII
ASCII
ASCII
UTF-8/UCS-2
ASCII
UTF-8/UCS-2
ASCII
Shift-JIS
Shift-JIS
Shift-JIS
ASCII
JEUC
JEUC
JEUC
ASCII
UTF-8/UCS-2
UTF-8/UCS-2
UTF-8/UCS-2
EBCDIC
EBCDIC
EBCDIC
EBCDIC
EBCDIC
EBCDIC
EBCDIC
EBCDIK290 or 1027
EBCDIC
EBCDIK290 or 1027
EBCDIC
EBCDIC
EBCDIC
EBCDIK290 or 1027
EBCDIC
EBCDIK290 or 1027
EBCDIC
EBCDIK290 or 1027
EBCDIK290 or 1027
EBCDIK290 or 1027
EBCDIK290 or 1027
EBCDIK290 or 1027
EBCDIC
EBCDIK290 or 1027
EBCDIK290 or 1027
EBCDIK290 or 1027
EBCDIK290 or 1027
EBCDIK290 or 1027
Shift-JIS
Shift-JIS
ASCII
Shift-JIS
Shift-JIS
Shift-JIS
Shift-JIS
Shift-JIS
JEUC
JEUC
ASCII
JEUC
JEUC
JEUC
JEUC
JEUC
UTF-8/UCS-2
UTF-8/UCS-2
ASCII
UTF-8/UCS-2
UTF-8/UCS-2
UTF-8/UCS-2
UTF-8/UCS-2
UTF-8/UCS-2
Note:
Production Reporting works differently on EBCDIC platforms than in ASCII. Specifically, the
UseUnicodeInternal setting has no effect on EBCDIC platforms. Instead, the distribution
Encodings Supported without Using Unicode Internally 319
media contains two sets of executables (SQR, SQRT, and SQRP), where one set works with nonunicode processing and the other works for unicode processing.
Encodings Supported in Production Reporting
Table 76
Production Reporting-Supported Encodings
Encoding
Character Set
Also Known As
Vendor / Standard
Body
Acceptable Production
Reporting Names
CP10004
Arabic
Macintosh Arabic
Microsoft & IBM
CP10004
CP1256
Arabic
Microsoft & IBM
CP1256
CP20420
Arabic
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20420
CP28596
Arabic
Arabic Alphabet (ISO)
Microsoft & IBM
CP28596
CP720
Arabic
Transparent ASMO
Microsoft & IBM
CP720
CP864
Arabic
Microsoft & IBM
CP864
ISO 8859-6
Arabic
ISOLatinArabic
International or National
Standard
Arabic
CP708
Arabic
ASMO708
Microsoft & IBM
CP708
CP1257
Baltic
Microsoft & IBM
CP1257
CP28594
Baltic
Microsoft & IBM
CP28594
CP775
Baltic
Microsoft & IBM
CP775
ISO 8859-4
Baltic
Latin4
International or National
Standard
Latin4, ISO-8859-4
ISO 8859-13
Baltic
Latin7
International or National
Standard
Latin7, ISO-8859-13
ISO 8859-14
Celtic
Latin8
International or National
Standard
ISO-8859-14
ISO 2022-CN
Chinese
International or National
Standard
ISO-2022-CN
GB18030
Chinese
International or National
Standard
GB18030
HKSCS
Chinese
Big5-HKSCS
International or National
Standard
Big5-HKSCS
CP936
Chinese, Simplified
GBK
Microsoft & IBM
CP936
GB2312
Chinese, Simplified
EUC-CN, EUC-SC
International or National
Standard
GB2312, EUC-CN
320 Encoding in Production Reporting
Baltic Alphabet (ISO)
Vendor / Standard
Body
Acceptable Production
Reporting Names
International or National
Standard
HZ
Chinese, Traditional
International or National
Standard
Big5
BIG5+
Chinese, Traditional
International or National
Standard
BIG5+
CNS-11643-1986
Chinese, Traditional
EUC-TW
International or National
Standard
CNS-11643-1986
CNS-11643-1992
Chinese, Traditional
EUC-TW
International or National
Standard
CNS-11643-1992
EUC-TW
Chinese, Traditional
CNS-11643-1986,
CNS-11643-1992
UNIX
CNS-11643-1992
GB12345
Chinese, Traditional
International or National
Standard
GB12345
CP10002
Chinese, Traditional
Microsoft & IBM
CP10002
CP950
Chinese, Traditional
Microsoft & IBM
CP950
CP10007
Cyrillic
Macintosh Cyrillic
Microsoft & IBM
CP10007
CP1251
Cyrillic
MS Windows Cyrillic (Slavic)
Microsoft & IBM
CP1251
CP20866
Cyrillic
Cyrillic Alphabet, KOI8-R
Microsoft & IBM
CP20866
CP20880
Cyrillic
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20880
CP21025
Cyrillic
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP21025
CP21866
Cyrillic
Ukrainian KOI8-RU
Microsoft & IBM
CP21866
CP28595
Cyrillic
Cyrillic Alphabet (ISO)
Microsoft & IBM
CP28595
CP855
Cyrillic
IBM Cyrillic
Microsoft & IBM
CP855
CP866
Cyrillic
MS DOS Russian
Microsoft & IBM
CP866
ISO 8859-5
Cyrillic
ISOLatinCyrillic
International or National
Standard
ISOLatinCyrillic
CP10006
Greek
Macintosh Greek 1
Microsoft & IBM
CP10006
CP1253
Greek
Microsoft & IBM
CP1253
CP20423
Greek
Microsoft & IBM
CP20423
Encoding
Character Set
Also Known As
HZ-GB-2312
Chinese, Simplified
HZ-GB-2312
Big5
Macintosh Traditional Chinese
(with fullwidth Latin &
punctuation)
Encodings Supported in Production Reporting 321
Encoding
Character Set
Also Known As
Vendor / Standard
Body
Acceptable Production
Reporting Names
CP28597
Greek
Greek Alphabet (ISO)
Microsoft & IBM
CP28597
CP737
Greek
Microsoft & IBM
CP737
CP869
Greek
IBM Modern Greek
Microsoft & IBM
CP869
ISO 8859-7
Greek
ISOLatinGreek
International or National
Standard
Greek
CP10010
Gurmukhi
Macintosh Gurmukhi
Microsoft & IBM
CP10010
CP10005
Hebrew
Macintosh Hebrew
Microsoft & IBM
CP10005
CP1255
Hebrew
Microsoft & IBM
CP1255
CP28598
Hebrew
Hebrew Alphabet (ISO)
Microsoft & IBM
CP28598
CP38598
Hebrew
ASCII + Hebrew and private
use characters
Microsoft & IBM
CP38598
CP862
Hebrew
Microsoft & IBM
CP862
ISO 8859-8
Hebrew
ISOLatinHebrew
International or National
Standard
Hebrew
CP10079
Icelandic
Macintosh Icelandic
Microsoft & IBM
CP10079
CP861
Icelandic
MS DOS Icelandic
Microsoft & IBM
CP861
CCSID 1027
Japanese
EBCDIK
Microsoft & IBM
CCSID-1027, EBCDIK1027
CCSID 290
Japanese
EBCDIK
Microsoft & IBM
CCSID-290, EBCDIK290
CCSID 942
Japanese
Microsoft & IBM
CCSID-942
CP10001
Japanese
Macintosh Japanese
Microsoft & IBM
CP10001
CP20290
Japanese
(full/half width Latin &
halfwidth katakana)
Microsoft & IBM
CP20290
CP21027
Japanese
(halfwidth Latin, halfwidth
katakana&private use)
Microsoft & IBM
CP21027
CP932
Japanese
Microsoft & IBM
CP932
EUC-JP
Japanese
UNIX
EUC-J, JEUC
EUC-JP-
Japanese
UNIX
EUC-JP-
JISROMAN
JISROMAN
ISO-2022-JP
Japanese
JIS_X_0201
Japanese
322 Encoding in Production Reporting
HalfWidthKatakana
International or National
Standard
ISO-2022-JP
International or National
Standard
JIS_X_0201, IBM897
Vendor / Standard
Body
Acceptable Production
Reporting Names
International or National
Standard
JIS_X_0208
MS_Kanji
Microsoft & IBM
Shift-JIS, SJIS
Korean
Macintosh Korean
Microsoft & IBM
CP10003
CP1361
Korean
Korean Johab (based on KSC
5861-1992)
Microsoft & IBM
CP1361
CP949
Korean
Microsoft & IBM
CP949
EUC-KR
Korean
KS_C_5861-1992
UNIX
EUC-KR, EUC-K
ISO-2022-KR
Korean
KS_C_5601-1987
International or National
Standard
ISO-2022-KR
Johab
Korean
International or National
Standard
Johab
CP10000
Latin
Macintosh Roman
Microsoft & IBM
CP10000
CP10029
Latin
Macintosh Latin2
Microsoft & IBM
CP10029
CP10082
Latin
(with mathematical symbols)
Microsoft & IBM
CP10082
CCSID1047
Latin
EBCDIC (for IBM Open
Systems platform)
Microsoft & IBM
CCSID1047
CP20261
Latin
(with private use characters)
Microsoft & IBM
CP20261
CP20269
Latin
Microsoft & IBM
CP20269
CP20273
Latin
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20273
CP20277
Latin
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20277
CP20278
Latin
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20278
CP20280
Latin
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20280
CP20284
Latin
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20284
CP20285
Latin
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20285
CP20297
Latin
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20297
Encoding
Character Set
JIS_X_0208
Japanese
Shift-JIS
Japanese
CP10003
Also Known As
Encodings Supported in Production Reporting 323
Vendor / Standard
Body
Acceptable Production
Reporting Names
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20833
Latin
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20871
CP28591
Latin
ASCII + Latin accented vowels
Microsoft & IBM
CP28591
CP28593
Latin
Latin 3 Alphabet (ISO)
Microsoft & IBM
CP28593
CP850
Latin
MS DOS Multilingual, MS-DOS
Latin1
Microsoft & IBM
CP850
CP870
Latin
(with fullwidth punctuation)
Microsoft & IBM
CP870
HP-ROMAN8
Latin
csHPRoman8, r8, roman8
HP
HP-ROMAN8
ISO 8859-1
Latin
Latin1
International or National
Standard
Latin1, ISO-8859-1
ISO 8859-15
Latin
Latin1 + Euro symbol &
accented characters
International or National
Standard
ISO-8859-15
ISO 8859-2
Latin
Latin2
International or National
Standard
Latin2, ISO-8859-2
UTF8-EBCDIC
Latin
Unicode
UTF8-EBCDIC
CP863
Latin, Canadian
French
MS DOS Canadian French
Microsoft & IBM
CP863
CP28592
Latin, Central
European
Central European Alphabet
(ISO)
Microsoft & IBM
CP28592
CP1250
Latin, Eastern Europe
Microsoft & IBM
CP1250
CP20905
Latin, Esperanto
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20905
CP860
Latin, Portuguese
MS DOS Portuguese
Microsoft & IBM
CP860
ISO 8859-3
Latin, Southeast
European
Latin3
International or National
Standard
Latin3, ISO-8859-3
ASCII
Latin, US English
US-ASCII, CP367
International or National
Standard
ASCII, ANSI
CP037
Latin, US English
EBCDIC
Microsoft & IBM
CP037
CP1026
Latin, US English
EBCDIC
Microsoft & IBM
CP1026
CP1252
Latin, US English
MS Windows Latin1 (ANSI)
Microsoft & IBM
CP1252
CP20105
Latin, US English
US ASCII
Microsoft & IBM
CP20105
Encoding
Character Set
Also Known As
CP20833
Latin
CP20871
324 Encoding in Production Reporting
Encoding
Character Set
Also Known As
Vendor / Standard
Body
Acceptable Production
Reporting Names
CP437
Latin, US English
MS-DOS Latin US
Microsoft & IBM
CP437
CP500
Latin, US English
EBCDIC
Microsoft & IBM
CP500
CP875
Latin, US English
EBCDIC
Microsoft & IBM
CP875
CP10017
Malayan
Macintosh Malayan
Microsoft & IBM
CP10017
CP865
Nordic
MS DOS Nordic
Microsoft & IBM
CP865
ISO 8859-10
Nordic
Latin6
International or National
Standard
Latin6, ISO-8859-10
CP852
Slavic
MS DOS Slavic
Microsoft & IBM
CP852
Adobe-SymbolEncoding
Symbol
(used in PS printers)
Adobe
Adobe-Symbol-Encoding
CP10008
Symbol
Macintosh RSymbol (Right-left
symbol)
Microsoft & IBM
CP10008
CP20838
Thai
(with fullwidth Latin &
punctuation)
Microsoft & IBM
CP20838
CP874
Thai
IBMThai
Microsoft & IBM
CP874
ISO 8859-11
(draft)
Thai
ISOLatinThai
International or National
Standard
Thai
CP10081
Turkish
Macintosh Turkish
Microsoft & IBM
CP10081
CP1254
Turkish
Microsoft & IBM
CP1254
CP28599
Turkish
Turkish (ISO)
Microsoft & IBM
CP28599
CP857
Turkish
IBM Turkish
Microsoft & IBM
CP857
ISO 8859-9
Turkish
Latin5
International or National
Standard
Latin5, ISO-8859-9
BMP
Unicode
Unicode
BMP
Java
Unicode
(way of representing Unicode
chars in ASCII)
Sun
Java
UCS2
Unicode
ISO-10646-UCS2, UTF16
Unicode
UCS2
Unicode Bigendian
Unicode
Unicode
big-endian
Unicode Littleendian
Unicode
Unicode
little-endian
UTF7
Unicode
Unicode
UTF7
Encodings Supported in Production Reporting 325
Vendor / Standard
Body
Acceptable Production
Reporting Names
Unicode
Unicode
UTF8
UTF8-EBCDIC
Unicode
Unicode
UTF8-EBCDIC
CP1258
Vietnamese
Microsoft & IBM
CP1258
Encoding
Character Set
UTF8
326 Encoding in Production Reporting
Also Known As
SQR.INI
6
In This Chapter
Installation of SQR.INI ........................................................................................................... 327
[Default-Settings] Section....................................................................................................... 328
[Environment: environment] Section ........................................................................................... 333
[SQR Extension] Section ........................................................................................................ 335
[Locale:local-name] Section .................................................................................................... 335
[Fonts] Section................................................................................................................... 337
[PDF Fonts] Section ............................................................................................................. 338
[PDF Settings] Section .......................................................................................................... 340
[HTML Fonts] Section............................................................................................................ 341
[HTML:Images] Section.......................................................................................................... 342
[Enhanced-HTML] Section ...................................................................................................... 343
[Color Map] Section ............................................................................................................. 344
[MAP-ODBC-DB] Section........................................................................................................ 345
[MAP-DDO-DB] Section ......................................................................................................... 345
[SQR Remote] Section .......................................................................................................... 345
Installation of SQR.INI
The installation process installs a default initialization file called SQR.INI. This file contains
settings and parameters that Production Reporting uses during the compile and execution
phases.
On Windows platforms, SQR.INI is placed in the main Windows directory. (On Windows XP,
the default directory name is "WINDOWS." On Windows 2000, the default directory name is
"WINNT.") On all other platforms, SQR.INI is placed in the same directory as the executable
images (where SQRDIR points).
For Windows Platforms Only
Production Reporting looks for the initialization file in the following locations:
1. The file name specified by -ZIF{file}.
2. The directory where the executable image resides.
Installation of SQR.INI 327
3. The Windows system directory.
Since the required environment variable SQRDIR is defined in the initialization file, Production
Reporting produces an error message if it cannot find the file.
For All Other Platforms
Production Reporting looks for the initialization file in the following order:
1. The file name specified by -ZIF{file}.
2. The current working directory.
3. The directory specified with SQRDIR.
Since the required environment variable SQRDIR is defined at the operating system level, the
initialization file does not need to be available.
You can make changes or additions to SQR.INI if desired.
The format of the file is as follows:
; Comments are lines which start with a semicolon. The semicolon
; must be the first character of the line and therefore cannot be
; part of another line.
;
; Leading and trailing space characters are ignored. To preserve
; the space characters you must surround the value with either
; single (') or double (") quote characters. Production Reporting will ; ;
remove them when the entry is processed.
;
[Section_Name]
Entry = Value
.
.
[Another_Section_Name]
Entry = Value
.
.
[Default-Settings] Section
[Default-Settings] defines Production Reporting default actions.
Table 77
Entries in [Default-Settings]
Entry
Value
Description
AllowDateAsChar
TRUE | FALSE
By default, Production Reporting produces
an error when a dynamic column
specification does not match the column’s
database definition. That is, character
equals character, date equals date, and
numeric equals numeric. When set to TRUE,
Default = FALSE
328 SQR.INI
Entry
Value
Description
Production Reporting allows characters to
equal either character or date columns.
When a date column is “type cast” as a
character, Production Reporting creates the
string according to the following rules:
●
For DATETIME columns, Production
Reporting uses the first databasedependent format in Table 61 on page
251.
●
For DATE columns, Production Reporting
uses the format in Table 62 on page
252.
●
For TIME columns, Production Reporting
uses the format in Table 63 on page
252.
In the following example,
AllowDateAsChar=True. This allows $Col1 to
be either date or text.
Begin-Select
[$Col1] &col1=Text
[$Col2] &col2=Date
[$Col3] &col3=Number
from MyTable
End-Select
AutoDetectUnicodeFiles
TRUE | FALSE
Default = FALSE
When set to TRUE, Production Reporting
auto-detects UCS-2 encoded files.
See “AutoDetectUnicodeFiles Key” on page
316 for more information.
CSVSeparator
Comma | Semicolon|Space | Tab
Default = Comma
Defines the character used as a delimiter
when creating CSV files.
If the CSVSeparator setting is missing from
SQR.INI, the default value of Comma is
used.
Note: Specifying the CSVSeparator as a
semicolon or a space is only supported with
the Production Reporting Server. Using this
setting in Oracle Enterprise Performance
Management Workspace, Fusion Edition is
not recommended and may create corrupt
files.
DEFAULT-NUMERIC
INTEGER | FLOAT | DECIMAL[(p)]
| V30
Specifies the default numeric type for
variables. -DNT and
DECLARE-VARIABLE override this setting.
(See “DECLARE-VARIABLE” on page 150.)
ExpirationWarningMessage
TRUE | FALSE
Controls whether to print the license
expiration warning message.
Default = TRUE
[Default-Settings] Section 329
Entry
Value
Description
FormatforRowsetXML
BIP | SQR
Format in which to create the XML file
defined with OPEN-RS, WRITE-RS, and
CLOSE-RS.
Default = SQR
ImageCompression
0-9
Default = 6
Defines the compression level when
PRINT-IMAGE references a BINARY
variable.
LOCALE
Name of a locale defined in
SQR.INI or the name SYSTEM.
Defines the initial locale that Production
Reporting loads when the program starts to
execute. The value of SYSTEM is used to
reference the default locale. (See “ALTERLOCALE” on page 41.)
NewGraphics
TRUE | FALSE
When set to FALSE, Production Reporting
uses Grafsman chart package. When set to
TRUE, Production Reporting uses Jchart
chart package.
Default = FALSE
Set NewGraphics=TRUE to use the following
features:
ODBCExecuteRetry
TRUE | FALSE
Default = FALSE
●
COLOR-PALETTE (See “Specifying Chart
Data Series Colors” in Volume 1 of the
Hyperion SQR Production Reporting
Developer's Guide.)
●
ITEM-COLOR (See “Specifying Chart
Item Colors” in Volume 1 of the Hyperion
SQR Production Reporting Developer's
Guide.)
●
ITEM-SIZE (See “DECLARE-CHART” on
page 100 and “PRINT-CHART” on page
263.)
●
Y-AXIS-MASK and Y2-AXIS-MASK (See
“DECLARE-CHART” on page 100 and
“PRINT-CHART” on page 263.)
●
Y2 Syntax (See “DECLARE-CHART” on
page 100 and “PRINT-CHART” on page
263.)
●
Combination Charts (See “Creating
Combination Charts” in Volume 1 of the
Hyperion SQR Production Reporting
Developer's Guide.)
●
Bubble Charts (See “Creating Bubble
Charts” in Volume 1 of the Hyperion SQR
Production Reporting Developer's
Guide.)
Describes whether to retry an EXECUTE
command.
FALSE, retries EXECUTE and returns an error
from the database.
TRUE does not attempt to retry.
330 SQR.INI
Entry
Value
Description
OracleWeakCursor
STOP | WARN | SKIP
Describes what to do when a 'Weak'
reference cursor is processed.
Default = WARN
STOP displays an error or warning message
and terminates the Production Reporting
procedure.
WARN displays an error or warning message,
and the Production Reporting procedure
continues.
SKIP does not display an error or warning
message, and the Production Reporting
procedure continues.
OUTPUT-FILE-MODE
LONG | SHORT
Default = LONG
Specifies the filename convention used for
HTML output. SHORT specifies DOS style
(8.3) and LONG specifies UNIX style (non
8.3). (Ignored on 16-bit platforms)
DECLARE-TOC and -Burst force OutputFile-Mode = LONG.
The following represent the file formats for
UNIX, DOS, and Windows.
SQR and SQRT: {Program} is the name of
the SQR/SQT file without the extension
For Output-File-Mode = SHORT, SQRgenerated filenames are limited to a DOS
8.3 format
●
Output file = {Program}.LIS for first, and
{Program}.Lnn for multi-reports
●
SFP file = {Program}.SFP for first, and
{Program}.Snn for multi-reports
●
PDF file = {Program}.PDF for first; and
{Program}.Pnn for multi-reports
●
HTM file = {Program}.HTM for “frame,
and {Program}.Hbb for report bodies
●
GIF file={Program}.Gxx for all reports
bb ranges from 00 to 99 and represents the
report number.
nn ranges from 01 to 99 and represents the
report number.
xx ranges from 00 to ZZ and represents the
graphic number.
For Output-File-Mode = LONG, SQRgenerated filenames are not constrained to
a DOS 8.3 format. {Output}={Program} of
first report and {Program}_nn for multireports.
●
Output file = {Output}.LIS
●
SPF file = {Output}.SPF
●
PDF file = {Output}.PDF
[Default-Settings] Section 331
Entry
Value
Description
●
GIF file = {Output}_zz.SPF
●
HTM files = {Output}.HTM, {Output}
_bb.HTM, {Output}_frm.HTM, {Output}
_toc.HTM, {Output}_nav.htm
bb ranges from 01 to ZHJOZI and represents
the bursted page group number in radix 36.
nn ranges from 01 to 99 and represents the
report number.
zz ranges from 01 to ZHJOZI and represents
the graphic number in radix 36.
SQRP: {Filename} is the name of the SPF file
without the extension
For Output-File-Mode = SHORT, SQRgenerated filenames are limited to a DOS
8.3 format.
●
Output file = {Filename}.LIS
●
GIF file = {Filename}.Gxx
●
PDF file = {Filename}.PDF
●
HTM file = .HTM and {Filename}.H00
xx ranges from 00 to ZZ and represents the
graphic number.
For Output-File-Mode = LONG, SQRgenerated filenames are not limited to a
DOS 8.3 format.
●
Output file = {Filename}.LIS
●
PDF file = {Filename}.PDF
●
GIF file = {Filename}_zz.SPF
●
HTM files = {Filename}.HTM, {Filename}
_bb.HTM, {Filename}_frm.HTM,
{Filename}_toc.HTM, {Filename}
_nav.htm
bb ranges from 01 to ZHJOZI and represents
the bursted page group number in radix 36.
zz ranges from 01 to ZHJOZI and represents
the graphic number in radix 36.
OutputFormFeedWithDashD
TRUE | FALSE
Default = FALSE
OutputTwoDigitYearWarningMsg
TRUE | FALSE
Default = TRUE
332 SQR.INI
When set to TRUE, -Dnn outputs the FormFeed character that denotes a page break.
When set to TRUE, Production Reporting
generates a warning message (sent to the
warning file) when a YY or RR date edit mask
is encountered during a program run. This
affects only Production Reporting code that
is processed.
Entry
Value
Description
PrinterHT
Standard | Enhanced
Controls the HTML output produced
by -PRINTER:HT.
Default = Enhanced
Standard produces version 2.0 HTML files
with report content inside<PRE></PRE>
tags.
Enhanced maps -PRINTER:HT
to -PRINTER:EH and produces content
formatted with version 1.1 XHTML tags.
SUBSTITUTION-CHARACTER=XX EncodingName1
[,xx EncodingName2...]
TreatBinaryColumnAsText
XX is the hexidecimal
representation of the substitution
variable
Allows substitution characters to be defined
on a character set by character set basis.
TRUE | FALSE
Defines whether to treat BINARY columns as
TEXT columns.
Default = TRUE
UseUnicodeInternal
TRUE | FALSE
Default = FALSE
See “Substitution-Character Key” on page
316 for more information.
By default, Production Reporting reads
character streams into the system by
“widening” them into 16-bit character
strings.
When set to TRUE, Production Reporting
uses Unicode internally to normalize the
data.
UseY2kCenturyAlgorithm
TRUE | FALSE
Default = FALSE
When set to TRUE, Production Reporting
treats the YY date edit mask as though it is
an RR edit mask.
Note:
Use the setting V30 to handle numbers in the same manner as in prior releases (before V4.0).
Specifically, all numeric variables and literals are declared as FLOAT, including integer literals.
[Environment: environment] Section
[Environment:{ Common | DB2 | Informix | ODBC | Oracle | Sybase | DDO}] defines
environment variables used by Production Reporting. An environment variable can be defined
in multiple environment sections; however, a definition in a database-specific environment
section takes precedence over an assignment in [Environment:Common].
The following environment variables can be set:
●
SQRDIR—Default directory for all invocations of Production Reporting.
●
SQRFLAGS—Default command-line flags for all invocations of Production Reporting.
●
DSQUERY (Sybase only)—Default Sybase server to use.
[Environment: environment] Section 333
On Windows systems, SQRDIR is required and is automatically defined in the appropriate
database-specific environment section during the Production Reporting installation. The other
environment variables are optional.
Using the Java Virtual Machine
When you use Production Reporting to produce reports with HTML files or charts, Production
Reporting must make several calls to Java routines. The number of HTML reports and charts to
produce can affect the runtime of Production Reporting programs. To reduce the total runtime
of an Production Reporting program, embed the Java Virtual Machine (JVM) directly into
Production Reporting.
Table 78
Java Virtual Machine Environment Variable
Entry
Value
Description
SQR_USEJVM
TRUE | FALSE
If TRUE, Production Reporting uses the JVM for Enhanced HTML and JClass charting applications
(NewGraphics). The JVM is embedded directly into Production Reporting.
Default = TRUE
If FALSE, Production Reporting invokes separate subprocesses for Enhanced HTML and JClass charting
applications (NewGraphics).
Note: Callable Production Reporting uses the JVM only when this entry equals TRUE.
DDO Variables
Table 79
DDO Variables in the [Environment] Section
DDO Variable
Description
SQR_DDO_JRE_CLASS
Classpath for DDO drivers and support files.
SQR_DDO_JRE_CLASSn
(Optional) Additional entries to the classpath.
SQR_DDO_JRE_PATH
Classpath information for the local JRE.
SQR_DDO_JRE_INIT_HEAP
Initial Java heap size.
SQR_DDO_JRE_MAX_HEAP
Maximum Java heap size.
SQR_DDO_JRE_NOCLASSGC
Disables class garbage collection.
SQR_DDO_JRE_NOJIT
Disables the JIT compiler (same as Java.compiler=NONE)
SQR_DDO_JRE_VERBOSE
Logs Java class loading and garbage collection events into the vm.out output file.
Each of these entries is automatically entered upon product installation (Windows only). You
can specify additional classpath entries using up to nine SQR_DDO_JRE_CLASSn variables,
where n is a number from 1-9. These additional variables are available to augment the normal
512-character line limit for entries in SQR.INI.
334 SQR.INI
Encoding Keys
For detailed information about encoding keys in the [Environment] section SQR.INI, see
“Encoding Keys in the [Environment] Section” on page 317.
[SQR Extension] Section
On Windows systems only, [SQR Extension] defines DLLs containing new user functions
(ufunc) and user calls (ucall). Ufunc and ucall reside inside SQREXT.DLL and/or other
DLLs.
When SQR.DLL and SQRT.DLL are loaded, they look for SQREXT.DLL in the same directory,
and for any DLLs specified in [SQR Extension] such as:
[SQR Extension]
c:\sqrexts\sqrext1.dll=
c:\sqrexts\sqrext2.dll=
c:\sqrexts\sqrext3.dll=
Any new extension DLLs containing new user functions must be listed in [SQR Extension] in
SQR.INI. For more information, see “Interoperability” in Volume 1 of the Hyperion SQR
Production Reporting Developer's Guide.
For Windows/Oracle, Production Reporting uses dynamic binding of Oracle routines. When
Production Reporting tries to access an Oracle database, it searches for the Oracle DLL as follows:
●
The file described by the value of ORACLE_DLL in [Environment:Oracle].
●
OCIW32.DLL (Oracle supplied)
[Locale:local-name] Section
[Locale:locale-name] defines the default settings for the locale identified by locale-name (which
can consist of A-Z, 0-9, hyphen, or underscore). A number of locales are predefined in SQR.INI.
Depending on your application, the settings for these locales may have to be altered or new
locales may have to be added. A locale can be referenced or altered at run time using
ALTER-LOCALE.
Note:
The SYSTEM locale is provided for your reference, but is commented out. The settings for the
SYSTEM locale, if set, are ignored. Use ALTER-LOCALE to change the SYSTEM locale settings
at run time.
[SQR Extension] Section 335
Table 80
Entries in [Locale:locale-name]
Entry
Description
NUMBER-EDIT-MASK
Default numeric edit mask format when the keyword NUMBER accompanies DISPLAY, MOVE, PRINT, or
SHOW.
MONEY-EDIT-MASK
Default numeric edit mask format when the keyword MONEY accompanies DISPLAY, MOVE, PRINT, or SHOW.
DATE-EDIT-MASK
Default date edit mask format when the keyword DATE accompaniesDISPLAY, MOVE, PRINT, or SHOW, or the
LET datetostr() or strtodate() functions.
INPUT-DATE-EDIT-MASK
Default date format to use with the INPUT command when TYPE=DATE is specified with the command or the
input variable is a DATE variable. If this entry is not specified, then the date must be entered in one of the
formats in Table 62 on page 252.
MONEY-SIGN
Character(s) to replace the '$' edit character.
MONEY-SIGN-LOCATION
MONEY-SIGN character(s) location. Valid values are LEFT and RIGHT.
THOUSAND-SEPARATOR
Character to replace the ',' edit character.
DECIMAL-SEPARATOR
Character to replace the '.' edit character.
DATE-SEPARATOR
Character to replace the '/' character.
TIME-SEPARATOR
Character to replace the ':' character.
EDIT-OPTION-NA
Character(s) to replace the 'na' option.
EDIT-OPTION-AM
Character(s) to replace 'AM'.
EDIT-OPTION-PM
Character(s) to replace 'PM'.
EDIT-OPTION-AD
Character(s) to replace 'AD'.
EDIT-OPTION-BC
Character(s) to replace 'BC'.
DAY-OF-WEEK-CASE
How the case for the DAY-OF-WEEK-FULL or DAY-OF-WEEK-SHORT entries are affected when used with the
format codes 'DAY' or 'DY'. Valid values are UPPER, LOWER, EDIT, and NO-CHANGE. UPPER and LOWER forces
the output to either all uppercase or lowercase, ignoring the case of the format code in the edit mask. Use
EDIT to follow the case as specified with the format code in the edit mask. Use NO-CHANGE to ignore the case
of the format code and output the day of week as explicitly listed in the DAY-OF-WEEK-FULL or DAY-OF-WEEKSHORT entries.
DAY-OF-WEEK-FULL
Full names for the days of the week. Production Reporting considers the first day of the week to be Sunday.
All seven days must be specified.
DAY-OF-WEEK-SHORT
Abbreviated names for the days of the week. Production Reporting considers the first day of the week to be
Sunday. All seven abbreviations must be specified.
MONTHS-CASE
How the case for the MONTHS-FULL or MONTHS-SHORT entries is affected when used with the format codes
'MONTH' or 'MON'. Valid values are UPPER, LOWER, EDIT, and NO-CHANGE. UPPER and LOWER force the output
to either all uppercase or lowercase, ignoring the case of the format code in the edit mask. Use EDIT to follow
the case as specified with the format code in the edit mask. Use NO-CHANGE to ignore the case of the format
code and output the month as explicitly listed in the MONTHS-FULL or MONTHS-SHORT entries.
MONTHS-FULL
Full names for the months of the year. Production Reporting considers the first month of the year to be January.
All 12 months must be specified.
336 SQR.INI
Entry
Description
MONTHS-SHORT
Abbreviated names for the months of the year. Production Reporting considers the first month of the year to
be January. All 12 abbreviations must be specified.
Table 81
Date Column Formats
Database
DATE Column Formats
DB2
YYYY-MM-DD
INFORMIX
MM/DD/YYYY
ODBC
DD-MON-YYYY
Table 82
Time Column Formats
Database
TIME Column Formats
DB2
HH24.MI.SS
ODBC
HH24:MI:SS
[Fonts] Section
[Fonts] lists the fonts available to Production Reporting when printing on Windows printer
devices (using-PRINTER:WP). This section does not apply to PostScript or HP LaserJet printer
types. See DECLARE-PRINTER for available fonts for alternate printer types.
Adding [Fonts] Entries
[Fonts] includes several predefined font entries. Add entries by using the font numbers 900
through 999. Each entry includes a font name, a font style (fixed or proportional), and a bold
indicator. For example:
4=Arial,proportional
or
300=Courier New,fixed,bold
Note:
Proportional is assumed if the second parameter starts with "P". Bold is assumed if a third
parameter is supplied.
Use ALTER-PRINTER and DECLARE-PRINTER to reference a font style.
[Fonts] Section 337
Specifying Character Sets in Windows
For Windows, use CharacterSet to determine the Windows default character set or to specify
a character set. This allows you to print any standard character set to a Windows printer
(-PRINTER:WP) or to view an SPF file displaying the appropriate character set.
Syntax
CharacterSet=DEFAULT|AUTO|character_set
Arguments
DEFAULT
Reflects current Production Reporting functionality.
AUTO
Automatically senses the default character set of the Windows installation and uses the default
set when generating reports.
character_set
Specifies one of these keywords: ANSI, ARABIC, BALTIC, CHINESEBIG5, EASTEUROPE,
GB2312, GREEK, HANGUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS, SYMBOL, THAI,
TURKISH, VIETNAMESE.
[PDF Fonts] Section
[PDF Fonts] defines whether to embed fonts into PDF documents. In addition, it lists the
available fonts for Production Reporting when printing using -PRINTER:PD. Fonts are case
sensitive.
Embedding Fonts
Table 83
[PDF Fonts] Entry
Entry
Value
Description
Embed
All |{font numbers}
Whether to embed fonts; and if so, what fonts to embed. Enter one of the following
values:
●
ALL
For example: Embed=All
●
A list of fonts numbers to embed. (Font numbers must be separated by spaces.)
For example: Embed=1 3 5 8 64
If you do not specify a value, Production Reporting does not embed any fonts in the
PDF file. This is the default action.
338 SQR.INI
Available Fonts
Each entry in [PDF Fonts] is defined to be:
font_number=Roman_Typeface[,CJK_Typeface,Character_Map]
The following describes each part of the entry:
font_number
Font number used within the Production Reporting program
Roman_Typeface
Name of the typeface (font) for non-Chinese/Japanese/Korean characters
CJK_Typeface
Name of the typeface (font) for Chinese/Japanese/Korean characters
Character_Map
Name of the character map
Table 84
Legal Chinese, Japanese, and Korean Typeface - Character Map Combinations
Local
CJK Typeface
Character Map
Encoding Supported
Simplified Chinese
STSong-Light
GB-EUC-H
GB2312
STSongStd-Light-Acro
GBpc-EUC-H
GB2312
GBK-EUC-H
CP936
GBKp-EUC-H
CP936
GBK2K-EUC-H
GB18030
UniGB-UCS2-H
UCS-2
MHei-Medium
B5pc-H
Big5
MSung-Light
HKscs-B5-H
Big5-HKSCS
MSung-Std-Light-Acro
Big5
Big5
ETen-B5-H
EUC-TW
ETenms-B5-H
UCS-2
Traditional Chinese
CNS-EUC-H
UniCNS-UCS2-H
Korean
Japanese
HYGoThic-Medium
KSC-EUC-H
EUC-KR
HYSMyeongJo-Medium
KSCms-UHC-H
JOHAB
HYSMyeongJoStd-Medium-Acro
KSCms-UHC-HW-H
JOHAB
KSCpc-EUC-H
EUC-KR
UniKS-UCS2-H
UCS-2
HeiseiKakuGo-W5
83pv-RKSJ-H
Shift-JIS
HeiseiMin-W3
90ms-RKSJ-H
Shift-JIS
[PDF Fonts] Section 339
Local
CJK Typeface
Character Map
Encoding Supported
KozMinPro-Regular-Acro
90msp-RKSJ-H
Shift-JIS
90pv-RKSJ-H
Shift-JIS
Add-RKSJ-H
Shift-JIS
EUC-H
JEUC
Ext-RKSJ-H
Shift-JIS
H
ISO-2022-JP
UniJIS-UCS2-H
UCS-2
UniJIS-UCS2-HW-H
UCS-2
Note:
You must install the required font packs (available from www.Adobe.com) to view PDF
documents which reference Chinese/Japanese/Korean fonts on non-localized platforms.
[PDF Settings] Section
[PDF Settings] lists the available PDF settings for Production Reporting when producing PDF
output.
Table 85
Entries in [PDF Settings]
Entry
Value
Description
Bookmarks
True| False
True creates PDF bookmarks for Table of Contents entries. False disables
bookmarks.
Default = False
Compatibility
4-6
Minimum Acrobat version required to read PDF documents.
Default = 5
CompressionText
0-9
Amount of compression applied to text in PDF documents.
Default = 6
0 = no compression, 9 = maximum compression
The default value or 6 is the best value for compression versus speed.
CompressionGraphics
0-9
Amount of compression applied to graphics in PDF documents
Default = 6
0 = no compression, 9 = maximum compression
The default value of 6 is the best value for compression versus speed.
EmbedAction
EncodingNotInFontAction
340 SQR.INI
Stop | Warn | Skip
Action to take when errors occur trying to embed fonts:
Default = Stop
●
Stop—An error message is issued, and program execution stops.
●
Warn—A warning message is issued, and the font is used without being
embedded.
●
Skip—No message is issued and the font is used without being embedded.
Stop | Warn | Skip
Action to take when fonts do not support an encoding.
Entry
Subsetting
Value
Description
Default = Warn
●
Stop—An error message is issued and program execution stops.
●
Warn—A warning message is issued and CP1252 is used.
●
Skip—No message is issued and CP1252 is used.
True | False
Default = True
SubsetLimit
1-100
Default = 100
SubsetMinSize
Numbers > zero
Default = 100
UnsupportedEncodingAction
Stop | Warn | Skip
Default = Skip
True enables subsetting for all fonts where subsetting is possible. False disables
subsetting.
If a document uses more than the specified percentage of glyphs in a font, then
subsetting is disabled for that particular font, and the complete font is embedded.
If the original font file is smaller than the specified size (in KB), then font subsetting
is disabled for that particular font.
Action to take when an unsupported ENCODING-REPORT-OUTPUT value is set. (The
ENCODING-REPORT-OUTPUT value is the value set as the encoding for non-CJK
fonts in the [Environment] section.)
●
Stop—An error message is issued and program execution stops.
●
Warn—A warning message is issued and CP1252 is used.
●
Skip—No message is issued and CP1252 is used.
Note:
Production Reporting Release 9.x and above supports interlaced GIF images when creating PDF
files.
[HTML Fonts] Section
[HTML Fonts] lists available fonts for Production Reporting when printing
using -PRINTER:EH. Fonts are case sensitive.
Each entry is defined to be:
font_number=CSS_Style
The following describes each part of the entry:
font_number
Font number used within the Production Reporting program
CSS_Style
A modified CSS style added to the reports style sheet that describes the corresponding font
number. The CSS style is used to help browsers with font matching when rendering HTML. The
modifications to the normal CSS rules for font specification are to disallow use of the font-size
or font-size-adjust properties and to disallow any values of 'inherit' for properties that would
normally allow the 'inherit' keyword. Production Reporting appends the font-size automatically
when adding the font rule to the CSS file (see the ALTER-PRINTER command).
[HTML Fonts] Section 341
A CSS style is useful for a font that is normally considered italic or oblique since Production
Reporting does not support the use of italic or oblique fonts through language constructs and
cannot always generate a correct style entry automatically.
For example, assume that you define font 901 to be 'Arial Italic'. This is a valid font name;
however, the CSS specification will not allow 'Arial Italic' as a font family. Instead, you need
need to add an entry to the [HTML Fonts] section as follows:
901=Font-family: Arial, sans-serif; Font-style: Italic;
Note:
You must put quotes around values for a Font-family that contain white space. For example,
“Times New Roman”.
Note:
A Font-family entry contains a list of fonts that the browser searches from left to right until it
finds a match. It is a good idea to end each list with a "generic family" such as sans-serif or
monospace to ensure a more reasonable approximation is made during rendering if the specified
font is not available to the browser.
For more information on CSS rules for Fonts, the allowed syntax of such rules, and the list of
"generic family" fonts (and their descriptions) see:
http://www.w3.org/TR/REC-CSS2/fonts.html#font-specification?
[HTML:Images] Section
[HTML:Images] defines parameters that Production Reporting uses when generating HTML
report output files.
Table 86
Entries in [HTML:Images]
Entry
Value
Default Value
Description
FIRST-PAGE
HEIGHT, WIDTH, NAME
60,60,firstpg.gif
NAME of the graphic image file that accesses the first page of the report.
Specify HEIGHT and WIDTH values in pixels.
PREV-PAGE
HEIGHT, WIDTH, NAME
60,60,prevpg.gif
NAME of the graphic image file that accesses the previous page of the report.
Specify HEIGHT and WIDTH values in pixels.
NEXT-PAGE
HEIGHT, WIDTH, NAME
60,60,nextpg.gif
NAME of the graphic image file that accesses the next page of the report.
Specify HEIGHT and WIDTH values in pixels.
LAST-PAGE
HEIGHT, WIDTH, NAME
60,60,lastpg.gif
NAME of the graphic image file that accesses the last page of the report.
Specify HEIGHT and WIDTH values in pixels.
WALLPAPER
NAME
342 SQR.INI
NAME of the graphic image file used as the reports's background image.
Note:
Production Reporting does not perform any validation of the graphic image filenames provided.
The user is responsible for ensuring that the graphic image files are in a location that the browser
can access.
[Enhanced-HTML] Section
[Enhanced-HTML ] defines default actions that Production Reporting takes when generating
HTML output with -EH.
Table 87
Entries in [Enhanced-HTML]
Entry
Value
Description
Browser
BASIC | IE | NETSCAPE | ALL
Specifies the browser and generates the appropriate HTML.
Default = BASIC
●
BASIC—Production Reporting generates HTML suitable for
all browsers.
●
IE—Production Reporting generates HTML designed for
Internet Explorer.
●
NETSCAPE—Production Reporting generates HTML
designed for Netscape.
●
ALL—If necessary, Production Reporting generates Basic,
IE, and Netscape HTML files. Report_frm.htm contains
Javascript to “sense” the browser on the user’s machine
and displays the appropriate version. (In this case, the
user’s machine is the machine of the person reading the
report, not the person writing it.)
DefaultTemplate
Path to default template.
Specifies the location of the default template for Production
Reporting HTML output. Production Reporting provides a
Template.xml file that you can customize and use as the
default for all Production Reporting HTML output. See
“Customizing the HTML Navigation Bar” in Volume 1 of the
Hyperion SQR Production Reporting Developer's Guide for
more details.
IncludePDFInZip
TRUE | FALSE
Defines whether to include the PDF file in the ZIP file Production
Reporting creates when -PRINTER:EP is combined with EH_ZIP.
Default = FALSE
Language
English | French | German | Portuguese | Spanish
●
TRUE—Includes the PDF file in the ZIP file.
●
FALSE—Does not include the PDF file in the ZIP file.
Sets the language used for the HTML navigation bar.
Default = English
FullHTML
3.2
Specifies the level of HTML that the browser supports so
appropriate Enhanced HTML code is generated.
There is no default value. If you do not specify a value, XHTML
1.1 is produced. If you specify 3.2, HTML version 3.2 in
produced.
[Enhanced-HTML] Section 343
Entry
Value
Description
Note: For information on deprecated values for the FullHTML
keyword see “Deprecated SQR.INI Entries” on page 436.
[Color Map] Section
[Color Map] defines the default colors in Production Reporting reports. Enter the default colors
in the format of:
[Color Map]
color_name=({rgb})
color_name=({rgb})
.
.
.
color_name=({rgb})
The default colors implicitly installed are:
black = (0,0,0)
white=(255,255,255)
gray=(128,128,128)
silver=(192,192,192)
red=(255,0,0)
green=(0,255,0)
blue=(0,0,255)
yellow=(255,255,0)
purple=(128,0,128)
olive=(128,128,0)
navy=(0,0,128)
aqua=(0,255,255)
lime=(0,128,0)
maroon=(128,0,0)
teal=(0,128,128)
fuchsia=(255,0,255)
344 SQR.INI
[MAP-ODBC-DB] Section
[MAP-ODBC-DB] maps unknown ODBC driver names (using $sqr-connected-db-name) to a
valid $sqr-connected-db setting.
For example:
[MAP-ODBC-DB]
MyDriver=SYBASE
Note:
See Table 3 for additional information on the Production Reporting reserved variables
referenced in [MAP-ODBC-DB].
[MAP-DDO-DB] Section
[MAP-DDO-DB] maps unknown DDO driver names (using $sqr-connected-db-name) to a valid
$sqr-connected-db class.
For example:
[MAP-DDO-DB]
NewOracleDriver=Oracle
Table 88
Entry in [MAP-DDO-DB]
Entry
Valid Values
Description
driver_name
CSV | DB2 | ESSBASE | INFORMIX | MSOLAP |
ORACLE | SAP | SQLSERVER | SYBASE | XML
Database class to which the unknown driver name
is mapped.
Note:
See $sqr-connected {sqr-connected-db} and $sqr-connected-db-name {sqr-connected-dbname} in Table 3, “Production Reporting Reserved Variables,” on page 16 for additional
information on the Production Reporting reserved variables referenced from the [MAP-DDODB] section.
[SQR Remote] Section
[SQR Remote] defines default settings for running Production Reporting programs remotely.
Table 89
Entries in [SQR Remote]
Entry
Description
HostName
Default host name.
UserName
Default username used to log into the host.
[MAP-ODBC-DB] Section 345
Entry
Description
TimeOut
Timeout duration in seconds.
Default = 30
Passive
Whether the FTP transfer is in (#0) passive or (0) non-passive mode.
Default = 0
346 SQR.INI
Production Reporting Samples
7
Production Reporting provides a library of sample Production Reporting programs you can use
to customize and experiment with. If you installed Production Reporting in the default directory,
the sample programs are in:
C:\Hyperion\products\biplus\docs\samples\Production Reporting
Modify these programs any way you like to create customized Production Reporting reports.
Table 90 lists the sample Production Reporting programs and provides a brief description of
each. Each program consists of a report specification and a sample of the output.
Table 90
Production Reporting Sample Reports
Name
Description
_______.DAT
Data files used by the LOADALL.Production Reporting programs
_______.MEM
Startup files to run tiny, medium, and big Production Reporting programs
APPEND.SQR
Demonstrates the append and fixed-nolf commands
APTDIARY.SQR
Demonstrates columns, text wrapping
AREA100.SQR
Demonstrates a 100% area chart
BAR100.SQR
Demonstrates a 100% bar chart
BARCODE.SQR
Demonstrates printing a bar code
CALENDAR.SQR
Demonstrates nondatabase formatting
COMP_FOR.SQR
Prints a graph of the forecasted and actual sales for a given employee
COMP_F_G.SQR
Prints a graph of the forecasted and actual sales for month or quarter
COMP_PLN.SQR
Prints a graph of the planned and actual sales for a given employee
COMP_P_G.SQR
Prints a graph of the planned and actual sales for month or quarter
COVLET02.SQR
Uses Production Reporting to input data from user, enter data in the database, and write a form
letter using a DOCUMENT paragraph
CRUPSAL.SQR
(Oracle) Creates stored functions and procedures for Oracle Version 7
CUST.SQR
Prints a list of all of the customers bursted by page
CUSTLBLS.SQR
Demonstrates printing mailing labels within columns
347
Name
Description
CUSTOMER.SQR
Demonstrates multiple detail lines, NEXT-LISTING command
CUSTOMR2.SQR
Demonstrates the use of the ON-BREAK argument to the PRINT command
CUSTOMR3.SQR
Demonstrates the use of the INPUT command to change report output
CUSTOMR4.SQR
Demonstrates the use of arrays
CUSTOMR5.SQR
Demonstrates dynamic queries to allow user to qualify a report as it runs
CUST_SUM.SQR
Prints and charts on a bar chart information about each customer in the customer table
CUSTTAPE.SQR
Demonstrates the flat file output for magnetic tape or other post-processing
DATAA.DAT
Needed for append.sqr
DATAB.DAT
Needed for append.sqr
DROPALL.SQR
Drops all the Production Reporting sample tables created by the LOADALL program
DROPPROC.SQR
(Sybase) Deletes leftover temporary stored procedures belonging to the user
DYNAMCOL.SQR
Demonstrates use of dynamic columns, dynamic tables and variables passed to ON-ERROR
procedure
EMP.SQR
Prints a list of all of the employees bursted by page
EMP_COMM.SQR
Calculates each employee's commission based on sales
EMP_P_Q.SQR
List all employee quotas for a given month or quarter
ENVELOPE.SQR
Demonstrates use of printing envelope with proper bar code
EXPORT.SQR
Creates two Production Reporting reports: one to export a database table, the second to import
that table. Data from the table is stored in an external operating system file in compressed format,
with trailing blanks removed.
FLATFILE.SQR
Creates a Production Reporting report to extract a database table and place it into a flat file
FLOATBAR.SQR
Demonstrates a floating bar chart
FOR_CUST.SQR
Sales forecast for given customer grouped by month or quarter
FOR_EMP.SQR
Sales forecast for given employee grouped by month or quarter
FOR_PROD.SQR
Sales forecast for given product grouped by month or quarter
FOR_REG.SQR
Sales forecast for given region grouped by month or quarter
FOR_SUM.SQR
Creates a table of projected product sales with links to more information
FORMLETR.SQR
Demonstrates form letters using a DOCUMENT paragraph
HILO.SQR
Demonstrates a high-low-close chart
HISTGRAM.SQR
Demonstrates a histogram chart
348 Production Reporting Samples
Name
Description
INQUIRY.SQR
Creates an Production Reporting program to display rows at your terminal selected from a
database table you specify. The resulting Production Reporting program prompts you to qualify
rows to be selected, display those rows, then repeat.
INVOICE.SQR
Demonstrates multiple reports, printing invoices, and printing envelopes
LOADALL.SQR
Creates and loads sample tables used in the above Production Reporting programs
Note: The sample tables are in ASCII format. As a result, you must specify a valid ASCII-derived
encoding value in SQR.INI. For more information on encoding values, see “Encoding Keys in the
[Environment] Section” on page 317.
MAKEDATA.SQR
Creates a data file with fixed length and NOLF attributes
MAKEREPT.SQR
Helps you create Production Reporting reports more quickly
MITI1.EPS
Needed for sqrlogo.sqr
MULTIPLE.SQR
Demonstrates creating multiple reports
NESTREPT.SQR
Demonstrates nesting of procedures
ORDERS.SQR
Lists all the orders and the orderlines associated with them
ORD_MONG.SQR
List all orders for a given month and group them by employee number
ORD_M_Q.SQR
List all orders for a given month or quarter
ORD_PROD.SQR
List all orders for a given product
ORD_REGG.SQR
Creates a report of all orders from a given region grouped by month or grouped by quarter
ORD_SUM.SQR
Displays an order's summary by month
ORD_S_Q.SQR
Prints a graph of the percent of orders for each region (in a year) and four graphs of the percent
of orders for each region (one for each quarter of that year)
OVERBAR.SQR
Demonstrates an overlapped bar chart
PHONELST.SQR
Demonstrates printing within columns, page headings, and page footings
PLN_EMP.SQR
Sales plan for given employee grouped by month or quarter
PLN_GEN.SQR
Sales plan grouped by month or quarter
PLN_REG.SQR
Sales plan for given region grouped by month or quarter
PRODUCT.SQR
List of products and their prices and a graph of orders of products
SALELEAD.SQR
Demonstrates DOCUMENT paragraphs
SALES.SQR
Demonstrates charting from stored data and printing several charts on one page
SCATTER.SQR
Demonstrates a scatter chart
SHOWPROC.SQR
(Sybase) Shows any leftover temporary stored procedures belonging to the user
349
Name
Description
STCKAREA.SQR
Demonstrates a stacked area chart
SQR3DBAR.SQR
Demonstrates a 3D bar chart
SQRLASER.SQR
Demonstrates graphic and file I/O commands
SQRLINE.SQR
Demonstrates a line chart
SQRLOGO.SQR
Demonstrates printing images
SQRPIE.SQR
Demonstrates a pie chart
TABREP.SQR
Creates a tabular Production Reporting report for a table you choose
UPDATE.SQR
Generates an Production Reporting program that allows you to query and update database tables.
The created program uses the SHOW command to simulate a menu interface.
UPDSAL.SQR
A sample report that demonstrates use of stored functions and procedures in Oracle
350 Production Reporting Samples
Production Reporting Messages
8
In This Chapter
Unnumbered Messages ......................................................................................................... 351
Numbered Messages ............................................................................................................ 353
Unnumbered Messages
Note:
Two digits (nn) appear as replacement markers in the messages. Descriptions of these
replacement markers are listed with the message. The messages contain the proper value when
they appear on the screen.
Table 91
Unnumbered Messages
Error Message
Suggestion/Interpretation
Out of memory.
Occurs when a call to the C routine 'malloc()' fails.
●
PC – Use the -Mfile to reduce memory requirements. Remove
unneeded TSRs
●
UNIX – Increase the size of the system swap file.
●
VAX – Increase the amount of memory allowed for that user.
No cursors defined.
From the -S command line flag. The Production Reporting program did
not contain any commands that required a database cursor.
Not processed due to report errors.
From the -S command line flag. Production Reporting cannot provide
information about the cursor due to errors in the program.
Enter `01`02
Type the value to assign to the specified variable.
`01 = First character of the variable name
`02 = Rest of the variable name
NOPROMPT used - Enter value below
(Windows) Appears when an INPUT command is defined with the
NOPROMPT argument.
Enter `01
Type the value to assign to the specified substitution variable.
`01 = Name of the substitution variable
Unnumbered Messages 351
Error Message
Suggestion/Interpretation
Enter this run's parameters:
Enter the values for the parameters defined in the program.
Error on line `01:
Production Reporting detected an error while processing the report file.
Correct the error and rerun.
`02
`01 = Source line number
`02 = Source line
Error in include file "`01" on line `02:
`03
Production Reporting detected an error while processing the report file.
Correct the error and rerun.
`01 = Name of the include file
`02 = Source line number
`03 = Source line
Warning on line `01:
`02
Production Reporting detected a non-fatal error while processing the
report file.
`01 = Source line number
`02 = Source line
Warning in include file "`01" on line `02:
`03
Production Reporting detected a nonfatal error while processing the
report file.
`01 = Name of the include file
`02 = Source line number
`03 = Source line
Type RETURN for more, C to continue w/o display, X to exit run:
Informational message used with the -D command line flag.
Loading Oracle DLL Failed!!!
(Oracle) Title for the dialog box that informs the user that Production
Reporting could not load the Oracle DLL.
Errors were found in the program file.
Correct the errors and rerun.
Errors were found during the program run.
Correct the errors and rerun.
`01: End of Run.
Informational message.
`01 = Image name (for example, SQR)
Enter report name:
Enter the name of the report (.SQR or .SQT) to run.
Enter database name:
Enter the name of the database.
Enter Username:
Enter the user name to log onto the database.
Enter Password:
Enter the password. For security reasons, the password is not echoed.
Customer ID:
Text message
Press Enter to close...
Text message
Enter Subsystem Name:
Enter the subsystem name.
`01: Program Aborting
Informational message. `01 = Image name (for example, SQR)
352 Production Reporting Messages
Error Message
Suggestion/Interpretation
*** Internal Coding Error ***
Informational message.
SQL DataServer Message
(Windows) Title for the error message dialog box.
Operating-System error
(Windows) Title for the error message dialog box.
DB-Library error
(Windows) Ttle for the error message dialog box.
`01 is running.
(Windows) This is the body of the -C cancel dialog box. The user can
click the Cancel button to abort the program run.
Click the Cancel button to interrupt it.
Table of Contents
Text for HTML driver
Previous
Text for HTML driver
Next
Text for HTML driver
First Page
Text for HTML driver
Last Page
Text for HTML driver
PAGE
Text for HTML driver
Numbered Messages
Note:
Two digits (nn) appear as replacement markers in the messages. Descriptions of these
replacement markers are listed with the message. The messages contain the proper value when
they appear on the screen.
Table 92
Numbered Messages 000001 to 000999
Error Number
Error Message
Suggestion/Interpretation
000001
Error while opening the message file: '`01' (`02): `03
Try reloading sqrerr.dat from the release media. If the
error persists, contact technical support. `01 = Name of
the error message file `02 = System error code `03 =
System error message
000002
Error while reading the message file. (`01): `02
Try reloading sqrerr.dat from the release media. If the
error persists, contact technical support. `01 = Name of
the error message file `02 = System error code `03 =
System error message
000004
Error while seeking the message file. (`01): `02
Try reloading sqrerr.dat from the release media. If the
error persists, contact technical support. `01 = Name of
the error message file `02 = System error code `03 =
System error message
Numbered Messages 353
Error Number
Error Message
Suggestion/Interpretation
000005
Corrupt message file: Invalid header information.
Try reloading sqrerr.dat from the release media. If the
error persists, contact technical support.
000006
Corrupt message file: Invalid count (Got `01, Should be
`02).
The header contains an invalid entry count. Ensure
SQRDIR points to the correct directory. Try reloading
sqrerr.datfrom the release media. If the error persists,
contact technical support. `01 = The value read from the
header `02 = What the value should be
000010
Invalid SEMCode encountered: `01.
An invalid code was passed to the error message handler.
Try reloading the files from the release media. If the error
persists, contact technical support. `01 = Invalid code
000011
Unknown conversion type (`01) for code `02.
Try reloading sqrerr.dat from the release media. If the
error persists, contact technical support. `01 = Invalid
type `02 = Internal error code
000012
Message `01 must be either Preload or BuiltIn.
The type error code is not correct. Try reloading
sqrerr.dat from the release media. If the error
persists, contact technical support. `01 = Error code
000013
Cannot point to message `01.
The error handler cannot position to the desired error
code. Try reloading sqrerr.dat from the release media.
If the error persists, contact technical support. `01 = Error
code
000014
The required environment variable `01 has not been defined.
Define the named environment variable and restart
Production Reporting. `01 = Environment variable name
000015
The Meta ESC characters do not match (Got '`01', Should
be '`02').
The meta escape character defined in the header does
not match what the error message handler expects. Try
reloading sqrerr.dat from the release media. If the
error persists, contact technical support. `01 = What was
found in the header `02 = What was expected to be found
000016
`01() called to process (`02) and the message file is not
open.
The specified error routine was called but the error
message file was not open. Try reloading the files from the
release media. If the error persists, contact technical
support. `01 = Name of the routine `02 = Error code
000017
Message `01 must be ReportParameters or CopyrightNotice.
Try reloading sqrerr.dat from the release media. If the
error persists, contact technical support. `01 = Error code
000028
Cannot access the initialization file: `01 (`02): `03
The initialization file specified by the -ZIF command line
flag cannot be accessed. `01 = Name of the file `02 =
System error code `03 = System error message
000029
Unknown encoding name: `01
The encoding name specified by the -ZEN command line
flag is not valid `01 = Encoding name
000202
DPUT: Bad field number.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000203
DARRAY: Unknown command number.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
354 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
000204
`01: Cannot find `02 command.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Name of the routine `02
= Name of the command
000205
DDO: DO arguments do not match procedure's.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000206
SDO: Bad params for DO command.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000207
SDO: Bad params for BEGIN-PROCEDURE command.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000209
SGOTO: Bad goto function parameters.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000210
SGOTO: Could not find beginning of section or paragraph.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000211
SGOTO: Bad label: from parameters.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000212
COMPAR: Unknown relational (numeric) operator.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000213
COMPAR: Unknown relational (string) operator.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000214
DONBRK: Unknown case for putlin.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000216
GARRAY: Unknown command number.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000217
GCMDS: No Gfunc found.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000218
GDOC: Unknown document type.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000219
GLET: Bad operator.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
Numbered Messages 355
Error Number
Error Message
Suggestion/Interpretation
000220
GLET: Stack incorrect for expression - arg `01.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Number of the argument
000221
GLET: Unknown operator type.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000222
GLET: Unknown operator in expression.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000223
GPARS: Column not SCOL, TCOL, or NCOL type.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000224
GPARS: Bad parameter format: `01 =`02=
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Internal command
format string `02 = Bad format field found
000225
GPARS: No end of required word in parfmt: `01
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Internal command
format string
000226
GPARS: Bad parfmt entry: `01
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Internal command
format string
000227
GPARS: Bad parameter string.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000228
GPARS: Repeat count bad: `01
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Internal command
format string
000229
GPARS: Only a,b,8,9 allowed for repeats: `01
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Internal command
format string
000230
GPARS: Missing required x: `01
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Internal command
format string
000231
GPARS: Bad type in 'ckvrpr()'.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000232
GPROC: No Gfunc found.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
356 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
000233
GRDWRT: Unknown command number.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000234
GSHOW: Unknown SHOW option.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000235
PGMPARS: 'addvar()' passed maxlen but not column.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000238
PGMPARS: '`01' passed invalid parameter number: `02.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Routine name `02 =
Invalid parameter number
000239
PGMPARS: 'fxclrf()' encountered bad column reference type:
`01.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Internal variable type
code
000240
PLCMNT: 'getplc()' passed invalid element number: `01.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Invalid element number
000241
RDPGM: Command array size exceeded (change COMDMAX
to at least `01).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Maximum internal
command number supported.
000242
RDPGM: Bad match adding internal variable: `01
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Internal variable name
000243
RDPGM: No cmdget function found for BEGIN_S.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000244
Function `01 not included in run-time package.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Name of the SQR routine
000245
SETSQL: Could not find variable '`01', in Run Time.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Variable name
000249
SPINIT: Bad parameters.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000251
DBFFIX: DBDATLEN returned out of range status.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
Numbered Messages 357
Error Number
Error Message
Suggestion/Interpretation
000252
DPRPST: Error converting Sybase type for EXECUTE.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support.
000254
SETSQL: Could not find variable entry in list.
(Oracle) Internal error that should never occur during
normal operations. Record the steps leading up to the
error and contact technical support.
000255
DBDESC: SQLD not = number of select columns.
(DB2 and Informix) Internal error that should never occur
during normal operations. Record the steps leading up to
the error and contact technical support.
000256
DBFETCH: Unknown variable dbtype encountered: `01 (`02)
(DB2 and Informix) Internal error that should never occur
during normal operations. Record the steps leading up to
the error and contact technical support. `01 = Variable
name `02 = Unknown database type
000257
WRITE_SPF: Unknown code encountered: `01
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Unknown SPF code
000258
`01: Cannot find LOAD-LOOKUP table: `02
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Name of the routine `02
= Name of the table
000259
PGMPARS: '`01' called with wrong variable '`02'
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Name of the routine `02
= Name of the variable
000261
MODIFYVAR: Attempt to change variable which is not xVAR
(`01).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = name of the variable
000262
MODIFYVAR: Incompatible variable types (`01) and (`02).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Variable type (from) `02
= Variable type (to)
Table 93
Numbered Messages 001000 to 001999
Error Number
Error Message
Suggestion/Interpretation
001201
Cannot open the argument file: '`01'. (`02): `03
Depends on the system error message. `01 = Name of
the file `02 = System error code `03 = System error
message
001202
Cannot close the
Depends on the system error message. `01 = System
error code `02 = System error message
argument file. (`01): `02
001203
Cannot open the -MFile: '`01'. (`02): `03
358 Production Reporting Messages
Depends on the system error message. `01 = Name of
the file `02 = System error code `03 = System error
message
Error Number
Error Message
Suggestion/Interpretation
001204
Minimum value for '`01' in the -MFile is `02.
Correct the -Mfile entry. `01 = Keyword in question `02
= Minimum value allowed
001205
Maximum value for '`01' in the -Mfile is `02.
Correct the -Mfile entry. `01 = Keyword in question `02
= Maximum value allowed
001206
Invalid -MFile entry: '`01'.
Correct the -Mfile entry. `01 = The line from the -Mfile
001207
Cannot close the -MFile. (`01): `02
Depends on the system error message. `01 = System
error code `02 = System error message
001209
The minimum value for '`01' (`02) is `03.
Value out of range. `01 = Entry name `02 = Specified
value `03 = Minimum value
001210
The maximum value for '`01' (`02) is `03.
Value out of range. `01 = Entry name `02 = Specified
value `03 = Maximum value
001211
The value for '`01' (`02) is not an integer number.
Value must be a integer value. `01 = Entry name `02 =
Specified value
001300
Bind list does not match query (do not use '@__p' string).
Production Reporting reserves the variable names that
start with "@__p" for internal use. Edit the source code
and use different variable names.
001301
Forward references not permitted in select list bind variables.
Within the body of BEGIN-SQL paragraphs, forward
references to &column names are not permitted. Move
the BEGIN-SQL paragraph after the &column definition.
001303
Error in SQL (perhaps missing &name after expression):
The database server has determined that the SQL
statement is in error. The actual error text from the server
follows this message. Correct the SQL statement.
001304
Check SELECT columns, expressions and 'where' clause for
syntax.
The database server has determined that the SQL
statement is in error. The actual error text from the server
follows this message. Correct the SQL statement.
001305
CMPSQL: Unknown data type in database: `01.
Contact technical support with the version of the
database you are connected to. `01 = Datatype in
question
001307
CMPSQL: DBDEFN failed.
(ODBC, Oracle, Informix) Internal error that should never
occur during normal operations. Record the steps leading
up to the error and contact technical support.
001308
`01: Could not bind column `02.
(ODBC, Oracle, Informix) Internal error that should never
occur during normal operations. Record the steps leading
up to the error and contact technical support. `01 =
Name of the SQR routine `02 = Name of the column
001309
The type for '&`01' (`02) does not match the type from the
database (`03).
Correct the source code. `01 = Name of the column/
expression pseudonym `02 = User specified type `03 =
Database type
001400
Only numerics allowed for arithmetic.
Only #numeric variables, &columns, and literals are
permitted in the arithmetic commands. Correct the source
code.
Numbered Messages 359
Error Number
Error Message
Suggestion/Interpretation
001401
Optional qualifier is ROUND=n (0-`01).
Correct the syntax. `01 = Maximum value for ROUND=
001402
Optional qualifiers for DIVIDE are ON-ERROR={HIGH|ZERO}
and ROUND=n.
Correct the syntax.
001403
Attempting division by zero.
Use the ON-ERROR = HIGH | ZERO option to prevent this
error from halting the program.
001404
Bad number of digits to ROUND or TRUNC (0-15).
Correct the syntax.
001405
WARNING: The ROUND or TRUNC qualifier is greater than the
number's precision.
Correct the syntax.
001500
Array element out of range (`01) for array '`02' on line `03.
Correct the source logic. `01 = Element number passed
`02 = Name of the array `03 = Program line number
001501
Field element out of range (`01) for array '`02', field '`03',
on line `04.
Correct the source logic. `01 = Element number passed
`02 = Name of the array `03 = Name of the field `04 =
Program line number
001502
WARNING: Attempting division by zero on line `01. Array field
'`02' unchanged. Run continuing...
The ARRAY-DIVIDE command has attempted division by
zero. The division has been ignored; the result field is
unchanged. Add logic to account for this possibility. `01
= Program line number `02 = Name of field
001601
'FILL' not appropriate for numeric data.
The FILL argument to the PRINT command may be used
only for text fields. Move the #numeric variable to a $string
variable, and then print the string variable.
001700
Report '`01': Columns must be between 1 and the page width
(`02).
The specified value is wider than the width of the page.
Correct the source line. `01 = Name of the current report
`02 = Page width
001702
Report '`01': GOTO-TOP=`02 must be between 0 and the
page depth (`03).
The value specified on the GOTO-TOP argument of the
NEXT-COLUMN command was either less than 1 or greater
than the page depth. Correct the source line. `01 = Name
of the current report `02 = Goto-Top value `03 = Page
width
001703
Report '`01': ERASE-PAGE=`02 must be between 0 and the
page depth (`03).
The line number specified on the ERASE-PAGE argument
of the NEXT-COLUMN command is greater than the page
depth. Correct the source line. `01 = Name of the current
report `02 = Erase-Page value `03 = Page width
001704
Report '`01': The NEXT-COLUMN command is not legal in the
`02 section with the qualifier AT-END=NEWPAGE.
Correct the source line. `01 = Name of the current report
`02 = Name of the section
001705
Report '`01': Column number `02 is not defined.
The column number specified with the USE-COLUMN
command is greater than the highest column defined in
the COLUMNS command. Correct the source line. `01 =
Name of the current report `02 = Column number
001800
Format for CONNECT: username/password [ONERROR=procedure[(arg1[,argi]...)]]
Correct the syntax.
360 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
001801
Cannot use CONNECT while SQL statements are active.
Correct the program logic to ensure that all BEGIN-SELECT
paragraphs have completed before executing the
CONNECT command.
001802
Logoff failed prior to CONNECT.
The database server returned an error while trying to log
off from the database. SQR aborts the program run since
it cannot continue.
001803
CONNECT failed. Perhaps username/password incorrect.
The specified connectivity information is incorrect or there
might have been a network failure. Use the ON-ERROR
flag to trap any errors during the program run; otherwise
SQR aborts the program run.
001804
Sybase extensions SET and SETUSER not permitted in SQR.
Remove SET and SETUSER from the source.
001805
USE allowed once in SETUP section only, not in BEGIN-SQL.
Elsewhere, specify db.[user].table...
Correct the source.
001807
The requested database connection (`01) is already active.
The -Cnn value specified is being used by another BEGINSELECT paragraph that is currently selecting data. Use
another connection number. `01 = Connection number
001808
Cannot find inactive database cursor. Program too large.
Too many BEGIN-SELECT and BEGIN-SQL paragraphs are
active at the same time. Reduce the complexity of the
program.
001809
Database commit failed.
(DB2, ODBC, Oracle) Should never occur during normal
operations. Record the steps leading up to the error and
contact your system administrator.
001810
Database rollback failed.
(DB2, ODBC, Oracle) Should never occur during normal
operations. Record the steps leading up to the error and
contact your system administrator.
001811
Cannot open database cursor.
(ODBC, Oracle) Should never occur during normal
operations. Record the steps leading up to the error and
contact your system administrator.
001901
Variable for date-time must begin with '&'.
Correct the syntax.
001913
Format code must be SYYYY when specifying signed year.
Correct the edit mask.
001914
Bad input data (`01) for edit mask: '`02'.
Correct the input. `01 = Data being converted `02 = Edit
mask
001915
Year cannot be zero.
Correct the date.
001916
Year must be between -4713 and 9999 inclusive.
Correct the date.
001917
Ambiguous date-time.
Correct the date.
001918
'`01' is not a valid date part.
Correct the date part. `01 = Date part.
001919
Invalid day of week.
Correct the date.
001920
Format code cannot appear in date input format: '`01'.
Correct the edit mask. `01 = Improper format characters.
Numbered Messages 361
Error Number
Error Message
Suggestion/Interpretation
001921
Bad date mask starting at: '`01'.
Correct the edit mask. `01 = Improper format characters.
001922
Seconds past midnight must be between 0 and 86399.
Correct the date.
001923
Seconds must be between 0 and 59.
Correct the date.
001924
Minutes must be between 0 and 59.
Correct the date.
001925
Month must be between 1 and 12.
Correct the date.
001926
Day must be between 1 and `01.
Correct the date.
001927
Hour must be between 1 and 12.
Correct the date.
001928
Hour must be between 0 to 23.
Correct the date.
001929
HH24 precludes the use of meridian indicator.
Correct the edit mask.
001930
HH12 requires meridian indicator.
Correct the edit mask.
001931
Day of year must be between 1 and 365 (366 for leap year).
Correct the date.
001932
Date string too long.
Correct the date.
001933
The month (`01) is not valid for the current locale or
database.
Correct the date. `01 = Name of the month.
001934
The format mask must be a literal when the date-time is not
loaded into a variable.
Correct the format mask. The format mask must be a
literal when the date-time is not loaded into a variable.
001935
Date-time format too long.
Correct the format mask.
001936
Bad date-time format.
Correct the format mask.
001937
Bad SQL for default date-time. (Table DUAL required for
syntax.)
(Oracle) Possibly the format mask needs to be corrected;
otherwise, there is a problem with the database server.
001937
Bad SQL for default date-time. (Table DUAL required for
syntax.)
(DB2) Possibly the format mask needs to be corrected;
otherwise, there is a problem with the database server.
001938
Cannot recompile sql.
A fatal error relating to the SQL statement used to retrieve
the date-time was encountered. Record the steps leading
up to the error and contact your system administrator.
001939
Problem executing cursor.
A fatal error relating to the SQL statement used to retrieve
the date-time was encountered. Record the steps leading
up to the error and contact your system administrator.
001940
Error fetching row.
A fatal error relating to the SQL statement used to retrieve
the date-time was encountered. Record the steps leading
up to the error and contact your system administrator.
001941
Cannot redefine variable addresses.
A fatal error relating to the SQL statement used to retrieve
the date-time was encountered. Record the steps leading
up to the error and contact your system administrator.
362 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
001942
The date '`01' is not in the format:
When specifying an SQR date, at a minimum, the date
must be specified; the time is optional. `01 = The invalid
date.
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]].
001943
The date '`01' is not in one of the accepted formats listed
below:
MM/DD/YYYY [BC | AD] [HH:MI[:SS[.NNNNNN]] [AM | PM]]
The date specified with the INPUT command was not in
one the default formats. Please re-enter the date in a valid
format. `01 = The invalid date.
MM-DD-YYYY [BC | AD] [HH:MI[:SS[.NNNNNN]] [AM | PM]]
MM.DD.YYYY [BC | AD] [HH:MI[:SS[.NNNNNN]] [AM | PM]]
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
001944
The date '`01' is not in the format specified by
SQR_DB_DATE_FORMAT or in one of the accepted formats
listed below:
(Oracle) The date was not in one of the expected formats
for this database. `01 = The invalid date.
DD-MON-YY
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
001944
The date '`01' is not in the format specified by
SQR_DB_DATE_FORMAT or in one of the accepted formats
listed below:
(Sybase) The date was not in one of the expected formats
for this database. `01 = The invalid date.
Mon DD YYYY [HH:MI[:SS[.NNN]][AM | PM]]
Mon DD YYYY [HH:MI[:SS[:NNN]][AM | PM]]
YYYYMMDD [HH:MI[:SS[.NNN]][AM | PM]]
YYYYMMDD [HH:MI[:SS[:NNN]][AM | PM]]
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
001944
The date '`01' is not in the format specified by
SQR_DB_DATE_FORMAT or in one of the accepted formats
listed below:
(ODBC) The date was not in one of the expected formats
for this database. `01 = The invalid date.
Mon DD YYYY [HH:MI[:SS[.NNN]][AM | PM]]
Mon DD YYYY [HH:MI[:SS[:NNN]][AM | PM]]
YYYYMMDD [HH:MI[:SS[.NNN]][AM | PM]]
YYYYMMDD [HH:MI[:SS[:NNN]][AM | PM]]
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
001944
The date '`01' is not in the format specified by
SQR_DB_DATE_FORMAT or in one of the accepted formats
listed below:
(DDO) The date was not in the one of the expected formats
for this database.
`01 = The invalid date.
Mon DD YYYY [HH:MI[:SS[.NNN]][AM | PM]]
Mon DD YYYY [HH:MI[:SS[:NNN]][AM | PM]]
YYYYMMDD [HH:MI[:SS[.NNN]][AM | PM]]
YYYYMMDD [HH:MI[:SS[:NNN]][AM | PM]]
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
Numbered Messages 363
Error Number
Error Message
Suggestion/Interpretation
001944
The date '`01' is not in the format specified by
SQR_DB_DATE_FORMAT or in one of the accepted formats
listed below:
(Informix) The date was not in one of the expected formats
for this database. `01 = The invalid date.
YYYY-MM-DD HH:MI:SS.NNN
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
001944
The date '`01' is not in the format specified by
SQR_DB_DATE_FORMAT or in one of the accepted formats
listed below:
(DB2) The date was not in one of the expected formats
for this database. `01 = The invalid date.
YYYY-MM-DD[-HH.MI.SS[.NNNNNN]]
MM/DD/YYYY
DD.MM.YYYY
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
001944
The date '`01' is not in the format specified by
SQR_DB_DATE_FORMAT or in one of the accepted formats
listed below:
(Teradata) The date was not in the one of the expected
formats for this database.
`01 = The invalid date
YYYY-MM-DD
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
001946
Table 94
The date variables are incompatible with each other.
The SQR function references two date variables which
cannot be logically be used together (for example,
DateDiff of 'date-only' and 'time-only' dates).
Numbered Messages 002000 to 002999
Error Number
Error Message
Suggestion/Interpretation
002000
Procedure name used more than once: '`01'.
Give the procedure a unique name. `01 = Procedure name
002001
Could not find procedure: '`01'.
Check for a misspelled procedure name. `01 = Procedure
name
002002
DO arguments do not match procedure's.
The argument lists for the DO and BEGIN-PROCEDURE
commands must match in both type and count. Correct the
source line.
002003
DO argument must be $string or #number to accept
returned value.
Correct the syntax.
002100
Edit string too long.
The edit mask must be less than 255 characters. Reduce
the length of the edit mask.
002101
Bad numeric 'edit' format: `01
The numeric edit mask contains an invalid character. See
the PRINT command for the valid numeric edit mask
characters. `01 = Invalid character
002103
DOLLAR-SYMBOL must be a single alphanumeric character
or its decimal value enclosed in brackets: <nnn>.
Correct the syntax.
002104
DOLLAR-SYMBOL cannot be any of the following characters:
`01
Correct the syntax. `01 = List of invalid characters
364 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
002106
MONEY-SYMBOL must be a single alphanumeric character
or its decimal value enclosed in brackets: <nnn>.
Correct the syntax.
002107
MONEY-SYMBOL cannot be any of the following characters:
`01
Correct the syntax.
002200
ENCODE string too large; maximum is `01.
Break up the ENCODE command. `01 = Maximum length
of an ENCODE string supported by this version of SQR
002300
EXIT-SELECT failed.
The database command to cancel the query returned an
error. Try running the SQR program again. The error could
be related to a network or server problem. If the error
persists, contact your system administrator.
002301
EXIT-SELECT valid only within SELECT paragraph.
Remove the EXIT-SELECT command.
002400
Duplicate label's - do not know which one to GOTO.
Labels must be unique within the section or paragraph
where they are defined. Give each label a unique name.
002401
(Labels must be in same section or paragraph as GOTO.)
Cannot find a matching label for GOTO command.
Check the source code.
002500
Error getting INPUT.
The C routine "fgets()" returned an error and SQR aborts the
program run.
002501
Unknown INPUT datatype: type={char|number|integer|
date}
Correct the syntax.
002502
INPUT STATUS= must reference #variable.
Correct the syntax.
002503
Unknown qualifier for INPUT.
Correct the syntax.
002506
Too long. Maximum `01 characters.
The response to the INPUT statement was too long. Re-enter
the data. `01 = Maximum characters allowed
002507
Incorrect. Format for floating point number: [+|-]99.99
[E99]
Invalid number was entered for an INPUT request. Re-enter
the data.
002508
Incorrect. Format for integer: [+|-]999999
Invalid integer was entered for an INPUT request. Re-enter
the data.
002510
A format mask can only be specified when TYPE=DATE is
used.
Correct the syntax.
002511
The format mask cannot be stored in a date variable.
Correct the syntax.
002512
The input variable type does not match the TYPE qualifier.
Correct the syntax.
002513
Number too large for INTEGER. Valid range is -2147483648
to 2147483647.
The number was too large to be stored as an integer. Values
are from -2147483648 to 2147483647. Re-enter the
data.
002514
Enter a date in one of the following formats:
The date cannot be blank. Enter a date in one of the
specified formats.
MM/DD/YYYY [HH:MI[:SS[.NNNNNN]] [AM | PM]]
MM-DD-YYYY [HH:MI[:SS[.NNNNNN]] [AM | PM]]
Numbered Messages 365
Error Number
Error Message
Suggestion/Interpretation
MM.DD.YYYY [HH:MI[:SS[.NNNNNN]] [AM | PM]]
SYYYYMMDD[HH24[MI[SS[NNNNNN]]]]
002515
`01 required user interaction but user interaction was
disabled by the -XI command line flag.
The specified command required user interaction, but user
interaction was disabled by the -XI command line flag. `01
= Name of the command
002600
LOAD-LOOKUP table '`01' has not been defined.
Add a LOAD-LOOKUP command. `01 = Load lookup table
name
002601
Missing value for `01= in LOAD-LOOKUP.
Correct the syntax. `01 = Name of missing required
parameter
002602
Bad value for `01= in LOAD-LOOKUP.
Correct the syntax. `01 = Name of the parameter
002603
LOAD-LOOKUP `01= cannot reference a variable in the
Setup section.
Either move the LOAD-LOOKUP command from the Setup
section or remove the variable reference. `01 = Name of
the parameter
002604
LOAD-LOOKUP names must be unique.
Give each LOAD-LOOKUP array a unique name.
002605
Cannot compile SQL for LOAD-LOOKUP table '`01'.
The database server returned an error while trying to
compile the SQL statement needed to process the LOADLOOKUP command. Check the column and table names.
Also check the WHERE= clause for errors. `01 = Load
lookup table name
002606
Could not set up cursor for LOAD-LOOKUP table '`01'.
The database server returned an error while trying to
compile the SQL statement needed to set up the LOADLOOKUP command. Check the column and table names.
Also check the WHERE= clause for errors. `01 = Load
lookup table name
002607
Problem executing the cursor for LOAD-LOOKUP table '`01'.
The database server returned an error while trying to execute
the SQL statement needed to process the LOAD-LOOKUP
command. `01 = Load lookup table name
002609
Integers only allowed in numeric lookup keys.
Correct the source line.
002610
Numeric lookup keys must be <= `01 digits.
Correct the source line. `01 = maximum length supported
002611
Bad return fetching row from database in LOAD-LOOKUP
table '`01'.
The database server returned an error while fetching the
data. `01 = Load lookup table name
002613
Loading '`01' lookup table ...
This message can be inhibited by using the QUIET argument
on the LOAD-LOOKUP command. `01 = Name of the load
lookup table `02 = Number of rows loaded
002615
Warning: `01 duplicate keys found in '`02' lookup table.
This message can be inhibited by using the QUIET argument
on the LOAD-LOOKUP command. `01 = Number of
duplicate keys `02 = Name of the load lookup table
002616
LOAD-LOOKUP `01= must reference a numeric variable or
literal.
Correct the source line. `01 = Name of the parameter
002617
LOAD-LOOKUP `01= must reference a string variable or
literal.
Correct the source line. `01 = Name of the parameter
366 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
002618
LOAD-LOOKUP `01= variable '`02' has not been defined.
Correct the source line. `01 = Name of the parameter `02
= Name of the undefined variable
002619
LOAD-LOOKUP cannot support `01 rows; maximum is `02.
Reduce the ROWS= value. `01 = ROWS= value `02 =
Maximum value allowed
002620
`01 command not allowed with -XL option in effect.
Either use the #IF command to conditionally compile the
program when -XL is being used or do not execute this SQR
report with the -XL option. `01 = SQR command
002700
Line to stop erasing for 'NEW-PAGE' is larger than the page
depth.
Correct the source line.
002800
'ON-BREAK' not appropriate for numeric data.
The ON-BREAK argument to the PRINT command may be
used only for text fields. Move the #numeric variable to a
$string variable, and then print the $string variable.
002801
SET= and LEVEL= must be >= zero when indicated.
Correct the source line.
002802
Cannot use old style PROCEDURE= with BEFORE= or
AFTER=.
Correct the syntax.
002804
SET= must be same for all ON-BREAKs in Select.
All the ON-BREAKS in a query must belong to the same SET.
Use SET= to differentiate between ON-BREAKs in different
queries. Correct the source line.
002805
ON-BREAK with BEFORE or AFTER must be inside Select.
Correct the source line.
002806
SAVE= must be a $string variable.
Correct the syntax.
002900
Record :types are FIXED, VARY, or FIXED_NOLF (default is
VARY).
Correct the syntax.
002901
STATUS variable for `01 must be #Numeric.
Correct the syntax. `01 = SQR command affected
002902
OPEN missing required qualifiers: RECORD={rec_len} FORREADING|FOR-WRITING|FOR-APPEND
Correct the syntax.
002903
Too many external files opened; maximum is `01.
Reduce the number of open external files needed by the
program. `01 = Maximum number of open external files
supported by this version of SQR
002904
File number already opened.
Check your program logic.
002905
Cannot open file '`01' AS `02.(`03): `04
SQR aborts. `01 = Filename `02 = File number `03 =
System error code `04 = System error message
002906
Cannot close file `01 (`02): `03
SQR aborts. `01 = File number `02 = System error code
`03 = System error message
002907
Problem closing user file(s) at the end of run.
This message may indicate system problems.
002908
Warning: Cannot CLOSE file `01 -- file not opened.
While not an error, this message indicates a problem with
your SQR code. `01 = File number.
002909
Missing or invalid character set encoding: '`01'.
Specify a valid encoding: UCS-2, ASCII, EBCDIK1027, etc.
Numbered Messages 367
Error Number
Error Message
Suggestion/Interpretation
002910
This has been declared a UCS-2 file; however, the ByteOrder-Mark is missing or invalid.
A UCS-2 file must contain a Byte-Order-Mark.
002911
Cannot use `01 without setting UseUnicodeInternal to
TRUE in SQR.INI.
The UseUnicodeInternal setting in the DEFAULT-SETTINGS
section of the SQR.INI must be set to TRUE in order to use
this functionality.
002912
The encoding `01 cannot be supported without the use of
unicode. Set the UseUnicodeInternal setting in SQR.INI to
TRUE.
The UseUnicodeInternal setting in the DEFAULT-SETTINGS
section of SQR.INI must be set to TRUE in order to use this
encoding.
002913
Invalid Unicode character representation used in the
UNICODE Let function.
The string of hex characters representing a set of Unicode
characters must be in the format '[whitespace|U+|u]XXXX'
for the UNICODE Let function.
002914
The encoding `01 is not compatible with `02 unless
unicode is used internally. Set the UseUnicodeInternal
setting in the INI file to TRUE and rerun.
Certain encodings are not compatible unless unicode is
used. The UseUnicodeInternal setting in the DEFAULTSETTINGS section of SQR.INI must be set to TRUE in order
to use these encodings in the same run.
002915
The file encoding `01 is not compatible with `02 unless
unicode is used internally. Set the UseUnicodeInternal
setting in the INI file to TRUE and rerun.
Certain encodings are not compatible unless unicode is
used. The UseUnicodeInternal setting in the DEFAULTSETTINGS section of SQR.INI must be set to TRUE in order
to use these encodings in the same run.
002916
The SQT encoding `01 is not compatible with `02. Set the
UseUnicodeInternal setting in the INI file to TRUE and rerun.
Certain encodings are not compatible unless unicode is
used. The SQT was not generated using unicode; therefore,
the encodings specified are incompatible.
Reset the encoding in conflict or regenerate the SQT with
the UseUnicodeInternal setting in the DEFAULT-SETTINGS
section of SQR.INI to TRUE in order to use these encodings
in the same run.
002917
The SQT file was created using an SQR executable that does
not support unicode. Please run the SQT using the
appropriate executable.
(EBCDIC) The SQT file was created using SQR that does not
support unicode. Therefore, it must be run with a nonunicode SQR or SQRT executable.
002918
An operation was detected that requires unicode; however,
this executable cannot perform unicode processing. Relink
or use the appropriate executable.
Unicode processing is required; however, the executable
has not been linked with the Rosette Unicode library. Either
relink the executable with the Rosette library or, for EBCDIC
platforms, use the alternate executable that supports
unicode processing.
002919
The field length `01 is invalid for I/O with UCS-2 data.
By definition, UCS-2 requires two bytes per character;
however, the length specifier was odd. Make the length a
multiple of two.
002920
:length must be a numeric literal, variable, or column.
Correct the syntax.
002921
Bad :length (`01) for OPEN command.
The length must be greater than zero.
`01 = Length value
368 Production Reporting Messages
Table 95
Numbered Messages 003000 to 003999
Error Number
Error Message
Suggestion/Interpretation
003000
PAGE-NUMBER strings too long.
The pre-and post-PAGE-NUMBER strings must be less
than 74 characters. Correct the source line.
003100
Cannot find document marker referenced in POSITION
command.
Defines the specified @ marker in a BEGIN-DOCUMENT
paragraph. Check for a misspelled @ marker name.
003101
Only 'COLUMNS nn...' allowed after document marker in
POSITION command.
Correct the syntax.
003200
Specified file number not opened for reading.
Files must be opened for reading in order to use the READ
command with them. Correct the program logic.
003201
Line `01: Error reading the file. (`02): `03
`01 = Program line number `02 = System error code `03
= System error message
003202
Specified file number not opened for writing.
Files must be opened for writing in order to use the WRITE
command with them. Correct the program logic.
003203
Line `01: Error writing the file. (`02): `03
`01 = Program line number `02 = System error code `03
= System error message
003204
Length of variables exceeds record length.
The total of the lengths indicated in the command must
be less than the RECORD= argument used on the OPEN
command. Check for a typographical error or recalculate
the RECORD= value.
003205
Numeric binary transfer allowed with FIXED or FIXED_NOLF
records only.
By default, all files are opened in VARY (variable length)
mode, thus prohibiting the transfer of numeric binary
data. Add the:FIXED or FIXED_NOLF option to the
RECORD= argument on the appropriate OPEN command.
003206
Command not complete.
Correct the syntax.
003207
File number must be a numeric literal, variable, or column.
Correct the syntax.
003208
Missing required :length in READ command.
Correct the syntax.
003209
Bad :length (`01) for READ or WRITE command.
The length must not be less than zero.
`01 = Length value
003210
$String or #numeric variables required for READ.
Correct the syntax.
003211
#Numeric variables and literals must have :length of 1, 2 or
4 bytes.
Correct the syntax.
003212
#Numeric variables and literals on CDC may only have :length
of 1 or 3 bytes.
Correct the syntax.
003214
:length must be a numeric literal, variable, or column.
Correct the syntax.
003300
Unknown qualifier for STOP.
Correct the syntax.
003301
Program stopped by user request.
Informational message.
Numbered Messages 369
Error Number
Error Message
Suggestion/Interpretation
003400
Wrap not appropriate for numeric data.
The WRAP argument to the PRINT command may be used
only for text fields. Move the #numeric variable to a $string
variable first, and then print the $string variable.
003401
Max `01 chars/line for reverse WRAP.
Reduce the number of characters specified. `01 =
Maximum number of characters supported by this version
of SQR.
003402
Max `01 chars/line for WRAP with ON= or STRIP=
Reduce the number of characters specified. `01 =
Maximum number of characters supported by this version
of SQR
003403
Bad <number> in WRAP qualifier.
The number inside the angled brackets must be a valid
ASCII number (1 - 255). Correct the source line.
003404
Missing '>' in WRAP qualifier.
A leading "<" in the ON= or STRIP= qualifier indicates that
a numeric value is following, which must be ended by a
closing ">". Correct the source line.
003405
The value for '`01' (`02) must be `03 0.
The value specified for the specified qualifier is invalid.
Correct the program logic. `01 = Qualifier name `02 =
Value encountered `03 = Relation to zero (<,<=,=,>=,>)
003500
PUT, GET or ARRAY-xxxx command incomplete. Required word
missing.
Correct the syntax.
003501
Did not find end of literal.
The ending quote character (') was not found at the end
of the literal. Add the ending quote character.
003502
Literal too long.
Literal strings can be up to 256 characters long. Break up
the literal into smaller pieces and combine using the LET
command.
003503
Unknown variable type.
Variable names must begin with $, #, or &. Correct the
source line.
003504
Cannot find 'array_name (#element)'.
The element number was not specified. Correct the source
line.
003505
'(#Element)' variable not found for array.
Each GET or PUT command must indicate the element or
row number to access in the array. Correct the source line.
003506
Array specified not defined with CREATE-ARRAY.
Use the CREATE-ARRAY command to define each array
before referencing that array in other commands. Check
for a misspelled array name.
003507
Bad element reference for array (#variable|123).
The element number is larger than the number of rows
defined in the CREATE-ARRAY command. Check program
logic to make sure that the element number was not
inadvertently changed.
003508
Did not find ending ')' for field.
The "occurs" number for an array field is missing a right
parenthesis. Correct the source line.
003509
Field not defined in array: `01
Check for a misspelled field name against the CREATEARRAY command. `01 = Undefined field name
370 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
003510
More variables than fields specified in array command.
The ARRAY command must not have more variables listed
to the left of the array name than there are matching fields
defined for the array. Check against the CREATE-ARRAY
command.
003511
More variables in command than fields in array.
The ARRAY command must not have more variables listed
to the left of the array name than there are matching fields
defined for the array. Check against the CREATE-ARRAY
command.
003512
Only numeric variables and fields allowed with array
arithmetic commands.
The ARRAY-ADD, ARRAY-SUBTRACT, ARRAY-MULTIPLY,
and ARRAY-DIVIDE commands may have only numeric
variables or literals as the source fields. Move the string
data into a #numeric variable and then reference the
#numeric variable.
003513
GET can only be used with $string or #numeric variables.
You can move array fields only into $string variables or
#numeric variables. Correct the source line.
003514
PUT and GET variables must match array field types.
When moving data into or out of arrays, the source or
destination variables must match the array fields in type.
CHAR fields can be stored into/from strings, NUMBER
fields into/from numeric variables. Check the CREATEARRAY command.
003515
More fields than variables found in array command.
The ARRAY command must not have more variables listed
to the left of the array name than there are matching fields
defined for the array. Check against the CREATE-ARRAY
command.
003516
Too many arrays defined; maximum is `01.
Reduce the number of arrays needed by the program. `01
= Maximum number of arrays supported by this version
of SQR
003517
Missing '=specifier' in qualifier: `01
Correct the syntax. 01 = Name of missing required
parameter
003518
Duplicate array name: `01
Change the name of the array. `01 = Array name in
question
003519
Too many fields defined; maximum is `01.
Reduce the number of fields. `01 = Maximum number of
fields allowed per array
003520
Missing ':type' in CREATE-ARRAY FIELD= `01
Correct the syntax. `01 = The name of the field
003521
Duplicate FIELD name: `01
Change the name of one of the fields. `01 = The name
of the field
003522
Optional :nn for FIELD must be between 1 and 64K.
Correct the source line.
003523
CREATE-ARRAY FIELDS :type must be one of the following:
`01
Correct the syntax.
003525
Missing NAME= in CREATE-ARRAY.
Correct the syntax.
003526
Missing or incorrect SIZE= in CREATE-ARRAY.
Correct the syntax.
Numbered Messages 371
Error Number
Error Message
Suggestion/Interpretation
003527
Missing FIELD= statements in CREATE-ARRAY.
Correct the syntax.
003529
Missing or invalid initialization value for field `01.
Correct the syntax. 01 = Name of the field
003530
Invalid EXTENT= value in CREATE-ARRAY.
Correct the syntax.
003600
Missing 'ask' variable name.
Correct the syntax.
003603
WARNING: Substitution variables do not vary when saved with
run-time.
Informational message.
003605
No substitution variable entered.
The C routine "fgets()" returned an error and SQR aborts
the program run.
003700
Did not find end of paragraph: `01
Missing the END-paragraph command to match the
specified paragraph. Correct the source file. `01 =
BEGIN-paragraph in question
003701
Invalid command.
Check for a misspelled command.
003702
Command not allowed in this section: `01
Correct the syntax. `01 = Offending command name
003703
Paragraph not allowed inside procedure.
The BEGIN-paragraph command is not allowed here.
Check your SQR code for a misplaced paragraph.
003704
Missing procedure name.
Correct the syntax.
003705
Extra argument found.
Correct the syntax.
003706
Missing Comma.
Correct the syntax.
003707
Bad Argument List.
The DO or BEGIN-PROCEDURE command has an error in
its argument list, possibly extra characters after the final
right parentheses. Correct the source line.
003708
Empty Argument.
The DO or BEGIN-PROCEDURE command has an error in
its argument list, possibly two commas in a row inside the
parentheses. Correct the source line.
003709
Only $string and #number variables allowed for BEGINPROCEDURE parameters.
Correct the syntax.
003710
Unknown argument type.
An argument in a DO or BEGIN-PROCEDURE command is
incorrect. Check for a misspelled variable type.
003711
Indicate :$string or :#number returned values in BEGINPROCEDURE only.
Correct the syntax.
003712
Missing ).
Correct the syntax.
003713
`01 paragraph not allowed with -XL option in effect.
Either use the #IF command to conditionally compile the
program when -XL is being used or do not execute this
SQR report with the -XL option. `01 = Name of the BEGINparagraph
003714
Bad database connection number.
The -Cnn value must be a non-zero value. Correct the
source line.
372 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
003715
Did not find end of paragraph: `01 (No 'from...' clause
found.)
Correct the source code. `01 = BEGIN-command in
question
003716
Error in SQL statement.
The database server has determined that the SQL
statement is in error. The actual error text from the server
follows this message. Correct the SQL statement.
003717
Extra characters after expression continuation.
Remove the extra characters after the dash.
003718
Did not find end of expression.
An expression in a SELECT list must end with either a
&column variable or a position parameter
"(Row,Col,Len)". Correct the source line.
003719
Columns names and expressions must be unique or be given
unique pseudonyms (&name).
Columns retrieved from the database are assigned names
by prepending an "&" to the beginning of the name. You
are trying to select the same &column name more than
once. Change the assigned &column name by using an
alias after the name.
003720
Bad number specified for 'LOOPS=' on 'BEGIN-SELECT;
Maximum is 32767'.
If your program logic requires that you stop processing
after more than 32767 rows have been retrieved, you
could count the rows manually and use the EXIT-SELECT
command to break out of the SELECT loop.
003721
Bad param found on 'BEGIN-SELECT' line; Format is: BEGINSELECT [DISTINCT] [-Cnn] [-Bnn] [LOOPS=nn] [ONERROR=procedure[(arg1[,argi]...)]]
(DB2) Correct the syntax.
003721
Bad param found on 'BEGIN-SELECT' line; Format is: BEGINSELECT [DISTINCT] [-Cnn] [LOOPS=nn] [ONERROR=procedure[(arg1[,argi]...)]]
(Informix) Correct the syntax.
003721
Bad param found on 'BEGIN-SELECT' line; Format is: BEGINSELECT [DISTINCT] [-Cnn] [LOOPS=nn] [ONERROR=procedure[(arg1[,argi]...)]] [-DB=database]
(ODBC) Correct the syntax.
003721
Bad param found on 'BEGIN-SELECT' line; Format is: BEGINSELECT [LOOPS=nn] [ON-ERROR=procedure[(arg1
[,argi]...)]] [BEFORE=procedure[(arg1[,argi]...)]]
[AFTER=procedure[(arg1[,argi]...)]]
(DDO) Correct the syntax.
003721
Bad param found on 'BEGIN-SELECT' line; Format is: BEGINSELECT [DISTINCT] [-Cnn] [-Bnn] [LOOPS=nn] [ONERROR=procedure[(arg1[,argi]...)]]
(Oracle) Correct the syntax.
003721
Bad param found on 'BEGIN-SELECT' line; Format is: BEGINSELECT [DISTINCT] [-Cnn] [-XP] [LOOPS=nnn] [ONERROR=procedure[(arg1[,argi]...)]]
(Sybase) Correct the syntax.
003721
Bad param found on 'BEGIN-SELECT' line; Format is: -SELECT
[DISTINCT] [-Cnn] [-Bnn] [LOOPS=nn] [ONERROR=procedure[(arg1[,argi]...)]]
(Teradata) Correct the syntax.
003722
Could not set up cursor.
An error occurred while trying to compile the SQL
statement. Look closely at any $string variable
references. Correct the SQL statement or use the ONERROR= option to trap the error during the program run.
Numbered Messages 373
Error Number
Error Message
Suggestion/Interpretation
003723
Problem executing cursor.
An error occurred while trying to execute the SQL
statement. Look closely at any $string variable
references. Correct the SQL statement or use the ONERROR= option to trap the error during the program run.
003724
Could not exit query loop.
The database command to cancel the query returned an
error. Try running the SQR program again. The error could
be related to a network or server problem. If the error
persists, contact your system administrator.
003725
Bad return fetching row from database.
The database returned an error status for the last row that
was fetched, commonly due to the buffer not being large
enough. If selecting expressions, make sure that the
length of the first expression will be adequate for all rows
selected.
003726
Literal in SQL expression missing closing quote.
Literals must be surrounded by single quotes ('). To
embed a quote within a literal use two single quotes in
sequence (''). Correct the source line.
003727
SQL expression not ended, perhaps parentheses not
balanced.
An expression in a SELECT list must end with either a
&column variable or a position parameter
"(Row,Col,Len)". Correct the source line.
003728
SQL expression not ended, perhaps missing &name.
An expression in a SELECT list must end with either a
&column variable or a position parameter
"(Row,Col,Len)". Correct the source line.
003729
SQL expression is missing &name or has unbalanced
parentheses.
An expression in a SELECT list must end with either a
&column variable or a position parameter
"(Row,Col,Len)". Correct the source line.
003730
Incorrect arguments for BEGIN-SQL: [-Cnn] [ONERROR=procedure[(arg1[,argi]...)]]
(DB2) Correct the syntax.
003730
Incorrect arguments for BEGIN-SQL: [-Cnn] [ONERROR=procedure[(arg1[,argi]...)]]
(Informix) Correct the syntax.
003730
Incorrect arguments for BEGIN-SQL: [-Cnn] [-NR] [ONERROR=procedure(arg1[,argi]...)]] [-DB=]
(ODBC) Correct the syntax.
003730
Incorrect arguments for BEGIN-SQL: [-Cnn] [ONERROR=procedure[(arg1[,argi]...)]]
(Oracle) Correct the syntax.
003730
Incorrect arguments for BEGIN-SQL: [-Cnn] [ONERROR=procedure[(arg1[,argi]...)]] [-Connection=]
(DDO) Correct the syntax.
003730
Incorrect arguments for BEGIN-SQL:
(Sybase) Correct the syntax.
[-Cnn] [-XP] [ON-ERROR=procedure[(arg1[,argi]...)]]
003730
Incorrect arguments for BEGIN-SQL: [-Cnn] [ONERROR=procedure[(arg1[,argi]...)]]
(Teradata) Correct the syntax.
003731
Did not find 'END-SQL' after 'BEGIN-SQL'.
Correct the source file.
374 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
003732
ON-ERROR= for 'BEGIN-SQL' in SETUP section must be STOP,
WARN or SKIP.
Correct the syntax.
003733
Could not create procedure for SQL.
(Sybase) SQR could not create a stored procedure for the
SQL statement. The most likely cause for failure is that
the user name you are using to run the report under does
not have the proper privileges. Either grant the user
CREATE PROCEDURE privilege or use the -XP command
line option to inhibit SQR from creating temporary stored
procedures for SQL statements.
003734
Could not compile SQL.
Correct the SQL statement or use the ON-ERROR= option
to trap the error during the program run.
003735
Could not execute SQL.
An error occurred while trying to compile the SQL
statement. Correct the SQL statement or use the ONERROR= option to trap the error during the program run.
003736
Please use BEGIN-SELECT - END-SELECT section for SELECT
statements.
(Informix, ODBC, Oracle, DDO) Correct the source code.
003737
Bad fetch buffer count.
(Oracle, Sybase) The -B flag specifies an illegal value.
Correct the source code.
003738
Report interrupted by request.
Informational message.
003741
Dynamic column must be $string variable.
Correct the syntax.
003742
Dynamic column missing '`01'.
Correct the syntax. `01 = Missing character
003743
Dynamic columns must have a &pseudonym.
Correct the syntax.
003745
Only a variable name may be between the '`01' and '`02'
characters.
Correct the syntax. `01 = Leading character `02 = Trailing
character
003746
When dynamic columns are used all non-dynamic columns
and expressions must be defined with &name=type.
Add &name=type to all expressions and non-dynamic
columns.
003747
When the table name is dynamic each column and expression
must be defined with &name=type.
Add &name=type to all expressions and non-dynamic
columns.
003748
When selecting multiple rowsets, they must have the same
columns (order, type, width).
Non-contiguous rowsets selected in ROWSETS=().
003749
The highest numbered rowset named in ROWSET=() must be
less than 10.
Rowset upper bound exceeded in ROWSETS=().
003750
Correct syntax is ROWSETS=(-n,m,n-m,i-) or (all).
Correct the syntax in ROWSETS=().
003751
Cannot select more than 25 Rowsets in a single BEGINSELECT.
Correct the syntax in ROWSETS=().
003752
One of the selected fields ('`01') was not found in the
specified row set(s). The available fields are: '`02'.
Field not found in BEGIN-SELECT.
003755
Rowsets must be listed in ascending order, and may not
include duplicates.
Bad rowset numbering sequence in BEGIN-SELECT.
Numbered Messages 375
Error Number
Error Message
Suggestion/Interpretation
003800
Too many document paragraphs; maximum is `01.
There are too many BEGIN-DOCUMENT paragraphs.
Reduce the number of DOCUMENT paragraphs needed by
the program. `01 = Maximum number supported by this
version of SQR
003801
Too many document markers; maximum is `01.
There are too many BEGIN-DOCUMENT paragraphs.
Reduce the number of DOCUMENT paragraphs needed by
the program. `01 = Maximum number supported by this
version of SQR
003802
Duplicate document marker.
Give the document marker a unique name.
003803
Did not find 'END-DOCUMENT' after 'BEGIN-DOCUMENT'.
The BEGIN-DOCUMENT paragraph must end with ENDDOCUMENT. Correct the source code.
003900
EXECUTE command is incomplete.
Correct the syntax.
003901
Bad -Cnn connection number for EXECUTE.
The -Cnn value must be a nonzero value. Correct the
source line.
003902
@#Return_status must be #numeric (missing #).
(Sybase) Correct the source line.
003902
@#Return_status must be #numeric (missing #).
(ODBC) Correct the source line.
003902
@(# or $)Return_status must be #numeric or $variable.
(Oracle) Correct the source line.
003902
@#Return_status must be #numeric (missing #).
(DB2) Correct the source line.
003903
Missing '=' after `01.
Correct the source line. `01 = The parameter in question
003904
Unknown variable type.
Variable names must begin with $, #, or &. Correct the
source line.
003905
OUT[PUT] variables for EXECUTE may only be $variable or
#variable.
Correct the syntax.
003906
The only EXECUTE option is WITH RECOMPILE.
Correct the syntax.
003907
You must EXECUTE ... INTO &columns.
Correct the syntax.
003908
Unknown datatype for EXECUTE...INTO &columns.
Check for a misspelled data type. If the data type is
correct, then contact customer technical support so SQR
can be updated.
003909
EXECUTE...INTO &columns must be unique.
The &column name assigned to the column must be
unique throughout the report. Give the column a unique
name.
003910
Missing (length) for datatype in EXECUTE.
Correct the source line.
003911
Datatype should not have (length) in EXECUTE.
Correct the source line.
003912
DO= in EXECUTE requires INTO... variables.
Correct the syntax.
003913
Could not EXECUTE stored procedure.
(Sybase) Record the database error message displayed
with this message. If needed, contact your system
administrator.
376 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
003913
Could not EXECUTE stored procedure.
(ODBC) Record the database error message displayed
with this message. If needed, contact your system
administrator.
003913
Could not EXECUTE stored procedure or function.
(Oracle) Record the database error message displayed
with this message. If needed, contact your system
administrator.
003913
Could not EXECUTE stored procedure or function.
(DB2) Record the database error message displayed with
this message. If needed, contact your system
administrator.
003914
Bad return fetching row from database.
Record the database error message displayed with this
message. If needed, contact your system administrator.
003915
Could not set up EXECUTE cursor.
The database server returned an error while trying to
compile the SQL statement needed to set up the EXECUTE
command.
003918
Missing Stored Procedure or Function - '`01'.
(Oracle) A describe of the store procedure or function
could not be performed.
`01 = Procedure or function name
003918
Missing Stored Procedure - '`01'.
(DB2) A describe of the store procedure or function could
not be performed.
`01 = Procedure or function name
003920
The EXECUTE command had an erroneous return status data
type of '`02' declared. The Stored Function expects a return
status of '`01'.
(Oracle) The wrong data type has been specified for the
return status of a Stored Function.
`01 = Expected Data Type
`02 = Return Data Type
003921
The EXECUTE command detected an erroneous data type of
'`02' declared for the IN/OUT parameter - name/position:
`03/`04. The Stored Function or Procedure expects a
parameter data type of '`01'.
(Oracle) The wrong data type has been specified for the
return variable of a Stored Procedure.
`01 = Expected Data Type
`02 = Return Data Type
`03 = Name of Parameter
`04 = Position of Parameter
003921
The EXECUTE command detected an erroneous data type of
'`02' declared for the IN/OUT parameter - name/position:
`03/`04. The Stored Procedure expects a parameter data
type of '`01'.
(DB2) The wrong data type has been specified for the
return variable of a Stored Procedure.
`01 = Expected Data Type
`02 = Return Data Type
`03 = Name of Parameter
`04 = Position of Parameter
003922
The maximum number of allowable IN/OUT parameters was
reached. No more than '`01' can be processed by the
EXECUTE command.
(DB2) The maximum number of allowable IN/OUT
parameters was reached.
`01 = Maximum Number of Parameters
Numbered Messages 377
Error Number
Error Message
Suggestion/Interpretation
003923
The procedure was found in multiple schemas and will not be
processed. The '`01.`02' procedure was also found in the
'`03' schema.
(DB2) The request procedure was found in multiple
schemas and can not be processed.
`01 = Schema Name
`02 = Stored Procedure Name
`03 = Alternate Schema Name
003924
No match was found for the named parameter - '`01'.
(Oracle, DB2) No match was found for one of the input
or output parameters with those returned from the
describe of the stored procedure or function.
Check the names of the stored procedure's or function's
input or output parameters and make the necessary
corrections.
`01 = Parameter Name
003925
The EXECUTE command detected a data type of '`02'
declared for the INTO parameter - name/position: '`03 /
`04'. The Stored Function or Procedure expects a parameter
data type of '`01'.
(Oracle) The wrong data type has been specified for the
INTO variable of a Stored Procedure.
`01 = Expected Data Type
`02 = Return Data Type
`03 = Parameter Name
`04 = Parameter Position
003926
The EXECUTE command detected that '`02' INTO parameters
were requested. No more than '`01' can be processed by this
Stored Function or Procedure.
(Oracle) The maximum number of allowable INTO
parameters was exceeded.
`01 = Number of Allowable Parameters
`02 = Number of Parameters Entered
003927
The EXECUTE command detected a weak reference cursor.
(Oracle) A weak reference cursor has been detected. No
validation on the data types for the INTO parameters is
made.
003928
The wrong number of IN/INOUT parameters were found.
(DB2) The wrong number of IN/INOUT parameters were
found. This Stored Function or Procedure requires that
'`01' parameters be entered.
`01 = Required Number of Parameters
Table 96
Numbered Messages 004000 to 004999
Error Number
Error Message
Suggestion/Interpretation
004000
Result #variabe or $variable or '=' missing in expression.
The LET command is not properly formatted. Correct the
source line.
004001
Expression too complex.
The expression is either too long or is too deeply nested.
Break the expression into smaller expressions.
004002
Parentheses unbalanced in expression.
A left or right parenthesis is missing. Correct the source
line.
004003
Too many variables; maximum is `01.
Break the expression into smaller expressions. `01 =
Maximum number supported by this version of SQR
378 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
004004
Empty expression.
The expression is invalid. Correct the source line.
004005
Extra comma in expression.
An argument is missing after a comma in the expression.
Correct the source line.
004006
Unknown operator '`01'. Do you mean `02 ?
The concatenation operator is ||. Correct the source line.
004007
Too many &column forward references in expression;
maximum is `01.
The expression contains too many forward references.
Break the expression into smaller expressions. `01 =
Maximum number supported by this version of SQR
004008
Unknown function or variable in expression: `01
The specified function is not an SQR built-in function nor
does it exist in the user-modifiable file UFUNC.C. Check
for a misspelled function name. `01 = Function name
004009
Function '`01' missing parentheses.
All functions in an expression must be followed by their
arguments enclosed in parentheses. Correct the source
line.
004010
Empty parentheses or expression.
A pair of parentheses were found with nothing inside
them. Remove the () in question from the source line.
004011
User function '`01' has incorrect number of arguments.
Look at the file UFUNC.C to determine the correct number
and type of arguments required for the specified function.
`01 = User function name
004012
Function '`01' has incorrect number of arguments.
Correct the syntax of the function. Functions are described
under the LET command. `01 = SQR function name
004013
Missing operator in expression.
Correct the source line.
004014
Operator '`01' missing argument.
Correct the syntax of the function. Functions are described
under the LET command. `01 = Operator
004015
Function '`01' missing argument.
Correct the syntax of the function. Functions are described
under the LET command. `01 = SQR function name
004016
Function or operator '`01' missing arguments.
Correct the syntax of the function. Functions are described
under the LET command. `01 = SQR function name
004017
User function '`01' requires character argument.
Look at the file UFUNC.C to determine the correct number
and type of arguments required for the specified function.
`01 = User function name
004018
User function '`01' requires numeric argument.
Look at the file UFUNC.C to determine the correct number
and type of arguments required for the specified function.
`01 = User function name
004019
User function '`01' requires $string variable.
Look at the file UFUNC.C to determine the correct number
and type of arguments required for the specified function.
`01 = User function name
004020
User function '`01' requires #numeric variable.
Look at the file UFUNC.C to determine the correct number
and type of arguments required for the specified function.
`01 = User function name
Numbered Messages 379
Error Number
Error Message
Suggestion/Interpretation
004021
User function '`01' has incorrect argument type list. Must be
of: c,n,C,N
The UFUNC.C file has a bad definition for the specified
function. Correct the UFUNC.C program file; recompile
UFUNC.C; and recreate the SQR executable. `01 = User
function name
004022
User function '`01' missing arguments.
Look at the file UFUNC.C to determine the correct number
and type of arguments required for the specified function.
`01 = User function name
004023
User function '`01' has incorrect return type. Must be c or n.
The UFUNC.C file has a bad definition for the specified
function. Correct the UFUNC.C program file; recompile
UFUNC.C; and recreate the SQR executable. `01 = User
function name
004024
'isnull' requires a &column, $string, or $date argument.
#numeric variables cannot be NULL. Correct the source
line.
004025
'nvl' requires a &column, $string, or $date as its first
argument.
#numeric variables cannot be NULL. Correct the source
line.
004026
Function or operator '`01' requires character argument.
Correct the source line. `01 = Function or operator
004027
Function or operator '`01' requires numeric argument.
Correct the source line. `01 = Function or operator
004028
IF or WHILE expression must return logical result.
The expression used must evaluate a statement that will
be TRUE or FALSE. Correct the source line.
004029
Attempting division by zero in expression.
The expression tried to divide a number by zero. Use the
COND() function to check if the divisor is zero; then divide
by something else (for example, 1).
004030
Attempting division by zero with '%'.
An attempt was made to divide a number using the " %"
operator. Use the COND() function to check if the divisor
is zero; then divide by something else (for example, 1).
004031
The number used with '%' (`01) is out of range.
The "%" operator works with integers only. Correct the
program logic. `01 = Maximum value allowed
004032
User function has unknown return type -- expecting n or c -need to recompile Run-Time file?
SQR detected an error while processing a user defined
function. If you are running an .sqt file, it probably needs
to be recompiled because the user function has changed
its definition. If you are running an .sqr file, then you need
to correct the UFUNC.C program file; recompile UFUNC.C,
and recreate the SQR executable.
004033
In user function use C type with allocated string to change
$variable.
SQR detected an error while processing a user defined
function. Correct the UFUNC.C program file recompile
UFUNC.C and recreate the SQR executable.
004034
Could not find array '`01' in ARRAY function.
Check for a misspelled array name. `01 = Array name
004035
Could not find array field '`01' in ARRAY function.
Check for a misspelled array field name. `01 = Array field
name
004036
Math error in expression (usually over- or under-flow).
Most of the SQR mathematical built-in functions have a
corresponding C library routine. One returned an error.
380 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
Break the expression into discrete expressions in order to
identify the function that caused the error.
004037
Error executing expression.
Record the steps leading up to the error and contact
technical support.
004038
Out of space while processing expression;
Use -Mfile to increase EXPRESSIONSPACE.
The expression requires more temporary string storage
than is currently allocated. Use the -Mfile flag on the
command line to specify a file that contains an entry that
increases by a greater value than is currently defined.
004039
'`01' assumed to be a variable name, not an expression.
Warning message. `01 = Expression in question
004040
The array '`01' has not been defined.
Define the array using the CREATE-ARRAY command. `01
= Array name
004041
The field '`01' is not valid for array '`02'.
Correct the source code. `01 = Field name `02 = Array
name
004042
The array reference '`01' has an incorrect number of
parameters specified.
Correct the source code. `01 = Array name
004043
The array reference '`01' requires numeric parameters for the
element and occurs arguments.
Correct the source code. `01 = Array name.
004045
Function or operator '`01' requires date argument.
Correct the source code. `01 = Array name
004046
Incompatible types between expression and variable.
Correct the source code.
004047
The field '`01' is must be 'char' or 'float'.
Correct the source code. `01 = Field name
004048
Function or operator '`01' must be a string or date argument.
Correct the source line. `01 = Function or operator
004049
Unknown transform value '`01' in TRANSFORMATION
function.
Check for a misspelled transform value. `01 = Transform
value
004100
Use 'print' command to format data outside SELECT query.
You must precede PRINT command arguments (WRAP,
ON-BREAK.) with an explicit PRINT command when
outside of a BEGIN-SELECT paragraph. Correct the source
line.
004101
Cannot find required parameter.
Correct the syntax.
004102
Bad number found.
A command expecting a numeric literal or :#numeric
variable reference found an illegal number definition or a
reference to a string variable or column. Correct the
source line.
004103
Cannot find required numeric parameter.
Correct the syntax.
004104
Cannot find placement parameters.
The position qualifier "(Row,Col,Len)" was not found.
Check for a missing parentheses.
004105
Placement parameter incorrect.
The "Row", "Column" or "Length" fields are invalid or illformed. Correct the source line.
Numbered Messages 381
Error Number
Error Message
Suggestion/Interpretation
004106
Invalid second function on line.
An SQR command used as a qualifier for a primary
command (for example, PRINT) is incorrect. Correct the
source line.
004107
Second function must be FORMAT type.
The PRINT command may have format command
qualifiers such as WRAP, CENTER, or FILL. Other qualifier
commands are not permitted.
004108
Missing operator =, <, >, ...
Correct the source line.
004109
Invalid operator.
Correct the source line.
004110
Missing variable.
Correct the syntax.
004111
Please give this expression a &pseudonym.
Expressions selected in BEGIN-SELECT should be given
an &Name or be followed by a print position
"(Row,Col,Len)". Correct the source line.
004112
Wrong variable type.
Correct the syntax.
004113
Command incomplete, expected '`01'.
Correct the syntax. `01 = What was expected
004114
Expecting '`01', found '`02'.
Correct the syntax. `01 = What was expected `02 = What
was encountered
004115
Unknown command or extra parameters found (missing
quotes?).
Correct the syntax.
004116
Duplicate references to parameter '`01'.
Correct the syntax. `01 = Duplicated parameter
004117
Unexpected equal sign found with '`01'.
Correct the syntax. `01 = Parameter name
004118
Qualifier '`01' cannot be used with the following qualifiers:
Correct the syntax. `01 = Qualifier name
004119
Expecting numeric column, found string column.
Correct the syntax.
004120
Date variables (`01) cannot be used with this command.
Correct the syntax. `01 = Parameter name
004200
Page width and depth must be > 0 and < 32767.
The values specified with PAGE-SIZE are out of bounds.
Specify legal values.
004300
Missing end of placement (...) in SHOW.
The placement parameter is ill-formed. Correct the source
line.
004301
Bad (...) location in SHOW.
Screen positions must be valid numbers. Correct the
source line.
004302
Missing literal or variable name to EDIT in SHOW.
The literal or variable name must immediately precede
the EDIT, NUMBER, MONEY, or DATE keywords.
004303
Missing edit mask in SHOW.
The word EDIT must be followed by a valid edit mask.
Correct the source line.
004304
Only string variable allowed for dynamic edit mask.
Dynamic edit masks may only be stored in $Variables.
Correct the line.
382 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
004305
Unknown option for SHOW.
Correct the syntax.
004406
Number `01 not allowed.
Use a different value. `01 = Internal number
004407
Referenced variables not defined:
References were made to column variables (&var) that
were not defined in the program. The list of variable names
follows this message.
004501
Use '+' and negate variable for reverse relative placement.
The use of "-#Variable" is not legal here. Negate the
#Variable value and use "+#Variable".
004503
Fixed line placement #variable must be > 0. Use relative
positioning, (+#line,10,0).
Correct the source line as indicated.
004504
Fixed column placement #variable must be > 0. Use relative
positioning, (5,+#col,0).
Correct the source line as indicated.
004505
Length placement #variable must be >= 0.
The length field cannot be a negative value. Correct the
source line.
004600
CODE not appropriate for numeric data.
The CODE qualifie rin PRINT may only be used for text
fields. Move “#Variable” to “$Variable” first and then print
“$Variable”.
004601
Unknown option for GRAPHIC command: BOX, HORZ-LINE,
VERT-LINE or FONT
Correct the syntax.
004602
GRAPHIC BOX out of bounds. Row: `01, Column: `02, Width:
`03, Depth: `04
SQR aborts the program run. `01 = Row `02 = Column
`03 = Width `04 = Depth
004603
GRAPHIC VERT-LINE out of bounds. Row: `01, Column: `02,
Length: `03
SQR aborts the program run. `01 = Row `02 = Column
`03 = Length
004604
GRAPHIC HORZ-LINE out of bounds. Row: `01, Column: `02,
Length: `03
SQR aborts the program run. `01 = Row `02 = Column
`03 = Length
004605
Cannot draw the box; values are out of bounds. Row: `01,
Column: `02, Width: `03, Height: `04
SQR aborts the program run `01 = Row `02 = Column
`03 = Width `04 = Height
004606
Cannot draw the vertical line; values are out of bounds. Row:
`01, Column: `02, Height: `03
SQR aborts the program run `01 = Row `02 = Column
`03 = Height
004607
Cannot draw the horizontal line; values are out of bounds.
Row: `01, Column: `02, Width: `03
SQR aborts the program run `01 = Row `02 = Column
`03 = Width
004700
Cannot open the program file: '`01' (`02): `03
Depends on the system error message. `01 = Name of
the program file `02 = System error code `03 = System
error message
004701
Cannot logon to the database.
Connectivity information is either incorrect or the
database server is unavailable. Check connectivity
information and the server availability.
004702
Line found outside paragraph.
All commands must be within BEGIN-... END statements.
Correct the source code.
Numbered Messages 383
Error Number
Error Message
Suggestion/Interpretation
004703
Cannot close the program file. (`01): `02
Depends on the system error message. `01 = System
error code `02 = System error message
004704
#ENDIF not found for #IF.
Missing an #ENDIF to complete conditional compilation.
Correct the source code.
004705
Program line too long; maximum is `01.
Break the program line into smaller lines. `01 = Maximum
line length supported by this version of SQR
004706
Substitution variable {`01} would cause this line to exceed
the maximum line length of `02 characters.
The substitution variable value would cause this line to
exceed the maximum line size. Break the program line
into smaller lines. `01 = Name of the substitution variable
`02 = Maximum line length supported by this version of
SQR
004707
No value found for substitution variable: {`01}
An empty value was found for the substitution variable.
Check for a misspelled name. `01 = Name of the
substitution variable
004708
#ELSE without preceding #IF.
Missing an #IF or #IFDEF or #IFNDEF to begin conditional
compilation. Correct the source code.
004709
#ENDIF without preceding #IF.
Missing an #IF or #IFDEF or #IFNDEF to begin conditional
compilation. Correct the source code.
004710
#IF's nested too deeply; maximum is `01.
Reduce the number of nested #IF directives. `01 = The
maximum depth supported by this version of SQR
004711
#INCLUDE files nested too deeply; maximum is `01.
Reduce the number of nested #INCLUDE directives. `01
= The maximum depth supported by this version of SQR
004712
Include file name too long; Modify -I flag.
The combined -I directory name with the #INCLUDE file
name exceeds the maximum length permitted for a
complete pathname. Check the spelling of both the -I
command flag and the #INCLUDE filename.
004713
Cannot open the #INCLUDE file: '`01' (`02): `03
`01 = Include file name `02 = System error code `03 =
System error message
004714
Cannot close the #INCLUDE file: '`01' (`02): `03
`01 = Include file name `02 = System error code `03 =
System error message
004716
'BEGIN-PROGRAM' command not found in program.
This section is required for all reports. Correct the source
code.
004717
Cannot open the report output file: '`01' (`02): `03
`01 = Output file name `02 = System error code `03 =
System error message
004719
Cannot logoff the database.
The database server returned an error while trying to log
off from the database. SQR aborts the program run.
004720
Cannot open the run-time file: '`01'. (`02): `03
SQR aborts the program run. `01 = Run-Time file name
`02 = System error code `03 = System error message
004721
Cannot close the run-time file. (`01): `02
SQR aborts the program run. `01 = System error code
`02 = System error message
384 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
004722
Error reading the run-time file. (`01): `02
SQR aborts the program run. `01 = System error code
`02 = System error message
004723
Run time file must be recreated for this version of SQR.
The run-time file was created by a earlier version of SQR
and is incompatible with the current version. Recreate
the .sqt (run-time) file.
004724
The -XL option cannot be specified with this run-time file
because access to the database is required.
Do not use the -XL option.
004725
Cannot open cursor.
The database server returned an error indicating that a
new database cursor or logon could not be completed.
See the error message from the database server.
004726
Cannot create procedure for SQL statement.
(Sybase) SQR could not create a stored procedure for the
SQL statement. The most likely cause for failure is that
the user name you are running the report under does not
have the proper privileges. Either grant the user CREATE
PROCEDURE privilege or use the -XP command line option
to inhibit SQR from creating temporary stored procedures
for SQL statements.
004727
Error writing the run-time file. (`01): `02
`01 = System error code `02 = System error message
004729
Cannot find inactive database cursor. Program too large.
(DB2, Oracle) The program has too many concurrent
database cursors. Reduce the complexity of the program.
004730
Run-time saved in file: `01
Informational message. `01 = Name of the .sqt file
created
004735
Unknown variable type encountered in run-time file: `01
SQR aborts loading the run-time file. `01 = Variable type
004736
Unexpected End-Of-File while processing the run-time file.
SQR aborts loading the run-time file.
004737
Cannot load the run-time file because it was built for the
`01database and `02 is built for the `03 database.
SQR aborts loading the run-time file. `01 = Database
name from run-time file `02 = SQR image name `03 =
Database that SQR is built for
004738
'END-REPORT' not paired with 'BEGIN-REPORT'.
Correct the source code.
004739
'END-PROGRAM' not paired with 'BEGIN-PROGRAM'.
Correct the source code.
004743
#INCLUDE filename must be enclosed in quotation marks.
Correct the syntax.
004744
#INCLUDE command format is: #Include 'filename'.
Correct the syntax.
004747
The SQT file is corrupted and cannot be processed.
SQR aborts loading the run-time file.
004748
The user function '`01' needs to be defined as entry `02 in
the user function table. It requires a definition of: Return Type
= '`03' Arg Count = `04 Arg Types = "`05"
The SQT file requires that the specified user function be
defined. `01 = User function name `02 = Entry in the
user function table `03 = Return type `04 = Argument
count `05 = Argument types
004749
An attempt was made to move `01 characters into '`02'. The
maximum allowed is `03 characters.
An attempt was made to move too much data into an SQR
string variable. `01 = Number of characters to be moved
`02 = Variable name `03 = Maximum characters allowed
Numbered Messages 385
Error Number
Error Message
Suggestion/Interpretation
004750
SQR has reached the architectural limit for '`01' (`02).
While attempting to increase an internal table, SQR
reached its architectural limit for that table. Processing
will stop as SQR cannot continue.
`01 = Internal table classification
`02 = Architectural limit
004802
PRINTER TYPE must be HTML, HPLASERJET, POSTSCRIPT, or
LINEPRINTER.
Correct the syntax.
004805
Both BEFORE-BOLD and AFTER-BOLD must be specified.
Correct the syntax.
004807
Unknown DECLARE qualifier.
Correct the syntax.
004901
Date variables (`01) cannot be used in BEGIN-SQL or BEGINSELECT paragraphs.
Correct the source code. `01 = Variable name
Table 97
Numbered Messages 005000 to 005999
Error Number
Error Message
Suggestion/Interpretation
005000
Report '`01' heading section size exceeds the page depth.
Reduce the size of the heading or increase the page depth.
005001
Report '`01' footing location must be less than the page
depth.
Reduce the size of the footing or increase the page depth.
005002
Check 'BEGIN-HEADING' commands: Discovered 2nd pageinitialization while heading in progress.
The BEGIN-HEADING procedure either caused an overflow
of the current page or it issued a command that caused a
page eject to occur. Check any procedure invoked by the
BEGIN-HEADING section to ensure that the commands do
not overflow the page or cause a page eject.
005003
Check 'BEGIN-FOOTING' commands; perhaps number of
footing lines is too small. Discovered 2nd page-write while
footing in progress.
The BEGIN-FOOTING procedure either caused an overflow
of the current page or it issued a command that caused a
page eject to occur. Check any procedure invoked by the
BEGIN-FOOTING section to ensure that the commands do
not overflow the page or cause a page eject.
005004
Attempt to execute the `01 command while processing the
`02 section.
Change the SQR program logic to prevent the command
from executing while the specified section is active. `01 =
Command name `02 = Section name
005005
Report '`01' already has been assigned a `02 section.
Correct the source code. `01 = Report name `02 =
Duplicated section name
005006
You cannot define more than one default '`01' section.
Correct the source code. `01 = Duplicated section name
005007
Report '`01' has overlapping heading and footing sections.
Correct the source code. `01 = Report name
005008
TOC '`01' already has been assigned a `02 section.
Correct the source code. `01 = Table of Contents name
`02 = Duplicated section name
005009
The name can only contain characters [0-9 A-Z _ -].
Correct the source code.
005010
The name cannot be the reserved names 'none' or 'default'.
Correct the source code.
386 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
005011
This name has already be used.
Correct the source code.
005012
The specified `01 (`02) does not exist.
Correct the source code.
`01 = Heading or Footing
`02 = Heading/Footing name
005013
FOR-REPORTS and FOR-TOC cannot be specified when
NAME= is used.
Correct the source code.
005014
TOC (`01) has already been defined as the default.
Correct the source code.
`01 = Default TOC name
005100
'IF', 'WHILE', 'EVALUATE' commands nested too deeply;
maximum is `01.
Reduce the nested commands. `01 = Maximum depth
allowed by this version of SQR
005101
'BREAK' found outside 'WHILE' or 'EVALUATE' statement.
The BREAK command is valid only in the context of a WHILE
or EVALUATE statement. Correct the source code.
005103
END-WHILE found without matching 'WHILE'.
Correct the source code.
005104
'IF' or 'EVALUATE' command not completed before 'ENDWHILE'.
Correct the syntax.
005105
'ELSE' found without matching 'IF'.
ELSE can be used only within the context of an IF command.
Correct the source code.
005106
Single 'ELSE' found inside 'WHILE' or 'EVALUATE' statement.
ELSE can be used only within the context of an IF command.
Correct the source code.
005107
Only one 'ELSE' allowed per 'IF'.
Rewrite the source code to use nested IF statements.
005108
Found 'END-IF' without matching 'IF'.
Each IF command must have a matching END-IF command.
Correct the source code.
005109
'WHILE' or 'EVALUATE' command not completed before
'END-IF'.
You are missing a closing END-WHILE or END-EVALUATE
command before END-IF. IF, WHILE, and EVALUATE
statements can be nested, but they cannot cross each
other's boundaries. Each inner statement must be
complete before a closing statement is ended. Correct the
source code.
005110
EVALUATE statements nested too deep; maximum is `01.
Reduce the number of nested statements. `01 = Maximum
depth supported by this version of SQR
005111
'WHEN' found outside 'EVALUATE' clause.
WHEN may be used only in the context of an EVALUATE
clause. Correct the source code.
005112
'IF' or 'WHILE' not completed before 'WHEN' statement.
Correct the syntax.
005114
Incorrect types for comparison. Both must be of the same
type (string, numeric or date).
Correct the source line.
005115
'When-other' found outside 'Evaluate' statement.
WHEN can be used only in the context of an EVALUATE
statement. Correct the source code.
Numbered Messages 387
Error Number
Error Message
Suggestion/Interpretation
005116
'IF' or 'WHILE' not ended before 'WHEN-OTHER' command.
Correct the syntax.
005117
Only one 'WHEN-OTHER' allowed per 'EVALUATE'.
Correct the syntax.
005118
Found 'END-EVALUATE' without matching 'EVALUATE'.
Each EVALUATE command must have a matching ENDEVALUATE command. Correct the source code.
005119
'IF' or 'WHILE' command not completed before 'ENDEVALUATE'.
Correct the syntax.
005120
'WHEN-OTHER' must be after all 'WHEN's.
Correct the syntax.
005121
No 'WHEN's found inside 'EVALUATE' statement.
Correct the syntax.
005122
'IF', 'EVALUATE' and 'WHILE' statements cannot cross
sections or paragraphs.
These commands must be contained within a single section
or paragraph. Correct the source code.
005123
'CONTINUE' found outside 'WHILE' statement.
The CONTINUE command is valid only in the context of a
WHILE statement. Correct the source code.
005200
Did not find '>' after <....
A leading left angled bracket "<" indicates that you are
beginning an ASCII value, which must be ended by a right
angled bracket ">". Correct the source line.
005201
Bad ascii character in <...>.
Numbers in angled brackets <> must be between 1 and
255. Correct the source line.
005202
Bad ascii number in <...>.
Numbers in angled brackets <> must be between 1 and
255. Correct the source line.
005203
<...> string is too long; maximum is `01 characters.
Reduce the length of the string. If this is not possible, use
PRINT-DIRECT in BEGIN-REPORT or END-REPORT .
`01 = Maximum number of characters supported by this
version of SQR
005300
Did not find '=' after qualifier: `01
Correct the syntax. `01 = Qualifier name
005301
Qualifier '`01' requires a numeric value.
Correct the syntax. `01 = Qualifier name
005302
Incorrect value for qualifier '`01'. Valid values are:
Correct the source line. `01 = Qualifier name
005303
Invalid qualifier '`01'. Valid qualifiers are:
Correct the source line. `01 = Qualifier name
005304
Qualifier '`01' requires a numeric literal, variable, or
column.
Correct the source line. `01 = Qualifier name
005305
Qualifier '`01' references a numeric variable that has not
been defined.
Correct the source line. `01 = Qualifier name
005306
Qualifier '`01' requires a string literal, variable, or column.
Correct the source line. `01 = Qualifier name
005307
List not terminated.
Correct the syntax.
005308
Missing comma in list.
Correct the syntax.
005309
Required argument '`01' was not specified.
Correct the source line. `01 = Qualifier name
388 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
005310
Qualifier '`01' has already been specified.
Correct the source line. `01 = Qualifier name
005311
Qualifier '`01' requires a string literal.
Correct the source line. `01 = Qualifier name
005312
Qualifier '`01' requires a list of values: (val [,val]...).
Correct the source line. `01 = Qualifier name
005313
Qualifier '`01' requires a integer value.
Correct the source line. `01 = Qualifier name
005314
Invalid character in variable name '`01'.
Correct the source line. `01 = Invalid character
005315
Qualifier '`01' references a string variable that has not been
defined.
Correct the source line. `01 = Qualifier name
005316
Qualifier '`01' uses an invalid Unit-Of-Measure suffix. Valid
suffixes are: dp pt mm cm in
Correct the source line. `01 = Qualifier name
005317
Qualifier '`01' can only reference string literals or variables.
Correct the source line. `01 = Qualifier name
005318
Qualifier '`01' can only reference string or numeric literals.
Correct the source line. `01 = Qualifier name
005319
Qualifier '`01' requires a valid position value.
Correct the source line. `01 = Qualifier name
005320
Qualifier '`01' is not allowed.
Correct the source line. `01 = Qualifier name
005400
Second page write attempted while writing current page.
Check BEFORE-PAGE, AFTER-PAGE procedures.
Check any procedure invoked by BEFORE-PAGE or
AFTER-PAGE to ensure that the commands do not
overflow the page or cause a page eject.
005402
String cannot be placed on page: `01 -- placement
specified is out of range. (`02,`03,`04)
Ensure the values are within the page limits. `01 = Text
value `02 = Row `03 = Column `04 = Length
005403
Error writing the output file. (`01): `02
`01 = System error code `02 = System error message
005404
Cannot open the Postscript startup file: `01 (`02): `03
`01 = Name of the file `02 = System error code `03 =
System error message
005405
SQR trial copy exiting after `01 pages.
`01 = Number of pages.
005406
Exiting after requested number of test pages (`01).
`01 = Number of pages
005408
Program stopped by user request.
Informational message.
005500
Cannot set parse_only option.
(Sybase) The DB-Library routine dbsetopt() returned an
error. This should never happen. Contact technical support.
005501
Cannot reset parse_only option.
(Sybase) The DB-Library routine dbclropt() returned an
error. This should never happen. Contact technical support.
005502
Cannot drop SQR generated stored procedure: `01.
(Sybase) See the database server error message that was
also output. This should never happen. Contact technical
support. `01 = Stored procedure name
005503
Cannot use `01 datatype as bind variable.
(Sybase) Use another database column. `01 = The
database datatype.
Numbered Messages 389
Error Number
Error Message
Suggestion/Interpretation
005504
Unknown datatype for bind variable: `01 Cannot create
stored procedure.
(Sybase) Please contact technical support. `01 =
Unknown database datatype
005505
SQL too large to create stored procedure.
(Sybase) The size of the SQL text needed to create the
stored procedure is too large for SQR to handle. Add -XP
to BEGIN-SQL or BEGIN-SELECT.
005506
SQR's EXECUTE command not available for this version of
Sybase.
(Sybase) Some early versions of Sybase SQL Server or
Microsoft SQL Server do not support Remote Procedure
Calls (RPCs). Update your database server.
005507
Could not add param to remote procedure call.
(Sybase) A DB-Library routine returned an unexpected
error. See the error message from the database.
005508
The number of EXECUTE...INTO &columns does not match
the procedure.
(Sybase) Check the definition for the stored procedure you
are referencing.
005509
Incorrect number of INTO &columns defined in EXECUTE.
(Sybase) Check the definition for the stored procedure you
are referencing.
005510
Error converting OUTPUT Sybase type for EXECUTE.
(Sybase) The DB-Library routine dbconvert() failed to
convert the data from the stored procedure. Contact
technical support.
005511
Number of OUTPUT parameters from EXECUTE is incorrect.
(Sybase) Check the definition for the stored procedure you
are referencing.
005512
Missing default database name for USE.
(Sybase) Correct the syntax.
005512
Missing default database name for USE.
(ODBC) Could not connect to the specified datasource.
005513
You may only specify 'USE db' once, before any SQL
statements are executed.
(Sybase) Only one USE command is allowed in a report.
Place the SETUP section at the beginning of the SQR report.
005515
Undefined variable referenced in -DB flag: `01
(ODBC) Check for a misspelling. `01 = Variable name
005523
Database commit failed.
The database command to perform a commit returned an
error. Try running the SQR program again. The error could
be related to a network or server problem. If the error
persists, contact your system administrator.
005524
Cannot close database cursor.
The database command to close the database cursor
returned an error. Try running the SQR program again. The
error could be related to a network or server problem. If the
error persists, contact your system administrator.
005528
DB2 SQL `01 error `02 in cursor `03:
(DB2) `01 = Routine name `02 = Error code `03 = SQR
cursor number
INFORMIX SQL `01 error `02 (ISAM: `03) in cursor `04:
`05
(Informix) `01 = Routine name `02 = Error code `03 =
ISAM code `04 = SQR cursor number `05 = Error message
from database
ODBC SQL `01 error `02 in cursor `03: `04
(ODBC) `01 = Routine name `02 = Error code `03 = SQR
cursor number `04 = Error message from database
ODBC SQL `01 error `02 in cursor `03: `04
(DDO)
390 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
`01 = Routine name
`02 = Error code
`03 = SQR cursor number
`04 = Error message from database
ORACLE `01 error `02 in cursor `03: `04
(Oracle) `01 = Routine name `02 = Error code `03 = SQR
cursor number `04 = Error message from database
Sybase `01 error in cursor `02: `03
(Sybase) `01 = Routine name `02 = SQR cursor number
`03 = Error message from database
Teradata SQL `01 error `02 in cursor `03:
(Teradata)
`01 = Routine name
`02 = Error code
`03 = SQR cursor number
005532
System 10 files are missing.
(Sybase) Contact your system administrator.
005533
Not a System 10 SQL Server.
(Sybase) The CT-Library version of SQR can only connect
to a System 10 server. Use the DB-Library version of SQR
to connect to a pre-System 10 server.
005534
SQL too long for PREPARE/DECLARE; maximum `01
characters.
(Teradata) The SQL statement is too large.
005536
Unknown error message number: `01.
(DB2) `01 = Error message number
005537
Empty error message returned from system for error number:
`01.
(DB2) `01 = Error message number
005538
Invalid SELECT statement; COMPUTE clauses are not
supported.
(Sybase) The select statement contains a COMPUTE clause
that is not supported.
005539
Could not connect to datasource specified in -db variable:
'`01'.
(ODBC) Could not connect to the specified datasource.
005540
Not connected to a database, database access is not
allowed.
The SQR program is no longer connected to a database.
Commands that access the database can no longer be
used. This situation can occur if the CONNECT fails and the
ON-ERROR option was used.
005543
Specify the Oracle DLL name in SQR.INI in
[Environment:Oracle] section for ORACLE_DLL entry, such
as ORACLE_DLL=orant71.dll
(Oracle) SQR was unable to load the Oracle DLL. By default,
SQR looks first for “ociw32.dll” or the DLL specified by the
ORACLE_DLL entry in the [Environment:Oracle] section of
SQR.INI. If that DLL could not be loaded, then SQR
attempts to load 'orant71.dll'.
005600
GETWRD: Word too long; maximum is `01.
Reduce the length of the "word". `01 = Maximum size of
a "word" supported by this version of SQR
005700
Cannot call SQR recursively.
SQR cannot be called recursively. This error can only occur
if a User Function from either UFUNC.C or UCALL.C calls
`01 = Maximum number of characters supported by this
version of SQR
Numbered Messages 391
Error Number
Error Message
Suggestion/Interpretation
the sqr() routine. Do not call sqr() from a UFUNC.C or
UCALL.C routine.
005701
Too many SQR command line arguments; maximum is `01
To pass more than this number of arguments, use a @file
argument file containing one argument per line. `01 =
Maximum number supported by this version of SQR.
005702
Log file name specified is too long.
Reduce the length of the log file name.
005703
Error opening the SQR log file: '`01' (`02): `03
`01 = Name of the file `02 = System error code `03 =
System error message
005704
Missing program name.
The name of the program file was not found on the
command line. The program name must be the first
parameter on the command line.
005705
Program file name specified is too long.
Reduce the length of the program file name.
005707
Error opening the -E error file: '`01' (`02): `03
`01 = Name of the file `02 = System error code `03 =
System error message
005708
Cannot find `01 in SQRDIR, PATH or \SQR.
The specified file cannot be located in any of the directories
pointed to by the mentioned environment variables or
default directories. Make sure the "file" is present in one
of the locations searched. `01 = File name
005709
`01 environment variable is not defined.
As of version 2.5, the environment variable SQRDIR must
be defined. `01 = Name of the environment variable
005710
`01 path too long.
The length of the directory path plus the length of the file
name to be opened is too long for SQR to handle. Reduce
the length of the directory path. `01 = Environment variable
name
005711
Bad number in -T test flag.
The number specified must be > zero. Correct the value.
005712
-G option requires arguments.
(VAX) The command line option is ill-formed. Correct the
syntax.
005713
Too many arguments to -G option; maximum is `01.
(VAX) The command line option is ill-formed. Correct the
syntax. `01 = Maximum number of arguments supported
by this version of SQR
005714
-G attribute too long; maximum is `01.
(VAX) The command line option is ill-formed. Correct the
syntax. `01 = Maximum number of each attribute
supported by this version of SQR
005716
Unknown flag on command line: `01
Correct the syntax. `01 = Unknown command line flag
005717
Cannot open channel to TT; status = `01
(VAX) Should never occur during normal operations. Record
the steps leading up to the error and contact your system
administrator. `01 = System status
005718
Cannot read from TT; status = `01
(VAX) Should never occur during normal operations. Record
the steps leading up to the error and contact your system
administrator. `01 = System status
392 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
005719
Cannot close channel to TT; status = `01
(VAX) Should never occur during normal operations. Record
the steps leading up to the error and contact your system
administrator. `01 = System status
005720
Error opening tty. (`01): `02
(DG, UNIX) Should never occur during normal operations.
Record the steps leading up to the error and contact your
system administrator. `01 = System error code `02 =
System error message
005721
Error with 'ioctl()'. (`01): `02
(DG, UNIX) Should never occur during normal operations.
Record the steps leading up to the error and contact your
system administrator. `01 = System error code `02 =
System error message
005722
Error reading tty. (`01): `02
(DG, UNIX) Should never occur during normal operations.
Record the steps leading up to the error and contact your
system administrator. `01 = System error code `02 =
System error message
005723
Error closing tty. (`01): `02
(DG, UNIX) Should never occur during normal operations.
Record the steps leading up to the error and contact your
system administrator. `01 = System error code `02 =
System error message
005724
Bad number in -B flag.
(Oracle, Sybase) The number specified must be > zero.
Correct the value.
005734
No program name given.
The report name must be the first command line argument.
005737
Unknown printer type specified with -PRINTER: switch.
The printer type can be EH, HT, LP, HP, PS, or WP. WP is
valid only with PC/Windows.
005738
Database name needs to be included with -DB switch.
(ODBC) Could not connect to the specified datasource.
005738
Database name needs to be included with -DB switch.
(Sybase) Supply the database name.
005739
Too many -F switches; maximum is `01.
Reduce the number of -F switches. `01 = Maximum
number allowed
005742
Attempt to invoke viewer (using WinExec) failed; error code
= `01.
(Windows) `01 = System error code
005743
Unknown numeric type specified with -DNT: switch.
Correct the command line.
005744
-DNT:Decimal precision (`01) is out of range (`02 - `03).
Correct the command line. `01 = Specified precision `02
= Minimum allowed `03 = Maximum allowed
005745
The specified default numeric type '`01 = `02' is invalid.
Correct the SQR.INI file entry. `01 = Entry `02 = Value
005746
The decimal precision '`01 = `02' is out of range (`03 `04).
Correct the SQR.INI file entry. `01 = Entry `02 = Value `03
= Minimum allowed `04 = Maximum allowed
005747
The following error(s) occurred while processing the [`01]
section from SQR.INI.
See the error message(s) that follow. `01 = Name of the
section
005750
The -Burst switch is not properly formatted.
The “Burst” command line flag is not properly formatted.
Numbered Messages 393
Error Number
Error Message
Suggestion/Interpretation
005751
The -Burst switch cannot be used with the -NOLIS switch.
The “Burst” command line flag cannot be specified when
the -NOLIS command line flag is also specified.
005752
The -Burst switch requires either the -Printer:HT or Printer:EH switch to be specified.
The “Burst” command line flag is applicable only when
HTML code is produced. You must specify either the PRINTER:HT or -PRINTER:EH switch.
005754
The -Burst switch caused no output to be generated.
The “Burst” command line flag was specified with a set of
page ranges that prevented any output to be created.
Change the page ranges.
005755
The -Printer:HT switch does not support UTF-8 encoded data.
Use the -Printer:EH switch instead.
Spf_ht.c can't handle UTF-8
005756
The -EH_FullHTML switch support the following values: 30,
32, and 40.
The 'EH_FullHTML' command line flag is not properly
formatted.
005757
The -EH_Browser switch can be specified with one of the
following values: Basic, Netscape, IE, or ALL.
The 'EH_Browser' command line flag is not properly
formatted.
005758
The -EH_Language switch can be specified with one of the
following values: English, French, German, Portuguese,
Spanish, SChinese, TChinese, or Japanese.
The 'EH_Language' command line flag is not properly
formatted.
005781
An ASCII-based encoding (ASCII, CP1252, etc) must be
specified in order to generate barcodes for HPLaserJet
output.
An ASCII-based encoding must be specified for the
ENCODING-REPORT-OUTPUT setting in the INI file when
generating barcodes for HPLaserJet (-printer:hp)
005900
Bad number in -`01
(Windows) Specify a valid number. `01 = Command line
option
005901
Bad filename in -`01
(Windows) Specify a valid file name. `01 = Command line
option
005902
Bad directory in -`01
(Windows) Specify a valid directory path. `01 = Command
line option
005903
Cannot access the @ parameter file (`01): `02
(Windows) Depends on the system error message. `01 =
System error code `02 = System error message
005904
The argument list is too long; maximum is `01.
(Windows) To pass more than this number of arguments,
use a @file argument file containing one argument per line.
`01 = Maximum number supported by this version of SQR.
005905
Cannot open the report file (`01): `02
(Windows) Depends on the system error message. `01 =
System error code `02 = System error message
Table 98
Numbered Messages 006000 to 006999
Error Number
Error Message
Suggestion/Interpretation
006000
Error writing the printer file. (`01): `02
Can occur during normal operations due to the system
environment (for example, file locking, permissions). Record
the steps leading up to the error and contact your system
administrator. `01 = System error code `02 = System error
message
394 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
006001
Error reading the printer file. (`01): `02
Can occur during normal operations due to the system
environment (for example, file locking, permissions). Record
the steps leading up to the error and contact your system
administrator. `01 = System error code `02 = System error
message
006002
Cannot open the printer file: `01 (`02): `03
Can occur during normal operations due to the system
environment (for example, file locking, permissions). Record
the steps leading up to the error and contact your system
administrator. `01 = Name of the file `02 = System error
code `03 = System error message
006003
Unexpected End-Of-File while processing the printer file.
Possibly the file got corrupted. Try to recreate the .spf file. If
the error persists, contact technical support.
006004
Encountered unknown SPF code (`01) while reading the
printer file.
Possibly the file got corrupted. Try to recreate the .spf file. If
the error persists, contact technical support. `01 = Unknown
SPF code
006100
Duplicate chart (`01).
Each chart must be given a unique name. `01 = Chart name
006101
Unknown chart (`01).
Chart could not be found. `01 = Chart name
006104
Too many pie segments (`01). Max is `02.
Correct the source code. `01 = Number of segments `02 =
Maximum allowed segments
006105
Chart module is not initialized.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006106
XY charts may have only numeric columns.
Correct the syntax.
006107
The 3rd column in the data array must be a character
column to specify USE-3RD-DATA-COLUMN.
Correct the syntax.
006120
INTERNAL: Bad chart index from stack (`01).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Chart index
006122
INTERNAL: Unsupported Grafsman chart type (`01).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Chart type
006123
INTERNAL: Unsupported pie-explode setting (`01).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Setting value
006124
INTERNAL: Unsupported tick-mark placement (`01).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Placement value
006125
Grafsman interface message (`01) not supported.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
`01 = Message code
006126
Unrecognized return code (`01) from Grafsman command
message (`02).
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
`01 = Return code `02 = Message code
Numbered Messages 395
Error Number
Error Message
Suggestion/Interpretation
006127
Cannot fit Chart/Image into the current page. Position:
(`01, `02) Size: (`03, `04)
Correct the source code. Production Reporting aborts the
program run. `01 = Row `02 = Column `03 = Width `04
= Depth
006140
Duplicate image (`01).
Images must be given unique names. `01 = Image name
006141
Unknown image (`01).
Image name could not be found. `01 = Image name
006142
Cannot open image file (`01). (`02): `03
`01 = Name of the file `02 = System error code `03 =
System error message
006143
Unknown or missing image type (`01).
Enter a valid image type.
`01 = Image type
006144
Unknown or missing printer type (`01).
Enter a valid Printer type.
`01 = Printer type
006145
Duplicate FOR-PRINTER entries for printer (`01).
Only a single FOR-PRINTER can be specified for a printer
type .
`01 = Printer type
006146
The image type (`01) is not supported by printer type
(`02).
The image, based on its type is invalid for the printer
specified. For example, an EPS image is only valid for
Postscript printer.
`01 = The image type
`02 = The printer type
006147
Invalid number of items in FOR-PRINTER list.
Too few or too many items in the FOR-PRINTER list. Correct
the syntax.
006150
INTERNAL: Bad image index from stack (`01).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Image name
006200
This report has already been defined.
Each report must be given a unique name.
006201
This layout has already been defined.
Each layout must be given a unique name.
006202
This printer has already been defined.
Each printer must be given a unique name.
006203
The values for '`01' must be > 0.
Correct the syntax. `01 = Qualifier name
006204
Qualifiers '`01' and '`02' are mutually exclusive.
Correct the syntax. `01 = Qualifier name `02 = Qualifier
name
006205
Qualifier '`01' is not applicable with a 'default' printer.
Correct the syntax. `01 = Qualifier name
006206
The list must contain report names or ALL.
Correct the syntax.
006207
'ALL' must be specified by itself.
Correct the syntax.
006208
No report name was specified.
Correct the syntax.
006209
No layout name was specified.
Correct the syntax.
396 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
006210
No printer name was specified.
Correct the syntax.
006211
The name cannot be 'ALL'.
Correct the syntax.
006212
The name can only contain characters [0-9 A-Z _ -].
Correct the syntax.
006213
Report '`01' is referenced by multiple '`02' printers.
Correct the syntax. `01 = Report name `02 = Printer type
006214
Qualifier '`01' is not allowed with a '`02' printer.
Correct the syntax. `01 = Qualifier name `02 = Printer type
006215
The value for '`01' must be ‘`02 0.
Correct the syntax. `01 = Qualifier name `02 = Relation to
zero (<,<=,=,>=,>)
006216
Report '`01' does not exist.
Correct the syntax. `01 = Report name
006217
The report name can be a string literal, variable, or column.
Correct the syntax. `01 = Report name
006218
Referenced layouts not defined:
A list of undefined layouts follows this message.
006219
Referenced reports not defined:
A list of undefined reports follows this message.
006220
Referenced printers not defined:
A list of undefined printers follows this message.
006221
The following SQR commands (listed below) cannot be
used when any of the following NEW SQR commands are
also used in the same report:
Correct the syntax.
006224
No printer type was specified.
Correct the syntax.
006225
Incorrect value for printer type. Valid values are:
Correct the syntax. A list of valid printer types follows this
message.
006226
Attempt to execute the `01 command while processing the
`02 procedure.
SQR aborts the program run. `01 = SQR command `02 =
Procedure name
006227
Incorrect value for 'paper-size'. Specify the actual
dimensions or one of the following names:
Correct the syntax. A list of valid predefined paper-size
names follows this message.
006228
Referenced TOC (Table Of Contents) not defined:
A list of undefined Table of Contents follows this message.
006229
This TOC (Table Of Contents) has already been defined.
Each Table of Contents must be given a unique name.
006230
The list must contain TOC (Table of Contents) names or
ALL.
Correct the syntax.
006231
The TOC (Table Of Contents) entry cannot be positioned
given the LEVEL (`01) and INDENTATION (`02) values.
The Table of Contents entry will not fit given the specified
level and current indentation values. `01 = Specified
LEVEL= value `02 = Current INDENTATION= value
006232
`01 command not allowed while generating the Table of
Contents.
The specified command cannot be used while the Table of
Contents is being generated. `01 = SQR command
006233
The TOC (Table of Contents) entry "A" cannot be processed
because the existing entry "B" is positioned below it. A:
Line = `01, Level = `02, Text = '`03' B: Line = `04, Level
= `05, Text = '`06'
Correct the program logic to eliminate the conflict between
the two TOC (Table of Contents) entries. `01 = A: Line
number `02 = A: Level value `03 = A: Text value `04 = B:
Line number `05 = B: Level value `06 = B: Text value
Numbered Messages 397
Error Number
Error Message
Suggestion/Interpretation
006303
Parameter (`01) is required, but has not been specified.
Correct the syntax. `01 = Parameter name
006304
Parameter (`01) already specified.
Correct the syntax. `01 = Parameter name
006308
Missing part of specification for parameter (`01).
Correct the syntax. `01 = Parameter name
006309
Parameter (`01) requires literal.
Correct the syntax. `01 = Parameter name
006352
INTERNAL: Unsupported option/request (`01) in (`02).
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact technical support. `01 = Option/request code `02
= Function name
006400
Unsupported background color.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006401
Unsupported border color.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006402
Border width out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006403
X position out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006404
Y position out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006405
X size out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006406
Y size out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006407
Unsupported font.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006408
Unsupported font style.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006409
Unsupported font color.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006410
Unsupported horizontal text justification value.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006411
Unsupported vertical text justification value.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006412
Unsupported font path.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006413
Unsupported font rotation.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006414
Font size out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
398 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
006415
Text line id# out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006416
Unsupported chart type.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006417
Unsupported chart sub-type.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006418
Unsupported chart orientation (not H or V).
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006419
Unsupported perspective (not 2D or 3D).
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006420
Unsupported axis (not X or Y).
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006421
Unsupported axis label data type.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006422
Dataset id# out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006423
Unsupported dataset type.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006424
Unsupported dataset color.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006425
Unsupported dataset line style.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006426
Unsupported dataset fill pattern.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006427
Unsupported dataset marker.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006428
Chart type does not support Y-axis datasets.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006429
Pie-chart segment id# is out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006430
Unsupported pie-segment color.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006431
Unsupported pie-segment border color.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006432
Unsupported pie-segment pattern.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006433
Unsupported pie-segment explode setting.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
Numbered Messages 399
Error Number
Error Message
Suggestion/Interpretation
006434
Command only valid for charts of type 'pie'.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006435
Pie-chart radius out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006436
Pie-chart starting angle out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006437
Unsupported pie-chart fill direction. Must be clockwise or
counter-clockwise.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006438
Unsupported pie-segment label position.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006439
Unsupported pie-segment quantity display position.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006440
Unsupported pie-segment per-cent display position.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006441
Unsupported legend style.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006442
Unsupported legend horizontal position.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006443
Unsupported legend vertical position.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006444
Text charts do not support legend.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006445
Number of datasets specified does not match data.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006446
Unsupported axis label position.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006447
Unsupported axis type (not LINEAR or LOG).
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006448
Pie and text charts do not support axis control.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006449
Unsupported axis min scaling.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006450
Unsupported axis max scaling.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006451
Unsupported axis max scaling.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006452
Beginning of tickmarks is after end.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
400 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
006453
Unsupported tickmark type.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006454
Unsupported grid type.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006455
Unsupported grid color.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006456
Grid line width out of range.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006457
Unable to open grafcap file.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006458
Unsupported grafcap device.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006459
Error in grafcap entry specification.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006460
Unable to open chart output destination.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006461
Internal error during ggDraw.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006462
Improper parameters passed to gscale.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006463
The shared library specified in the grafcap file could not be
found.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006464
A function called from the shared library specified in the
grafcap file could not be found.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006500
The bar code could not be positioned on the page. Row:
`01, Column: `02, Height: `03
Correct the source code. `01 = Row `02 = Column `03 =
Height
006501
Unknown BCL error (`01) encountered.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
`01 = BCL error code
006502
Invalid bar code type (`01): Valid values are from 1 to 15.
Correct the source code. `01 = Bar code type.
006503
The length of the bar code text ‘01' must be between 1 and
30 characters.
Correct the source code. `01 = Bar code text
006504
The length of the caption text '01' must be between 1 and
30 characters.
Correct the source code. `01 = Caption text
006505
Invalid printer type (`01): Valid values are from 0 to 13.
Correct the source code. `01 = Printer type
006506
Invalid offset: Valid values are from 0 to 250.
Correct the source code.
006507
Invalid height (`01): Valid values are from 0.1 to 2.0
inches.
Correct the source code. `01 = Height
Numbered Messages 401
Error Number
Error Message
Suggestion/Interpretation
006508
Invalid checksum: Valid values are from 0 to 2.
Correct the source code.
006509
Invalid pass: Valid values are from 1 to 6.
Correct the source code.
006510
The bar code text '01' is not valid for the type of bar code
(`02) selected.
Correct the source code. `01 = Bar code text `02 = Bar
code type
006511
Internal error: Could not generate the bar code.
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006512
Internal error: Bar code buffer required too large (>32K).
Should never occur during normal operations. Record the
steps leading up to the error and contact technical support.
006601
Cannot allocate the device context for the default printer.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006602
Failed to start printing the document.
(Windows)Can occur due to lack of system resources or a
problem with the printer. Record the steps leading up to the
error and contact your system administrator.
006603
New-page (start) failed on page `01.
(Windows) Can occur due to lack of system resources or a
problem with the printer. Record the steps leading up to the
error and contact your system administrator. `01 = Page
number
006604
New-page (end) failed on page `01.
(Windows) Can occur due to lack of system resources or a
problem with the printer. Record the steps leading up to the
error and contact your system administrator. `01 = Page
number
006605
End document failed.
(Windows) Can occur due to lack of system resources or a
problem with the printer. Record the steps leading up to the
error and contact your system administrator.
006606
Error reading font information from the [Fonts] section in
SQR.INI. Using the default font.
(Windows) Correct the [Fonts] section in SQR.INI.
006607
Failed to create a brush for shading.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006608
Failed to select font `01.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator. `01 = Font name
006609
Failed to modify font `01.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator. `01 = Font name
006610
Failed to create a pen that was required to draw a box.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006612
Failed to create a pen that was required to draw a vertical
line.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
402 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
006613
Failed to open the image bitmap file (`01). (`02): `03
(Windows) Can occur during normal operations due to the
system environment (file locking, permissions). Record the
steps leading up to the error and contact your system
administrator. `01 = Name of the file `02 = System error
code `03 = System error message
006614
The file (`01) does not contain a valid bitmap.
(Windows) Specify a valid bitmap file. `01 = Name of the
file
006615
Failed to create the palette for image (`01).
(Windows) Can occur due to lack of system resources or an
invalid bitmap. Record the steps leading up to the error and
contact your system administrator. `01 = Name of the file
006616
Failed to load RLE into memory for image (`01).
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator. `01 = Name of the file
006617
Failed to convert DIB to DDB for image (`01).
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator. `01 = Name of the file
006618
Failed to draw the bitmap image (`01).
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator. `01 = Name of the file
006619
Cannot access the default printer's driver.
(Windows) Can occur due to lack of system resources or a
problem with the printer. Record the steps leading up to the
error and contact your system administrator.
006620
Cannot select the charting clip area onto the printers DC.
(Windows) Can occur due to lack of system resources or a
problem with the printer. Record the steps leading up to the
error and contact your system administrator.
006621
Cannot select create a metafile required for business
graphics.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006622
Cannot create a region required for business graphics.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006623
Cannot create a DC required for business graphics.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006624
Cannot create a bitmap required for business graphics.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006625
Business graphics failed while setting up the device
(ggWinDevice).
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006626
Cannot draw business graphics.
(Windows) Can occur due to lack of system resources or it
can be due to a damaged LIBSTI.INI file. The LIBSTI.INI file
resides in the Windows main directory. Make sure that the
GPATH= and IPT= entries point to a valid SQR bin directory.
Numbered Messages 403
Error Number
Error Message
Suggestion/Interpretation
Record the steps leading up to the error and contact your
system administrator.
006700
SQRDIR is not defined.
(Windows) The variable SQRDIR must be defined in SQR.INI.
006701
Could not allocate memory while attempting to register
the .spf filename extension.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006704
Cannot open or read file (`01) (`02): `03
(Windows) Can occur during normal operations due to the
system environment (e.g. file locking, permissions, etc.).
Record the steps leading up to the error and contact your
system administrator. `01 = Name of the file `02 = System
error code `03 = System error message
006705
File (`01) is not in SPF packet format.
(Windows) The file was not produced by SQR or it has been
corrupted. `01 = Name of the file
006706
Failed to identify the start of the report (`01).
(Windows) The file was not produced by SQR or it has been
corrupted. `01 = Name of the file
006707
An invalid seek was made for page `01.
(Windows) Internal error which should not occur under
normal operations. Contact technical support. `01 = Page
number
006708
Too many errors were encountered while processing the
file. Processing has been stopped.
(Windows) Can occur due to lack of system resources.
Record the steps leading up to the error and contact your
system administrator.
006709
Failed to open the image bitmap file (`01). (`02): `03
This message is displayed only once per SPF file.
(Windows) Can occur during normal operations due to the
system environment (e.g. file locking, permissions, etc.).
Record the steps leading up to the error and contact your
system administrator. `01 = Name of the file `02 = System
error code `03 = System error message
006800
`01: Detected internal program error.
Internal error that should never occur during normal
operation. Record the steps leading up to the error and
contact technical support. `01 = Name of the routine
006801
`01: Null Operand Passed as input.
Internal error that should never occur during normal
operation. Record the steps leading up to the error and
contact technical support. `01 = Name of the routine
006802
`01: Decimal Exponent Under/Overflow.
Exponent Under/Overflow: Exponent of decimal number has
exceeded the valid boundaries established for the decimal
type. Check the documentation for the current upper and
lower bounds of a decimal object. `01 = Name of the routine
006803
`01: Decimal to Integer Conversion Under/Overflow.
Integer Under/Overflow: Cannot convert input decimal
object into a valid integer number. Decimal object exceeds
the established integer boundaries for this machine
architecture. Check the magnitude and sign of the decimal
object to ensure that it falls within the upper and lower
bounds of an integer number. `01 = Name of the routine
006805
`01: Decimal Precision Under/Overflow.
Decimal Precision Under/Overflow: Attempt made to
initialize decimal object with an invalid precision. Check the
404 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
input precision value against the documented upper and
lower boundaries for a decimal object. `01 = Name of the
routine
006806
`01: String to Decimal Object Conversion Error.
String To Decimal Conversion Error: Length of input string is
greater than precision of underlying decimal object. Either
increase the precision of the decimal object or reduce the
size of the input mantissa to match the decimal object
precision. `01 = Name of the routine
006807
`01: Truncation/Rounding Error - Outside Valid Range for
Decimal Object.
Truncation/Rounding Error: Input truncation or round value
is outside the valid range for this decimal object. Please
ensure that the truncation/round value is greater than or
equal to zero and less than the precision of the underlying
decimal object. `01 = Name of the routine
006808
`01: Decimal Error: Cannot Divide by Zero.
Decimal Math Divide by Zero Error: Attempt made to divide
a decimal object by zero. Please check divisor to ensure that
it does not equal zero before attempting to divide. `01 =
Name of the routine
006900
There is no default printer set up on your system. Use the
Control Panel "Printers" applet to define it.
(Windows) SQR Print requires that a default printer be
defined. Use the "Printers" applet in the Control Panel to
define one.
Table 99
Numbered Messages 007000 to 007999
Error Number
Error Message
Suggestion/Interpretation
007000
The locale '`01' is not defined in SQR.INI.
Check for a misspelled locale name and/or the SQR.INI file. `01
= Locale name
007001
At least one qualifier must be specified.
Correct the source code.
007002
The value for '01' must be a list of 02 string literals,
variables or columns.
Correct the source code. `01 = Qualifier `02 = Number of entities
in list
007003
The values for '01' and '02' cannot be the same.
Correct the source code. `01 = Qualifier `02 = Qualifier
007004
The value for '01' (`02) must be a single character
which is not in the list: "03".
Correct the source code. `01 = Qualifier `02 = Value `03 = List
of invalid characters
007005
The value for '`01' (`02) is invalid. Valid values are:
Correct the source code. `01 = Qualifier `02 = Value
007006
The last character of the '`01' value (`02) cannot
be a digit or the minus sign or the same as either of
the separators.
Correct the source code. `01 = Qualifier `02 = Invalid character
007007
The first character of the '`01' value (`02) cannot
be a digit or the minus sign or the same as either of
the separators.
Correct the source code. `01 = Qualifier `02 = Invalid character
007008
The following errors occurred while processing the
(`01) locale from SQR.INI.
This message precedes error messages encountered while
processing the SQR.INI file. `01 = Locale name
007009
The value for '`01' cannot be 'DEFAULT' or 'SYSTEM'.
Correct the syntax. `01 = Qualifier
Numbered Messages 405
Error Number
Error Message
Suggestion/Interpretation
007010
The value for '`01' (`02) is not properly formatted:
Did not find the '>' for the '<nnn>' construct.
Correct the syntax. `01 = Qualifier `02 = Value
007011
The value for '`01' (`02) is not properly formatted:
The value of an '<nnn>' construct must be from 1 to
255.
Correct the syntax. `01 = Qualifier `02 = Value
007012
The default locale (`01) specified in the [`02]
section of SQR.INI has not been defined.
Correct the syntax. `01 = Locale name `02 = Section name
007013
The value for '`01' (`02) must be a list of `03
quoted string literals.
Correct the syntax. `01 = Qualifier `02 = Value `03 = Number of
entities in list
007014
The entry (`01 = `02) is not valid.
Correct the SQR.INI entry. `01 = Qualifier from the SQR.INI file
`02 = Qualifier's value
007100
The use of an edit mask or the keywords NUMBER,
MONEY, or DATE is not legal when storing numeric
variables.
Correct the source code.
007101
The last keyword is not '`01'.
Correct the source code. `01 = Keyword
007102
Incompatible source and destination variable types.
Correct the source code.
007103
The keyword (`01) is not compatible with the
variable (`02).
Correct the source code. `01 = Keyword `02 = Variable name
007104
The use of an edit mask or the keyword DATE is not
legal if both variables are date variables.
Correct the source code.
007200
The specified precision (`01) is out of range (`02 `03).
Correct the source code. `01 = Specified precision `02 =
Minimum precision `03 = Maximum precision
007201
The precision is specified by a value from `01 to `02
surrounded by parentheses.
Correct the source code. `01 = Minimum precision `02 =
Maximum precision
007202
Variable (`01) is not a decimal variable and cannot
have a precision associated with it.
Correct the source code. `01 = Variable name
007203
A string variable name is required here.
Correct the source code.
007204
A numeric variable name is required here.
Correct the source code.
007205
The variable (`01) has already been defined as '`02'
and may not be redefined.
Correct the source code. `01 = Variable name `02 = Variable type
007206
The variable type has not been specified.
Correct the source code.
007207
This command is only allowed within local
procedures.
Correct the source code.
007208
This command must be before all other commands
in the procedure.
Correct the source code.
007209
Only string ($) and numeric (#) variables may be
declared.
Correct the source code.
406 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
007210
Invalid variable name specified.
Correct the source code.
007211
You cannot declare a global variable from within a
procedure.
Correct the source code.
007400
The specified character is invalid in the current
character set.
Correct the program logic.
007401
'`01' is not a valid value for the ENCODING
environment variable.
The specified encoding scheme is not known by SQR. `01 =
ENCODING environment variable setting.
007403
The Double-Byte SQR command '`01' is not
supported in this version of SQR.
The SQT file contains a reference to an SQR command, which is
not supported by this version of SQR. `01 = SQR command name
007405
The barcode text '`01' cannot contain double-byte
characters.
Correct the source code. `01 = Bar code text
007501
Using `01 edit mask from (`02) against (`03)
A date edit mask element was detected which could cause date
data to be incorrectly interpreted. This warning message can be
turned off by setting the “OutputTwoDigitYearWarningMsg” entry
to the [Default-Settings] section of SQR.INI to FALSE. `01 = Edit
mask element `02 = Edit mask being used `03 = Value being
applied to the edit mask
007601
Cannot access the Java file (`01) (`02): `03
SQR cannot access the required file. `01 = Name of the file `02
= System error code `03 = System error message
007602
-EH_Scale: value (`01) is out of range (`02 - `03).
Correct the command line. `01 = Specified scale `02 = Minimum
allowed `03 = Maximum allowed
007603
-Printer:EH functionality is not available on this
platform.
Enhanced HTML functionality is not available on this platform.
007604
-Printer:PD functionality is not available on this
platform.
PDF functionality is not available on this platform.
007605
Cannot support Unicode internally. Please reset the
UseUnicodeInternal setting in SQR.INI to FALSE.
Cannot support Unicode internally. Reset the UseUnicodeInternal
setting in SQR.INI to FALSE.
007702
Invalid entry for keyword, '`01=`02'
Correct the source code.
007703
May only specify either PROCEDURE=, or
COMMAND=, or GETDATA=, exclusive.
Correct the source code.
007704
Must specify a SCHEMA.
Correct the source code.
007705
Must specify either a PROCEDURE, COMMAND, or
GETDATA.
Correct the source code.
007706
CONNECTION '`01' not found. No such connection.
Correct the source code.
007707
The returned set of Procedure parameters (INOUT
and OUT) (length = `01 items) did not include one
or more of the specified items.
Stored procedure error.
Numbered Messages 407
Error Number
Error Message
Suggestion/Interpretation
007708
Encountered a parameter of type '`01'. Valid types
are either IN, OUT, or INOUT. If no type is entered,
the type defaults to IN.
Stored procedure error.
007709
The datasource failed to provide the expected return
status value. Verify the query metadata.
Datasource error.
007711
Failed to login to the requested datasource
(Connection='`01', username='`02'). DETAILS:
`03
Logon failed.
007712
The requested rowset (`01) was not available. Verify
the query metadata.
Not enough rowsets.
007713
Missing or invalid Registry.properties file. Verify that
the CLASSPATH includes SQRDIR, that SQRDIR
contains the folder with the Registry.properties file,
and that the Registry.properties file is valid.
Incorrect environment setup.
007714
The datasource ('`01') does not support the
requested capability ('`02'). Check the capabilities
list for the datasource, located in the Properties
folder.
Invalid query for datasource.
007715
Failed to start the Java Virtual Machine (JVM).
Possible causes are: missing or invalid jdk files,
incorrect CLASSPATH, or insufficient resources.
Incorrect environment setup.
007717
The query failed. DETAILS: `01
Query failed.
007718
Failure setting property '`01'. DETAILS: `02
Property-set failed.
007721
Parameter `01 (`02) was passed to the
PROCEDURE as data type `03; expected (`04) type
`05. Verify the query metadata.
A failure occurred during row fetch.
007722
Invalid query parameter: Reason: `01
Bad procedure parameter.
007723
Too many parameters (= `01) were supplied to the
query. Verify the query metadata.
Bad procedure parameter.
007724
Parameter `01 (`02) was passed to the
PROCEDURE as type `03; expected type `04. Verify
the query metadata.
Bad procedure parameter.
007725
Parameter `01 ('`02', JDO-type `03), specified
'NULL', is a required-parameter. Specify a value or
variable name.
Bad procedure parameter.
007727
Unable to retrieve metadata for Procedure=`01,
Schema=`02. DETAILS: `03
Metadata check failed.
007728
Parameter list type mismatch (#`01, SQR type =
`02). The datasource expected a parameter of type
`03. Verify the query metadata.
Parameter list mismatch.
408 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
007729
List size mismatch detected while fetching data of
type ROW, `01 items, into SQR list-variable, `02
items. Fetching will proceed to the smaller size.
List size mismatch.
007730
Incorrect syntax for BEGIN-SELECT ... FROM. Options
are: FROM ROWSETS=... FROM PARAMETER= $strvar
| strlit
Bad begin-select syntax.
007732
Attempt to use a scalar SQR variable ('01') to
reference a ROWSET procedure parameter ('02').
Use either the keyword 'NULL', or an SQR LIST
variable (%var). Verify the query metadata.
Bad proc parameter.
007733
The list of keywords entered to the PARAMETERS
keyword must be terminated with a semicolon.
Bad proc parameter. Correct the source code.
007734
Datasource '01' not found. The Connection being
used by this query specifies a datasource which is
not listed in the DDO Registry ('02'). DETAILS: `03.
Bad proc parameter. Correct the source code.
007735
Missing one or more DDO {fname} .jar files. Verify
the location of the original-installation files, and that
they are accessible. Error code: `01. Classpath:
`02.
Bad environment.
007736
Unable to open Connection ('01') to datasource
('02'). Possible causes: (a) the Declare- or Alterconnection specification is invalid, or (b) the
datasource is no longer available. DETAILS: `03.
Bad environment.
007738
At least one JNI method pointer was lost. This should
never occur: record the steps leading up to this
failure, and contact Technical Support. DETAILS:
Schema='`01', Proc='`02'.
Bad environment.
007739
Unable to locate query object '`01' in the specified
schema (`02). DETAILS: `03.
Bad environment.
007740
Invalid &pseudonym or 'TYPE=' data-type specified
for a begin-select column-variable. Valid types are:
CHAR, TEXT, DATE, NUMBER, BINARY.
Correct the syntax.
007741
Illegal attempt to fetch a non-scalar field into a
column variable. Correct the query.
Correct the syntax.
007742
The output parameter specified in 'Begin-Select ...
From Parameter = `01' is not available. Available
parameters: `02.
Bad command.
007743
The output parameter specified in 'Begin-Select ...
From Parameter = `01' is not of type ROWSET. Verify
the query metadata.
Bad command.
007744
Illegal attempt to assign an SQR variable ('01') of
type '02' the value from a DDO object ('03') of type
'04'. Verify the query metadata.
Bad var assignment.
Numbered Messages 409
Error Number
Error Message
Suggestion/Interpretation
007745
Illegal attempt to assign an SQR column variable
('01') of type '02' the value from a DDO object of
type '03'. Verify the query metadata.
Bad var assignment.
007746
Failed to locate the requested Rowset (`01) while
processing the query. The last available Rowset
number is `02. Verify the query metadata.
Not enough RowSets.
007747
The query raised a DDO exception. DETAILS: `01.
Bad query.
007748
A BEGIN-SELECT paragraph was coded, but the
query returned no Rows.
No data warning.
007749
Invalid syntax for PARAMETERS=(...) statement. Use:
PARAMETERS=( %v | $v | #v | &v | NULL | SKIP |
numlit | datelit | textlit [IN | INOUT], ...) All
parameters must be specified. Optional parameters
which are to be ignored may be specified by the
keyword 'NULL' or 'SKIP'. Correct the syntax.
Incorrect syntax.
007750
FATAL: Failure creating Java object.
General failure.
007751
Attempt to create a List variable of size greater than
the maximum size of `01 items.
General failure.
007753
Attempt to access List-row (`01) beyond the List size
(`02 rows).
Bad list assignment/setup.
007754
Attempt to assign/modify a List row is not
compatible with the List definition.
Bad list assignment/setup.
007755
Attempt to assign a row to a non-existant List
variable. Define the List first, using the syntax: let %
lname[ size ] = list( NUMBER | DATE | TEXT #var |
$var [, ...] )
Bad list assignment/setup.
007756
Incorrect syntax for List-variable reference. Use: let
[$ | #]var = %listname[nlit | #var].colname
Bad list assignment/setup.
007757
Alter-connection statement missing 'DSN=...'.
Improper alter-conn.
007758
List-definition size specifier must be literal.
Improper alter-conn.
007759
Attempt to access a non-existent List-column ('01').
No such list column name.
007760
Must specify one of the keywords, FROM-ROWSETS
or FROM_PARAMETER.
Incorrect syntax for Load-lookup.
007761
Incorrect syntax to Load-lookup 'PARAMETERS='
keyword. Use: PARAMETERS=(slit | nlit | $var | #var
| %var | &var, ...) No line wrapping is allowed for
this usage.
Incorrect syntax for Load-lookup.
007762
Too many parameters ( `02) entered to Load-Lookup
command. Max parameters is `01.
Incorrect syntax for Load-lookup.
410 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
007763
Problem executing the cursor for LOAD-LOOKUP
table '`01'. DETAILS: `02.
The database server returned an error while trying to execute the
SQL statement needed to process the LOAD-LOOKUP command.
`01 = Load lookup table name
007764
Bad return fetching row from database in LOADLOOKUP table '`01'. DETAILS: `02
The database server returned an error while fetching the data. `01
= Load lookup table name
007765
DC, DI sort options not supported with this SQR
version. To sort, use SORT=SC or SORT=SI.
Database sort not supported for Load-Lookup with DDO.
007766
Must specify a query keyword; PROCEDURE=,
COMMAND= or GETDATA=.
Incorrect syntax for Load-lookup. Specify a keyword representing
the query.
007767
Unknown column variable type.
Unknown data type returned by the server.
007768
The property `01` was not found in the property
sheet for the specified datasource (`02). Available
property names are: `03. The datasource property
sheet does not include the named property.
Verify the metadata and correct the syntax.
007771
Did not find value after '`01 ='
The code specified a Connection = keyword, but no matching
literal. Correct the syntax.
007774
Invalid attempt to establish a second connection to
datasource '`02', using Connection '`01'. The
Connection '`01' is declared to allow only one active
login (no-duplicate=TRUE).
Duplicate logins specified as not allowed. Correct the source code,
declare a new Connection, or omit the use of no-duplicate in the
subject Connection
007775
Bad value ('`01') for Alter-connection keyword
(`02). Valid values are: `03.
Bad keyword value. Refer to the language reference and correct
the syntax.
007778
Datasource login not available.
Connection non-existant. Correct the source. Possible causes: No
BEGIN-EXECUTE statement.
007779
Unable to verify ResultSet column types due to use
of variable. Variables are not allowed either for
CONNECTION, SCHEMA, PROCEDURE, FromParameter, or the first element of the From-Rowsets.
Use literals or define column types using
'type=<datatype>'.
Can't verify colvar types with variable entry; use literals or define
column types. Correct the source.
007780
Unable to verify ResultSet column types. Must
specify column types using 'type=CHAR | NUMBER
| DATE' construct when selecting from datasources
which do not supply metadata, or when using the
COMMAND= and GETDATA= keywords.
Can't verify colvar types with for COMMAND, GETDATA or from
[TABLES]. Use type=<datatype> on select variables. Correct the
source.
007781
Unable to log onto datasource to obtain query
metadata. Specify the Connection for this query
using a complete Declare-Connection statement, or
specify type=<datatype> for each column variable in
the Begin-Select.
Must declare a complete connection if use early binding of select
column variables.
007783
Could not execute SQL.
An error occurred while trying to compile the SQL statement.
Correct the SQL statement or use the ON-ERROR= option to trap
the error during the program run.
DETAILS: `01
Numbered Messages 411
Error Number
Error Message
Suggestion/Interpretation
007784
Bad CONNECTION specification ('`01').
The OLAP-related members of the named CONNECTION could not
be processed, either due to syntax or no such name.
Possible causes: Syntax error, Dimension name not
found, Dimension attributes not found, Dimension
name not found in Begin-Select list. DETAILS: `02
007785
The column specified ('`01') is ambiguous. It
appears more than once in the data.
A column specified in the query appears multiple times in the data.
Change the query to avoid that column, or rename the column in
the data.
`01 = The column name
007786
Column ('`01') not found.
A column specified in the query was not found in the data.
`01 = The column name
007787
Unsupported datatype ('`02') found in column
('`01'). Only Text, Numeric, and Date are currently
supported.
A column specified in the query contained values which are not
currently supported. Change the query to use a different column.
`01 = The column name
`02 = The unsupported datatype
007789
The query is improperly specified. The result would
involve a Cartesian Join which is not currently
supported. Rewrite the query to involve only columns
in the same branch of the tree.
The columns specified in the query are found in different branches
of a heirarchical tree in the data. Computing result rows would
require a Cartesian Join, which is not currently supported. Rewrite
the query to involve only columns on the same branch of the tree.
007790
Must specify PROCEDURE= to use PARAMETERS= in
BEGIN-EXECUTE.
Parameters may only be specified for PROCEDURE queries, not for
COMMAND or GETDATA queries. Remove the PARAMETERS= line,
or specify PROCEDURE= instead.
007791
Unable to locate one or more JAVA classes in the
DDO JAR file.
Verify that the original installation files are not corrupted.
007792
Unable to locate one or more JAVA methods in the
DDO JAR file.
Verify that the original installation files are not corrupted.
007793
An incompatible version of the DDO JAR file was
found.
Verify that the original installation files are not corrupted.
Table 100
Numbered Messages 008000 to 009999
Error Number
Error Message
Suggestion/Interpretation
008000
Delay not appropriate for database columns or literals.
The DELAY argument to the PRINT command can only be
used with SQR #variables or $variables.
008001
The width must also be specified when DELAY is used.
The DELAY argument to the PRINT command requires that
the width argument be specified.
008003
The SET-PRINT-DELAY command cannot find a pending PRINT
DELAYstatement.
An attempt was made to process an SET-DELAY-PRINT
command against an SQR variable for which there was no
pending PRINT DELAY statement.
008004
The PRINT DELAY statement did not have an SET-PRINTDELAY command executed against it.
This PRINT DELAY statement did not have an SET-DELAYPRINT command executed against it when SQR ended its
run.
412 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
008005
The variable (`01`02) was referenced by a PRINT DELAY
statement but the SQR program does not contain a matching
SET-PRINT-DELAY command.
The referenced variable was used with a PRINT DELAY
statement but the SQR program did not contain a SETPRINT-DELAY command for that variable.
008006
The variable (`01`02) was referenced by a SET-PRINTDELAY command but the SQR program does not contain a
matching PRINT DELAY statement.
The referenced variable was used with a SET-PRINT-DELAY
command but the SQR program did not contain a PRINT
DELAY statement for that variable.
008101
The specified MODE value '`01' is not legal. Legal values are
'ON' or 'OFF'.
The MODE= qualifier values are ON or OFF.
008102
At least one qualifier must be specified.
Correct the source line.
008200
The specified color ('`01') is not defined.
The specified color is not defined in the color map.
`01 = Invalid value
`01 = Undefined color
008201
Qualifier '`01' has a malformed color reference.
The specified color reference is not properly formed. It can
reference a single string literal, column, or variable (i.e.
($name)) or it can reference three numeric literals,
columns, or variables (i.e. (10,20,30)) which represent
the Red, Green, and Blue components of the color.
008202
Qualifier '`01' must reference SQR variables only.
The specified color reference is not properly formed. It can
reference a single string variable (i.e. ($name)) or it can
reference three numeric variables (i.e. (#R,#G,#B)) which
represent the Red, Green, and Blue components of the
color.
008203
Invalid RGB value (`01,`02,`03)
The RGB values are out of range. Each value can be from
0 to 255.
`01 = Red value
`02 = Green value
`03 = Blue value
008204
At least one qualifier must be specified.
Correct the source line.
008205
The Declare-Color-Map entry is not properly defined.
The Declare-Color-Map is not properly defined:
1) The color name can only contain characters [0-9 A-Z _
-].
2) The color name cannot be 'none'
3) The RGB values are not valid (each can be 0 to 255)
008206
Duplicate palette name: `01
Change the name of the palette.
`01 = Palette name in question
008207
The name can only contain characters [0-9 A-Z _ -].
Correct the syntax.
008208
The palette cannot have gaps. All colors up to the highest
one defined (`01) must be specified.
An SQR palette cannot have gaps. Correct the source
code.
`01 = Highest color defined for this palette
Numbered Messages 413
Error Number
Error Message
Suggestion/Interpretation
008209
The specified palette (`01) does not exist.
Change the name of the palette.
`01 = Palette name in question
008300
For font (`01) the specified typeface (`02) is not legal.
Correct the name of the CJK typeface
`01 = Font id
`02 = Typeface name
008301
For font (`01) the specified character map (`02) is not legal.
Correct the name of the CJK character map
`01 = Font id
`02 = Character map name
008302
For font (`01) both a typeface and character map must be
specified.
If a CJK typeface is specified with a font then a character
map must also be specified.
`01 = Font id
008304
008305
The current report encoding (`01) requires that a typeface
and a character map be specified with each font.
For font (`01) the encoding (`02) is incompatible with the
report output encoding (`03).
PDF support requires that a proper typeface and character
map be associated with a font in order to generate a PDF
file with the following output encodings:
●
Simplified Chinese: EUC-CN, GBK (CP936), UCS-2
●
Traditional Chinese: EUC-TW, BIG5, USC-2
●
Korean: EUC-KR, UHC (Johab), UCS-2
●
Japanese: EUC-JP, Shift-JIS, ISO-2022-JP, UCS-2
The encoding for the current font is incompatible with the
encoding used for the PDF file.
`01 = Font id
`02 = Font encoding
`03 = Report output encoding
008400
008401
The table name (`01) can only contain the following
characters [0-9 A-Z _ -].
The specified table name contains invalid characters.
The table name (`01) is already being used.
The specified table name is already being used.
`01 = Table name
`01 = Table name
008402
The table definition (`01) is already being used.
The specified table definition is already being used.
`01 = Table definition name
0008403
The table definition (`01) does not exist.
The specified table definition does not exist.
`01 = Table definition name
008404
The table (`01) does not exist.
The specified table does not exist.
`01 = Table name
008405
No table definition name was specified.
Correct the source line.
008406
When ACTION=ERASE no other parameters are allowed.
Correct the source line.
414 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
008407
When ACTION=INFO only the ROW and COUNT parameters
are allowed. At least one must be specified.
Correct the source line.
008408
When ACTION=GET only the following combination of
parameters are allowed:
Correct the source line.
008409
008410
●
ARRAY with optional ROW and COUNT
●
VALUES with optional ROW
When ACTION=REPLACE only the following combination of
parameters are allowed:
●
ARRAY with optional FIRST, ROW and COUNT
●
BLANK with optional ROW and COUNT
●
VALUES with optional ROW
When ACTION=INSERT only the following combination of
parameters are allowed:
●
ARRAY with optional MODE, FIRST, ROW and COUNT
●
BLANK with optional MODE, ROW and COUNT
●
VALUES with optional MODE and ROW
Correct the source line.
Correct the source line.
008411
When ACTION=DELETE only the ROW and COUNT parameters
are allowed.
Correct the source line.
008412
When ACTION=APPEND only the following combination of
parameters are allowed:
Correct the source line.
●
ARRAY with optional FIRST, and COUNT
●
BLANK with optional COUNT VALUES
008413
Qualifier '`01' requires a numeric variable.
Correct the source line.
008414
The value for '`01' (`02) must be `03 `04 and `05 `06.
Correct the source line.
`01 = Qualifer name
`02 = Value
`03 = Minimum value relation
`04 = Minimum value
`05 = Maximum value relation
`06 = Maximum value
008415
The first argument in '`01' must be the column number (>=
0 and <= `02).
Correct the source line.
`01 = Qualifier name
`02 = Maximum value
008416
008417
The specified column number (`01) exceeds the number of
columns for this table as specified by the COLUMN-COUNT
qualifier.
Correct the source line.
The specified column number (`01) has already been
defined by another `02 qualifier.
Correct the source line.
`01 = Column number
Numbered Messages 415
Error Number
Error Message
Suggestion/Interpretation
`01 = Column number
`02 = Qualifier name
008418
Incorrect value (`01) for qualifier '`02'. Valid values are:
Correct the source line.
`01 = Value
`02 = Qualifier name
008419
Unknown keyword (`01) for qualifier '`02'. Valid keywords
are:
Correct the source line.
`01 = Value
`02 = Qualifier name
008420
Incorrect value (`01) for qualifier '`02'. It must be an integer
value > 0.
Correct the source line.
`01 = Value
`02 = Qualifier name
008421
Incorrect value (`01) for qualifier '`02'. It must be a numeric
value > 0.
Correct the source line.
`01 = Value
`02 = Qualifier name
008422
Incorrect value (`01) for qualifier '`02'. It must be a string
literal.
Correct the source line.
`01 = Value
`02 = Qualifier name
008423
Incorrect value (`01) for qualifier '`02'. It must be either YES
or NO.
Correct the source line.
`01 = Value
`02 = Qualifier name
008424
Incorrect value (`01) for qualifier '`02'. It must be either
YES, NO, or the number of lines.
Correct the source line.
`01 = Value
`02 = Qualifier name
008425
Qualifier '`01' has already been defined.
Correct the source line.
`01 = Qualifier name
`02 = List Keyword
008426
There are TABLE-FORMAT entries for column numbers which
exceed the number of columns as defined by the COLUMNCOUNT qualifier.
Correct the source line.
008427
The value for SIZE= (`01) must be > 0.
Correct the source line.
008428
The value for EXTENT= (`01) must be > 0.
Correct the source line.
008429
Encountered an invalid VALUES= argument. Legal aruments
types are $Variable and #Variable.
Correct the source line.
416 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
008430
Encountered an invalid (`01) VALUES= argument. Legal
argument types are $Variable, #Variable, &Variable, 'Literal',
Numerics, and the word NULL.
Correct the source line.
The type of VALUES= parameter (`01) is not compatible with
the corresponding table column (`02) defined as '`03'.
The VALUES= parameter type is not compatible with the
corresponding TABLE column type.
008431
`01 = List contents
`01 = VALUES parameter
`02 = Table column number
`03 = Table column type
008432
The number of parameters in the VALUES= list exceeds the
number of columns (`01) for table (`02).
The number of parameters in the VALUES= list exceeds
the number of columns defined in the table.
`01 = Table column count
`02 = Table name
008433
The value for MODE= (`01) must be either BEFORE or AFTER.
Correct the source line.
008434
Cannot perform GET because the specified table (`01) is
empty.
The ACTION=GET option cannot be used against an empty
table.
`01 = Table name
008435
The number of columns (`01) defined for array (`02) does
not match the number of columns (`03) defined for table
(`04).
The number of columns defined for the specified array
must be the same as the number of columns defined for
the specified table.
`01 = Array column count
`02 = Array name
`03 = Table column count
`04 = Table name
008436
Column type mismatch in column (`01): Array (`02) is
defined as (`03) and Table (`04) is defined as (`05)
The column types for the specified array must be
compatible with the columns types for the specified table.
`01 = Column number
`02 = Array name
`03 = Array column type
`04 = Table name
`05 = Table column type
008437
Cannot perform GET from table (`01) for `02 rows because
the array (`03) can only support (`04) rows.
The ACTION=GET option cannot be used to increase the
size of array.
`01 = Table name
`02 = Table rows
`03 = Array name
`04 = Array size
8600
Binary variables (`01) cannot be used with this command.
Correct the source syntax.
`01 = Variable name
Numbered Messages 417
Error Number
Error Message
Suggestion/Interpretation
8601
The use of an edit mask or the keywords NUMBER, MONEY
or DATE is not legal when storing numeric or binary variables.
Correct the source code.
8602
Binary variables (`01) cannot be used in BEGIN-SQL or
BEGIN-SELECT paragraphs.
Correct the source code.
8603
The use of an edit mask is not legal with binary variables.
Correct the source code.
8604
All variables must be binary if one variable is binary.
Correct the source code.
8605
COMPAR: Unknown relational (binary) operator.
Internal error that should never occur during normal
operations. Record the steps leading up to the error and
contact customer support.
8606
Incorrect relational operator for binary variables. Only = and !
= allowed.
Correct the source code.
8607
The ENCODING qualifier is not allowed when the record type
is binary.
Correct the source code.
8608
The record type of the file is not binary.
Files must be opened for BINARY access when binary
variables are used. Correct the program logic.
8609
The CODE-PRINTER qualifier is required when binary
variables are used.
The CODE-PRINTER qualifier is required to PRINT binary
variables. Correct the source code.
8610
Function or operator '`01' requires binary argument.
Correct the source line.
`01 = Variable name
`01 = Function or operator
8611
8612
8613
Function or operator '`01' does not support binary
arguments.
Correct the source line.
Function or operator '`01' must be a binary or string
argument.
Correct the source line.
Qualifier '`01' requires a binary literal.
Correct the source line.
`01 = Operator
`01 = Function or operator
`01 = Qualifier name
8614
Qualifier '`01' requires a binary literal, variable, or column.
Correct the source line.
`01 = Qualifier name
8615
8616
Qualifier '`01' requires a binary or string literal, variable, or
column.
Correct the source line.
Error creating the image: '`01'.
SQR aborts the program run.
(`02): `03
`01 = Image file name
`01 = Qualifier name
`02 = System error code
`03 = System error message
8617
Error closing the image: '`01'.
SQR aborts the program run.
(`02): `03
`01 = Image file name
418 Production Reporting Messages
Error Number
Error Message
Suggestion/Interpretation
`02 = System error code
`03 = System error message
8618
Error writing the image: '`01'.
SQR aborts the program run.
(`02): `03
`01 = Image file name
`02 = System error code
`03 = System error message
8619
Error opening the image: '`01'.
SQR aborts the program run.
(`02): `03
`01 = Image file name
`02 = System error code
`03 = System error message
8620
Error reading the image: '`01'.
SQR aborts the program run.
(`02): `03
`01 = Image file name
`02 = System error code
`03 = System error message
8621
The SQR compression logic failed, reason `01.
The SQR compression logic failed while compressing an
image.
`01 = Reason code
8622
The SQR decompression logic failed, reason `01.
The SQR decompression logic failed while decompressing
an image.
`01 = Reason code
8623
The embedded BMP image is not valid, reason `01.
(Windows) The embedded bitmap image is not valid.
`01 = Reason code
009999
The printer (`01) specified with the -Printer:WP command
line flag is invalid.
(Windows) The specified printer is not valid.
Numbered Messages 419
420 Production Reporting Messages
A
Table 101
Production Reporting Language
Quick Reference
Production Reporting Commands
COMMAND
SYNTAX
ADD
{src_num_lit|_var|_col} TO dst_num_var [ROUND=nn]
ALTER-COLOR-MAP
NAME={color_name_lit|_var|_col}
VALUE=({color_name_lit|_var|_col}|{rgb})
ALTER-CONNECTION
NAME=connection_name
[DSN=or[USER=or[PASSWORD={ug_txt_lit|_var}]
[PARAMETERS=keyword_str=attr_str;
[,keyword_str=attr_str;...]]
[NO-DUPLICATE=TRUE|FALSE]
SET-GENERATIONS=([{dimension1, hierarchy1}
[,dimensioni, hierarchyi] ...])
SET-LEVELS=([{dimension1, level1} [,dimensioni, leveli] ...])
SET-MEMBERS=([{dimension1, level1} [,dimensioni, leveli] ...])
ALTER-LOCALE
[LOCALE=or[NUMBER-EDIT-MASK=or[MONEY-EDIT-MASK=
or[DATE-EDIT-MASK=or[INPUT-DATE-EDIT-MASK=or[MONEY-SIGN=
{txt_lit|_var|DEFAULT|SYSTEM}]
[MONEY-SIGN-LOCATION={txt_var |DEFAULT|SYSTEM|LEFT|RIGHT}]
[THOUSAND-SEPARATOR=or[DECIMAL-SEPARATOR= or
[DATE-SEPARATOR=or[TIME-SEPARATOR=
or[EDIT-OPTION-NA,AM,PM,BC,AD=
{txt_lit|_var|DEFAULT|SYSTEM}]
[DAY-OF-WEEK-CASE= or[MONTHS-CASE=
{txt_var|DEFAULT|SYSTEM|UPPER|LOWER|EDIT|NO-CHANGE}]
[DAY-OF-WEEK-FULL= or[DAY-OF-WEEK-SHORT=
({txt_lit1|_var1}...{txt_lit7| _var7})]
[MONTHS-FULL= or[MONTHS-SHORT=
({txt_lit1|_var1}...{txt_lit12|_var12})]
ALTER-PRINTER
[POINT-SIZE={point_size_num_lit|_var}]
[FONT-TYPE={font_type|txt_var}]
[SYMBOL-SET={symbol_set_id|txt_var}]
[FONT={font_int_lit|_var}]
[PITCH={pitch_num_lit|_var}]
ALTER-REPORT
[HEADING={heading_name_txt_lit|_var|_col]
[HEADING-SIZE={heading_size_int_lit|_var|_col]
[FOOTING={footing_name_txt_lit|_var|_col]
[FOOTING-SIZE={footing_size_int_lit|_var|_col}]
[PDF-APPEARANCE=(appearance_lit|_var|_col)]
[PDF-INFORMATION=(information_lit|_var|_col, value_lit|_var|_col
421
COMMAND
SYNTAX
[,information_lit|_var|_col, value_lit|_var|_col]...)]
[PDF-OPEN-ACTION=(openaction_lit|_var|_col,[,name_lit|_var|
_col,value_lit|_var|_col]...)]
_col, duration_lit|
[PDF-PAGE-TRANSITION=(transition_lit|_var|
_var|_col)]
[PDF-SECURITY=(security_lit|_var|_col, value_lit|_var|_col
[,security_lit|_var|_col, value_lit|_var|_col]...)]
[PDF-VIEWER-PREFERENCE=(preference_lit|_var|_col, value_lit|_var|
_col[,preference_lit|_var| _col, value_lit|_var|_col]...)]
ALTER-TABLE
NAME=table_name_var|_lit|_col
ACTION=action_lit
[COUNT=count_var|_lit|_col]
[ROW=row_var|_lit|_col]
[ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
ARRAY-ADD
{src_num_lit|_var|_col}...TO
dst_array_name (element_lit|_var|_col)
[field[(occurs_lit|_var|_col)]]...
ARRAY-DIVIDE
{src_num_lit|_var|_col}...INTO
dst_array_name (element_int_lit|_var|_col)
[field [(occurs_lit|_var|_col)]]...
ARRAY-MULTIPLY
{src_num_lit|_var|_col}...TIMES
dst_array_name (element_int_lit|_var|_col)
[field [(occurs_lit|_var|_col)]]...
ARRAY-SUBTRACT
{src_num_lit|_var|_col}...FROM
dst_array_name (element_int_lit|_var|_col)
[field [(occurs_lit|_var|_col)]]...
ASK
substitution_variable [prompt]
BEGIN-DOCUMENT
{position}
END-DOCUMENT
BEGIN-EXECUTE
[CONNECTION=uq_txt_lit]
[ON-ERROR=sqr_procedure[(arg1[,argi]...)]]
[RSV=num_var]
[STATUS=list_var|num_var|txt_var]
[PROPERTIES=({key_txt_lit|_var}={{value_txt_lit|_var|_col}|
{num_lit|
_var|_col},...)]
[SCHEMA={txt_lit|_var}]
[PROCEDURE={txt_lit|_var}
[PARAMETERS=({{arg1 [IN|INOUT]}|NULL} [[,argi [IN|INOUT]]|
NULL] ... )]
(or)
COMMAND={txt_lit|_var}
(or)
GETDATA={txt_lit|_var}]
[BEGIN-SELECT [BEFORE=sqr_procedure[(arg1[,argi]...)]]
[AFTER=sqr_procedure[(arg1[,argi]...)]]]
col-name TYPE=CHAR|TEXT|NUMBER|DATE [edit-mask][on-break]…
[{FROM ROWSETS=({m|m-n|m-|-n} [,...]}|{ALL})}|
422 Production Reporting Language Quick Reference
COMMAND
SYNTAX
{FROM PARAMETER={txt_lit|_var}}|
{FROM {table_name}}]
END-SELECT]
END-EXECUTE
BEGIN-FOOTING
footing_lines_int_lit
[FOR-REPORTS=(report_name1[,report_namei]...)]
[FOR-TOCS=(toc_name1[,toc_namei]...)]
[NAME={footing_name}]
END-FOOTING
BEGIN-HEADING
heading_lines_int_lit
[FOR-REPORTS=(report_name1[,report_namei]...)]
[FOR-TOCS=(toc_name1[,toc_namei]...)]
[NAME={heading_name}]
END-HEADING
BEGIN-PROCEDURE
procedure_name [LOCAL|(arg1 [, argi]...)]
END-PROCEDURE
BEGIN-PROGRAM
END-PROGRAM
BEGIN-SELECT
[DISTINCT][-Cnn][-Bnn][-XP][-NR][-SORTnn]
[-LOCK{RR|CS|RO|RL|XX}][-DBdatabase]
[-DBconnectionstring]
[LOOPS=nn][ON-ERROR=procedure[(arg1[,argi]...)]]
{column} [&synonym]
{expression &synonym}
{[$columnname] &synonym=(char|number|date)}
[sqr_commands]
FROM {table,...|[table:$tablename]}
[additional SQL]
[$variable]
END-SELECT
BEGIN-SETUP
END-SETUP
BEGIN-SQL
[-Cnn][-XP][-NR][-SORTnn]
[-LOCK{RR|CS|RO|RL|XX}]
[-DBdatabase][-DBconnectionstring]
[ON-ERROR=procedure[(arg1[,argi]...)](non-SETUP)|
[ON-ERROR={STOP|WARN|SKIP}](inSETUP)
END-SQL
BREAK
BREAK
CALL
subroutine USING
{src_txt_lit|_var|_col}|{src_num_lit|_var|_col}
{dst_txt_var|_num_var} [param]
CALL SYSTEM
Same as CALL
CLEAR-ARRAY
NAME=array_name
CLOSE
{filenum_lit|_var|_col}
423
COMMAND
SYNTAX
CLOSE-RS
NAME=row_set_name_var|_lit|_col
COLUMNS
{int_lit|_var|_col}[int_lit|_var|_col]...
COMMIT
COMMIT
CONCAT
{src_any_lit|_var|_col} WITH dst_txt_var[[:$]edit_mask]
CONNECT
{txt_lit|_var|_col}[ON-ERROR=procedure[(arg1 [, argi]...)]]
CREATE-ARRAY
NAME=array_name SIZE=nn
[EXTENT=nn]
{FIELD=name:type[:occurs]
[={init_value_txt_lit|_num_lit|_binary_lit}]}...
CREATE-COLOR-PALETTE
NAME={palette_name_txt_lit}
COLOR_1={rgb}
COLOR_2={rgb}
[COLOR_n]={rgb}
CREATE-LIST
NAME=list_name_txt_lit|_var|_col
LIST=(value_lit|var|_col|(r,g,b)...)
CREATE-TABLE
NAME=table_name_var|_lit|_col
USING=table_template_var|_lit|_col
[COLUMN-COUNT=number_of_columns_var|_lit|_col]
[COLUMN-ATTRIBUTES=({column—number},{keyword1},{value1}, ...,
{keywordn},{valuen})]
[ROW-ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
[TABLE-ATTRIBUTES=({keyword1},{value1}, ...,{keywordn},{valuen})]
#DEBUG
[x...] sqr_command
DECLARE-CHART
chart_name
[Type=chart_type_lit]
[CHART-SIZE=(chart_width_int_lit,chart_depth_int_lit)]
[TITLE=title_txt_lit]
[SUB-TITLE=subtitle_txt_lit]
[FILL=fill_lit]
[3D-EFFECTS=3d_effects_lit]
[BORDER=border_lit]
[COLOR-PALETTE=color_palette_lit]
[POINT-MARKERS=point_markers_lit]
[ATTRIBUTES={selector_lit|
LIST:{selector_list_name_lit|(selector_lit,...)},
{decl_key_lit,{decl_value_lit|
LIST:{decl_val_list_name_lit|(decl_val_lit,...)}|
PALETTE:{color_palette_lit}}},…}}]
[DATA-ARRAY=array_name]
[DATA-ARRAY-ROW-COUNT=row_count_num_lit]
[DATA-ARRAY-COLUMN-COUNT= column_count_num_lit]
[DATA-ARRAY-COLUMN-LABELS={NONE|array_name|(txt_lit,...)}]
[DATA-LABELS=data_labels_lit]
[FOOTER-TEXT=NONE|text_lit]
[SUB-FOOTER-TEXT=NONE|text_lit]
424 Production Reporting Language Quick Reference
COMMAND
SYNTAX
[ITEM-COLOR=(chart_item_keyword_lit, color_value_lit|(r,g,b)]
[ITEM-SIZE={item_size_keyword_keyword_lit, item_size_num_lit}]
[LEGEND=legend_lit]
[LEGEND-TITLE=legend_title_txt_lit]
[LEGEND-PLACEMENT=legend_placement_lit]
[LEGEND-PRESENTATION= legend_presentation_lit]
[PIE-SEGMENT-QUANTITY-DISPLAY=pie_segment_quantity _display_lit]
[PIE-SEGMENT-PERCENT-DISPLAY=pie_segment_percent_display_lit]
[PIE-SEGMENT-EXPLODE=pie_segment_explode_lit]
[X-AXIS-GRID=x_axis_grid_lit]
[X-AXIS-LABEL=x_axis_label_txt_lit]
[X-AXIS-MIN-VALUE={x_axis_min_value_lit|_num_lit}]
[X-AXIS-MAX-VALUE={x_axis_max_value_lit|_num_lit}]
[X-AXIS-MAJOR-INCREMENT={x_axis_major_increment_lit|_num_lit}]
[X-AXIS-MINOR-INCREMENT=x_axis_minor_increment_num_lit]
[X-AXIS-MAJOR-TICK-MARKS=x_axis_major_tick_marks_lit]
[X-AXIS-MINOR-TICK-MARKS=x_axis_minor_tick_marks_lit]
[X-AXIS-TICK-MARK-PLACEMENT=x_axis_tick_mark_placement_lit]
[X-AXIS-ROTATE=x_rotate_num_lit]
[X-AXIS-SCALE=x_axis_scale_lit]
[Y-AXIS-GRID=y_axis_grid_lit]
[Y-AXIS-LABEL=y_axis_label_lit]
[Y-AXIS-MASK=mask_txt_lit]
[Y-AXIS-MIN-VALUE={y_axis_min_value_lit|_num_lit}]
[Y-AXIS-MAX-VALUE={y_axis_max_value_lit|_num_lit}]
[Y-AXIS-MAJOR-INCREMENT={y_axis_major_increment_lit|_num_lit}]
[Y-AXIS-MINOR-INCREMENT=y_axis_minor_increment_num_lit]
[Y-AXIS-MAJOR-TICK-MARKS=y_axis_major_tick_marks_lit]
[Y-AXIS-MINOR-TICK-MARKS=y_axis_minor_tick_marks_lit]
[Y-AXIS-TICK-MARK-PLACEMENT=y_axis_tick_mark_placement_lit]
[Y-AXIS-SCALE=y_axis_scale_lit]
[Y2-AXIS-LABEL=y2_axis_label_lit]
[Y2-AXIS-MASK=mask_txt_lit]
[Y2-AXIS-MIN-VALUE={y2_axis_min_value_lit|_num_lit}]
[Y2-AXIS-MAX-VALUE={y2_axis_max_value_lit|_num_lit}]
[Y2-AXIS-MAJOR-INCREMENT={y2_axis_major_increment_lit| _num_lit}]
[Y2-AXIS-MINOR-INCREMENT=y2_axis_minor_increment_num_lit]
[Y2-AXIS-MAJOR-TICK-MARKS=y2_axis_major_tick_marks_lit]
[Y2-AXIS-MINOR-TICK-MARKS=y2_axis_minor_tick_marks_lit]
[Y2-AXIS-SCALE=y2_axis_scale_lit]
[Y2-AXIS-COLOR-PALETTE=color_palette_lit]
[Y2-DATA-ARRAY=array_name]
[Y2-DATA-ARRAY-ROW-COUNT=row_count_num_lit]
[Y2-DATA-ARRAY-COLUMN-COUNT=column_count_num_lit]
[Y2-DATA-ARRAY-COLUMN-LABELS={NONE|array_name|(txt_lit,…)}]
[Y2-TYPE=chart_type_lit]
END-DECLARE
DECLARE-COLOR-MAP
color_name=({rgb})
color_name=({rgb})
.
.
.
END-DECLARE
425
COMMAND
SYNTAX
DECLARE-CONNECTION
connection_name
DSN={uq_txt_lit}
[USER= or [PASSWORD={uq_txt_lit}]
[PARAMETERS=keyword_str=attr_str;[keyword_str=attr_str;...]]
[NO-DUPLICATE=TRUE|FALSE]
SET-GENERATIONS=({dimension1, hierarchy1}[,dimensioni,
hierarchyi] ...)
SET-LEVELS=({dimension1, level1} [,dimensioni, leveli] ...)
SET-MEMBERS=({dimension1, level1} [,dimensioni, leveli] ...)
END-DECLARE
DECLARE-IMAGE
image_name
[TYPE=image_type_lit]
[IMAGE-SIZE=(width_num_lit,height_num_lit)]
[SOURCE=file_name_lit]
[[FOR-PRINTER=({POSTSCRIPT|HPLASERJET|
HTML|PDF|WINDOWS|PS|HP|HT|PD|WP},
image_type_lit,file_name_lit) . . .]
END-DECLARE
DECLARE-LAYOUT
DECLARE-LAYOUT layout_name
[PAPER-SIZE=({paper_width_num_lit[uom],paper_depth_num_lit[uom]}|
{paper_name})]
[FORMFEED=form_feed_lit]
[ORIENTATION=orientation_lit]
[LEFT-MARGIN=left_margin_num_lit[uom]]
[TOP-MARGIN=top_margin_num_lit[uom]]
[RIGHT-MARGIN=right_margin_num_lit[uom]|LINEWIDTH=line_width_num_lit[uom]|
MAX-COLUMNS=columns_int_lit]
[BOTTOM-MARGIN= bottom_margin_num_lit[uom]|PAGEDEPTH=page_depth_num_lit[uom]|
MAX-LINES=lines_int_lit]
[CHAR-WIDTH=char_width_num_lit[uom]]
[LINE-HEIGHT=line_height_num_lit[uom]]
END-DECLARE
DECLARE-PRINTER
printer_name
[[TYPE=printer_type_lit]FOR-REPORTS=(report_name1
[,report_namei]...)]
[INIT-STRING=initialization_string_txt_lit]
[RESET-STRING=reset_string_txt_lit]
[COLOR=color_lit]
[POINT-SIZE=point_size_num_lit]
[FONT-TYPE=font_type_int_lit]
[SYMBOL-SET=symbol_set_id_lit]
[STARTUP-FILE=file_name_txt_lit]
[PITCH=pitch_num_lit]
[FONT=font_int_lit]
[BEFORE-BOLD=before_bold_string_txt_lit]
[AFTER-BOLD=after_bold_string_txt_lit]
END-DECLARE
DECLARE-PROCEDURE
[FOR-REPORTS=(report_name1[,report_namei]...)]
[BEFORE-REPORT=procedure_name[(arg1[,argi]...)]]
426 Production Reporting Language Quick Reference
COMMAND
SYNTAX
[AFTER-REPORT=procedure_name[(arg1[,argi]...)]]
[BEFORE-PAGE=procedure_name[(arg1[,argi]...)]]
[AFTER-PAGE=procedure_name[(arg1[,argi]... ]]
END-DECLARE
DECLARE-REPORT
report_name
[TOC=toc_name]
[LAYOUT=layout_name]
[PRINTER-TYPE=printer_type]
END-DECLARE
DECLARE-TABLE
NAME=table_template_name
COLUMN-COUNT=number_of_columns
[COLUMN-ATTRIBUTES=({column number},{keyword1},{value1}, ...,
{keywordn},{valuen})]
[ROW-ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
[TABLE-ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
DECLARE-TOC
toc_name
[FOR-REPORTS=(report_name1[,report_namei]...)]
[DOT-LEADER=YES|NO]
[INDENTATION=position_count_num_lit]
[BEFORE-TOC=procedure_name[(arg1[,argi]...)]]
[AFTER-TOC=procedure_name[(arg1[,argi]...)]]
[BEFORE-PAGE=procedure_name[(arg1[,argi]...)]]
[AFTER-PAGE=procedure_name[(arg1[,argi]...)]]
[ENTRY=procedure-name [(argi [,argi] ...)]]
END-DECLARE
DECLARE-VARIABLE
[DEFAULT-NUMERIC= {DECIMAL[(prec_lit)]|FLOAT|INTEGER}]
[DECIMAL[(prec_lit)]num_var[(prec_lit)][num_var[(prec_lit)]]...]
[FLOAT num_var[num_var]...]
[DATE date_var[date_var]...]
[INTEGER num_var[num_var]...]
[TEXT string_var[string_var]...]
[BINARY binary_var[binary_var]...]
END-DECLARE
#DEFINE
substitution_variable value
DISPLAY
{any_lit|_var|_col}
[[:$]edit_mask|NUMBER|MONEY|DATE][NOLINE]
DIVIDE
{src_num_lit|_var|_col} INTO dst_num_var
[ON-ERROR={HIGH|ZERO}][ROUND=nn]
DO
procedure_name[(arg1[, argi]...)]
DRAW
DRAW {position}
TYPE={type_lit_|_var|_col}
[HEIGHT={height_lit_|_var|_col}]
[WIDTH={width_lit_|_var|_col}]
[RULE={rule_lit_|_var|_col}]
[FILL COLOR=({color_name_lit|_var|_col}|{rgb})]
[LINE COLOR= {color_name_lit|_var|_col}|{rgb})]
427
COMMAND
SYNTAX
[CAP={cap_lit_|_var|_col}]
[LINE-STYLE={line_style_lit_|_var|_col}]
[END-POINT=(row_lit_|_var|_col, column_lit_|_var|_col)]
DUMP-TABLE
NAME=table_name_var|_lit|_col
[CONTINUATION=continuation_var|_lit|_col]
#ELSE
#ELSE
ELSE
ELSE
ENCODE
src_code_string_lit INTO dst_txt_var
END-DECLARE
END-DECLARE
END-DOCUMENT
END-DOCUMENT
END-EVALUATE
END-EVALUATE
END-EXECUTE
END-EXECUTE
END-FOOTING
END-FOOTING
END-HEADING
END-HEADING
#END-IF
#END-IF
#ENDIF
#ENDIF
END-IF
END-IF
END-PROCEDURE
END-PROCEDURE
END-PROGRAM
END-PROGRAM
END-SELECT
END-SELECT
END-SETUP
END-SETUP
END-SQL
END-SQL
END-WHILE
END-WHILE
EVALUATE
{any_lit|_var|_col}
WHEN comparison_operator {any_lit|_var|_col}
sqr_commands...
[BREAK]
[WHEN-OTHER sqr_commands...
[BREAK]]
END-EVALUATE
EXECUTE
[-XC][ON-ERROR=procedure[(arg1[,argi]...)]]
[DO=procedure[(arg1[,argi]...)]]
{[@#status_var=]stored_procedure_name}|
{[@$return_var=]stored_procedure_name}
428 Production Reporting Language Quick Reference
COMMAND
SYNTAX
[[@param=]{any_col|_var|_lit}[OUTPUT][,...]]
[INTO any_coldata_type[(length_int_lit)] [,...]][WITH RECOMPILE]
EXIT-SELECT
EXIT-SELECT
EXTRACT
{dst_txt_var|date_var} FROM
{{src_txt_lit|_var|_col}|{src_date_var|_col}}
{start_num_lit|_var}{length_num_lit|_var}
FILL-TABLE
NAME=table_name_var|_lit|_col
VALUE=value_var|_lit|_col
LOCATION=(row_var|_lit|_col, column_var|_lit[,length_var|_lit])
[ATTRIBUTES=({keyword1},{value1}, ..., {keywordn},{valuen})]
FIND
{{obj_txt_lit|_var|_col}|{date_var|_col}} IN
{{src_txt_var|_col}|{date_var|_col}}
{start_int_lit|_var} dst_location_int_var
GET
dst_any_var...FROM src_array_name(element)[field[(occurs)]]...
GET-COLOR
[PRINT-TEXT-FOREGROUND=({color_name_var})]
[PRINT-TEXT-BACKGROUND=({color_name_var})]
[PRINT-PAGE-BACKGROUND=({color_name_var})]
[LINE-COLOR=({color_name_var})]
[FILL-COLOR=({color_name_var})]
GOTO
label
#IF
{txt_lit|num_lit}comparison_operator {txt_lit|num_lit}
IF
logical_expression
sqr_commands...
[ELSE
sqr_commands...]
END-IF
#IFDEF
substitution_variable
#IFNDEF
#INCLUDE
filename_lit
INPUT
input_var[MAXLEN=nn][prompt]
[TYPE={CHAR|TEXT|NUMBER|INTEGER|DATE}]
[STATUS=num_var][NOPROMPT][BATCH-MODE]
[FORMAT={txt_lit|_var|_col}]
LAST-PAGE
position[pre_txt_lit[post_txt_lit]]
LET
dst_var=expression
LOAD-LOOKUP
In the SETUP section:
NAME=lookup_table_name
TABLE=database_table_name
KEY=key_column_name
RETURN_VALUE=return_column_name
429
COMMAND
SYNTAX
[ROWS=initial_row_estimate_int_lit]
[EXTENT=size_to_grow_by_int_lit]
[WHERE=where_clause_txt_lit]
[SORT=sort_mode]
[QUIET]
[SCHEMA=schema_txt_lit]
[PROCEDURE=proc_txt_lit
[PARAMETERS=({{arg1 [IN|INOUT]}|NULL} [[,argi [IN|INOUT]]|
NULL] ... )]
(or)
COMMAND=command_txt_lit
(or)
GETDATA=getdata_txt_lit]
[{FROM-ROWSETS=({m|m-n|m-|-n} [,...]}|{ALL})}|
{FROM-PARAMETER=parameter_txt_lit}]
In the body of the report:
NAME=lookup_table_name
TABLE=database_table_name
KEY=key_column_name
RETURN_VALUE=return_column_name
[ROWS=initial_row_estimate_lit|_var|_col]
[EXTENT=size_to_grow_by_lit|_var|_col]
[WHERE=where_clause_txt_lit|_var|_col]
[SORT=sort_mode]
[QUIET]
[SCHEMA={txt_lit|_var}]
[PROCEDURE={txt_lit|_var}
[PARAMETERS=({{arg1 [IN|INOUT]}|NULL} [[,argi [IN|INOUT]]|
NULL] ... )]
(or)
COMMAND={txt_lit|_var}
(or)
GETDATA={txt_lit|_var}]
[{FROM-ROWSETS=({m|m-n|m-|-n} [,...]}|{ALL})}|
{FROM-PARAMETER={txt_lit|_var}}]
LOOKUP
lookup_table_name {key_any_lit|_var|_col} {ret_txt_var|_date|_var}
LOWERCASE
txt_var
MBTOSBS
{txt_var}
MOVE
{src_any_lit|_var|_col} TO dst_any_var
[[:$]format_mask|NUMBER|MONEY|DATE]
MULTIPLY
{src_num_lit|_var|_col} TIMES dst_num_var
[ROUND=nn]
NEW-PAGE
[erase_from_line_num_lit|_var|_col]
NEW-REPORT
{report_filename_txt_lit|_var|_col}
430 Production Reporting Language Quick Reference
COMMAND
SYNTAX
NEXT-COLUMN
[AT-END={NEWLINE|NEWPAGE}]
[GOTO-TOP={num_lit|_var|_col}]
[ERASE-PAGE={num_lit|_var|_col}]
NEXT-LISTING
[NO-ADVANCE
[SKIPLINES={num_lit|_var|_col}]
[NEED={num_lit|_var|_col}]
OPEN
{filename_lit|_var|_col} AS
{filenum_num_lit|_var|_col}
{FOR-READING|FOR-WRITING|FOR-APPEND}
{RECORD=length_num_lit[:FIXED|:FIXED_NOLF|:VARY|:BINARY]}]
[STATUS=num_var]]
[ENCODING={_var|_col|ASCII|ANSI|SJIS|JEUC|EBCDIC|EBCDIK290|
EBCDIK1027|UCS-2|UTF-8|others... }]
OPEN-RS
OPEN-RS
NAME=row_set_name_var|_lit|_col
FILENAME=file_name_var|_lit|_col
COLUMN=({name_var|_lit|_col},{type_var|_lit|_col})
PAGE-NUMBER
position [pre_txt_lit[post_txt_lit]]
POSITION
position
[@document_marker[COLUMNS{num_lit|_var|_col}
[num_lit|_var|_col]...]]
PRINT
{any_lit|_var|_col} position[format_command
[format_cmd_params]...]...
PRINT-BAR-CODE
position
{TYPE={bar_code_type_num_lit|_var|_col}}
{HEIGHT={bar_code_height_num_lit|_var|_col}}
{TEXT={bar_code_txt_lit|_var|_col}}
[CAPTION={bar_code_caption_txt_lit|_var|_col}]
[CHECKSUM={bar_code_checksum_txt_lit|_var|_col}]
PRINT-CHART
PRINT-CHART[chart_name]position
[TYPE={chart_type_txt_lit|_var|_col}]
[CHART-SIZE=(chart_width_num_lit|_var|_col,
chart_depth_num_lit|_var|_col)]
[TITLE={title_txt_lit|_var|_col}]
[SUB-TITLE={subtitle_txt_lit|_var|_col}]
[FILL={fill_txt_lit|_var|_col}]
[3D-EFFECTS={3d_effects_txt_lit|_var|_col}]
[BORDER={border_txt_lit|_var|_col}]
[COLOR-PALETTE=color_palette_lit|_var|_col]
[POINT-MARKERS={point_markers_txt_lit|_var|_col}]
[ATTRIBUTES={selector_lit|_var|_col|
LIST:{selector_list_name_lit|_var|_col|(selector_lit|_var|
_col,...)},{decl_key _lit|_var|_col, {decl_value_lit|_var|_col|
LIST:{decl_val_list_name_lit|_var|_col|(decl_val_lit|_var|
431
COMMAND
SYNTAX
_col,...)}|
PALETTE:{color_palette_lit|_var| _col}}},...}}]
[DATA-ARRAY=array_name]
[DATA-ARRAY-ROW-COUNT={x_num_lit|_var|_col}]
[DATA-ARRAY-COLUMN-COUNT={x_num_lit|_var|_col}]
[DATA-ARRAY-COLUMN-LABELS={NONE|array_name|({txt_lit|var|
_col},...)}]
[DATA-LABELS={data_labels_txt_lit|_var|_col}]
[FOOTER-TEXT=NONE|text_lit|_var|_lit]
[SUB-FOOTER-TEXT=NONE|text_lit|_var|_col]
[ITEM-COLOR=(item_color_keyword|_lit|_var|_col,{color_txt_lit_var|
_col}|(r,g,b))]
[ITEM-SIZE=(item_size_keyword_lit|_var|_col, item_size_num_lit|_var|
_col)]
[LEGEND={legend_txt_lit|_var|_col}]
[LEGEND-TITLE={legend_title_txt_lit|_var|_col}]
[LEGEND-PLACEMENT={legend_placement_txt_lit|_var|_col}]
[LEGEND-PRESENTATION={legend_presentation_txt_lit| _var|_col}]]
[PIE-SEGMENT-QUANTITY-DISPLAY={pie_segment_quantity_display_txt_lit|
_var|_col}]
[PIE-SEGMENT-PERCENT_DISPLAY={pie_segment_percent_display_txt_lit|
_var|_col}]
[PIE-SEGMENT-EXPLODE={pie_segment_explode_txt_lit|_var|_col}]
[X-AXIS-GRID={x_axis_grid_txt_lit|_var|_col}]
[X-AXIS-LABEL={x_axis_label_txt_lit|_var|_col}]
[X-AXIS-MIN-VALUE={x_axis_min_value_num_lit|_var|_col}]
[X-AXIS-MAX-VALUE={x_axis_max_value_num_lit|_var|_col}]
[X-AXIS-MAJOR_INCREMENT={x_axis_major_increment_num_lit|_var|_col}]
[X-AXIS-MINOR-INCREMENT={x_axis_minor_increment_num_lit| _var|_col}]
[X-AXIS-MAJOR-TICK_MARKS={x_axis_major_tick_marks_txt_lit| _var|
_col}]
[X-AXIS-MINOR-TICK-MARKS={x_axis_minor_tick_marks_txt_lit|_var|
_col}]
X-AXIS-TICK-MARK-PLACEMENT={x_axis_tick_mark_placement_txt_lit|
_col}]
_var|
[X-AXIS-ROTATE={x_num_lit|_var|_col}]
[X-AXIS-SCALE={x_axis_scale_txt_lit|_var|_col}]
[Y-AXIS-GRID={y_axis_grid_txt_lit|_var|_col}]
[Y-AXIS-LABEL={y_axis_label_txt_lit|_var|_col}]
[Y-AXIS-MASK={mask_txt_lit|_var|_col}]
[Y-AXIS-MIN-VALUE={y_axis_min_value_num_lit|_var|_col}]
[Y-AXIS-MAX-VALUE={y_axis_max_value_num_lit|_var|_col}]
[Y-AXIS-MAJOR-INCREMENT={y_axis_major_increment_num_lit|_var|_col}]
[Y-AXIS-MINOR_INCREMENT={y_axis_minor_increment_num_lit|_var|_col}]
[Y-AXIS-MAJOR-TICK-MARKS={y_axis_major_tick_marks_txt_lit|_var|
_col}]
[Y-AXIS-MINOR-TICK-MARKS={y_axis_minor_tick_marks_txt_lit|_var|
_col}]
[Y-AXIS-TICK-MARK-PLACEMENT={y_axis_tick_mark_placement_txt_lit|
_var|_col}]
[Y-AXIS-SCALE={y_axis_scale_txt_lit|_var|_col}]
[Y2-AXIS-LABEL={y2_axis_label_txt_lit|_var|_col}]
[Y2-AXIS-MASK={mask_txt_lit|_var|_col}]
[Y2-AXIS-MIN-VALUE={y2_axis_min_value_num_lit|_var|_col}]
[Y2-AXIS-MAX-VALUE={y2_axis_max_value_num_lit|_num_lit|_var|_col}]
432 Production Reporting Language Quick Reference
COMMAND
SYNTAX
[Y2-AXIS-MAJOR-INCREMENT={y2_axis_major_increment_num_lit|_var|
_col}]
[Y2-AXIS-MINOR-INCREMENT={y2_axis_minor_increment_num_lit|_var|
_col}]
[Y2-AXIS-MAJOR-TICK-MARKS={y2_axis_major_tick_marks_txt_lit|_var|
_col}]
[Y2-AXIS-MINOR-TICK-MARKS={y2_axis_minor_tick_marks_txt_lit|_var|
_col}]
[Y2-AXIS-SCALE={y2_axis_scale_txt_lit|_var|_col}]
[Y2-COLOR-PALETTE=color_palette_lit|_var|_col]
[Y2-DATA-ARRAY=array_name]
[Y2-DATA-ARRAY-ROW-COUNT={x_num_lit|_var|_col}]
[Y2-DATA-ARRAY-COLUMN-COUNT={x_num_lit|_var|_col}]
[Y2-DATA-ARRAY-COLUMN-LABELS={NONE|array_name|({txt_lit|_var|
_col},...)}]
[Y2-TYPE={chart_type_txt_lit|_var|_col}]
PRINT-DIRECT
[NOLF]
[PRINTER={LINEPRINTER|POSTSCRIPT|HPLASERJET|HTML|LP|PS|HP|HT}]
{txt_lit|_var|_col}...
PRINT-IMAGE
[image_name]position
[TYPE={image_type_lit|_var|_col}]
[IMAGE-SIZE= (width_num_lit|_var|_col,height_num_lit|_var|_col)]
[SOURCE={file_name_lit|_var|_col}]
[[FOR-PRINTER=({POSTSCRIPT|HPLASERJET|HTML|PDF|WINDOWS|
PS|HP|HT|PD|WP|
printer_type_lit|_var|_col}, {image_type_lit|_var|_col},
{file_name_lit _var|_col})]…]
PRINT-TABLE
NAME=table_name_var|_ lit|_col
[CONTINUATION=continuation_var|_lit|_col]
PUT
{src_any_lit|_var|_col}...
INTO dst_array_name(element)[field[(occurs)]]...
READ
{filenum_lit|_var|_col} INTO {any_var:length_int_lit}...
[STATUS=status _num_var]
ROLLBACK
ROLLBACK
SBTOMBS
{txt_var}
SECURITY
[SET=(sid [,sid]...)]
[APPEND=(sid [,sid]...)]
[REMOVE=(sid [,sid]...)]
[MODE=mode]
SET-COLOR
[PRINT-TEXT-FOREGROUND=({color_name_lit|_var|_col|{rgb})]
[PRINT-TEXT-BACKGROUND=({color_name_lit|_var|_col|{rgb})]
[PRINT-PAGE-BACKGROUND=({color_name_lit|_var|_col|{rgb})]
[LINE-COLOR=({color_name_lit|_var|_col}|{rgb})]
[FILL-COLOR=({color_name_lit|_var|_col}|{rgb})]
SET-DELAY-PRINT
delay_var WITH {src_lit|_var|_col}
433
COMMAND
SYNTAX
SHOW
[cursor_position
[CLEAR-SCREEN|CS|CLEAR-LINE|CL][any_lit|_var|_col]
[EDIT edit_mask|NUMBER|MONEY|DATE][BOLD][BLINK]
[UNDERLINE][REVERSE][NORMAL][BEEP][NOLINE]...
STOP
[QUIET]
STRING
{src_any_lit|_var|_col}...
BY {delim_txt_lit|_var|_col}
INTO dst_txt_var
SUBTRACT
SUBTRACT {src_num_lit|_var|_col} FROM dst_num_var[ROUND=nn]
TOC-ENTRY
TEXT={src_txt_lit|_var|_col}
[LEVEL={level_num_lit|_var|_col}]
UNSTRING
{{src_txt_lit|_var|_col}|{src_date_var|_col}}
BY {delim_txt_lit|_var|_col}
INTO dst_txt_var...
UPPERCASE
txt_var
USE
database
USE-COLUMN
{column_number_int_lit|_var|_col}
USE-PRINTER-TYPE
printer-type
See DECLARE-PRINTER for valid types.
USE-PROCEDURE
[FOR-REPORTS=(report_name1[,report_namei]...)]
[BEFORE-REPORT=procedure_name[(arg1[,argi]...)]]
[AFTER-REPORT=procedure_name[(arg1[,argi]...)]]
[BEFORE-PAGE=procedure_name[(arg1[,argi]...)]]
[AFTER-PAGE=procedure_name[(arg1[,argi]...)]]
USE-REPORT
{report_name_lit|_var|_col}
WHILE
logical_expression
sqr_commands...
[BREAK]
[CONTINUE}
sqr_commands...
END-WHILE
WRITE
{filenum_lit|_var|_col} FROM
{{{txt_lit|_var|_col}|{date_var|_col}| num_col}
[:len_int_lit|_var|_col}]}|{num_lit|_var:len_int_lit|_var|_col}}...
[STATUS=status_num_var]
WRITE-RS
NAME=row_set_name_var|_lit|_col
VALUE=({name_var|_lit|_col},{data_var|_lit|_col})
434 Production Reporting Language Quick Reference
Deprecated Information
B
In This Appendix
Deprecated Production Reporting Command-line Flags...................................................................... 435
Deprecated SQR.INI Entries..................................................................................................... 436
Deprecated Transforms.......................................................................................................... 438
Deprecated Production Reporting Commands ................................................................................ 438
BEGIN-REPORT ................................................................................................................... 439
DATE-TIME ........................................................................................................................ 440
DECLARE PRINTER ............................................................................................................... 441
DECLARE PROCEDURE .......................................................................................................... 445
DOLLAR-SYMBOL................................................................................................................. 446
GRAPHIC BOX .................................................................................................................... 448
GRAPHIC FONT ................................................................................................................... 449
GRAPHIC HORZ-LINE............................................................................................................. 450
GRAPHIC VERT-LINE ............................................................................................................. 450
MONEY-SYMBOL ................................................................................................................. 451
NO-FORMFEED ................................................................................................................... 452
PAGE-SIZE ........................................................................................................................ 453
PRINT …CODE .................................................................................................................... 454
PRINTER-DEINIT .................................................................................................................. 454
PRINTER-INIT ..................................................................................................................... 455
Deprecated Production Reporting Command-line Flags
Table 102
Deprecated Production Reporting Command-line Flags
Flag
Description
-EH_FULLHTML:xx
Specifies the level of HTML that your browser supports so appropriate Enhanced HTML code is
generated. Acceptable values for this flag are:
●
40—Generates XHTML 1.1
●
32—Generates HTML 3.2
The following values are deprecated (no longer valid but still accepted for upward compatibility):
●
30—Was used to specify HTML 3.0
●
TRUE—Was used to specify HTML 3.2
Deprecated Production Reporting Command-line Flags 435
Flag
Description
●
FALSE—Was used to specify HTML 3.0
Note: This flag is only applicable when either the -PRINTER:EH or the -PRINTER:EP flag is
specified. Only use this flag when needed. Reports that require this flag should be migrated to
use the XHTML 1.1 generator as soon as possible.
-Mfile
Defines a startup file containing sizes to be assigned to various internal parameters—extremely
small, large, or complex reports.
-Mfiles are text files that have individual switches in the INI files unique to a specific run. (See
“Deprecated SQR.INI Entries” on page 436 for more information.)
-PRINTER:HT
Uses HTML 2.0 when creating output files.
Deprecated SQR.INI Entries
The following SQR.INI entries are deprecated:
●
Values for the FullHTML Keyword in the [Enhanced-HTML] Section
●
[Processing-Limits] Section
●
Values for PDFCompressionText and PDFCompressionGraphics in the [Default-Settings]
Section
Values for the FullHTML Keyword in the [Enhanced-HTML]
Section
Table 103 lists the deprecated values for the FullHTML keyword. (See “Deprecated Production
Reporting Command-line Flags” on page 435on page 435 for more information.)
Table 103
Deprecated Values for the FullHTML Keyword
Entry
Deprecated Values
Description
FullHTML
3.0—Was used to generate HTML 3.0.
Specifies the level of HTML that the browser supports so
appropriate Enhanced HTML code is generated.
TRUE—Was used to generate HTML 3.2.
FALSE—Was used to generate HTML 3.0.
Note: See FullHTML under the “[Enhanced-HTML] Section”
on page 343 for more information on current values.
[Processing-Limits] Section
Production Reporting has built-in default values as to how much memory to allocate to certain
Production Reporting internal structures. In versions of Production Reporting prior to 8.0, you
were required to specify how much memory to allocate for some of these internal structures.
Starting with version 8.0, Production Reporting automatically adjusts the internal structures
until the architectural limit is reached.
The sizes and limitations of Production Reporting’s internal structures are defined in the
[Processing-Limits] section in SQR.INI. Processing limits will still be supported in this release.
436 Deprecated Information
Unlike previous releases, however, you can only increase the default values (you cannot decrease
them).
The following internal structures will now have their default sizes increased as indicated in
Table 104.
Table 104
Entries for [Processing-Limits] Section
Old
New
Entry
Default
Default
Maximum Value
Description
BREAKS
100
1024
65535
Number of BREAK arguments allowed per EVALUATE command.
DYNAMICARGS
70
4096
32767
Maximum number of dynamic SQL arguments.
EXPRESSIONSPACE
8192
65535
65535
Maximum length, in bytes, of temporary string storage used during LET
operations.
FORWARDREFS
200
1024
32767
Maximum number of column forward references.
ONBREAKS
30
1024
65535
Maximum number of ON-BREAK LEVEL=values per SET.
POSITIONS
1800
32767
65535
Maximum number of placement parameters, "(10,5,30)".
PROGLINEPARS
18000
32767
65535
Maximum number of arguments for all program lines.
PROGLINES
5000
16384
32767
Maximum number of program lines (Production Reporting commands).
QUERIES
60
1024
32767
Maximum number of BEGIN-SQL and BEGIN-SELECT paragraphs.
QUERYARGS
240
4096
65535
Maximum number of arguments (bind variables) for all BEGIN-SQL or
BEGIN-SELECT paragraphs.
SQLSIZE
4000
16384
65535
Maximum length of an SQL statement in characters.
STRINGSPACE
15000
32767
65535
Maximum size of string space for program line arguments, in bytes.
SUBVARS
100
4096
32767
Maximum number of substitution variables.
VARIABLES
1500
16384
32767
Maximum number of variables (string, float, integer, decimal, date),
literal values, and database columns.
WHENS
70
1024
65535
Maximum number of WHEN arguments allowed per EVALUATE command.
Note:
The entries in the [Processing-Limits] section are the same as those specified with the -Mfile
command line flag. If the -Mfile command line flag is used, then the [Processing-Limits]
section in SQR.INI is not processed.
Deprecated SQR.INI Entries 437
Values for PDFCompressionText and
PDFCompressionGraphics in the [Default-Settings] Section
The PDFCompressionText and PDFCompressionGraphics settings in the [Default-Settings]
section now appear in the [PDF Settings] section as CompressionText and
CompressionGraphics. See “[PDF Settings] Section” on page 340 for more information.
Table 105
Deprecated Entries in the [Default-Settings] Section
Entry
Value
Description
PDFCompressionText
0-9
Each of these entries specifies the amount of compression to apply. The values range from 0 (no
compression) to 9 (maximum compression).
PDFCompressionGraphics
The default value for both is 6, which is the best value for the compression verses speed.
Deprecated Transforms
Table 106
Deprecated Transforms
Transform
Description
ToCanonical
Transforms Unicode "compatibility characters" to their standard equivalents.
ToTraditionalChinese
Converts all Simplified Chinese characters to their Traditional Chinese equivalent.
ToSimplifiedChinese
Converts all Traditional Chinese characters to their Simplified Chinese equivalent.
Note:
A transform is a function of the LET command. See “Unicode Functions” on page
210on page 211 for information on the available transforms.
Deprecated Production Reporting Commands
If you still have older Production Reporting commands in your program code, refer to
Table 107 to replace them with their updated alternatives. Even though the commands are
technically supported in this release, they do not interact well with the current Production
Reporting lexicon. Incorporating the deprecated commands into your Production Reporting
code can cause unpredictable results.
Table 107
Deprecated Production Reporting Commands
Old Commands
Use Instead
BEGIN-REPORT (END-REPORT)
BEGIN-PROGRAM (END-PROGRAM)
DATE-TIME
datenow function
438 Deprecated Information
Old Commands
Use Instead
DECLARE PRINTER
DECLARE-PRINTER
DECLARE PROCEDURE
DECLARE-PROCEDURE
DOLLAR-SYMBOL
ALTER-LOCALE
GRAPHIC FONT
ALTER-PRINTER
GRAPHIC-BOX
DRAW
GRAPHIC HORZ-LINE
DRAW
GRAPHIC VERT-LINE
DRAW
MONEY-SYMBOL
ALTER-LOCALE
NO-FORMFEED
DECLARE-LAYOUT
PAGE-SIZE
DECLARE-LAYOUT
PRINTER-DEINIT
DECLARE-PRINTER
PRINTER-INIT
DECLARE-PRINTER
PRINT…CODE
PRINT…CODE-PRINTER
Note:
Two older commands, DECLARE PRINTER and DECLARE PROCEDURE, do not contain
hyphens. The new commands, DECLARE-PRINTER and DECLARE-PROCEDURE, contain
hyphens.
BEGIN-REPORT
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
BEGIN-PROGRAM.
Function
Begins a report.
Syntax
BEGIN-REPORT
BEGIN-REPORT 439
Description
After processing the commands in the SETUP section, Production Reporting starts program
execution at the BEGIN-REPORT section. The PROGRAM section typically contains a list of DO
commands, though other commands can be used. This is the only required section in an
Production Reporting program.
Examples
begin-report
do startup
do main
do finish
end-report
DATE-TIME
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
the datenow function in the LET command.
Function
Retrieves the current date and/or time from the local machine (or from the database for Oracle
and some DB2 platforms) and places it in the output file at the specified position or into a column
variable.
Syntax
DATE-TIME
position [date_format[col_var]]
Arguments
position
The position for printing the date.
date_format
A string literal containing the date format mask.
col_var
Places the retrieved date-time into a column variable rather than in the output file.
Description
If col_var is specified, a date_format must be supplied and the current date and time is
retrieved each time this command is executed. Otherwise, the date is retrieved only at program
start and the same date and/or time is printed each time.
440 Deprecated Information
If a date_format is not specified, then the date is returned in the default format for that
database.
Table 108
Default Date-Time Formats
Database
Default Date-Time Format
DB2
YYYY-MM-DD-HH:MI
YYYY-MM-DD-HH:MI:SS.NNNNNN
Informix
YYYY-MM-DD HH:MI
YYYY-MM-DD HH:MI:SS.NNN
Oracle
DD-Mon-YYYY HH:MI PM
Sybase
DD-MON-YYYY HH:MI
For some databases, there are two default formats. The first format prints the date-time, as in
the following example:
date-time (+1,1)
The second format retrieves the date-time into a column variable, as follows:
date-time () '' &date1
Obviously, for those databases with only one default format, that format is always used in either
of these cases.
For information on the valid edit mask format codes, see Table 52, “Miscellaneous Functions,”
on page 212.
Examples
date-time
date-time
date-time
date-time
date-time
(1,50) MM/DD/YY
(1,1) 'Day Mon DD, YYYY'
() HH:MI &time
(+1,70) 'MON DD YYYY HH24:MI' &datetime
(#i, #j) 'YYYY-MM-DD' &date1
DECLARE PRINTER
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
DECLARE-LAYOUT and DECLARE-PRINTER.
Function
Specifies the printer type and sets printer characteristics.
DECLARE PRINTER 441
Syntax
DECLARE PRINTER
[TYPE=printer_type_lit]
[ORIENTATION=orientation_lit]
[LEFT-MARGIN=left_margin_num_lit]
[TOP-MARGIN=top_margin_num_lit]
[LINE-SIZE=line_size_num_lit]
[CHAR-SIZE=char_size_num_lit]
[LINES-INCH=lines_inch_int_lit]
[CHARS-INCH=chars_inch_num_lit]
[POINT-SIZE=point_size_num_lit]
[FONT-TYPE=font_type_txt_lit]
[SYMBOL-SET=symbol_set_id_lit]
[STARTUP-FILE=file_name_txt_lit]
[FONT=font_int_lit]
[BEFORE-BOLD=before_bold_string_txt_lit]
[AFTER-BOLD=after_bold_string_txt_lit]
Arguments
Table 109 describes the arguments for the DECLARE PRINTER command.
Table 109
DECLARE PRINTER Command Arguments
Argument
Choice or Measure
Default Value
Description
TYPE
LINEPRINTER, POSTSCRIPT, HPLASERJET
LINEPRINTER
Production Reporting creates output specific to each
printer.
LINEPRINTER files generally consist of ASCII
characters and can be viewed by a text editor.
POSTSCRIPT files consist of ASCII characters, but you
need to know PostScript to understand what will be
shown on the printer.
HP Laserjet files are binary files and cannot be edited
or viewed.
ORIENTATION
PORTRAIT, LANDSCAPE
PORTRAIT
Portrait pages are printed vertically.
Landscape pages are printed horizontally.
Printing in landscape on HP Laserjet printers requires
landscape fonts.
LEFT-MARGIN
inches
0.5
This argument does not apply to LINEPRINTER
printers.
This is the amount of blank space to leave at the left
side of the page.
TOP-MARGIN
inches
0.5
This argument does not apply to LINEPRINTER
printers.
This is the amount of blank space to leave at the top
of the page.
LINE-SIZE
points
442 Deprecated Information
12
This argument does not apply to LINEPRINTER
printers.
Argument
Choice or Measure
Default Value
Description
This is the size of each Production Reporting line on
the page. There are 72 points per inch.
If LINE-SIZE is not specified, it follows the value for
POINT-SIZE, if specified. The default value of 12
points yields 6 lines per inch.
CHAR-SIZE
points
7.2
This argument does not apply to LINEPRINTER
printers.
This is the size of each Production Reporting
horizontal character column on the page (for
example, the distance between the locations (1,12)
and (1,13)). If CHAR-SIZE is not specified and the
POINT-SIZE is less than 8.6, CHAR-SIZE is set to 4.32,
which yields 16.6 characters per inch. The default
value of 7.2 yields 10 characters per inch.
LINES-INCH
lines
6
This argument does not apply to Lineprinter printers.
This is an alternate way of indicating the line size, in
lines per inch, rather than in points for the LINE-SIZE.
CHARS-INCH
characters
10
This argument does not apply to LINEPRINTER
printers.
This is an alternate way of indicating the width of each
Production Reporting character column, in characters
per inch, rather than points for CHAR-SIZE.
POINT-SIZE
points
12
This argument does not apply to Lineprinter printers.
This is the beginning size of the selected font.
FONT-TYPE
PROPORTIONAL, FIXED
Depends on the font
This argument applies only to HP Laserjet printers and
needs to be specified only for font types not defined
in Table 33, “Fonts Available for HP LaserJet Printers
in Production Reporting,” on page 140.
SYMBOL-SET
HP defined sets
0U
This argument applies only to HP Laserjet printers.
The default value of "0U" is for the ASCII symbol set.
For a complete list of the symbol sets, see the HP
Laserjet Technical Reference Manual.
STARTUP-FILE
filename
POSTSCRI.STR
This argument applies only to PostScript printers.
This is used to specify an alternate startup file. Unless
otherwise specified, the default startup file is located
in the directory specified by the environment variable
SQRDIR.
FONT
font_number
3
This is the font number of the typeface to use. For HP
Laserjet printers, this is the typeface value as defined
by Hewlett-Packard. For a complete list of the
typeface numbers, see the HP Laserjet Technical
Reference Manual. For PostScript printers,
Production Reporting supplies a list of fonts and
arbitrary font number assignments in the file
DECLARE PRINTER 443
Argument
Choice or Measure
Default Value
Description
POSTSCRI.STR. The font numbers are the same as
those for HP Laserjet printers, wherever possible, so
that you can use the same font number for reports to
be printed on both types of printers. You can modify
the font list in POSTSCRI.STR to add or delete fonts.
Read the POSTSCRI.STR file for instructions.
Table 33, “Fonts Available for HP LaserJet Printers in
Production Reporting,” on page 140 lists the fonts
available in Production Reporting internally.
Table 34, “Fonts Available for PostScript Printers,” on
page 141 lists the fonts available in the Production
Reporting POSTSCRI.STR file.
BEFORE-BOLD
any string
(none)
The BEFORE-BOLD and AFTER-BOLD arguments are
for Lineprinter printers only. They specify the
character string to turn bolding on and off. If the string
contains blank characters, enclose it in single quote
marks ('). To specify non-printable characters, such
as ESC, enclose the decimal value inside angle
brackets as follows:
BEFORE-BOLD=<27>[r ! Turn on bold
AFTER-BOLD=<27>[u ! Turn it off
These arguments work in conjunction with the BOLD
argument of the PRINT command.
AFTER-BOLD
any string
(none)
See BEFORE-BOLD.
The font you choose—in orientation, typeface, and point size—must be an internal font,
available in a font cartridge, or downloaded to the printer.
For fonts not listed in Table 33, “Fonts Available for HP LaserJet Printers in Production
Reporting,” on page 140, you must indicate the font style using the FONT-TYPE argument, or
the correct typeface cannot be selected by the printer.
Description
DECLARE PRINTER can be used in either the SETUP section or in the body of the report. Generally,
you should use it in the SETUP section. However, if you do not know what type of printer you
will be using until the report is run, or if you need to change some of the arguments depending
on user selection, you could put several DECLARE PRINTER commands in the body of the report
and execute the one you need.
The following arguments take effect only once, upon execution of the first PRINT command,
and thereafter have no effect even if changed:
●
LINE-SIZE
●
CHAR-SIZE
●
LINES-INCH
●
CHARS-INCH
●
ORIENTATION
444 Deprecated Information
Production Reporting maps its line and column positions on the page by using a grid determined
by the LINE-SIZE and CHAR-SIZE (or LINES-INCH and CHARS-INCH) arguments. Each
printed piece of text is placed on the page using this grid. Because the characters in proportional
fonts vary in width, it is possible that a word or string is wider than the horizontal space you
have allotted, especially in words containing uppercase letters. To account for this behavior, you
can either move the column position in the PRINT statement or indicate a larger CHAR-SIZE in
the DECLARE PRINTER command.
DECLARE PROCEDURE
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
DECLARE-PROCEDURE.
Function
Defines specific event procedures.
Syntax
DECLARE PROCEDURE
[BEFORE-REPORT=procedure_name]
[AFTER-REPORT=procedure_name]
[BEFORE-PAGE=procedure_name]
[AFTER-PAGE=procedure_name]
Arguments
BEFORE-REPORT
A procedure to execute at the time of the first PRINT command. It may be used, for example, to
create a report heading.
AFTER-REPORT
A procedure to execute just before the report file is closed at the end of the report. It can be used
to print totals or other closing summary information. If no report was generated, the procedure
does not execute.
BEFORE-PAGE
A procedure to execute at the beginning of every page, just before the first PRINT command for
the page. It can be used, for example, to set up page totals.
AFTER-PAGE
A procedure to execute just before each page is written to the file. It can be used, for example,
to display page totals.
DECLARE PROCEDURE 445
Description
DECLARE PROCEDURE can be issued either in the SETUP section or in the body of the report. You
can use the command as often as you like.
If you issue multiple DECLARE PROCEDURE commands, the last one takes precedence. In this
way, you can turn procedures on and off while the report is executing. The referenced procedures
do not take any arguments; however, the variables can be local by using the LOCAL argument.
In addition, they can only PRINT into the body of the report, that is, they cannot PRINT into the
header and/or footer areas.
Examples
declare procedure
before-page=page_setup
after-page=page_totals
DOLLAR-SYMBOL
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
ALTER-LOCALE.
Function
Redefines the currency symbol within numeric edit masks.
Syntax
DOLLAR-SYMBOL
new_symbol
Arguments
new_symbol
A new, single character to be used in edit masks instead of the dollar sign ($).
Description
The dollar sign ($) is the default currency symbol for coding edit masks in the program that
prints on report listings. The DOLLAR-SYMBOL provides a way to change that symbol for both
the edit mask and for printing.
If you wish to change the symbol that prints on the report, use MONEY-SYMBOL in the
PROCEDURE section. DOLLAR-SYMBOL and MONEY-SYMBOL can be used together to customize
your Production Reporting programs and the reports they produce.
This command is used only in the SETUP section.
446 Deprecated Information
Note:
MONEY-SYMBOL has the same effect as these options of the ALTER-LOCALE command:
MONEY-SIGN and MONEY-SIGN-LOCATION=LEFT.
Table 110 lists the characters that DOLLAR-SYMBOL cannot take.
Table 110
Characters Disallowed in the DOLLAR-SYMBOL Command
Type
Characters
Numbers
0, 8, 9
Alphabetical
b
B
e
E
n
N
r
R
v
V
.
,
-
+
!
*
_
`
<
>
(
)
Symbols
Examples
The following example shows how to use the DOLLAR-SYMBOL command:
begin-setup
dollar-symbol £
! Define £ as the currency symbol
end-setup
begin-procedure
...
print #amount () edit £££,999.99
...
end-procedure
In the previous example, if you used the dollar sign in the edit mask after defining the dollar
symbol as £, the following error message appears:
Bad numeric 'edit' format: $$$,999.99
DOLLAR-SYMBOL 447
GRAPHIC BOX
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
the DRAW command.
Function
Draws a box.
Syntax
GRAPHIC ({line_int_lit|_var},{column_int_lit|_var},
{width_int_lit|_var}) BOX {depth_int_lit|_var}
[rule_width_int_lit|_var [shading_int_lit|_var]]
Arguments
width and depth
The width is the horizontal size in character columns; depth is the vertical size in lines. The top
left corner of the box is drawn at the line and column specified. The bottom right corner is
calculated using the width and depth. You can specify relative placement with (+), (-), or numeric
variables, as with regular print positions.
rule_width
The default rule width is 2 decipoints (there are 720 decipoints per inch). The top horizontal
line is drawn just below the base of the line above the starting point. The bottom horizontal line
is drawn just below the base of the ending line. Therefore, a one-line deep box surrounds a single
line.
shading
A number between 1 and 100, specifying the percentage of shading to apply. 1 is very light, and
100 is black. If no shading is specified, the box is blank. Specify a rule-width of zero, if a border
is not desired.
Description
Draws a box of any size at any location on the page. Boxes can be drawn with any size rule and
can be shaded or left empty. After GRAPHIC commands execute, Production Reporting changes
the current print location to the starting location of the graphic. (This is different than the way
the PRINT command works.)
Examples
graphic (1,1,66) box 58 20! Draw box around page
graphic (30,25,10) box 10! Draw a 10-characters-wide-by-10- characters-long
box
graphic (1,1,66) box 5 0 8! Draw 5 line shaded box (without ! border)
448 Deprecated Information
graphic (50,8,30) box 1! Draw box around 1 line
GRAPHIC FONT
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
ALTER-PRINTER and DECLARE-PRINTER to set the FONT, FONT-TYPE, POINT-SIZE,
and PITCH.
Function
Changes a font.
Syntax
GRAPHIC
()
FONT {font_number_int_lit|_var} [point_size_int_lit|_var[{1|0}
[pitch_int_lit|_var]]]
Arguments
font_number
For HP LaserJet printers, the specified font must be installed in the printer. For PostScript
printers, the font must be defined in the POSTSCRI.STR file.
point_size
If the point_size is omitted, the size from the most recent DECLARE-PRINTER or GRAPHIC
FONT command is used.
[1|0]
This argument is for HP LaserJet printers only. It is needed only if you are using a font that
Production Reporting does not know about. (See Table 34, “Fonts Available for PostScript
Printers,” on page 141 under the DECLARE-PRINTER command.) 1 indicates a proportional
font, and 0 indicates a fixed pitch font. The default is proportional.
pitch
If the specified font is fixed pitch, you should also indicate the pitch in characters per inch.
Examples
The following example shows the GRAPHIC FONT command:
graphic () font 23 8.5
graphic () font 6 12 0 10
graphic () font :#font_number :#point_size
GRAPHIC FONT 449
GRAPHIC HORZ-LINE
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
the DRAW command.
Function
Draws a horizontal line.
Syntax
GRAPHIC ({line_int_lit|_var},{column_int_lit|_var},
{length_int_lit|_var}) HORZ-LINE [rule_width_int_lit |_var]
Arguments
rule_width
The default rule width is 2 decipoints.
Description
Draws a horizontal line from the location specified, for the length specified. Horizontal lines are
drawn just below the base. After GRAPHIC commands execute, Production Reporting changes
the current print location to the starting location of the graphic. (This is different than the way
the PRINT command works.)
Examples
graphic (4,1,66) horz-line 10! Put line under page heading
graphic (+1,62,12) horz-line! Put line under final total
GRAPHIC VERT-LINE
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
the DRAW command.
Function
Draws a vertical line.
450 Deprecated Information
Syntax
GRAPHIC ({line_int_lit|_var},{column_int_lit|_var},
{length_int_lit|_var}) VERT-LINE [rule_width_int_lit|_var]
Arguments
rule_width
The default rule width is 2 decipoints.
Description
Draws a vertical line from the location specified for the length (in lines) specified. Vertical lines
are drawn just below the base line of the line position specified to just below the base line of the
line reached by the length specified. To draw a vertical line next to a word printed on line 27,
position the vertical line to begin on line 26, for a length of 1 line.
After GRAPHIC commands execute, Production Reporting changes the current print location to
the starting location of the graphic. (This is different than the way the PRINT command works.)
Examples
graphic (1,27,54) vert-line! Draw lines between columns
graphic (1,52,54) vert-line
graphic (3,+2,4) vert-line 6! Red line the paragraph
MONEY-SYMBOL
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
the ALTER-LOCALE command.
Function
Redefines the currency symbol to be printed.
Syntax
MONEY-SYMBOL new_symbol
Arguments
new_symbol
A new, single character to replace the dollar sign ($) or DOLLAR-SYMBOL character on the printed
report.
MONEY-SYMBOL 451
Description
To change the symbol that prints on the report, use the MONEY-SYMBOL in the programs
PROCEDURE sections. When the MONEY-SYMBOL is set, that value is used until the next
MONEY-SYMBOL command executes.
The DOLLAR-SYMBOL and MONEY-SYMBOL can be used together to customize your Production
Reporting application programs and the reports they produce.
To indicate a non-edit character, surround its decimal value with angle brackets (<>). Refer to
Table 110 under Table 110 for characters that cannot be used with MONEY-SYMBOL.
Note:
MONEY-SYMBOL has the same effect as these options of the ALTER-LOCALE command:
MONEY-SIGN and MONEY-SIGN-LOCATION=LEFT.
Examples
The following example shows how to use the DOLLAR-SYMBOL and MONEY-SYMBOL commands:
begin-setup
dollar-symbol £
! Define £ as the
! currency symbol
end-setup
begin-procedure
! If #Amount=1234.56
...
money-symbol £
print #Amount () Edit £££,999.99
! Prints as: £1,234.56
...
money-symbol $
print #Amount () Edit £££,999.99
! Prints as: $1,234.56
...
money-symbol
print #Amount () Edit £££,999.99
! Prints as: 1,234.56
...
end-procedure
NO-FORMFEED
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
the FORMFEED parameter of the DECLARE-LAYOUT command.
Function
Prevents form feed characters from being written to the output file.
452 Deprecated Information
Syntax
NO-FORMFEED
Description
NO-FORMFEED is useful for certain types of reports; for example, flat file output. It is used only
in the SETUP section.
Do not write form feed control characters directly into the output file between pages.
Examples
begin-setup
no-formfeed
end-setup
PAGE-SIZE
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
the MAX-LINES and MAX-COLUMNS parameters of the DECLARE-LAYOUT command.
Function
Sets the page size.
Syntax
PAGE-SIZE page_depth_num_lit
page_width_num_lit
Description
If you are printing multiple reports, you must use the PAPER-SIZE parameter of the DECLARELAYOUT command .
This command is used in the SETUP section only.
Specify the page_depth in lines and the page_width in columns. An average report printed
on 8 1/2 by 11 inch paper might have a page size of 60 lines by 80 columns. A 3 inch by 5 inch
sales lead card might have a size of 18 by 50.
If the page size is not specified, the default of 62 lines by 132 columns is used.
For line printers, Production Reporting stores one complete page in a buffer before writing the
page to the output file when you issue a NEW-PAGE command or when a page overflow occurs.
You could define a page to be 1 line deep and 4,000 characters wide. This could be used for
writing large flat files, perhaps for copying to magnetic tape. Each time a NEW-PAGE occurs, one
record would be written. The NO-FORMFEED command in the SETUP section can be used to
suppress form feed characters between pages.
PAGE-SIZE 453
Use a page width at least one character larger than the right-most position that will be written.
This prevents unwanted wrapping when printing. When the last column position on a line is
printed, the current position becomes the first position of the next line. This can cause confusion
when using relative line positioning with the NEXT-LISTING command. Having a wider page
than necessary does not waste any file space since Production Reporting trims trailing blanks
on each line before writing the report file.
The size of the internal page buffer used to store a complete page in memory can be determined
by multiplying the page depth by the width in the PAGE-SIZE command. For PCs, the page
buffer is limited to 64K bytes. On other computers, the page buffer is limited only by the amount
of memory available.
Examples
begin-setup
page-size
end-setup
57
132
! 57 lines long by 132 columns wide
PRINT …CODE
The PRINT command has the following format option :
CODE
CODE is a qualifier that may be discontinued in a future release. Use CODE-PRINTER instead.
If you use CODE, the sequence is assumed to be for the printer type specified in the DECLAREREPORT or default printer, if none is specified.
PRINTER-DEINIT
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Production Reporting functionality, use
the RESET-STRING parameter of the DECLARE-PRINTER command.
Function
Sends control or other characters to the printer at the end of a report.
Syntax
PRINTER-DEINIT initialization_string
Description
Specify nondisplay characters by placing their decimal values inside angled brackets. For
example, <27> is the ESC or escape character.
454 Deprecated Information
PRINTER-DEINIT is used only in the SETUP section and is designed for use with Line-Printer
style output. It has limited functionality with HP LaserJet and PostScript printers.
Examples
begin-setup
printer-deinit<27>[7J
end-setup
! Reset the printer
PRINTER-INIT
Note:
This command may be discontinued in a future release. We highly recommend that you no
longer use this command. To take advantage of newer Oracle's Hyperion® SQR® Production
Reporting functionality, use the INIT-STRING parameter of the DECLARE-PRINTER
command.
Function
Sends control or other characters to the printer at the beginning of a report.
Syntax
PRINTER-INIT initialization_string
Description
Specify non-display characters by placing their decimal values inside angled brackets. For
example, <27> is the ESC or escape character.
PRINTER-INIT is used only in the SETUP section and is designed for use with Line-Printer
output. It has limited functionality with HP LaserJet and PostScript printers.
Examples
begin-setup
printer-init<27>[7J
end-setup
! Set the printer
PRINTER-INIT 455
456 Deprecated Information
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
Z
Index
Symbols
#character, defined, 14
#current-column, 16
#current-line, 16
#DEFINE, 153, 187, 188
#ELSE, 164, 185
#end-file, 17, 276
#END-IF, 166
#ENDIF, 166, 185
#IF, 184, 185
#IFDEF, 187
#IFNDEF, 185, 188
#INCLUDE, 25, 188
#page-count, 17
#return-status, 17
#sql-count, 17
#sql-status, 17
#sqr-max-columns, 19
#sqr-max-lines, 19
#sqr-pid, 19
$character, defined, 14
$current-date, 16
$sql-error, 17
$sql-test, 17
$sqr-connected-db, 17
$sqr-connected-db-name, 18
$sqr-database, 18
$sqr-dbcs, 18
$sqr-encoding, 18
$sqr-encoding-console, 18
$sqr-encoding-database, 18
$sqr-encoding-file-input, 18
$sqr-encoding-file-output, 18
$sqr-encoding-hostname, 18
$sqr-encoding-report-output, 18
$sqr-encoding-source, 18
$sqr-locale, 18
$sqr-platform, 19
$sqr-program, 19
$sqr-report, 19
$sqr-ver, 19
$username, 19
&character, defined, 14
-A, 21
-Bnn
BEGIN-SELECT command, 73
definition, 21
-BURST,{xx}, 21
-C, 22
-CB, 22
-Cnn argument
BEGIN-SELECT command, 73
BEGIN-SQL command, 77
-DBconnectionstring argument, BEGIN-SELECT, 74,
78
-DBdatabase, 22
-DEBUG, 22, 185, 187, 188
-Dnn, 22
-DNT, 22
-E, 22
-EH_APPLETS, dir, 22
-EH_BQD, 23
-EH_BQD, file, 23
-EH_BROWSER, xx, 23
-EH_CSV, 23
-EH_CSV, file, 23
-EH_CSVONLY, 23
-EH_DEBUG, 24
-EH_FULLHTML, xx, 435
-EH_ICONS, dir, 24
-EH_IMAGES, dir, 24
-EH_KEEP, 24
-EH_LANGUAGE, xx, 24
-EH_PDF, 24
-EH_SCALE, nn, 24
-EH_XIMG, 25
Index 457
A
B
C
D
E
F
G
-EH_XML, file, 25
-EH_ZIP, file, 25
-F, 25
-ID, 25
-KEEP, 26, 145
-ldir_list, 25
-LL, 26
-Mfile, 436
-NOLIS, 26, 145
-O, 26
-PB, 26
-PRINTER
EH, 26
EP, 26
GD, 26
HP, 27
LP, 27
PD, 27
PS, 27
WP, 27, 141
xx, 26, 436
-RS, 28
-RT, 28
-S, 28
-Tnn, 28
-T{B}, 28
-T{Z}, 28
-U, 28
-Vserver, 29
-XB, 29
-XC
definition of, 29
in the EXECUTE command, 170
-XCB, 29
-XFRM, 29
-XI, 29
-XL, 29
-XLFF, 29
-XMB, 29
-XNAV, 29
-XP
BEGIN-SELECT command, 73
BEGIN-SQL command, 77
definition of, 30
-XTB, 30
-XTOC, 30
-ZEN{name}, 30
458 Index
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
Z
-ZIF{file}, 30
-ZIV, 30
-ZMF{file}, 30, 31
-ZRF{file}, 31
@character, defined, 14
A
abs, 197, 207
acos, 198
ADD, 36
AFTER, 62, 63
AFTER qualifier, ON-BREAK argument, 255
AFTER-BOLD argument
DECLARE-PRINTER command, 138, 444
PRINT command, 241
AFTER-PAGE argument
DECLARE PROCEDURE command, 445
DECLARE-PROCEDURE command, 143
DECLARE-TOC command, 149
USE-PROCEDURE command, 295
AFTER-REPORT argument
DECLARE PROCEDURE command, 445
DECLARE-PROCEDURE command, 143
USE-PROCEDURE command, 295
AFTER-TOC argument
DECLARE-TOC command, 149
ALTER-COLOR-MAP, 37
ALTER-CONNECTION, 38
ALTER-LOCALE, 41
ALTER-PRINTER, 48, 138, 142
ALTER-REPORT, 50
ALTER-TABLE, 55
arccosine, 198
arcsine, 198
arctangent, 198
array
defined, 212
elements, 94
arrays
ARRAY-ADD command, 58
ARRAY-DIVIDE, 58
ARRAY-MULTIPLY, 58
ARRAY-SUBTRACT command, 58
maximums, 93
ascii, 203
asciic, 203
asin, 198
A
B
C
D
E
F
G
H
I
K
ASK, 60, 187, 188
AT-END argument, NEXT-COLUMN command,
231
atan, 198
ATTRIBUTES argument
declaration keywords, 115
definition of, 112
selector/sub-selector keywords, 113
B
bar codes, 260
BATCH-MODE, INPUT command, 190
BEEP argument, SHOW command, 284
BEFORE, 62, 63
BEFORE qualifier, ON-BREAK argument, 255
BEFORE-BOLD argument
DECLARE-PRINTER command, 138, 444
PRINT command, 241
BEFORE-PAGE argument
DECLARE PROCEDURE command, 445
DECLARE-PROCEDURE command, 143
DECLARE-TOC command, 149
USE-PROCEDURE command, 295
BEFORE-REPORT argument
DECLARE PROCEDURE command, 445
DECLARE-PROCEDURE command, 143
USE-PROCEDURE command, 295
BEFORE-TOC argument, DECLARE-TOC
command, 149
BEGIN-DOCUMENT, 61
BEGIN-EXECUTE, 62
BEGIN-FOOTING, 66
BEGIN-HEADING, 68. See also Page Header
BEGIN-PROCEDURE, 69
BEGIN-PROGRAM, 72
BEGIN-REPORT, 439
BEGIN-SELECT, 62, 72
BEGIN-SETUP, 76
BEGIN-SQL, 77
bind variables, 73
BLINK argument, SHOW command, 284
BOLD argument
PRINT command, 241
SHOW command, 284
BOTTOM-MARGIN argument
DECLARE-LAYOUT command, 134
BOX and SHADE, 242
L
M
N
O
P
Q
R
S
T
U
V
W
Z
BOX argument
GRAPHIC command, 448, 450
PRINT command, 241
BREAK, 80
BREAK argument, EVALUATE command, 169
break processing, field changes, 254
C
CALL, 80
CALL-SYSTEM, 80
callable Production Reporting, 22, 29
cancel dialog box, 22
CAPTION argument, PRINT-BAR-CODE, 261
ceil, 198
CHAR-SIZE argument, DECLARE-PRINTER
command, 443
CHAR-WIDTH argument, DECLARE-LAYOUT
command, 135
CHARS-INCH argument, DECLARE-PRINTER
command, 443
charts, 263
CHECKSUM argument, PRINT-BAR-CODE, 261
chr, 204
CLEAR-ARRAY, 85, 92
CLEAR-LINE argument, SHOW command, 283
CLEAR-SCREEN argument, SHOW command, 283
CLOSE, 86
CLOSE-RS, 86
COLOR argument
ALTER-COLOR-MAP command, 37
DECLARE-COLOR-MAP command, 126
DECLARE-PRINTER command, 138
GET-COLOR command, 181
SET-COLOR command, 280
COLUMNS, 14, 88, 293
COLUMNS argument, POSITION command, 238
COMMAND, 62, 63, 218, 220
command line
flags, 21
command_line, 212
COMMIT, 88
compiler directives, 164, 166, 185, 187, 188
CONCAT, 89
concatenation, 288
cond, 212
conditional processing, 168, 186, 297
CONNECT, 91
Index 459
A
B
C
D
E
F
G
H
I
K
L
CONNECTION, 62, 63
connection_name, 37, 39, 128, 182, 280
copyright banner, 25
cosh, 198
cosine, 198
cosValue type, 198
CREATE-ARRAY, 92, 274
CREATE-COLOR-PALETTE, 94
CREATE-LIST, 95
CREATE-TABLE, 96
csv file, 23
csv icon, 23
currency symbol, 446, 451
D
data input, 189
database cursors, 91
database type, 18
DATE argument
DECLARE-VARIABLE command, 151
DISPLAY command, 155
MOVE command, 225
SHOW command, 284
date edit format characters, 247
date functions
dateadd, 208
datediff, 209
datenow, 209
datetostr, 209
strtodate, 209
DATE-EDIT-MASK argument, ALTER-LOCALE
command, 42
DATE-SEPARATOR argument, ALTER-LOCALE
command, 43
DATE-TIME, 440
dateadd, 208
datediff, 209
datenow, 209
datetostr, 209
DAY-OF-WEEK-CASE argument, ALTER-LOCALE
command, 43
DAY-OF-WEEK-FULL argument, ALTER-LOCALE
command, 43, 336
DAY-OF-WEEK-SHORT argument, ALTERLOCALE command, 43, 336
DB2, 441
DDO, 219, 239
460 Index
M
N
O
P
Q
R
S
T
U
V
W
Z
ALTER-CONNECTION command, 39
BEGIN-EXECUTE command, 62
BEGIN-SELECT command, 74
BEGIN-SQL command, 78
COMMIT command, 89
CONNECT command, 91
DECLARE-CONNECTION command, 128
DECLARE-VARIABLE command, 152
LET command, 192
LOAD-LOOKUP command, 218
PRINT command, 239
ROLLBACK command, 278
variables in the Environment section, 334
DECIMAL argument, DECLARE-VARIABLE
command, 151
DECIMAL-SEPARATOR argument, ALTERLOCALE command, 43
DECLARE PRINTER, 441
DECLARE PROCEDURE, 445
DECLARE-CHART, 100, 265
ATTRIBUTES argument, 112
DECLARE-COLOR-MAP, 126
DECLARE-CONNECTION, 63, 128
DECLARE-IMAGE, 130
DECLARE-LAYOUT, 132
PAPER-SIZE parameter, 453
DECLARE-PRINTER, 111, 137
DECLARE-PROCEDURE, 143
DECLARE-REPORT, 144
DECLARE-TABLE, 146
DECLARE-TOC, 148
DECLARE-VARIABLE, 150
DEFAULT-NUMERIC argument, 151
Default-Settings section, in SQR.INI, 328
deg, 199
delete, 203
destination field, 225
DISPLAY, 155
DISTINCT argument, BEGIN-SELECT command,
73
DIVIDE, 158
DO, 72, 159, 440
DO argument, EXECUTE command, 171
document marker, 61, 238
DOCUMENT paragraphs, 348
DOLLAR-SYMBOL, 446, 452
A
B
C
D
E
F
G
H
I
K
DOT-LEADER argument, DECLARE-TOC
command, 149
DSN, 37, 39, 126, 128
DSQUERY, 333
DUMP-TABLE, 163
dynamic query variables, 73
E
edit, 204
EDIT argument
SHOW command, 284
edit masks
case sensitivity, 247
default formats, 251
description of, 247
samples, 249
uses, 250
with specified width values, 250
edit types, 244
EDIT-OPTION-AD argument, ALTER-LOCALE
command, 43, 336
EDIT-OPTION-AM argument, ALTER-LOCALE
command, 42, 43
EDIT-OPTION-BC argument, ALTER-LOCALE
command, 43, 336
EDIT-OPTION-NA argument, ALTER-LOCALE
command, 43
EDIT-OPTION-PM argument, ALTER-LOCALE
command, 43
ELSE, 164
ENCODE, 164
Encoding, 210, 211, 212, 234
END-DECLARE, 126, 165
END-DOCUMENT, 165
END-EVALUATE, 165
END-EXECUTE, 62
END-FOOTING, 165
END-HEADING, 165
END-IF, 167
END-PROCEDURE, 167
END-PROGRAM, 167
END-SELECT, 62, 167
END-SETUP, 167
END-SQL, 167
END-WHILE, 167
ending a query, 175
Enhanced-HTML, 343, 345
L
M
N
O
P
Q
R
S
T
U
V
W
Z
environment variables, 333
Environment, Common, 333
ERASE-PAGE argument, NEXT-COLUMN
command, 232
error message file, 30
EVALUATE, 80, 168
Examples, 38
EXECUTE, 170
exists, 203
EXIT-SELECT, 175
exp, 199
exponents, 199
expressions, 192, 193
EXTENT argument, LOAD-LOOKUP command,
219
external source files, 188
EXTRACT, 176
F
FIELD argument, CREATE-ARRAY command, 92
fields See columns, 92
file number, 234
file-related functions
delete, 203
exists, 202, 203
rename, 203
files, reading, 275
FILL-TABLE, 177
FIND, 179
FIXED argument, OPEN command, 234
FIXED_NOLF argument, OPEN command, 234
flags, in the Production Reporting command line, 21
FLOAT argument, DECLARE-VARIABLE command,
151
floor, 199
FONT argument, DECLARE-PRINTER command,
139, 444
FONT-TYPE argument, DECLARE-PRINTER
command, 139, 443
fonts
HP Laser Jet, 140
PostScript, 141
Windows printers, 141
Fonts section, in SQR.INI file, 337
FOOTING, 66
footings, 66
FOOTING section, 12
Index 461
A
B
C
D
E
F
G
H
I
K
L
FOR-APPEND argument, OPEN command, 234
FOR-READING argument, OPEN command, 234
FOR-REPORTS argument
DECLARE-PRINTER command, 139
DECLARE-PROCEDURE command, 143
DECLARE-TOC command, 149
USE-PROCEDURE command, 295
FOR-REPORTS, BEGIN-HEADING command, 68
FOR-WRITING argument, OPEN command, 234
FORMFEED argument, DECLARE-LAYOUT
command, 134
FROM PARAMETER, 64, 220
FROM ROWSET, 63, 220
functions
date, 208
file-related, 203
miscellaneous, 212
numeric, 197
string, 203
transcendental, 202
unicode, 210
writing custom functions, 215
G
general purpose procedures, in HTML, 303
GET, 180
GET-COLOR, 181
GETDATA, 62, 63, 218, 220
getenv, 213
getfilemapname, 213
global variables, 15
GOTO, 183
GOTO-TOP argument, NEXT-COLUMN command,
231
GRAPHIC BOX, 448
GRAPHIC FONT, 449
GRAPHIC HORZ-LINE, 450
GRAPHIC VERT-LINE, 450
H
halting Production Reporting, 287
hardware/operating system, 19
HEADING, 68
heading procedures, in HTML, 305
Hebrew language support, 259
M
N
O
P
Q
R
S
T
U
V
W
Z
HEIGHT argument, PRINT-BAR CODE command,
260
hex, 199
highlighting procedures, in HTML, 307
HOLE-VALUE, 118
HORZ-LINE argument, GRAPHIC command, 450
HPLASERJET, 139
HTML
general purpose procedures, 303
heading procedures, 305
highlighting procedures, 307
hypertext link procedures, 309
list procedures, 309
table procedures, 312
HTML-Images, 342
hyperbolic cosine, 199
hyperbolic sine, 201
hyperbolic tangent, 202
hypertext link procedures, in HTML, 309
I
IF, 186
IF nested within a WHILE loop, 298
IFDEF, 185
IMAGE-SIZE argument
DECLARE-IMAGE command, 131
PRINT-IMAGE command, 271
images
DECLARE-IMAGE command, 130
printing, 271
INDENTATION argument, DECLARE-TOC
command, 149
Informix, 31, 288, 441
INIT-STRING argument, DECLARE-PRINTER
command, 139
INPUT, 189
instr, 204
instrb, 204
INTEGER argument, DECLARE-VARIABLE
command, 151
INTO argument, EXECUTE command, 171
isblank, 205
isnull, 213
K
KEY argument, LOAD-LOOKUP command, 219
462 Index
A
B
C
D
E
F
G
H
I
K
L
L
labels, 183
LAST-PAGE, 192
LAYOUT argument, DECLARE-REPORT command,
145
LEFT-MARGIN argument
DECLARE-LAYOUT command, 134
DECLARE-PRINTER command, 442
length, 205
lengthb, 205
lengthh, 210
lengthp, 210
LET, 192
LEVEL argument, TOC-ENTRY command, 290
LEVEL qualifier, ON-BREAK argument, 255
LINE-HEIGHT argument, DECLARE-LAYOUT
command, 134
LINE-INCH argument, DECLARE-PRINTER
command, 443
LINE-SIZE argument, DECLARE-PRINTER
command, 443
LINE-WIDTH argument, DECLARE-LAYOUT
command, 134
LINEPRINTER, 139
list procedures, in HTML, 309
literals, 14
LOAD-LOOKUP, 26, 217, 223
loading an internal table, 217
local procedures, 70
local variables, 15
LOCALE, 335
LOCALE argument, ALTER-LOCALE command, 42
log, 200
log10, 200
logical expressions, 186
LOOKUP, 221, 222
LOOPS argument, BEGIN-SELECT command, 74
lower, 205
LOWERCASE, 223
lpad, 205
ltrim, 206
M
MAX-COLUMNS argument, DECLARE-LAYOUT
command, 134
MAX-LINES argument, DECLARE-LAYOUT
command, 134
M
N
O
P
Q
R
S
T
U
V
W
Z
MAXLEN arguments, INPUT command, 189
MBTOSBS, 224
Microsoft SQL Server, 32
miscellaneous functions
array, 212
command_line, 212
cond, 212
getenv, 213
getfilemapname, 213
isnull, 213
nvl, 213
range, 214
roman, 214
wrapdepth, 215
mod, 200
MONEY argument
DISPLAY command, 155
MOVE command, 225
PRINT command, 254
SHOW command, 284
MONEY-EDIT-MASK argument, ALTER-LOCALE
command, 42
MONEY-SIGN argument, ALTER-LOCALE
command, 42
MONEY-SIGN-LOCATION argument, ALTERLOCALE command, 42
MONEY-SYMBOL, 446, 451
MONTHS-CASE argument, ALTER-LOCALE
command, 44
MONTHS-FULL argument, ALTER-LOCALE
command, 44, 336
MONTHS-SHORT argument, ALTER-LOCALE
command, 44
MOVE, 224
multiple reports, 49
MULTIPLY, 228
N
NAME, 39
NAME argument, 85
CREATE-ARRAY command, 92
LOAD-LOOKUP command, 219
natural log base e raised to x power, 199
NEED argument, NEXT-LISTING command, 233
nesting
arguments, 197
IF command, 186
Index 463
A
B
C
D
E
F
G
H
I
K
L
nesting levels, #INCLUDE command, 188
NEW-PAGE, 229, 453
NEW-REPORT, 230
NewGraphics, 102, 330
NEXT-COLUMN, 88, 231
NEXT-LISTING, 232, 454
no logon, 29
NO-ADVANCE argument, NEXT-LISTING
command, 232
NO-DUPLICATE, 39, 128
NO-FORMFEED, 452, 453
NOLINE argument
DISPLAY command, 155
SHOW command, 284
non-Windows, 22, 29
NOPROMPT arguments, INPUT command, 189
NORMAL argument, SHOW command, 284
NOWAIT, CALL command, 81
NUMBER argument
DISPLAY command, 155
MOVE command, 225
PRINT command, 254
SHOW command, 284
NUMBER-EDIT-MASK argument, ALTER-LOCALE
command, 42
numeric functions
10 raised to x power, 199
absolute value, 197, 207
arccosine, 198
arcsine, 198
arctangent, 198
cosine, 198
degrees, 199
hyperbolic cosine, 199
hyperbolic sine, 201
hyperbolic tangent, 202
largest integer, 199
log base 10, 200
log base e, 200
natural log base e raised to x power, 199
power, 200
radians, 201
round, 201
sign, 201
sine, 201
square root, 201
tangent, 202
464 Index
M
N
O
P
Q
R
S
T
U
V
W
Z
nvl, 213
O
ODBC, 31
ON-BREAK
AFTER qualifier, 255
BEFORE qualifier, 255
in PRINT command, 254
SET qualifier, 255
ON-ERROR argument, 348
BEGIN-EXECUTE command, 62
BEGIN-SELECT command, 74
BEGIN-SQL command, 78
CONNECT command, 91
DIVIDE command, 158
EXECUTE command, 170
OPEN, 233
open a new report, 230
OPEN-RS, 235
operands, 193
operators, 194
Oracle, 32, 73, 441
ORIENTATION argument
DECLARE-LAYOUT command, 134
DECLARE-PRINTER command, 442
OUTPUT argument, EXECUTE command, 171
output file, 25
P
page numbering, 192
page overflow, 230
PAGE-DEPTH argument, DECLARE-LAYOUT
command, 134
PAGE-NUMBER, 237
PAGE-SIZE, 453
PAPER-SIZE argument, DECLARE-LAYOUT
command, 134, 453
PARAMETER_LIST, 63, 220
PARAMETERS, 39, 128
PASSWORD, 39, 128
PC, 81
PDF, 340
PITCH argument, DECLARE-PRINTER command,
139
PL/SQL, 79
point labels, 94
A
B
C
D
E
F
G
H
I
K
POINT-SIZE argument, DECLARE-PRINTER
command, 139, 443
POSITION, 238
position, PRINT-IMAGE command, 271
POSTSCRIPT, 139
power, 200
precision, 194
PRINT
BOLD format command, 241
BOX format command, 241
CENTER format command, 242
CODE-PRINTER format command, 242
DATE format command, 243
definition, 239
DELAY format command, 243
EDIT format command, 244
FILL format command, 252
FONT format command, 252
FOREGROUND/BACKGROUND format
command, 253
format commands, 239, 454
MATCH format command, 253
MONEY format command, 254
NOP format command, 254
NUMBER format command, 254
ON-BREAK format command, 254
POINT-SIZE format command, 257
SHADE format command, 257
UNDERLINE format command, 257
URL format command, 257
URL-TARGET format command, 258
WRAP format command, 258
PRINT qualifier, ON-BREAK argument, 255
PRINT-BAR-CODE, 260
PRINT-CHART, 110, 263
PRINT-DIRECT, 270
PRINT-IMAGE
definition, 271
position, 271
PRINT-TABLE, 273
PRINTER qualifier, 270
printer type, 27, 294
PRINTER-DEINIT, 454
PRINTER-INIT, 455
PRINTER-TYPE argument, DECLARE-REPORT
command, 145
printing
L
M
N
O
P
Q
R
S
T
U
V
W
Z
Hebrew, 244
on Windows, 26, 142, 436
PRINT…\;CODE, 454
PROCEDURE, 62, 63, 218, 220
PROCEDURE section, 12
procedures
running, 159
USE-PROCEDURE command, 295
process ID, 19
Production Reporting
banner suppression, 29
page buffer, 270
program structure, 11
version, 19
PROGRAM section, 12
prompt, 190
PUT, 274
Q
QUIET argument
LOAD-LOOKUP command, 220
STOP command, 279, 288
R
rad, 200
range, 214
READ, 275
RECORD argument, OPEN command, 234
rename, 203
replace, 206
report arguments file on command line, 31
report layout, 132
report output file, 19
reserved variables
#current-column, 16
#current-line, 16
#end-file, 17
#INCLUDE, 25
#max-columns, 19
#page-count, 17
#return-status, 17
#sql-count, 17
#sql-status, 17, 71
#sqr-max-lines, 19
#sqr-pid, 19
$current-date, 16
Index 465
A
B
C
D
E
F
G
H
I
K
L
$sql-error, 17, 71
$sql-text, 17
$sqr-connected-db, 17
$sqr-connected-db-name, 18
$sqr-database, 18
$sqr-dbcs, 18
$sqr-encoding, 18
$sqr-encoding-console, 18
$sqr-encoding-database, 18
$sqr-encoding-file-input, 18
$sqr-encoding-file-output, 18
$sqr-encoding-hostname, 18
$sqr-encoding-report-output, 18
$sqr-encoding-source, 18
$sqr-local, 18
$sqr-platform, 19
$sqr-program, 19
$sqr-report, 19
$sqr-ver, 19
$username, 19, 91
RESET-STRING argument, DECLARE-PRINTER
command, 139
RETURN_VALUE argument, LOAD-LOOKUP
command, 219
REVERSE argument, SHOW command, 284
reversed characters, 259
RIGHT-MARGIN argument, DECLARE-LAYOUT
command, 134
ROLLBACK, 277, 288
roman, 214
round, 201
ROUND argument
ADD command, 158, 229
SUBTRACT command, 290
row set
close, 86
open, 235
SQR.INI setting, 330
write, 300
ROWS argument, LOAD-LOOKUP command, 219
ROWSET, 63, 220
rpad, 206
RSV, 62, 63
rtrim, 206
run-time report files, 28
466 Index
M
N
O
P
Q
R
S
T
U
V
W
Z
S
SAVE qualifier, ON-BREAK argument, 255
SBTOMBS, 278
SCHEMA, 63, 220
screen I/O, 283
SECURITY, 278
security issues, username/password, 92
sequential processing, FOR-READING, 234
SET qualifier, ON-BREAK argument, 255
SET-COLOR, 280
SET-DELAY-PRINT, 282
SETUP, 126, 128
SETUP section, 11, 76
SHADE argument, PRINT command, 257
SHOW, 283
sign, 201
sin, 201
sine, 201
sinh, 201
SIZE argument, CREATE-ARRAY command, 92
SKIPLINES argument, NEXT-LISTING command,
233
SKIPLINES qualifier, ON-BREAK argument, 255
SORT argument, LOAD-LOOKUP command, 219
SOURCE argument
DECLARE-IMAGE command, 131
PRINT-IMAGE command, 272
source field, 225
SPF files, 26
SQR Extension, 335
SQR Remote section, in SQR.INI, 345
SQRDIR, 333
SQRFLAGS, 333
sqrt, 201
square root, 201
starting, 439
startup file, 436
STARTUP-FILE argument, DECLARE-PRINTER
command, 139, 443
STATUS, 62, 63
STATUS argument
INPUT command, 189
OPEN command, 235
STOP, 287
stored procedures
-XP, 30
Oracle, 79
A
B
C
D
E
F
G
STRING, 288
string functions
ascii, 203
asciic, 203
chr, 204
edit, 204
instr, 204
instrb, 204
isblank, 205
length, 205
lengthb, 205
lower, 205
lpad, 205
ltrim, 206
replace, 206
rpad, 206
rtrim, 206
substr, 207
substrb, 207
to_char, 207
to_multi_byte, 207
to_number, 207
to_single_byte, 208
translate, 208
upper, 208
string values, 212
strtodate, 209
structure, 11
STRUCTURE, See List Variable, 15
subroutines
calling, 81
writing, 82
substitution variables
#DEFINE command, 153
#IF command, 184
#IFDEF command, 187
#IFNDEF command, 188
ASK command, 60
substring, 176, 291
substringb, 207
substrp, 210
substrt, 210
SUBTRACT, 289
SYBASE, 73
Sybase
Default Date-Time Format, 441
Description, 32
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
Z
server, 29
STOP command, 288
USE command, 293
Sybase DB-Lib, 73, 77
SYMBOL-SET argument, DECLARE-PRINTER
command, 139, 443
syntax conventions, 12
SYSTEM argument, CALL command, 83
T
TABLE argument, LOAD-LOOKUP command, 219
Table of Contents file, 21
table procedures, in HTML, 312
tabular reports
NEXT-LISTING command, 232
ON-BREAK argument, 254
tan, 202
tangent, 202
tanh, 202
testing, 28
TEXT argument
DECLARE-VARIABLE command, 151
PRINT-BAR-CODE, 260
TOC-ENTRY command, 290
THOUSAND-SEPARATOR argument, ALTERLOCALE command, 43
time, 440
TIME-SEPARATOR argument, ALTER-LOCALE
command, 43
to_char, 207
to_multi_byte, 207
to_number, 207
to_single_byte, 208
TOC argument, DECLARE-REPORT command, 145
TOC-ENTRY, 290
TOP-MARGIN argument
DECLARE-LAYOUT command, 134
DECLARE-PRINTER command, 442
trailing blanks, 30
transcendental functions, 202
transform, 211
translate, 208
trunc, 202
truncate, 202
TYPE argument
DECLARE-IMAGE command, 131, 271
DECLARE-PRINTER command, 140, 442
Index 467
A
B
C
D
E
F
G
H
I
K
L
INPUT command, 189
PRINT-BAR-CODE, 260
U
ucall, 335
UCALL.C, 82, 83
Ufunc, 335
UNDERLINE argument
SHOW command, 284
unicode, 212
unicode functions
lengthp, 210
lengtht, 210
substrp, 210
substrt, 210
transform, 211
unicode, 212
Unix, 25, 81
UNSTRING, 291
upper, 208
UPPERCASE, 292
USE, 293
USE-COLUMN, 293
USE-PRINTER-TYPE, 294
USE-PROCEDURE, 295
USE-REPORT, 296
USER, 39, 128
V
valid uom suffixes, 133
value determination, 168
variables, 14
global, 15
local, 15
rules, 15
VARY argument, OPEN command, 234
VERT-LINE argument, GRAPHIC command, 451
W
WAIT, CALL command, 81
WHEN argument, EVALUATE command, 168
WHEN-OTHER argument, EVALUATE command,
169
WHERE argument, LOAD-LOOKUP command, 219
WHILE, 80, 297
Windows
468 Index
M
N
O
P
Q
R
S
T
U
V
W
Z
-C, 22
-XCB, 29
CALL command, 81
log messages, 26
WITH RECOMPILE argument, EXECUTE
command, 174
WRAP argument
ON, 259
wrapdepth, 215
WRITE, 299
WRITE-RS, 300
writing to a page, 239
Z
ZIP+4 Postnet, 262

advertisement

Key Features

  • Flexibility and scalability
  • Comprehensive facilities for combined report and data processing
  • Multiple platform availability
  • Multiple datasource compatibility
  • Generates a wide variety of output
  • High-level programming capabilities

Frequently Answers and Questions

What is the Production Reporting language?
The Production Reporting language is a specialized programming language for accessing, manipulating, and reporting enterprise data.
What are the benefits of using the Production Reporting language?
The Production Reporting language offers several key benefits, including flexibility, scalability, comprehensive facilities for combined report and data processing, multiple platform availability, and multiple datasource compatibility.
What is the syntax of the Production Reporting language?
The Production Reporting language uses a structured syntax with commands, arguments, and data elements. It has specific conventions for entering and interpreting commands.
What are the different data elements used in Production Reporting?
The Production Reporting language uses columns (database fields), literals (text or numeric constants), and variables (storage places for data) as data elements.
How can I define and use variables in Production Reporting?
Variables can be defined using the DECLARE-VARIABLE command and can hold textual, numeric, or date data. They are globally accessible within a report unless declared locally within a procedure.

Related manuals

Download PDF

advertisement