Improved RSPEC Lister with BRWSTOA(SR 1650-057539) [ HP ALLBASE/BRW Software Update Notice (A.01.50) ] MPE/iX 5.0 Documentation
HP ALLBASE/BRW Software Update Notice (A.01.50)
Improved RSPEC Lister with BRWSTOA(SR 1650-057539)
This release introduces a new utility called BRWSTOA ("specification file
to ASCII"). This utility provides a more compact and simplified listing
of the BRW report definition than you currently get with BRWLIST.PUB.SYS
or than you get when you use the List Report key on the Select Report
screen.
BRWSTOA is a new feature with this release and is not described in the
HP ALLBASE/BRW Reference Manual for MPE/XL. However, other information
about using the compile listing is found on pages 6-23, 10-2, 10-3,
16-3, and 19-8 of the manual.
To use BRWSTOA:
Run BRWSTOA and answer the following prompts (user input description or
example is underlined):
Enter report specification file: specname/password
Enter report Script file: myfile
Enter project list option: (Minimum,First,Last,All):
minimum
The report script file created by BRWSTOA can be printed or displayed
online by using MPE/iX printing commands or MPE/iX editors. The project
list options available are:
Minimum Lists only projected items that show non-default
attributes on the Project Items screen (such as an
alias).
First Lists items when they are first referenced in a
dictionary source table, but not in any later
access tables.
Last Lists all items contained in the final access
table.
All Lists all access table items.
BRWSTOA makes extensive use of defaults to reduce the listing size. In
the Lineset definitions, any item edit characteristic that matches the
defaults in the BRWCONF file are not listed. The default output file for
BRWSTOA is an 80-byte ASCII record, with no file code or CCTL codes.
NOTE There is no utility to read these ASCII files back into BRW RSPEC
format.
BRWSTOA Conventions for Lineset Definitions
In the Lineset Definitions section of the BRWSTOA report, the following
conventions apply:
* Text is treated as a pseudo item. The positioning information
goes before the text, for example:
TEXT 1,3 `Customer Name:'
In this example, the text item is positioned in the first column
of line 1. The text itself is enclosed in single quotes. No
length is given because the length of the text can be seen. If
the text is longer than will fit on one output line, it will be
broken into two or more text fragments and placed on as many
additional output lines as are needed.
* Non-text items show the item name, position, line, length (as
defined in the Define Lines screen):
ITEM CUSTOMER-NAME 16,3,30
In the above example, the item, CUSTOMER-NAME is placed in the
16th column of the third line and has a length of 30 characters.
The example on the next pages shows a BRWSTOA printout.
<<--------------------------------------------------------------------------->>
<< B R W R E P O R T L I S T I N G >>
<< CUSTREP2.WATSON.BOOKS from FRI, OCT 22, 1993, 6:07 PM >>
<<--------------------------------------------------------------------------->>
DESCRIPTION 'Customer Details Report: Tutorial Lesson 3'
REPORT WIDTH 132
PAGE LENGTH 60
RESET PAGES 1
SORT SEQUENCE ASCII
FINAL ACCESS TABLE CUSTREP2-DATA
<<--------------------------------------------------------------------------->>
<< F I N A L A C C E S S T A B L E >>
<< CUSTREP2-DATA >>
<<--------------------------------------------------------------------------->>
ACCESS TABLE CUSTREP2-DATA
SOURCE TABLE CUSTOMERS LOCATION TOYDB.PUB.ITF3000
SOURCE TABLE ORDER-PRODUCTS
JOIN CUSTOMERS.CUSTOMER-NO,
ORDER-PRODUCTS.CUSTOMER-NO
OPEN JOIN ORDER-PRODUCTS
PROJECT
CUSTOMERS.ADDRESS, << STRING 30 >>
CUSTOMERS.CITY, << STRING 30 >>
CUSTOMERS.CUSTOMER-NAME, << STRING 30 >>
CUSTOMERS.CUSTOMER-NO, << STRING 6 >>
ORDER-PRODUCTS.ORDER-DATE, << DATE >>
ORDER-PRODUCTS.ORDER-NO, << STRING 8 >>
ORDER-PRODUCTS.PRICE, << NUMERIC >>
ORDER-PRODUCTS.PRODUCT-LINE, << STRING 2 >>
ORDER-PRODUCTS.PRODUCT-NAME, << STRING 16 >>
ORDER-PRODUCTS.PRODUCT-NO, << STRING 6 >>
ORDER-PRODUCTS.QUANTITY, << INTEGER >>
CUSTOMERS.SALES-AREA, << STRING 16 >>
ORDER-PRODUCTS.SHIPMENT-DATE, << DATE >>
CUSTOMERS.STATE, << STRING 30 >>
CUSTOMERS.TABLE-REC-NUMBER, << INTEGER >>
CUSTOMERS.TURNOVER, << NUMERIC OCCURS 12 >>
CUSTOMERS.TURNOVER-MTD, << NUMERIC >>
CUSTOMERS.TURNOVER-PY, << NUMERIC >>
CUSTOMERS.ZIPCODE << STRING 6 >>
UNPROJECT
ORDER-PRODUCTS.CUSTOMER-NO, << STRING 6 >>
ORDER-PRODUCTS.TABLE-REC-NUMBER << INTEGER >>
<<--------------------------------------------------------------------------->>
<< A C C E S S T A B L E >>
<< ORDER-PRODUCTS >>
<<--------------------------------------------------------------------------->>
ACCESS TABLE ORDER-PRODUCTS
SOURCE TABLE PRODUCTS LOCATION TOYDB.PUB.ITF3000
SOURCE TABLE ORDER-TABLE
JOIN ORDER-TABLE.PRODUCT-NO,
PRODUCTS.PRODUCT-NO
PROJECT
ORDER-TABLE.CUSTOMER-NO, << STRING 6 >>
ORDER-TABLE.ORDER-DATE, << DATE >>
ORDER-TABLE.ORDER-NO, << STRING 8 >>
PRODUCTS.PRICE, << NUMERIC >>
PRODUCTS.PRODUCT-LINE, << STRING 2 >>
PRODUCTS.PRODUCT-NAME, << STRING 16 >>
PRODUCTS.PRODUCT-NO, << STRING 6 >>
ORDER-TABLE.QUANTITY, << INTEGER >>
ORDER-TABLE.SHIPMENT-DATE, << DATE >>
PRODUCTS.TABLE-REC-NUMBER << INTEGER >>
UNPROJECT
ORDER-TABLE.PRODUCT-NO, << STRING 6 >>
PRODUCTS.QUANTITY, << INTEGER >>
ORDER-TABLE.TABLE-REC-NUMBER << INTEGER >>
<<--------------------------------------------------------------------------->>
<< A C C E S S T A B L E >>
<< ORDER-TABLE >>
<<--------------------------------------------------------------------------->>
ACCESS TABLE ORDER-TABLE
SOURCE TABLE ORDERS LOCATION TOYDB.PUB.ITF3000
SOURCE TABLE ORDER-DETAILS LOCATION TOYDB.PUB.ITF3000
JOIN ORDER-DETAILS.ORDER-NO,
ORDERS.ORDER-NO
TABLE CONDITION
{
MONTH_OF (ORDER-DATE) = 6
<< Selects only those orders placed in June. >>
}
PROJECT
ORDERS.CUSTOMER-NO, << STRING 6 >>
ORDERS.ORDER-DATE, << DATE >>
ORDERS.ORDER-NO, << STRING 8 >>
ORDER-DETAILS.PRODUCT-NO, << STRING 6 >>
ORDER-DETAILS.QUANTITY, << INTEGER >>
ORDER-DETAILS.SHIPMENT-DATE, << DATE >>
ORDERS.TABLE-REC-NUMBER << INTEGER >>
UNPROJECT
ORDER-DETAILS.ORDER-NO, << STRING 8 >>
ORDER-DETAILS.TABLE-REC-NUMBER << INTEGER >>
<<--------------------------------------------------------------------------->>
<< L A Y O U T >>
<< >>
<<--------------------------------------------------------------------------->>
LAYOUT
BREAK LEVEL 1 BREAK ON SALES-AREA
BREAK LEVEL 2 BREAK ON CUSTOMER-NO
BREAK LEVEL 3 BREAK ON ORDER-NO
CALC ITEM ORDER-TOTAL: NUMERIC
{
PRICE * QUANTITY
<< This item finds the total value of an order by multiplying
the price of the product by the quantity ordered. >>
}
<<--------------------------------------------------------------------------->>
<< L I N E S E T D E F I N I T I O N >>
<< REPORT FOOTER >>
<<--------------------------------------------------------------------------->>
REPORT FOOTER
PAGE BEFORE
TEXT 58, 2 '================'
TEXT 21, 3 'Total Sales for All Sales Areas is:'
ITEM TURNOVER-MTD 58, 3, 16 TOTAL R, 2
TEXT 21, 4 '----------------------------------- ================'
TEXT 1, 5 ' '
<<--------------------------------------------------------------------------->>
<< L I N E S E T D E F I N I T I O N >>
<< PAGE HEADER >>
<<--------------------------------------------------------------------------->>
PAGE HEADER
ABSOLUTE POSITION 1
ITEM &BOLD 5, 1, 60
TEXT 5, 1 'Page:'
ITEM PAGE 11, 1, 3 EDIT MASK 'ZZ9'
ITEM &UNDERLINE 24, 1, 23
TEXT 24, 1 'Customer Details Report: 2 Date:'
ITEM DATE 67, 1, 8
ITEM &UNDERLINE 5, 3, 70
ITEM &UNDERLINE 5, 4, 70
<<--------------------------------------------------------------------------->>
<< L I N E S E T D E F I N I T I O N >>
<< DETAIL >>
<<--------------------------------------------------------------------------->>
DETAIL
LINESET SUPPRESS
{
ORDER-NO = NO_VALUE
<< Suppress this lineset, which prints the details of each order,
if the customer has no orders. >>
}
ITEM ORDER-NO 5, 1, 8
ITEM PRODUCT-NO 17, 1, 6
ITEM PRICE 30, 1, 8 EDIT MASK 'ZZZZ9', '.99'
ITEM QUANTITY 41, 1, 4 EDIT MASK 'ZZZ9'
ITEM ORDER-TOTAL 52, 1, 16
<<--------------------------------------------------------------------------->>
<< L I N E S E T D E F I N I T I O N >>
<< BREAK 1 HEADER >>
<<--------------------------------------------------------------------------->>
BREAK 1 HEADER
ITEM &UNDERLINE 5, 1, 31
ITEM &BOLD 5, 1, 31
TEXT 5, 1 'Customer Details for Sales Area:'
ITEM SALES-AREA 39, 1, 16
TEXT 1, 2 ' '
<<--------------------------------------------------------------------------->>
<< L I N E S E T D E F I N I T I O N >>
<< BREAK 1 FOOTER >>
<<--------------------------------------------------------------------------->>
BREAK 1 FOOTER
TEXT 5, 2 'Total Sales for Sales Area:'
ITEM SALES-AREA 40, 2, 16
TEXT 58, 2 '='
ITEM TURNOVER-MTD 62, 2, 16 TOTAL 1, 2
TEXT 1, 4 ' '
<<--------------------------------------------------------------------------->>
<< L I N E S E T D E F I N I T I O N >>
<< BREAK 2 HEADER >>
<<--------------------------------------------------------------------------->>
BREAK 2 HEADER
ITEM &BOLD 5, 1, 9
TEXT 5, 1 'Customer:'
ITEM CUSTOMER-NAME 17, 1, 30
ITEM &BOLD 50, 1, 7
TEXT 49, 1 'Number:'
ITEM CUSTOMER-NO 59, 1, 6
ITEM &UNDERLINE 5, 3, 61
LINE SUPPRESS 4
{
ORDER-NO = NO_VALUE
<< Suppress this line, which introduces the detail lines,
if the customer has no orders. >>
}
ITEM &UNDERLINE 5, 4, 61
ITEM &BOLD 5, 4, 61
TEXT 5, 4 'Order No. Product No. Price Quantity Total for Order'
LINE SUPPRESS 5
{
order-no = no_value
<< Suppress this line, which introduces the detail lines,
if the customer has no orders. >>
}
LINE SUPPRESS 6
{
not (order-no = no_value)
<< Suppress this line, which warns if a customer has NO orders, if
the customer has an order. >>
}
TEXT 9, 6 '*****************NO ORDERS FOR THIS CUSTOMER****************'
TEXT 1, 7 ' '
<<--------------------------------------------------------------------------->>
<< L I N E S E T D E F I N I T I O N >>
<< BREAK 2 FOOTER >>
<<--------------------------------------------------------------------------->>
BREAK 2 FOOTER
LINESET SUPPRESS
{
ORDER-NO = NO_VALUE
<< Suppress this lineset, which prints the total sales for the
customer in the month, if the customer has no order. >>
}
ITEM &BOLD 5, 2, 19
TEXT 5, 2 'Sales for Customer'
ITEM CUSTOMER-NAME 26, 2, 30
ITEM &BOLD 58, 2, 3
TEXT 58, 2 '='
ITEM TURNOVER-MTD 63, 2, 16
ITEM &UNDERLINE 63, 2, 16
TEXT 1, 3 ' '
<<--------------------------------------------------------------------------->>
<< S E L E C T I O N S E T >>
<< SET2 >>
<<--------------------------------------------------------------------------->>
SELECTION SET SET2
DEVICE DISC
FILE CUSTDISC
LASER
MPE/iX 5.0 Documentation