@ACTIVITY = Workshop:<R>Creating Tables for Ventura<R>with WordPerfect 5.1 Macros

The Table feature in all four versions of Ventura Gold (DOS, Windows, OS/2, and Macintosh), is the most time saving and flexible table builder in the Electronic Publishing world today. From its release in 1989 in version 2.0 as an option to the inclusion in the Gold Series, most users are intimidated with its operation.

With information from an article Bob Moody wrote in the November 1989 issue of Ventura Professional and the assistance of a chapter from Inside Xerox Ventura Publisher, Third Edition by James Cavuoto and Jesse Berset, I was able to develop a special keyboard macro for WordPerfect 5.1 to create and insert tables in the training manuals for my consulting business.

Most of my customers felt that creating tables in the Table Edit and Text Mode was too time consuming and like regular text, they should be able to enter table text in a Word Processor. I fully agreeded with my clients (uncommon with consultants) and set out to find an easier way.

The people who have attended my training sessions are taught three primary rules: 1) Learn to be Ambimousterous, use the keyboard shortcuts in combination with the mouse to be more productive, 2) 85% of your work should be completed before you start Ventura to be more productive, and 3) Always create a thumbnail sketch of your work (Plan) and when working with tables draw a rough sketch of what you want the table to look like.

The problem with the tables is where or how do you begin in your word processor? With the help of the Excellent Macro system of WordPerfect 5.1 it was simple enough to create a Macro Questionnaire that prompted the end-user with the same commands that were needed when entering a NEW table in Ventura's Table Edit function. This ability allows you to build a table at anytime during the creation of text and not taking the viewpoint that "I'll leave that portion 'till I get to Ventura".

To be successful in using the Macro you must understand the rules needed in the construction of a Table for Ventura.

@HEAD1 = RULES:

@OBJECTIVE = Should the table be created within my running text?

@INDENT BODY = Start the special table macro following the paragraph you wish to position the table. This allow the table to flow with the regular text in your chapter. An example of this is the article you are reading.

@OBJECTIVE = Should the table be created as a separate file?

@INDENT BODY = Start the special table macro on the Alternate Document Screen and save it as a separate file. You must then create a frame in your chapter to load the table text file you created. This gives you the flexibility to move the frame containing the table to any page at any time and use the Frame Anchor option to attach it to a paragraph position.

Once you have decided the way in which the table is to be used you can the prepare to layout your table. When creating the table you MUST know the following:

@BODY INDENT = How many columns?

@BODY INDENT = How many rows?

@BODY INDENT = Unit of Measure to work in?

@BODY INDENT = Are columns fixed or flexible in length?

@BODY INDENT = What is the Overall Width?

@BODY INDENT = What is the Horizontal Alignment?

@BODY INDENT = Is there Space above the Table?

@BODY INDENT = Is there Space below the Table?

@BODY INDENT = Is there Space between columns?

@BODY INDENT = Is there Space above and below rules?

@BODY INDENT = Is there a Box around the table?

@BODY INDENT = Is there a Horizontal Grid?

@BODY INDENT = Is there a Vertical Grid?

When you create a new table in Ventura using the Insert New Table option, the following questions appear in all versions of the Ventura Package. Below is the definition of these questions:

# of Rows, Columns—Enter the number of rows and columns the table will have to start out. The number can be increased or decreased later but Ventura needs to have a starting point.

Overall Width—The choice here is either Column or Custom. Column will create a table the width of the current column or in a single column the entire frame. Custom allows you to specify an overall width limitation, which also activates the Horizontal alignment options next.

Horiz. Alignment—This allows you to place the Custom Table to the Left Margin setting, Right Margin setting, Center the table between margins or define an Indent from the Left Margin to the overall width. Note that using this option can force the table beyond the specified right margin setting.

Space Above—This option is similar to the Above Space option in the Paragraph Menu of Spacing. This is to add vertical space between the baseline of the paragraph above and the first baseline of the table text. It does not work like the space above when using the above rule attached to a paragraph.

Space Below—This option is similar to the Below Space option in the Paragraph Menu of Spacing. This is to add vertical space between the baseline of the last line of table text to the baseline of the first line of the next paragraph. It does not work line the extra space below a rule in the below rule attached to a paragraph.

Space Between Columns—This is much like the Gutter Option in the Margins and Columns Dialog box under the Frame menu. This is the amount of extra space between columns to keep the type from touching. Note, if using Vertical rules, the amount of space will be split in half to allow for the rule so double the amount of space.

Space Between Rows—Think of this as the Above and Below Space between rows, it works like the Above and Below of Paragraph Space. This is that extra amount of space to keep the table in a uniform looking manner. Note, if using Horizontal Grid, the amount of space will be split in half to allow for the rule so double the amount of space. Alternative you could adjust the above and below paragraph space option under the Paragraph Menu.

Box Around—This allows you to attach rule lines around the entire table grid in pre-defined or user-defined weights. This option sets the weight for the entire table and can be altered in the table edit function at a later time.

Horiz. Grid—Like the Box Around Option, this allows you to use a pre-defined or user-defined rule centered above and below rows for the entire table which can also be over-ridden with the table edit function at a later time.

Vert. Grid—Like the last two options, this allows you to define a per-define or user-defined rule centered between columns for the entire table which again may be over-ridden with the table edit function at a later time.

We won't get into the other options at this time: Break Across Pages, # of Header Rows, Vertical Just at Tops and Vertical Just at Bottom, check your version of the Ventura Reference Manual for their usage.

You must first understand the above rules before you can start to build your table in your word processor with or without a macro. The next thing to learn are the major components needed by Ventura to recognize text as a table.

There are many strange commands that are created by Ventura when you use the Create Table option in Ventura. On the chart attached to this article are all the commands their description and comments but if your just ready to dive in and try it on your own, the below is the minimum amount of information that you need to create a table with your word processor.

The table begins with a special Ventura Tag, @Z_TBL_BEG = . This informs Ventura that the text following is to be treated special—AS A TABLE.

The number of columns must then be defined using the COLUMNS(x) command, the "x" is the number of columns across in the table. This command MUST be immediately following the table begin command.

The information in each row of the table gets entered remembering that ONLY ONE paragraph per cell and each cell seperated by a comma and space for the specified amount of columns. Note, if a comma is going to be used as text within a cell you MUST enter it as a double comma (,,) and if more than one definate line is to be in a cell you MUST use the <<R>> option in text for Line Break.

The table ends with another special Ventura Tag, @Z_TBL_END = . This informs Ventura that the text to follow is to be treated as regular text and that the information between the _BEG and _END commands MUST meet all of the definations of the Special Table Edit features.

Below is the simplest and probably least amount of information needed to create a table as an example:

@COURIER =

@COURIER = <_>@Z_TBL_BEG = COLUMNS(4)

@COURIER = <_>Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

@COURIER = <_>Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 0-Column 3

@COURIER = <_>@Z_TBL_END =

@COURIER =

This would create a simple four (4) column table of equal widths, with NO BOX around and NO VERT. GRID between columns as shown below.

@COURIER =

@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), KEEP(ON)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT, TABLE TEXT, TABLE TEXT

Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@Z_TBL_END =

@COURIER =

Note that Ventura, like the old data processors, starts its counters at ZERO and not ONE. This is important to remember when it comes to modifying the Rule and Tint options of the Table Editor. The biggest thing to keep in mind is that you can modify all the entries needed for the table as text, however some things are easier to do in the Table Editor of Ventura, like Splits, Joins, Tints and change rule weight, then in the word processor.

Now lets take the same table above and add a few more table options and see what happens:

@COURIER =

@COURIER = <_>@Z_TBL_BEG = COLUMNS(4), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE)

@COURIER = <_>Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

@COURIER = <_>Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@COURIER = <_>@Z_TBL_END =

@COURIER =

Notice that this time there is a Thick Rule Box around the entire table and Single Rule Horizontial and Vertical rules between the cells. This is managed by the change in the table of the last three entries. It is important to remember, just like the columns must be seperated with comma and space the entries of Commands must also be seperated with Comma and space.

@COURIER =

@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(ON)

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT, TABLE TEXT, TABLE TEXT

Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@Z_TBL_END =

@COURIER =

Now you are ready to move into the difference of how the tags are maintained. Just as BODY TEXT is the default tag for Regular Text, TABLE TEXT is the default tag for Table Entries. The defination of a Table Tag and when it takes effect is done with the entry of two new special TAG NAMES, @Z_TBL_HEAD = , used to define text that can be used as table headers to automatically be repeated on another page or into another frame if the table must be expanded. And @Z_TBL_BODY = , followed by a TAG NAME that controls the look of each column beneath. In the examples to follow I will show you how to adjust the names for special effects but for the first example let me demonstrate the easiest.

@COURIER =

@COURIER = <_>@Z_TBL_BEG = COLUMNS(4), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE)

@COURIER = <_>@Z_TBL_BODY = FIRST TEXT, FIRST TEXT, FIRST TEXT, FIRST TEXT

@COURIER = <_>Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

@COURIER = <_>Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@COURIER = <_>@Z_TBL_END =

@COURIER =

Like a regular paragraph tag in Ventura, FIRST TEXT allows me to use all the option under the Paragraph Menu to format my columns, assuming in this example I want all the columns to look the same. Times Roman, Right Justified columns.

@COURIER =

@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), HGUTTER(.0555), VGUTTER(.0555), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(ON)

@Z_TBL_BODY = FIRST TEXT, FIRST TEXT, FIRST TEXT, FIRST TEXT

Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@Z_TBL_END =

@COURIER =

In the next example I want to start expanding my table information to include some headers across the top of my table and supply additional formats to the Table Text

@COURIER =

@COURIER = <_>@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(OFF)

@COURIER = <_>@Z_TBL_HEAD = COLUMN HEAD, COLUMN HEAD, COLUMN HEAD, COLUMN HEAD

@COURIER = <_>COLUMN 0, COLUMN 1, COLUMN 2, COLUMN 3

@COURIER = <_>@Z_TBL_BODY = FIRST TEXT, FIRST TEXT, FIRST TEXT, FIRST TEXT

@COURIER = <_>Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

@COURIER = <_>Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@COURIER = <_>@Z_TBL_END =

@COURIER =

The entry of KEEP(OFF) allow the new tag COLUMN HEAD, to break across pages, columns or frames as needed to repeat itself. The addition of the @Z_TBL_HEAD = , informs Ventura that this is the Header information that can carry over and again by using the option under the Paragraph Menu it allows your to change the format of your heads. Heads=Helvetica Flush Left.

@COURIER =

@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), HGUTTER(.0555), VGUTTER(.0555), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(OFF)

@Z_TBL_HEAD = COLUMN HEAD, COLUMN HEAD, COLUMN HEAD, COLUMN HEAD

COLUMN 0, COLUMN 1, COLUMN 2, COLUMN 3

@Z_TBL_BODY = FIRST TEXT, FIRST TEXT, FIRST TEXT, FIRST TEXT

Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@Z_TBL_END =

@COURIER =

Now I get daring with the defination of tags and start to define individual columns. Remembering that each name defined on the @Z_TBL_BODY =<|>, line seperated by a comma and space defines the TAG NAME for that COLUMN. We can also change the weight of the rules between full columns/rows and partial columns/rows as shown by the addition of the RULE(Z_THICK,R1C0...R1C4) command below.

@COURIER =

@COURIER = <_>@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), HGUTTER(.0555), VGUTTER(.0555), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(OFF), RULE(Z_THICK,R1C0...R1C4)

@COURIER = <_>@Z_TBL_HEAD = COLUMN HEAD, COLUMN HEAD, COLUMN HEAD, COLUMN HEAD

@COURIER = <_>COLUMN 0, COLUMN 1, COLUMN 2, COLUMN 3

@COURIER = <_>@Z_TBL_BODY = FIRST TEXT, SECOND TEXT, THIRD TEXT, FOURTH TEXT

@COURIER = <_>Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

@COURIER = <_>Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@COURIER = <_>@Z_TBL_END =

Notice the Type in each column has a different Horiz. Alignment, this was accomplished by using the Paragraph Menu and and Alignment Options for each of the four new column tags–FIRST TEXT, SECOND TEXT, THIRD TEXT and FOURTH TEXT. Remember the tags stay in effect from the point of change down through the end of table or until you change the @Z_TBL_BODY = , tag again.

@COURIER =

@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), HGUTTER(.0555), VGUTTER(.0555), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(OFF), L3(R1C0..R1C4)

@Z_TBL_HEAD = COLUMN HEAD, COLUMN HEAD, COLUMN HEAD, COLUMN HEAD

COLUMN 0, COLUMN 1, COLUMN 2, COLUMN 3

@Z_TBL_BODY = FIRST TEXT, SECOND TEXT, THIRD TEXT, FOURTH TEXT

Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@Z_TBL_END =

And if that's not fancy enough we can start to make change on an individual cell and column basis. See the addition of @Z_TBL_BODY = , lines.

@COURIER =

@COURIER = <_>@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), HGUTTER(.0555), VGUTTER(.0555), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(OFF)

@COURIER = <_>@Z_TBL_HEAD = COLUMN HEAD, COLUMN HEAD, COLUMN HEAD, COLUMN HEAD

@COURIER = <_>COLUMN 0, COLUMN 1, COLUMN 2, COLUMN 3

@COURIER = <_>@Z_TBL_BODY = FIRST TEXT, SECOND TEXT, THIRD TEXT, FOURTH TEXT

@COURIER = <_>Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

@COURIER = <_>Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@COURIER = <_>@Z_TBL_BODY = FIFTH TEXT, SIXTH TEXT, SEVENTH TEXT, EIGHTH TEXT

@COURIER = <_>Row 2-Column 0, Row 2-Column 1, Row 2-Column 2, Row 2-Column 3

@COURIER = <_>Row 3-Column 0, Row 3-Column 1, Row 3-Column 2, Row 3-Column 2

@COURIER = <_>@Z_TBL_END =

By making changes to tag name you will automatically be adding the additional @Z_TBL_BODY = , lines to your table entry file as shown below in the output of the previous text.

@COURIER =

@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), HGUTTER(.0555), VGUTTER(.0555), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(OFF)

@Z_TBL_HEAD = COLUMN HEAD, COLUMN HEAD, COLUMN HEAD, COLUMN HEAD

COLUMN 0, COLUMN 1, COLUMN 2, COLUMN 3

@Z_TBL_BODY = FIRST TEXT, SECOND TEXT, THIRD TEXT, FOURTH TEXT

Row 0-Column 0, Row 0-Column 1, Row 0-Column 2, Row 0-Column 3

Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, Row 1-Column 2

@Z_TBL_BODY = FIFTH TEXT, SIXTH TEXT, SEVENTH TEXT, EIGHTH TEXT

Row 2-Column 0, Row 2-Column 1, Row 2-Column 2, Row 2-Column 3

Row 3-Column 0, Row 3-Column 1, Row 3-Column 2, Row 3-Column 2

@Z_TBL_END =

@COURIER =

Now we come to the hard part, the Joins, Splits, Change Rule Weight of lines, and add some tints to the cells already defined.

@COURIER =

@COURIER = <_>@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), HGUTTER(.0555), VGUTTER(.0555), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(OFF), L3(R2C0..R2C2), L2(R3C2..R3C4)

@COURIER = <_>@Z_TBL_HEAD = COLUMN HEAD, COLUMN HEAD, COLUMN HEAD, COLUMN HEAD

@COURIER = <_>COLUMN 0, COLUMN 1, COLUMN 2<$!B12>, , COLUMN 3

@COURIER = <_>@Z_TBL_BODY = THIRD TEXT, SECOND TEXT, THIRD TEXT, FOURTH TEXT

@COURIER = <_>Row 0-Column 0, +, Row 0-Column 2, Row 0-Column 3

@COURIER = <_>@Z_TBL_BODY = FIRST TEXT, SECOND TEXT, THIRD TEXT, FOURTH TEXT

@COURIER = <_>Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, ^

@COURIER = <_>@Z_TBL_BODY = FIFTH TEXT, SIXTH TEXT, SEVENTH TEXT, EIGHTH TEXT

@COURIER = <_>Row 2-Column 0<$!B11>, Row 2-Column 1, Row 2-Column 2, Row 2-Column 3

@COURIER = <_>@Z_TBL_BODY = FIFTH TEXT, SIXTH TEXT, THIRD TEXT, EIGHTH TEXT

@COURIER = <_>^, Row 3-Column 1, Row 3-Column 2<$!B13>, +

@COURIER = <_>@Z_TBL_END =

@COURIER =

@Z_TBL_BEG = COLUMNS(4), DIMENSION(IN), WIDTH(5.0000), INDENT(.5000), HGUTTER(.0555), VGUTTER(.0555), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(ON), L3(R2C0..R2C2), L2(R3C2..R3C4)

@Z_TBL_BODY = COLUMN HEAD, COLUMN HEAD, COLUMN HEAD, COLUMN HEAD

COLUMN 0, COLUMN 1, COLUMN 2<$!B12>, COLUMN 3

@Z_TBL_BODY = THIRD TEXT, SECOND TEXT, THIRD TEXT, FOURTH TEXT

Row 0-Column 0, +, Row 0-Column 2, Row 0-Column 3

@Z_TBL_BODY = FIRST TEXT, SECOND TEXT, THIRD TEXT, FOURTH TEXT

Row 1-Column 0, Row 1-Column 1, Row 1-Column 2, ^

@Z_TBL_BODY = FIFTH TEXT, SIXTH TEXT, SEVENTH TEXT, EIGHTH TEXT

Row 2-Column 0<$!B11>, Row 2-Column 1, Row 2-Column 2, Row 2-Column 3

@Z_TBL_BODY = FIFTH TEXT, SIXTH TEXT, THIRD TEXT, EIGHTH TEXT

^, Row 3-Column 1, Row 3-Column 2<$!B13>, +

@Z_TBL_END =

@*PAGE BREAK =

This is a complete listing of all TABLE COMMANDS used by Ventura and how to apply them with the use of your word processor.

@Z_TBL_BEG = COLUMNS(5), DIMENSION(PI), COLWIDTHS(5.01,E1,6.10,7.10,E1), WIDTH(39.04), INDENT(0.04), ABOVE(0.06), BELOW(0.06), HGUTTER(0.02), VGUTTER(0.02), BOX(Z_THICK), HGRID(Z_SINGLE), VGRID(Z_SINGLE), KEEP(OFF)

@Z_TBL_HEAD = TABLE HEAD, TABLE HEAD, TABLE HEAD, TABLE HEAD, TABLE HEAD

Command, Description, Required?, Example, Comment

@Z_TBL_BODY = TABLE TEXT, TABLE TEXT, TABLE TEXT, TABLE TEXT, TABLE TEXT

@@Z_TBL_BEG = , Defines beginning of table, Required (Must be the first item), @@Z_TBL_BEG = ,

COLUMNS(x), Defines number of columns in table, Required Comes imediately after the @@Z_TBL_BEG =, @@Z_TBL_BEG = COLUMNS(3), From 1 to 999 columns permitted

DIMENSION(x), Defines dimensions used for calculations, Optional, (IN) = inches<R>(PT) = fractional points<R>(CM) = centimeters<R>(PI) = picas and points, This will now apply to all table entries

COLWIDTHS(x), Defines widths of columns in dimensions specified above or in number of proportions., Optional, COLWIDTHS(.5,1,5,2)<R>COLWIDTHS(E2,E1,E1,E2)<R>COLWIDTHS(12,E2,E1,E2), Numbers are fixed position- E1 is a proportional column - E2 would be twice the width of E1 and E3 would be three times

WIDTH(x), Defines overall width of "Custom Defined Table", Optional, WIDTH(5.06), If not defined the width would be the total text width

INDENT(x), Defines indent of table from the text columns for "Custom Table", Optional, INDENT(0.06)<R>INDENT(2IN), Indent is used in combination with Custom Tables

ALIGN(x), Defines the Alignment of Custom Width Tables, Optional, ALIGN(RT)<R>ALIGN(CT), Alignment Center or Right Only when using Custom Tables

ABOVE(x), Space ABOVE table, Optional, ABOVE(0.06)<R>ABOVE(2PT), Treated same as Space Above Tag

BELOW(x), Space BELOW table, Optional, BELOW(0.06)<R>BELOW(2PT), Treated same as Space Below Tag

VJTOP(x), Amount of vertical justification allowed ABOVE table, Optional, VJTOP(2)<R>VJTOP(15PT), Treated same as Vertical Above Tag

VJBOT(x), Amount of vertical justification allowed BELOW table, Optional, VJBOT(2)<R>VJBOT(15PT), Treated same as Vertical Below Tag

HGUTTER(x), Space allowed between columns of table, Optional, HGUTTER(12)<R>HGUTTER(1PI), Similar to the Gutter Setting in Margins and Columns TOTAL WIDTH with RULES

VGUTTER(x), Space allowed between rows of table, Optional, VGUTTER(7)<R>VGUTTER(1PI), Similar to the Above/Below spacing in Paragraph TOTAL SPACE with RULES

BOX(x), Specifies name of tag used for lines around the box, Optional, BOX(Z_DOUBLE)<R>BOX(Z_THICK), No entry will leave box open

HGRID(x), Specifies name of tag used for line between ROWS, Optional, HGRID(Z_SINGLE),

VGRID(x), Specifies name of tag used for line between COLUMNS, Optional, VGRID(Z_THICK),

KEEP(x), Defines whether the table is allowed to break across pages, Optional, KEEP(ON)<R>KEEP(OFF), This option is similar to Allow Within-No in the Breaks dialog box. KEEP(ON) will not allow the table to break across pages.

RULE(x), Defines alternative rule type for range in table, Optional, RULE(Z_THICK,R0C3...R2C5), This would overide a rule with a THICK RULE from Row 0-Column 3 to Row 2-Column 5

Lx(x), Define alternative rule type for range in table, Optional, L1(R2C4...R2C6), L1=Normal<R>L2=Single<R>L3=Double<R>L4=Thick

<<$Bct>>, Indicated Color and Tint override in range, Optional, <<$B18>><R><<$B24>>, Color: 0=WH 1=BK 2=RD 3=BL 4=GR<R>Tint: 0=NONE 1=10% 4=40% 8=SOLID Check Ventura Reference for Color and Tints

^,,<|>, Indicates a Join Cell within table, Optional, <~>,,<~>^,,<|>, Used to indicate join cells with the cell directly above

+,,<|>, Indicates a Join Cell within table, Optional, <~>,,<~>+,,<|>, Used to indicate join cell with the cell to the Left of current cell

@@Z_TBL_HEAD = , Defines tag names for header row, Optional, @Z_TBL_HEAD = TABLE HEAD,, TABLE HEAD,, TABLE HEAD, If KEEP(OFF) this will create new head on next page automatically

@@Z_TBL_BODY = , Defines tag names for Table Text, Optional, @Z_TBL_BODY = TABLE TEXT,, TABLE TEXT,, TABLE TEXT, Default is Table Text Tag

@@Z_TBL_END = , Defines the END of table, Required, @Z_TBL_END = , Must be LAST LINE in TABLE to revert to Standard Body Text

@Z_TBL_END =

@HEAD1 = THE MACRO

Well, that finally brings us to the WordPerfect 5.1 Macro that will assist you in creating Tables for Ventura while working with WordPerfect. In fact, this entire article was created using the Macro listed at the end of this article. This macro will be available as a Public Domain Utility in the Ventura Professional User Group RBBS, and on Compuserve both in the Word Perfect Forum and Ventura Forum.

Since this was designed to be a Keyboard Macro, keyboard macro's have the extension .WPK, you must first copy the TABLE.WPK file to the location of your other Macro File. If your not sure where your macros are filed, check your setup (SHIFT+F1), option 6 (Location of Files) or look for any files with the extensions .WPM or .WPK.

Then you must attach the TABLE.WPK to your keyboard layout through the Setup again, (Shift+F1), option 5 (Keyboard Layouts), Highlight the TABLE Layout and then Exit (F7) until you get back to your document.

Below is a list of the keys defined in the Table Macro:

@8 POINT BODY = <T>ALT+R<T><<R>><T>Line Break Command

@8 POINT BODY = <T>ALT+T<T>Table Text<T>Used to change @Z_TBL_BODY = , Tag

@8 POINT BODY = <T>ALT+\<T><<$B11>><T>For Tint Blocks

@8 POINT BODY = <T>ALT+Z<T>END TABLE<T>Used for entering @Z_TBL_END = , command

@8 POINT BODY = <T>NUM Enter<T>, <T>Used to enter comma and space commands as entry

@8 POINT BODY = <T>NUM /<T>MACRO<T>Starts Table Macro Questioner

Move cursor to location, must always be between new paragraph, and cursor must be at the far left or first character of the line. Start Macro by following the example:

@SELECT = Press

@KEYS = Num /<T>Numbers keypad "/" key

@SELECT = Prompt:

@SELECT REVERE = Ventura Automatic Table Builder

@SELECT = Prompt:

@SELECT REVERE = Enter number of columns

@SELECT = Type:

@KEYS = #<T>Enter a number from 1 to 9999

@SELECT = Prompt:

@SELECT REVERE = What is unit of measurement: 1=IN 2=PT 3=CM 4=PI?

@BODY INDENT = If INCHES use decimal entries for all measurement: 5.25 = 5<$E1/4> inches

@BODY INDENT = If POINTS use fractional points for entry: 72 point = 1 inch

@BODY INDENT = If CENTIMETERS use tenth of a centimeter: 10.10 = 10 and 10/tenths

@BODY INDENT = If PICAS & POINTS use Picas and seperate Points by comma: 06,06 = 6 Picas and 6 points, 12 points = 1 pica

@SELECT = Type:

@KEYS = #<T>This will be used throught options

@SELECT = Prompt:

@SELECT REVERE = Are columns: 1=Set 2=Variable 3=Combination: ?

@BODY INDENT = Entry of 1 will allow you to define each column width in the measurement system you chose above.

@BODY INDENT = Entry of 2 will make each column the same width to the maximum overall width

@BODY INDENT = Entry of 3 will allow you to enter fixed and Variable E(x) entries where "x" represents expandable by 1, 2, 3, etc. in amounts to remainding overall width.

@SELECT = Prompt:

@SELECT REVERE = What is Overall Width? 1=Column or 2=Custom;

@BODY INDENT = Column is the default and will extend the table to fit the column or frame width, unless fixed columns total value is less than the overall width then table will be flushed to the left side of column or frame.

@BODY INDENT = Custom selection allows you to define an overall width greater or less than the column width and also to determine the Horizontal Alignment of table.

@SELECT = Prompt:

@SELECT REVERE = What is Horizontal Alignment? 1=Left 2=Center 3=Right 4=Indent:

@BODY INDENT = Left is the default. If a mixture of Fixed and Variable cells widths has been choosen any remaining space will be added to the right side of the table thereby flushing the complete table to the left.

@BODY INDENT = Center will take any reamininding space as mentioned above and split it to both sides of the table.

@BODY INDENT = Right will take all the remainding space and add it to the left side of the table, moving the table against the Right Margin

@BODY INDENT = Indent allow you to determine what space should be added to the left side of the table and extend the table to the custom overall width.

@SELECT = Prompt:

@SELECT REVERE = Is there space ABOVE Table, Y/N ?

@BODY INDENT = This has been explained in the early section of this workshop.

@SELECT = Prompt:

@SELECT REVERE = Enter the amount of ABOVE space in {measurment system}:

@BODY INDENT = The measurement entry here will be that of the designated measurement system. BE CAREFUL HERE!

@SELECT = Prompt:

@SELECT REVERE = Is there space BELOW Table, Y/N ?

@BODY INDENT = This has been explained in the early section of this workshop.

@SELECT = Prompt:

@SELECT REVERE = Enter the amount of BELOW space in {measurment system}:

@BODY INDENT = The measurement entry here will be that of the designated measurement system. BE CAREFUL HERE!

@SELECT = Prompt:

@SELECT REVERE = Is there space BETWEEN COLUMNS, Y/N ?

@BODY INDENT = This has been explained in the early section of this workshop.

@SELECT = Prompt:

@SELECT REVERE = Enter the amount of Column space in {measurment system}:

@BODY INDENT = The measurement entry here will be that of the designated measurement system. BE CAREFUL HERE!

@SELECT = Prompt:

@SELECT REVERE = Is there space ABOVE and BELOW ROWS, Y/N ?

@BODY INDENT = This has been explained in the early section of this workshop.

@SELECT = Prompt:

@SELECT REVERE = Enter the amount of space above/below rows in{measurment system}:

@BODY INDENT = The measurement entry here will be that of the designated measurement system. BE CAREFUL HERE!

@SELECT = Prompt:

@SELECT REVERE = IS THERE A BOX AROUND TABLE, Y/N ?

@BODY INDENT = If the answer is "Y", the macro will prompt you for a Weight of the rules giving you the standard Ventura Weights plus a Special rule that you may redefine with the Paragraph Menu Option.

@SELECT = Prompt:

@SELECT REVERE = Weight Rules: 1=Single 2=Double 3=Thick 4=Hidden 5=Special:

@BODY INDENT = These our your rule weight choices, using the Paragraph Tagging Options you can redefine the weight of rules.

@SELECT = Prompt:

@SELECT REVERE = Is there a Horizontial Grid, Y/N?

@BODY INDENT = Same as Box options

@SELECT = Prompt:

@SELECT REVERE = Is there a Vertical Grid, Y/N?

@BODY INDENT = Same as Box options

@SELECT = Prompt:

@SELECT REVERE = Do you want Word Perfect to build Auto Table? Y/N:

@SELECT = Answer "Y":

@BODY INDENT = If "Y", macro will prompt you for Header Information and Row information in "N" you will be prompted for Header and additional instructions below:

@SELECT = Prompt:

@SELECT REVERE = Are there column heads? Y/N :

@BODY INDENT = If "Y" the macro will create the needed @Z_TBL_HEAD = TABLE HEAD, for the needed number of columns and wait for you to enter the head information for each column.

@BODY INDENT = If "N" to Column Heads, macro will prompt you to enter the number of rows that you would like to enter the TABLE TEXT for.

@SELECT = Prompt:

@SELECT REVERE = Enter number of Rows:

@BODY INDENT = You will then pr prompted to enter the Text for each column and row that you entered above. Use the <<R>> to LINE BREAK; ^, to join above cells; +, to join cells to the right and the ENTER key to leave a cell blank. The macro will automatically add the @Z_TBL_END =, tag for closing teh table when all rows have been completed. You can then add additional table attributes, rows, change tag column names.

@SELECT = Answer "N":

@BODY INDENT = If you had answered "N" to build Auto Table, you would have been prompted for column head information.

@SELECT = Prompt:

@SELECT REVERE = Is there COLUMN HEADERS: Y/N ?

@BODY INDENT = If "Y", macro will again allow you to build your column head, if "N" macro woluld creaed @Z_TBL_BODY = TABLE TEXT, for as many columns as required, you could then enter your own text or merge a PRN-TO-TBL file into your document and the manually enter the @Z_TBL_END = , with the use of the ALT-Z

@SELECT = Press:

@KEYS = ALT+Z

@BODY INDENT = If you need to end the table manually.

@HEAD1 = Macro listing for you to build yourself:

@COURIER = {;}•Macro•Keyboard•for•Creating•Ventura•Tables•directly•in•Ventura~

@COURIER = {;}•Created•by•Barry•L.•Heil,•BLH-GRAPHIC•DESIGN,•UNION,•NJ•07083

@COURIER = {;}•Telephone:•(908)•686-5192•or•FAX:•(908)•964-9159

@COURIER =

@COURIER = {STATUS PROMPT}~

@COURIER = {ON CANCEL}{GO}cancel~~

@COURIER = {BELL}{STATUS PROMPT}{^R}•••Ventura•Automatic•Table•Builder••••••{^S}~

@COURIER = {WAIT}9~{STATUS PROMPT}~

@COURIER = {TEXT}columns~{^R}Enter•number•of•columns:•••••••{^S}~

@COURIER =

@COURIER = {IF}{LEN}columns~=0~

@COURIER = <_>{STATUS PROMPT}{BELL}{^R}••MUST•ENTER•A•NUMBER:•START•OVER••{^S}~

@COURIER = <_>{PAUSE}

@COURIER = <_>{GO}cancel~

@COURIER = {END IF}

@COURIER = {CHAR}FFF~{^R}What•is•unit•of•measurement:•1=INches•2=PoinTs• 3=CentiMeter•4=PIcas•&•Points•?•{^S}~

@COURIER =

@COURIER =

@COURIER = {LABEL}begin~

@COURIER = <_>@Z_TBL_BEG•=•COLUMNS({VARIABLE}columns~),•DIMENSION(

@COURIER =

@COURIER = <_>{IF}{VARIABLE}FFF~=1~

@COURIER = <_><_>{ASSIGN}mea~IN~

@COURIER = <_><_>{ELSE}<_><_>

@COURIER = <_><_>{IF}{VARIABLE}FFF~=2~

@COURIER = <_><_><_>{ASSIGN}mea~PT~

@COURIER = <_><_><_>{ELSE}

@COURIER = <_><_><_>{IF}{VARIABLE}FFF~=3~

@COURIER = <_><_><_><_>{ASSIGN}mea~CM~

@COURIER = <_><_><_><_>{ELSE}

@COURIER = <_><_><_><_>{IF}{VARIABLE}FFF~=4~

@COURIER = <_><_><_><_><_>{ASSIGN}mea~PI~

@COURIER = <_><_>{END IF}{END IF}{END IF}{END IF}

@COURIER =

@COURIER = {VARIABLE}mea~),•

@COURIER =

@COURIER = {CHAR}1~{^R}Are•columns:•1=Set••2=Variable••3=Combination:•?•{^S}~

@COURIER = <_>{CASE}{VAR 1}~

@COURIER = <_><_>1~set~

@COURIER = <_><_>2~varr~

@COURIER = <_><_>3~comb~

@COURIER = <_><_>~

@COURIER = <_><_>{LABEL}set~

@COURIER = <_><_><_>COLWIDTHS(

@COURIER = <_><_><_>{FOR}set1~1~{VARIABLE}columns~~1~

@COURIER = <_><_><_>{TEXT}set2~{^R}What•is•measurement•in•{VARIABLE}mea~:••{^S}~

@COURIER = <_><_><_>{VARIABLE}set2~,

@COURIER = <_><_><_>{END FOR}{Backspace}),•

@COURIER = <_><_><_>{GO}OVERALL~

@COURIER = <_><_><_>

@COURIER = <_><_>{LABEL}varr~

@COURIER = <_><_><_>{GO}OVERALL~

@COURIER =

@COURIER = <_><_>{LABEL}comb~

@COURIER = <_><_><_>COLWIDTHS(

@COURIER = <_><_><_>{FOR}set1~1~{VARIABLE}columns~~1~

@COURIER = <_><_><_>{TEXT}set2~{^R}Enter•measurement•or•RETURN•for•VARIABLE•(E): {^S}~

@COURIER = <_><_><_>{IF}"{VARIABLE}set2~"=""~

@COURIER = <_><_><_><_>E1,

@COURIER = <_><_><_>{ELSE}

@COURIER = <_><_><_><_>{VARIABLE}set2~,

@COURIER = <_><_><_>{END IF}

@COURIER = <_><_><_>{END FOR}{Backspace}),•

@COURIER = <_><_><_>{GO}OVERALL~

@COURIER =

@COURIER = {LABEL}OVERALL~

@COURIER = <_>{CHAR}key~{^R}What•is•Overall•Width?•1=Columns•or•2=Custom;•{^S}~

@COURIER = <_>{IF}{VARIABLE}key~=2~

@COURIER = <_><_>{TEXT}CUSTOM~{^R}What•is•the•overall•WIDTH•of•TABLE•in• {VARIABLE}mea~:••{^S}~

@COURIER = <_><_>WIDTH({VARIABLE}CUSTOM~),•

@COURIER = <_><_>{CHAR}ALIGN~{^R}What•is•the•Horizontal•Alignment?•1=Left• 2=Center•3=Right•4=Indent:••{^S}~

@COURIER = <_><_>{IF}{VARIABLE}ALIGN~=1~

@COURIER = <_><_><_>{ELSE}{IF}{VARIABLE}ALIGN~=2~

@COURIER = <_><_><_>ALIGN(CT),•

@COURIER = <_><_><_><_>{ELSE}{IF}{VARIABLE}ALIGN~=3~

@COURIER = <_><_><_><_>ALIGN(RT),•

@COURIER = <_><_><_><_><_>{ELSE}{IF}{VARIABLE}ALIGN~=4~

@COURIER = <_><_><_><_><_>{TEXT}INDENT~{^R}What•is•the•CUSTOM•INDENT•wanted•in• {VARIABLE}mea~?:••{^S}~

@COURIER = <_><_><_><_><_>INDENT({VARIABLE}INDENT~),•

@COURIER = <_><_><_><_><_>{END IF}{END IF}{END IF}{END IF}

@COURIER = <_>{END IF}

@COURIER = <_>{GO}ABOVE~

@COURIER =

@COURIER = {LABEL}ABOVE~

@COURIER = <_>{CHAR}key~{^R}Is•there•space•ABOVE•table,•Y/N•?•{^S}~

@COURIER = <_>{IF}"{VARIABLE}key~"="Y"|"{VARIABLE}key~"="y"~

@COURIER = <_>{TEXT}above~Enter•the•amount•of•ABOVE•Space•in•{VARIABLE}mea~:••~

@COURIER = <_><_>ABOVE({VARIABLE}above~),•

@COURIER = <_>{END IF}

@COURIER = <_>{GO}BELOW~~

@COURIER =

@COURIER = {LABEL}BELOW~

@COURIER = <_>{CHAR}key~{^R}IS•THERE•SPACE•BELOW•TABLE,•Y/N•?•{^S}~

@COURIER = <_>{IF}"{VARIABLE}key~"="Y"|"{VARIABLE}key~"="y"~

@COURIER = <_>{TEXT}below~Enter•the•amount•of•BELOW•space•in•{VARIABLE}mea~:••~

@COURIER = <_><_>BELOW({VARIABLE}below~),•

@COURIER = <_>{END IF}<_>

@COURIER = <_>{GO}BCOL~

@COURIER =

@COURIER = {LABEL}BCOL~

@COURIER = <_>{CHAR}key~{^R}IS•THERE•SPACE•BETWEEN•COLUMNS,•Y/N•?•{^S}~

@COURIER = <_>{IF}"{VARIABLE}key~"="Y"|"{VARIABLE}key~"="y"~

@COURIER = <_>{TEXT}bcol~Enter•the•amount•of•Column•Space•in•{VARIABLE}mea~:••~

@COURIER = <_><_>HGUTTER({VARIABLE}bcol~),•

@COURIER = <_>{END IF}

@COURIER = <_>{GO}BROW~

@COURIER =

@COURIER = {LABEL}BROW~

@COURIER = <_>{CHAR}key~{^R}IS•THERE•SPACE•ABOVE•AND•BELOW•ROWS,•Y/N•?•{^S}~

@COURIER = <_>{IF}"{VARIABLE}key~"="Y"|"{VARIABLE}key~"="y"~

@COURIER = <_>{TEXT}brow~Enter•the•space•above•&•below•rows•in•{VARIABLE}mea~:••~

@COURIER = <_><_>VGUTTER({VARIABLE}brow~),•

@COURIER = <_>{END IF}

@COURIER = <_>{GO}BOX~

@COURIER =

@COURIER = {LABEL}BOX~

@COURIER = <_>{CHAR}key~{^R}IS•THERE•A•BOX•AROUND•TABLE,•Y/N•?•{^S}~

@COURIER = <_>{ASSIGN}type~BOX(~

@COURIER = <_>{ASSIGN}next~HGRID~

@COURIER = <_>{IF}"{VARIABLE}key~"="Y"|"{VARIABLE}key~"="y"~

@COURIER = <_>{GO}WEIGHT~

@COURIER = <_>{ELSE}

@COURIER = <_>{GO}{VARIABLE}next~~

@COURIER = <_>{END IF}

@COURIER =

@COURIER = {LABEL}WEIGHT~

@COURIER = <_>{CHAR}BOX1~Weight•of•Rules:•1=Single•2=Double•3=Thick•4=Hidden• <_><_><_>5=Special•~

@COURIER = <_>{IF}"{VARIABLE}BOX1~"="1"~

@COURIER = <_><_>{VARIABLE}type~Z_SINGLE),•

@COURIER = <_>{ELSE}

@COURIER = <_><_>{IF}"{VARIABLE}BOX1~"="2"~

@COURIER = <_><_><_>{VARIABLE}type~Z_DOUBLE),•

@COURIER = <_><_>{ELSE}

@COURIER = <_><_><_>{IF}"{VARIABLE}BOX1~"="3"~

@COURIER = <_><_><_><_>{VARIABLE}type~Z_THICK),•

@COURIER = <_><_><_>{ELSE}

@COURIER = <_><_><_><_>{IF}"{VARIABLE}BOX1~"="4"~

@COURIER = <_><_><_><_><_>{VARIABLE}type~Z_HIDDEN),•

@COURIER = <_><_><_><_>{ELSE}

@COURIER = <_><_><_><_><_>{IF}"{VARIABLE}BOX1~"="5"~

@COURIER = <_><_><_><_><_><_>{VARIABLE}type~Z_SPECIAL),•

@COURIER = <_><_><_><_><_>{END IF}{END IF}{END IF}{END IF}{END IF}<_><_>

@COURIER = <_>{GO}{VARIABLE}next~~

@COURIER =

@COURIER =

@COURIER = {LABEL}HGRID~

@COURIER = <_>{CHAR}key~{^R}Is•there•a•Horizontial•Grid,•Y/N•?•{^S}~

@COURIER = <_>{ASSIGN}type~HGRID(~

@COURIER = <_>{ASSIGN}next~VGRID~

@COURIER = <_>{IF}"{VARIABLE}key~"="Y"|"{VARIABLE}key~"="y"~

@COURIER = <_>{GO}WEIGHT~

@COURIER = <_>{ELSE}

@COURIER = <_>{GO}{VARIABLE}next~~

@COURIER = <_>{END IF}

@COURIER =

@COURIER = {LABEL}VGRID~

@COURIER = <_>{CHAR}key~{^R}Is•there•a•Vertical•Grid,•Y/N•?•{^S}~

@COURIER = <_>{ASSIGN}type~VGRID(~

@COURIER = <_>{ASSIGN}next~KEEP~

@COURIER = <_>{IF}"{VARIABLE}key~"="Y"|"{VARIABLE}key~"="y"~

@COURIER = <_>{GO}WEIGHT~

@COURIER = <_>{ELSE}

@COURIER = <_>{GO}{VARIABLE}next~~

@COURIER = <_>{END IF}

@COURIER =

@COURIER = {LABEL}KEEP~

@COURIER = KEEP(OFF){Enter}

@COURIER = {GO}SKELT~

@COURIER =

@COURIER = {LABEL}SKELT~

@COURIER = <_>{CHAR}key~{^R}Do•you•want•WordPerfect•to•build•Auto•Table?•Y/N•{^S} ~

@COURIER = <_>{IF}"{VARIABLE}key~"="Y"|"{VARIABLE}key~"="y"~

@COURIER = <_>{CHAR}HEAD~{^R}Is•there•COLUMN•HEADERS:•Y/N•?••{^S}~

@COURIER = <_><_>{IF}"{VARIABLE}HEAD~"="Y"|"{VARIABLE}HEAD~"="y"~

@COURIER = <_><_><_>@Z_TBL_HEAD•=•

@COURIER = <_><_><_>{FOR}Counter~1~{VARIABLE}columns~~1~

@COURIER = <_><_><_><_>{IF}{VARIABLE}Counter~{VARIABLE}columns~~

@COURIER = <_><_><_><_><_>TABLE•HEAD,•

@COURIER = <_><_><_><_>{ELSE}

@COURIER = <_><_><_><_><_>TABLE•HEAD{Enter}

@COURIER = <_><_><_><_>{END IF}

@COURIER = <_><_><_>{END FOR}

@COURIER = <_><_><_>{FOR}Counter~1~{VARIABLE}columns~~1~

@COURIER = <_><_>{TEXT}List~{^]}Enter•Header•Text•for•Column•{VARIABLE}Counter~•: •{^\}~

@COURIER = <_><_><_><_>{IF}{VARIABLE}Counter~{VARIABLE}columns~~

@COURIER = <_><_><_><_><_>{VARIABLE}List~,•

@COURIER = <_><_><_><_>{ELSE}

@COURIER = <_><_><_><_><_>{VARIABLE}List~{Enter}

@COURIER = <_><_><_><_>{END IF}

@COURIER = <_><_><_>{END FOR}

@COURIER = <_><_>{END IF}

@COURIER = <_><_>{TEXT}ROWS~{^R}Enter•number•of•Rows:•••••{^S}~

@COURIER = <_><_>@Z_TBL_BODY•=•{FOR}Counter~1~{VARIABLE}columns~~1~

@COURIER = <_><_><_>TABLE•TEXT,•{END FOR}{Backspace}{Backspace}{Enter}

@COURIER = <_><_><_>{FOR}Count2~1~{VARIABLE}ROWS~~1~

@COURIER = <_><_><_><_>{FOR}Counter~1~{VARIABLE}columns~~1~

@COURIER = {TEXT}List~{^]}Enter•Text•for•-•ROW•{VARIABLE}Count2~/COL•{VARIABLE} Counter~:•{^\}~

@COURIER = <_><_><_><_>{IF}{VARIABLE}Counter~{VARIABLE}columns~~

@COURIER = <_><_><_><_><_>{VARIABLE}List~,•

@COURIER = <_><_><_><_>{ELSE}

@COURIER = <_><_><_><_><_>{VARIABLE}List~{Enter}

@COURIER = <_><_><_><_>{END IF}

@COURIER = <_><_><_>{END FOR}

@COURIER = <_><_>{END FOR}<_>

@COURIER = <_><_><_>{ASSIGN}next~ENDIT~

@COURIER = <_>{ELSE}

@COURIER = <_><_><_>{ASSIGN}next~TBLHEAD~

@COURIER = <_>{END IF}

@COURIER = <_><_><_>{GO}{VARIABLE}next~~

@COURIER =

@COURIER = {LABEL}TBLHEAD~

@COURIER = <_>{CHAR}HEAD~{^R}Is•there•COLUMN•HEADERS:•Y/N•?••{^S}~

@COURIER = <_>{IF}"{VARIABLE}HEAD~"="Y"|"{VARIABLE}HEAD~"="y"~

@COURIER = <_><_>@Z_TBL_HEAD•=•

@COURIER = <_><_>{FOR}Counter~1~{VARIABLE}columns~~1~

@COURIER = <_><_><_>{IF}{VARIABLE}Counter~{VARIABLE}columns~~

@COURIER = <_><_><_><_>TABLE•HEAD,•

@COURIER = <_><_><_>{ELSE}

@COURIER = <_><_><_><_>TABLE•HEAD{Enter}

@COURIER = <_><_><_>{END IF}

@COURIER = <_><_>{END FOR}

@COURIER = <_><_>{FOR}Counter~1~{VARIABLE}columns~~1~

@COURIER = {TEXT}HEAD~{^]}Enter•Text•for•HEADER•{VARIABLE}Counter~•:•{^\}~

@COURIER = <_><_><_>{IF}{VARIABLE}Counter~{VARIABLE}columns~~

@COURIER = <_><_><_><_>{VARIABLE}HEAD~,•

@COURIER = <_><_><_>{ELSE}

@COURIER = <_><_><_><_>{VARIABLE}HEAD~{Enter}

@COURIER = <_><_><_>{END IF}

@COURIER = <_><_>{END FOR}

@COURIER = <_>{END IF}

@COURIER = <_><_>@Z_TBL_BODY•=•

@COURIER = <_><_>{FOR}Counter~1~{VARIABLE}columns~~1~

@COURIER = <_><_><_>{IF}{VARIABLE}Counter~{VARIABLE}columns~~

@COURIER = <_><_><_><_>TABLE•TEXT,•

@COURIER = <_><_><_>{ELSE}

@COURIER = <_><_><_><_>TABLE•TEXT{Enter}

@COURIER = <_><_><_>{END IF}

@COURIER = <_><_>{END FOR}

@COURIER =

@COURIER = {BELL}{STATUS PROMPT}{^R}Entering•TABLE•TEXT•use•NUM-ENTER•as•",•"•{^S}~

@COURIER = {WAIT}20~

@COURIER = {STATUS PROMPT}{^R}USE•ALT+Z•to•create•@Z_TBL_END•=•:•{^S}~

@COURIER = {WAIT}20~

@COURIER = {STATUS PROMPT}~

@COURIER = <_>{GO}cancel~

@COURIER = <_>

@COURIER = {LABEL}ENDIT~

@COURIER = <_>@Z_TBL_END•=•{Enter}

@COURIER =

@COURIER = {CALL}cancel~

@COURIER =

@COURIER = {LABEL}cancel~

@COURIER = {BELL}{STATUS PROMPT}~

@COURIER = {QUIT}

@COURIER = NOTE THAT THE "•" BULLET REPRESENTS THE SPACEBAR IN THE MACRO SYSTEM

Barry Heil, President, Barry L. Heil-GRAPHIC DESIGN, a Graphic Arts consluting and training firm in Union, NJ, specalizing in Productive Training in all Desktop and Electronic Publishing programs since 1985. Currently serves as the Executive Director of the New Jersey Ventura Professional Users Group and does Ventura Training for J&D Associates, a Xerox Authorized Training Center, in Union, NJ and CES Training, Paramus, NJ. His office is located at 545 Stratford Road, PO Box 911, Union, NJ, (908) 686-5192.