. FORMFORM.DWS March 8, 1982
op
mt 0
hm 0
fm 0
mb 0
po 0
. DIMS has a built-in facility for designing a form for the display and
. printing of a file. To make DIMS use your form design, you must create
. a format control file with all the detailed specifications in it. There
. are two ways to make this ".DFO" file. One is to use the transient com-
. mand "cform" which can type a form for you to fill out and then accept the
. specifications. Another way is to edit this file with WordStar, changing
. the numbers to fit your design. Once a ".DFO" file has been created, you
. can switch the dislay to that form by typing "format <name>" as a DEDIT
. command. DEDIT will respond with "Format <name> loaded."
.
. To make a format control file for the DIMS file <name>, start Word-
. Star, select the N mode and make your file name <name>.DWS. As soon
. as you're in the file, do ^KR, and give the name FORMFORM.DWS. This will
. read in this file into your workfile. This file contains all the
. values which produce the default format (format 0). You will want to
. edit these values to design your forms. You may then delete these instruc-
. tions to save space, but the single . commands at the top are essential.
.
. A single format specification controls both screen display and the form
. on the printer. These forms may be the same or as different as you
. like, only the sequence of fields must be the same for both. Note in
. the form below that many items have two values on the line. The second
. value is for the printer. The DEDIT variable names into which the
. the parameters are read are given for debugging. THE LINES WITH NO DOTS
. BECOME THE FORM CONTROL FILE, THEY MUST KEEP EXACTLY THE SAME NUMBER OF
. LINES AND ITEMS IN EACH LINE.
.
. After you have made all the changes you need, save and print it to a
. disk file <name>.DFO, which will make all the .. lines disappear.
. Edit the .DFO file and delete the extra blank line which may appear
. at the end. Try out the format on the DIMS file. To make corrections
. edit <name>.DWS again, and "re-assemble" the .DFO file by printing to
. disk again.
.
. Words and numbers will be read as data input items by a Basic INPUT#
. statement. Therefore there must be the expected number of words on
. each line, or everything after the error will be loaded into DEDIT
. wrong, and you will get the message "Error in loading format." and/or
. DEDIT will crash. Some of the items are input by DEDIT as whole lines
. (LINE INPUT#), and these can have commas or anything you want.
.
. Code begins here.
.
. FO$ Name of this format
DEFAULT
. FFD$ Who wrote it, date of last update
Dan 12/8/81
.
. PARAMETERS FOR THE WHOLE SCREEN AND PAGE
.
. TM: Top margin lines LTM: Top margin lines (printer)
0 4
. (not used for screen) LLM: Left margin
0 13
. SW: Screen width LW: Printing width
80 95
.
. The following parameters, if not 0, will position a form on the screen
. and not use scrolling. This type of form may have bugs in DEDIT.
. RS: Records/screen RP: Records/page
0 0
.
. If the printer is at or past the conditional page line, it will ad-
. vance to the next page. Set to the number of lines on the page minus
. the top plus bottom margins, minus the normal number of lines used by
. a record. This deals with the fact that extra-long data items in for-
. mats that don't limit the length of the field may overflow into extra
. lines on the printer. Dims keeps track of this.
. (not used for screen) LLP: Conditional page line
0 52
.
. These parameters apply to printers with variable character and line
. spacing, DEDIT is set up for Diablo 1610/1620.
. HMI: 120th of an inch per character (use 10 for 12 per inch)
10
. VMI: 48ths of an inch per line (use 8 for 6 per inch)
8
. FSC$: Reserved for future enhancement.
0
.
. The next three lines are heading lines for the screen display. They
. will be printed only if something is entered on the line. You must
. keep three lines here whether you enter anything on them or not.
. HL1$: If this line ends on a space, "PAGE" and the page number will
. be added automatically.
. HL2$:
. HL3$:
.
. The next three lines are heading lines for each printed page. Same
. as above.
. LHL1$: If this line ends on a space, the page number will print after.
. LHL2$:
. LHL3$:
.
. HB: Blank lines after head. LHB: Blank lines after heading.
0 1
.
. PARAMETERS FOR EACH RECORD OF THE FILE
.
. The record number mode can be 0 (don't show number) or 1 (on).
. RM: LRM:
1 1
.
. Location line parameters are used for forms which don't scroll. They
. display fields at fixed positions on the screen or page. Make all
. location line parameters 0 in a scrolling format. The top line of the
. screen is line 1. The first location line parameter is the line to print
. the record number on:
. RLL: LRLL:
0 0
.
. Location column parameters position the printhead or cursor. If there
. is no CR/LF after the previous item and the location column is 0, the
. item will be printed after the previous item, wherever that may have
. left the printhead. To print "Lastname, Firstname" define the field
. name for the Firstname field as ", ". Use Column 1 to position at the
. left margin; 0 means put it wherever it is.
.
. Record number location column:
. RLC: LRLC:
0 0
. The number of CR/LF's after the record number:
. RNB: LRNB:
1 1
.
. The following sequence of numbers determines the order in which the
. fields of the file will be printed, on both the screen and the prin-
. ter. THERE MUST BE A ZERO TO TERMINATE THE SEQUENCE.
. SQ():
1 2 3 4 5 6 7 8 0
.
. Number of CR/LF's or blank lines after the whole record:
. EB: LEB:
0 1
.
. PARAMETERS FOR EACH FIELD IN RECORD. USE BLOCK COPY TO REPEAT THIS
. BLOCK AS MANY TIMES AS THERE ARE FIELDS TO BE SHOWN IN THE FORMAT.
. FIELDS ARE DESCRIBED IN THE ORDER THAT THEY APPEAR IN THE FORMAT.
.
. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means
. the 4-char default name, and 2 indicates a name will be entered.
. FM(): LFM():
1 1
. F2$(): Screen field name (whole line - used in mode 2 only).
. LF2$(): Printer field name (whole line - used in mode 2 only).
. NLL(): Field name loc. ln. LNLL(): Field name location line
0 0
. NLC(): Name location col. LNLC(): Field name location column
0 0
. The number of CR/LF's after the field name:
. FMB(): LFMB():
0 0
. The location line to print the field data:
. DLL(): LDLL():
0 0
. The column at which to print the field data:
. DLC(): LDLC():
8 8
.
. If the field is a numeric field and the following lines are not blank,
. the line will be used as a MBASIC PRINT USING string.
. PU$(): Numeric PRINT USING string for screen.
. LPU$(): Numeric PRINT USING string for printer.
. Field length. Fields may be truncated to a certain number of char-
. acters to fit in the space designed. 0 means that whatever random
. length it is will be printed. -1 means that the field will be skipped
. (so you can show a field on the screen but skip it on the printer).
. FL(): LFL():
0 0
. Number of CR/LF's after this field (use 1 at end of line if necess.)
. FB(): LFB():
1 1
. (end field)
.
. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means
. the 4-char default name, and 2 indicates a name will be entered.
. FM(): LFM():
1 1
. F2$(): Screen field name (line - mode 2 only).
. LF2$(): Printer field name (line - mode 2 only).
. NLL(): Field name loc. ln. LNLL(): Field name location line
0 0
. NLC(): Name location col. LNLC(): Field name location column
0 0
. The number of CR/LF's after the field name:
. FMB(): LFMB():
0 0
. The location line to print the field data:
. DLL(): LDLL():
0 0
. The column at which to print the field data:
. DLC(): LDLC():
8 8
.
. If the field is a numeric field, a MBASIC PRINT USING string entered
. here will be used.
. PU$(): Numeric PRINT USING string for screen.
. LPU$(): Numeric PRINT USING string for printer.
. Field length. Fields may be truncated to a certain number of char-
. acters to fit in the space designed. 0 means that whatever random
. length it is will be printed. -1 means that the field will be skipped
. (so you can show a field on the screen but skip it on the printer).
. FL(): LFL():
0 0
. Number of CR/LF's after this field (use 1 at end of line if necess.)
. FB(): LFB():
1 1
. (end field)
.
. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means
. the 4-char default name, and 2 indicates a name will be entered.
. FM(): LFM():
1 1
. F2$(): Screen field name (line - mode 2 only).
. LF2$(): Printer field name (line - mode 2 only).
. NLL(): Field name loc. ln. LNLL(): Field name location line
0 0
. NLC(): Name location col. LNLC(): Field name location column
0 0
. The number of CR/LF's after the field name:
. FMB(): LFMB():
0 0
. The location line to print the field data:
. DLL(): LDLL():
0 0
. The column at which to print the field data:
. DLC(): LDLC():
8 8
.
. If the field is a numeric field, a MBASIC PRINT USING string entered
. here will be used.
. PU$(): Numeric PRINT USING string for screen.
. LPU$(): Numeric PRINT USING string for printer.
. Field length. Fields may be truncated to a certain number of char-
. acters to fit in the space designed. 0 means that whatever random
. length it is will be printed. -1 means that the field will be skipped
. (so you can show a field on the screen but skip it on the printer).
. FL(): LFL():
0 0
. Number of CR/LF's after this field (use 1 at end of line if necess.)
. FB(): LFB():
1 1
. (end field)
.
. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means
. the 4-char default name, and 2 indicates a name will be entered.
. FM(): LFM():
1 1
. F2$(): Screen field name (line - mode 2 only).
. LF2$(): Printer field name (line - mode 2 only).
. NLL(): Field name loc. ln. LNLL(): Field name location line
0 0
. NLC(): Name location col. LNLC(): Field name location column
0 0
. The number of CR/LF's after the field name:
. FMB(): LFMB():
0 0
. The location line to print the field data:
. DLL(): LDLL():
0 0
. The column at which to print the field data:
. DLC(): LDLC():
8 8
.
. If the field is a numeric field, a MBASIC PRINT USING string entered
. here will be used.
. PU$(): Numeric PRINT USING string for screen.
. LPU$(): Numeric PRINT USING string for printer.
. Field length. Fields may be truncated to a certain number of char-
. acters to fit in the space designed. 0 means that whatever random
. length it is will be printed. -1 means that the field will be skipped
. (so you can show a field on the screen but skip it on the printer).
. FL(): LFL():
0 0
. Number of CR/LF's after this field (use 1 at end of line if necess.)
. FB(): LFB():
1 1
. (end field)
.
. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means
. the 4-char default name, and 2 indicates a name will be entered.
. FM(): LFM():
1 1
. F2$(): Screen field name (line - mode 2 only).
. LF2$(): Printer field name (line - mode 2 only).
. NLL(): Field name loc. ln. LNLL(): Field name location line
0 0
. NLC(): Name location col. LNLC(): Field name location column
0 0
. The number of CR/LF's after the field name:
. FMB(): LFMB():
0 0
. The location line to print the field data:
. DLL(): LDLL():
0 0
. The column at which to print the field data:
. DLC(): LDLC():
8 8
.
. If the field is a numeric field, a MBASIC PRINT USING string entered
. here will be used.
. PU$(): Numeric PRINT USING string for screen.
. LPU$(): Numeric PRINT USING string for printer.
. Field length. Fields may be truncated to a certain number of char-
. acters to fit in the space designed. 0 means that whatever random
. length it is will be printed. -1 means that the field will be skipped
. (so you can show a field on the screen but skip it on the printer).
. FL(): LFL():
0 0
. Number of CR/LF's after this field (use 1 at end of line if necess.)
. FB(): LFB():
1 1
. (end field)
.
. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means
. the 4-char default name, and 2 indicates a name will be entered.
. FM(): LFM():
1 1
. F2$(): Screen field name (line - mode 2 only).
. LF2$(): Printer field name (line - mode 2 only).
. NLL(): Field name loc. ln. LNLL(): Field name location line
0 0
. NLC(): Name location col. LNLC(): Field name location column
0 0
. The number of CR/LF's after the field name:
. FMB(): LFMB():
0 0
. The location line to print the field data:
. DLL(): LDLL():
0 0
. The column at which to print the field data:
. DLC(): LDLC():
8 8
.
. If the field is a numeric field, a MBASIC PRINT USING string entered
. here will be used.
. PU$(): Numeric PRINT USING string for screen.
. LPU$(): Numeric PRINT USING string for printer.
. Field length. Fields may be truncated to a certain number of char-
. acters to fit in the space designed. 0 means that whatever random
. length it is will be printed. -1 means that the field will be skipped
. (so you can show a field on the screen but skip it on the printer).
. FL(): LFL():
0 0
. Number of CR/LF's after this field (use 1 at end of line if necess.)
. FB(): LFB():
1 1
. (end field)
.
. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means
. the 4-char default name, and 2 indicates a name will be entered.
. FM(): LFM():
1 1
. F2$(): Screen field name (line - mode 2 only).
. LF2$(): Printer field name (line - mode 2 only).
. NLL(): Field name loc. ln. LNLL(): Field name location line
0 0
. NLC(): Name location col. LNLC(): Field name location column
0 0
. The number of CR/LF's after the field name:
. FMB(): LFMB():
0 0
. The location line to print the field data:
. DLL(): LDLL():
0 0
. The column at which to print the field data:
. DLC(): LDLC():
8 8
.
. If the field is a numeric field, a MBASIC PRINT USING string entered
. here will be used.
. PU$(): Numeric PRINT USING string for screen.
. LPU$(): Numeric PRINT USING string for printer.
. Field length. Fields may be truncated to a certain number of char-
. acters to fit in the space designed. 0 means that whatever random
. length it is will be printed. -1 means that the field will be skipped
. (so you can show a field on the screen but skip it on the printer).
. FL(): LFL():
0 0
. Number of CR/LF's after this field (use 1 at end of line if necess.)
. FB(): LFB():
1 1
. (end field)
.
. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means
. the 4-char default name, and 2 indicates a name will be entered.
. FM(): LFM():
1 1
. F2$(): Screen field name (line - mode 2 only).
. LF2$(): Printer field name (line - mode 2 only).
. NLL(): Field name loc. ln. LNLL(): Field name location line
0 0
. NLC(): Name location col. LNLC(): Field name location column
0 0
. The number of CR/LF's after the field name:
. FMB(): LFMB():
0
0
. The location line to print the field data:
. DLL(): LDLL():
0 0
. The column at which to print the field data:
. DLC(): LDLC():
8 8
.
. If the field is a numeric field, a MBASIC PRINT USING string entered
. here will be used.
. PU$(): Numeric PRINT USING string for screen.
. LPU$(): Numeric PRINT USING string for printer.
. Field length. Fields may be truncated to a certain number of char-
. acters to fit in the space designed. 0 means that whatever random
. length it is will be printed. -1 means that the field will be skipped
. (so you can show a field on the screen but skip it on the printer).
. FL(): LFL():
0 0
. Number of CR/LF's after this field (use 1 at end of line if necess.)
. FB(): LFB():
1 1
. (end field)
.