APPX Software Library

Section 10: Output Processes

Output Processes

(Check for APPX Inquiry Process! See item 13.2.)

Item 10.1

Bug (flagged in V05): In APPX 1.8.4 (thru APPX 3.0.0), if a field with Read Security is defined on an output or inquiry image and a DISPLAY command is given on that field, a user without the required security rights will get APPX system error RMUPD.C.156 ("upd_chr - characteristic doesn't fit on image"). (See items 4.7 & 5.1.)

Item 10.2

Bug (all windows with non-zero Minimum Extra Lines flagged in V05): APPX 2.x has a known bug in the use of Minimum Extra Lines which can result in an output running forever if the value of this field is too large. When SP2 encounters a Minimum Extra Line condition, it does a page eject and then prints the window. APPX does a page eject and then rechecks the Minimum Extra Line condition. If large enough, APPX will continue to page eject and print page headings. To list images with extra lines, run APPX Software, Inc. UTL CS utility "APPX IMAGE File List" and enter "Y" to check for extra lines.

Also, there may be other problems associated with the use of Minimum Extra Lines such as causing blank lines to print. In APPX 1.8.4, extra lines are incorrectly output if an alternate image with extra lines has 'CR/LF?'="N" at the frame level (same as 'Start Print Beside?'="Y" in frame AA in APPX 3.0.0). (See item 10.20.)

Item 10.3

Bug (fixed in APPX 3.0 Beta): In APPX 1.8.4, screen items with appearance numbers do not always work properly. Sometimes the problem is caused by APPX always using appearance #1 for some operations. Sometimes the use of a constant other than 1 as appearance number causes a compile error (for example, DISPLAY on appearance #2). (See items 8.25 & 9.3.)

Item 10.4

Bug (flagged in V05): In APPX 3.0, if printing standard column headings and the first field is a right-justified numeric field or a format type field with right alignment, the column headings will not print properly if the width of the column heading exceeds the width of the field and there is not sufficient space to the left on the line. The conversion log flags to inspect column headings if the first field on any row is RJ or RA and the report uses standard column headings.

To easily inspect column headings for all the fields identified in such messages on the log, run the APPX Software, Inc. UTL CS utility "APPX FIELD File Col Hdg List" and enter the field names as record selections. The column heading if any will print in the format column below the format (and below the descriptive if 'Print Descriptive?' set to "Y"). Remember, nothing prints in the standard column heading for a field if it has no column headings; the description is not used. If the column headings are wider than the field format, check the output to see if there is sufficient space to the left or if the field is on a row which will not be used to generate the heading. If feasible, move fields to make room for the heading (but consider alignment with other images) or shorten the column heading if appropriate. If all else fails, run the "APPX FIELD File Col Hdg List" naming the fields that make up the standard column heading and use it to add a corresponding PAGE-START frame to the output (be sure to change 'Standard Column Heading?' to "N").

Item 10.5

Action/Difference: APPX requires a higher level PCF record be read with hold before being rewritten or deleted at a lower level whereas SP2 does not. This will cause an error at runtime. Check APPX ILF X-Ref for use of REWRITE or DELETE in lower level output and investigate. You can also use the APPX Software, Inc. UTL CS utility "APPX STMT I/O List" to review REWRITE/DELETE commands. (See item 11.2.)

Item 10.6

Bug/Difference/Conversion EH (flagged in V05): SP2 supports the use of Auto-Total on lower level files whereas APPX does not. In APPX you must use a work field to TOTAL into at the lower level and then add RANGE-END frames using Auto-Display '4' values at the Sort File level. Also, be sure to remove auto-totaling from the image on the lower level process; otherwise, the function can misbehave in APPX. The conversion log flags the use of Auto Total. To list items with auto-totaling, run the APPX Software, Inc. UTL CS utility "APPX ITEM File List" and enter 'Check for Auto-Total?'="Y".

Note that it can be a little tricky to emulate the SP2 use of Auto-Total since auto-totals only appear on generated subtotal or grand total windows. You have to look at the sort function in combination with the output and even then you may not know what will happen at runtime. If subtotal and grand total windows are defined in the output for the default sort specifications, it may be that the SP2 auto-totaling was defined in error and is not even being used.

Both SP2 and APPX ignore any auto-totaling defined on subtotal windows. However, since this flag is only accessible or visible on APPX 3.0 RANGE-END images by using INQUIRE to list all image items, it would probably be a good idea if the conversion utility set it to "N".

Item 10.7

Difference (fixed in V05): Outputs designed for the screen were limited to 79 columns in SP2. Change these to 80 columns in APPX to avoid possible editing errors.

Item 10.8

Difference: APPX 1.8.4 inserts a blank line after a standard page heading whereas SP2 does not.

Item 10.9

Difference (FYI): APPX differs from SP2 in handling an output which has no detail. APPX displays a "No Lines Were Output" message if printing to the screen; otherwise, nothing happens. SP2 prints a report with zero grand totals if applicable.

Item 10.10

Action: Any outputs using special forms should be thoroughly reviewed and tested. They will usually require work to behave the same as SP2. To find outputs using preprinted forms, check SP2 Table of Contents for special dispositions and then refer to SP2 Disposition X-Ref to see where these are used. Also refer to the installation's SP2 Forms List from Installation Control (see item 2.8). Mark special form outputs on SP2 Table of Contents. (See item 10.21 too.)

For example, in APPX 3.0.0, the following changes were required to print checks in MAS SE:

Change Footer Height in process AA from 2 to 3
   (to compensate for APPX blank line).
Change Skip Lines Before from 4 to 3 on PAGE-START image
   (to allow for same alignment).
    Note: If the APPX form accommodated more than one program form,
       you would need to move the blank line to the bottom of the
       program form, not just remove it from the top (for example,
       where 2 33-line W-2 program forms print on a 66-line APPX form).

In APPX 1.8.4, the following changes were required to print CAP A/P checks:

Set Footer Height to 25 (3 more than APPX footer size, allowing for line
   at beginning of form, line before footer, and dummy? line suppressed).
Change Skip Lines Before from 1 to 0 on 1st record frame.
Set 'Start New Page After?'="Y" on last record frame.
Change Skip Lines Before from 1 to 0 on End of Page frame.

Item 10.11

Bug/Difference: APPX 2.3 (thru 3.0.0) differs from SP2 in its handling of ALTERNATE IMAGE NUMBER. (Addressed by item 8.23.)

Item 10.12

Difference: APPX differs from SP2 in regard to image commands in non-image event points. In APPX, these commands (BLANK, DISPLAY, etc.) have no effect on the image and must be moved to image event points to behave like SP2 or, if feasible, Auto Display type should be set to '1'. Note that non-PCF fields are converted to Auto Display '0' (None). (The only output/inquiry image event point is Pre-Display.) Such commands are flagged on the Commands conversion log.

Item 10.13

Difference (FYI): The option to provide for "Continued" subheading messages has not been implemented in APPX.

Item 10.14

Difference: If the binding key is not a valid key, SP2 ignores it (and uses the primary key if there is no sort) whereas APPX gets a compile error for invalid PCF key. Change it to be the primary key.

Item 10.15

Conversion Bug?/Difference (FYI) (signed numeric fields): In SP2 outputs, zero signed numeric fields with decimals display with a leading zero (e.g., 0.00) and negative signed numeric fields display with a leading or trailing sign or special sign depending upon Sign Type. In APPX outputs, unless a mask is defined, zero fields display without the leading zero (e.g., .00) and negative fields display according to the internal display mask. The V05 conversion utility always generates a mask for output/inquiry processes so this is normally not a problem. (See items 2.11, 4.24, 5.12, & 10.19 too.)

Item 10.16

Action/Bug?/Difference: In APPX, bogus blank lines may appear in the output if inappropriate subtotals (or subheadings?) are specified in the associated query but not defined in the output. In SP2, these are ignored. Delete such subtotals (or subheadings?) if not needed; otherwise, define do-nothing range frames in the output (or clone the query without them and change the job to use the clone). (See item 12.16.)

This problem is difficult to find so you may want to limit your review. Outputs/inquiries that are the most vulnerable are those with special forms (per item 10.10) or those that share queries. Remember a query may be used by multiple processes within a job (found by items 7.6, 7.7, 7.18, & 7.20). To find those used by multiple jobs, check the SP2 Sort X-Ref.

Item 10.17

Bug?/Difference: APPX 1.8.4 (thru APPX 3.0.0) prints a blank line as the first line of a 'form', referring to the form as defined in APPX System Administration. This blank line is not visible if output is printed to the screen. The APPX blank line does not normally cause a problem except in the following situations: (see item 10.21 for more details)

  1. You need to print on every line of the form. You're in big trouble because it can't be done. The APPX blank line will cause a blank page between forms.
  2. You need to align forms on the printer the same way you did in SP2. If there is a blank line at the top of the form, it could be moved to the bottom of the form in APPX and forms would then align the same; otherwise, you're out of luck.

Item 10.18

Note: If you have optional frames and you need to specify 'Skip Lines Before' or 'Skip Lines After', do so on the image level (not the frame level); otherwise, the lines will be skipped causing blank lines even though the image itself is suppressed. (However, see item 10.20 first & also see item 10.21.)

Item 10.19

Conversion Bug (fixed in V05)/Difference (unsigned numeric fields): In SP2 outputs, zero unsigned numeric fields with decimals display with a leading zero (e.g., 0.00). Negative unsigned numeric fields display with a sign if there is room; question marks are displayed only if there is not room for the sign in SP2. However, in APPX outputs/inquiries, the standard conversion utility generates a mask with no sign for an unsigned field with SP2 trailing sign but generates a mask with a leading sign (which consumes an extra space) for an unsigned field with SP2 leading sign. This means the leading zero displays properly but a negative value for a SP2 trailing sign may produce question marks while a SP2 leading sign can cause a compile error (if items no longer fit on the image) or can cause data to be misaligned. (See items 2.11, 4.24, 5.12, & 10.15 too.)

The V05 conversion utility always generates a mask with no sign for an unsigned field, thus fixing the conversion bug. To print display masks, run the APPX Software, Inc. UTL CS utility "APPX ITEM File List" and enter "Y" to both 'Check for Display Mask?' and 'Print DM?'.

Item 10.20

Difference (flagged in V05): APPX differs from SP2 in its approach to Print Beside which may cause conversion problems or which may prevent the output from looking like what you get in SP2. In SP2, Print Beside is specified by 'Location'="1" (Beside Prev Wndw) and controls where the window will print in relation to the previous window printed. In APPX, Print Beside is actually initiated in the frame before the SP2 Print Beside window by setting 'Start Print Beside?'="Y" in frame AA. The SP2 default is 'Location'="2" (Below Prev Wndw) and the APPX default is 'Start Print Beside?'="N".

One problem in the APPX approach is that it may not be known what frame will actually print at runtime immediately prior to the SP2 Print Beside window. For example, if it is a subheading which may be changed at runtime, it may be desirable to start Print Beside on every subheading if possible (for example, if they start in column 1). Other problems can occur if there are optional or repeating windows preceding the SP2 Print Beside window. Also, in APPX, if the Start Print Beside frame has Skip Before lines, these lines should be specified on the frame, not the image; otherwise, the SP2 Print Beside window will start printing beside the blank lines. (However, see item 10.18 and also see item 10.21.)

The upshot of this is that any output using Print Beside should be thoroughly reviewed and tested. The conversion log flags any SP2 window with location 'Beside'. To list processes using Print Beside, run the APPX Software, Inc. UTL CS utility "APPX IMAGE File List" and enter "Y" to 'Check for Print Beside?'.

Item 10.21

Note (1.8.4 Upgrade Alert): To understand what causes some differences in output between SP2 and APPX, it might be helpful to review the findings below which are applicable to APPX 3.0.0 (see items 10.2, 10.8, 10.10, 10.16, 10.17, 10.18, 10.20, & 10.31 too):

  1. Every APPX form begins with a HEX(0A), or line feed, caused by APPX itself, where 'form' refers to each page of the form as defined in APPX Sys Admin. The APPX blank line is not counted in the APPX line count for the form.
  2. The last line of the form ends with a HEX(0C), or form feed, not a HEX(0A), regardless of whether there is text on the line. Where the last line is a blank line, there is only the HEX(0C), not a HEX(0A0C).
  3. A frame with 'New Page After?'="Y" and lines specified in Skip Lines After produces a single HEX(0C)for the lines to skip.
  4. If the application program accounts for every line of the form and does not end in a blank line, the APPX blank line will cause a blank page to print between forms.
  5. If the application program uses a PAGE-END frame (same as SP2 Page Footing), Footer Height in the process AA must be increased by 1 to account for the APPX blank line.
  6. APPX 1.8.4 inserts a HEX(0A) upon return from a lower level. If there is a PAGE-END frame, Footer Height must be increased by 1 to compensate or a leading blank line in the PAGE-END frame must be dropped. (Note: This is not a problem in APPX 3.0.0 but it is in APPX 1.8.4. Programs must be changed when upgrading from 1.8.4.)
  7. APPX does not maintain Footer Height automatically if changes are made to PAGE-END frames.
  8. Normally, printers do not do another form feed if already at top of form during printing when a HEX(0C) is received.
  9. APPX handles its print buffering differently than SP2. In SP2 the print buffer was large enough for SP2 to assemble 2-3 pages if necessary before committing the first page to print; this allowed after-the-fact changes to be made to the first page as warranted. APPX commits to print much earlier in comparison. This may be the reason APPX 3.0 does not properly handle scroll down. (See items 10.20 & 10.31.)

The V05 conversion utility flags the use of SP2 scrolling or repeating windows or any with location 'Beside'. It also flags any alternate windows with different attributes (position, size, & scrolling). The APPX Software, Inc. UTL CS utility "APPX IMAGE File List" can be used to provide an overview of pertinent features for selected processes or for all processes with specific features.

Item 10.22

Difference (FYI): If a subtotal is generated, SP2 prints zeros (for example, 0.00) for a zero total field auto-totaled from a detail field defined as 'Blank if Zero' whereas APPX prints blanks. Both SP2 and APPX print blanks for the detail field.

Item 10.23

Difference (flagged in V05): SP2 allows a total-type work field to be used as an ordinary work field in the detail window of an output/update function and sets the value to zero before entering the detail window. There is no such thing as a total-type work field in APPX (see explanation in item 8.13) and APPX does not change the current area of a numeric work field without explicit commands to do so. If code exists in a detail window which relies upon the zero value, the SP2 total-type work field must be SET to zero at the beginning of the event point in APPX. In addition, there are other complications if commands are used on a SP2 total-type work field in a subtotal window (see item 8.13).

The conversion log flags the use of commands such as SET, COMPUTE, and RESTORE on SP2 total-type fields. (See items 8.13 & 11.4.)

Item 10.24

Note: SP2 can have a DISPLAY command on a field and then modify it and not display the modified value. APPX 3.0 behaves the same as SP2 (at least in the record frame) even when Auto Display type is '1' (Current Value).

Item 10.25

Difference: APPX differs from SP2 in its opening of files for an output process. APPX 3.0 opens all files referenced by domains or DLU's in the PCF file for the current company. This may cause unexpected problems.

For example, an "element not found" error may occur which is not appropriately labeled. Such an error may actually be caused by bad data in a domain DLU in a referenced application but the bad data may not be visible in the Data Dictionary and may not cause a DD processing error. To find bad data, run the APPX Software, Inc. UTL CS utility "APPX DOMAIN File List" to verify domains in all applications. It will print an error message if the element record is not on file for a DLU.

In another example, a file may not exist in the current company (in SP2 it may actually be opened under a different company). In this case, a possible work-around could be to set 'Use Database' to that company in Database Management. (See item 8.14.)

Item 10.26

Difference (flagged in V05): Scrolling alternates behave differently in APPX than in SP2 if they have different sizes. To list the frame/image characteristics for alternates, run the APPX Software, Inc. UTL CS utility "APPX IMAGE File List" and enter "Y" to 'Check for Opt/Repeat Frame?'. If desired, enter "OUTPUT" or "INQUIRY" for process type or enter the process name. (See items 1.63 & 9.23.)

Item 10.27

Difference (flagged in V05): Expanded print does not work by setting the flag in APPX (this flag can only be accessed by pressing INQUIRE while on the image). However, you can provide for expanded print by imbedding a HEX(0E) in your print line. For example, in the Data Dictionary, define a new work field WORK HEX(0E) as a one-byte alpha field; then, in your output function, add this field with Auto-Display '1' somewhere on the print line containing the field flagged for expanded print and add the following code to Start of Process:

SET      --- X                          =      14
CNV BIN  aaa WORK HEX(0E)               =  --- X

Item 10.28

Difference (compile error): A valid SP2 auto-access can cause compile error "Invalid Data Lookup specifications - Source Missing" in APPX 3.0 and 3.1. It seems to occur when the number of key segments in the DLU key exceeds the number of key segments in the file key. This can affect input, output, and inquiry processes. The only work-around is to remove the DLU from the image and program the equivalent functionality as detailed in the following paragraphs.

For an overview of DLU items, run the APPX Software, Inc. UTL CS utility "APPX ITEM File List" and enter 'Check for DLU?'="Y". To see lookup items too, also enter 'Lookup?'="Y" (note that the checks for DLU or Lookup are the only checks combined with an OR; the rest use AND). To list items for a single process, enter the process name. (See items 1.52 & 9.45.)

For output/inquiry processes, do the following (see item 9.45 for input processes):

  1. For all components of the key on the image, change the Data Lookup Type to NONE. Be sure to make note of DLU specifications (whether the file must exist, action if NOF, etc.).
  2. For all associated lookup fields on the image, change the Auto-Display to 1 (Current Value) and make note of lookup value (null or ?'s) if NOF.
  3. Add code in Pre-Display to do the DLU read and to issue error/warning and set lookup values as appropriate on F condition (DISPLAY commands are not necessary).

Item 10.29

Action/Bug?/Difference (flagged in V05 after 08/27/96): If a multi-level output function has subheadings and/or subtotals defined at the lower level, SP2 would not print them if there were no records at the lower level. APPX will print RANGE-START and RANGE-END images even though there is no detail. To emulate SP2, in Pre-Invocation of the automatic process calling the lower level, add code to do a BEG AT/END AT/READNEXT using the constraint and set --- INCLUDE CHILDREN to 0 on a False condition. (You do not need to set INCLUDE CHILDREN to 1 on a True or in other children. Outputs do not suffer from the input process bug described in item 9.44, which can improperly skip children if any children are optional.)

Item 10.30

Bug?/Difference: If a query has a temporary file as its PCF and if the temporary file is populated in the job after the QUERY job step, an output using the query may not find the populated file when the job is run in background. (See item 12.11.)

Item 10.31

Difference/Bug?/Conversion EH (all scrolling windows flagged in V05): APPX cannot handle certain scrolling features in outputs which worked in SP2. For example, a SP2 subtotal window could specify Scroll Across whereas APPX only allows access to scroll type on a RECORD frame. The conversion utility will convert it as Scroll Across but it does not work right. At Pinellas, the last control break did not scroll properly; it was in the right column but down a line (the detail window was not being printed).

Also, a SP2 output window could be programmed to scroll down (although one might question why) and it worked. In APPX 3.0 this can cause an APPX system error RMIMG.C.2472 ("write_img() - Error - Already on File"). Alternatively, it can cause an output to end prematurely as though it were finished, printing an incomplete report.

To list images in scrolling frames, run APPX Software, Inc. UTL CS utility "APPX IMAGE File List" and enter "Y" to check for scrolling frames. If desired, enter OUTPUT or INQUIRY as process type.

Item 10.32

Action/Bug (flagged in V05 after 08/27/96): APPX does not handle a display mask with CR or DR properly. For example, the mask '9,999CR' produced "-5,678.11R" whereas the mask '$9,999CR' was OK. Also, it appears to not be clearing CR from following fields and it prints DR for positive whereas SP2 didn't. Change the mask to use "-" or "+" instead. To list such items, run the APPX Software, Inc. UTL CS utility "APPX ITEM File List" and enter "Y" to 'Check for CR/DR in Mask?'.