| Previous Next | Contents |
leaf.table.Spread was re-using fonts incorrectly when a table with a matching matrix of font definitions ran to several pages. Fixed.
PushFrame def Add current frame to stack and substitute new definition
PopFrame Restore top frame from stack
leaf.vml.Polyline adds simple linedrawing capability. Argument is a matrix of (x,y) values followed by optional colour, weight, style as numbers (colour is index into normal colour table). The vml namespace is intended to support the majority of basic drawing primitives from the W3C Vector Markup Language specification.
leaf.table.Offset extended to take a 2-element vector. The first element offsets the box around the table, the second offsets the start point of the horizontal gridlines and any output from table.Rule. If you pass this a scalar it reshapes it to 2 elements, which preserves previous behaviour.
leaf.table.Spread will now accept tables wider than the frame and generate extra pages working across. Note the difference from List which goes all the way down, then walks across. Spread is obviously more flexible and this should enable wide reports with wrapped text in cells etc. Note that you can do repeated calls, separated by font changes, calls to table.Rule and table.Bump etc to get special effects. The only constraint is that all the frames involved must have the same width it is fine to use a right-left pair of pages with the frames in different places, but the allocation of columns to pages just looks at the first frame it sees.
leaf.table.Rule simple extension to fancy lines. A vector of values gives line-gap-line-gap etc. so leaf.table.Rule 1 3 2 is thin-gap-thick etc.
leaf.table.Fit set fit-to-page restriction for Spread. Valid combinations are:
{any scalar = fitted across,open-ended downwards}
1 1 = all on 1 page (uniform scaling)
The constraints of fixed rows (headings) and fixed arbitrary columms (set with Keystyle 11) make the combination of n×m very hard to compute! Shelved for the moment as the above provide the 90% solution!
The main change is to table.Spread and table.Endgrid which detects pages which are too big for their frames and scales/translates accordingly.
leaf.table adds Caption Heading, Subheading, Footnote as properties. Necessary for fit to page to work well, as these elements must be scaled as integral parts of the table, so cannot be set as separate items. The heading and subheading default to centred, the caption defaults to left-aligned. It would not normally be necessary to use all of these, but if you do, the result would lay out like ...
Here is my Table
Data collated specially for Adrian
North Region
+-------------------------------------------------------------+
| TABLE HERE ...... |
+-------------------------------------------------------------+
Printed on dd/mm/yyyy
The caption is repeated on all part pages if the table spans more than one frame wide or deep. The heading, and subhead only appear at the start. The footnote appears only at the end. Use the corresponding font and style settings to change the alignment and font of each element.
leaf.Colour supports web-style colour strings using hex RGB values e.g.
leaf.Colour'#3E306A' © Slate
leaf.table.Colour as above. Text colouring by cell.
Additional colour support for tables ...
BCol Cell Background colour (single colour, vector or matrix)
TColour Title colour (single colour only for all titles)
TBCol Title background (for entire title block)
HColour Heading colour
SColour Subhead colour
FColour Footnote colour
All these accept a hex string or short colour name as before.
==================== Released to web as 1.6 7th Sept 1999 =================