The DataTable Service Class
The service class
DataTable uses the
Write and
DataQueue classes to produce structured tabular reports using the content of the runtime data queue. The reports themselves can be produced in one of three outputStyles: simple tab delimited, text tabular, or html tabular. Complex reports, especially tables, are laid out explicitly and thus can only be written in one style. This class also contains those methods needed to produce boxed tabular reports.
The method DataTable_ClearBottom
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_ClearBottom(void)
|
The
DataTable_ClearBottom method checks to see if there is a bottom mark at the current top of the data queue. If there is not, then the message "SYSTEM ERROR#10009: Queue not at bottom mark, top=%d" is logged and control is returned to the operation system.
The method has no parameters or return value.
The method DataTable_SetBottom
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_SetBottom(void);
|
The
DataTable_SetBottom method marks the current spot in the queue as the current bottom. Any attempt to pop value from the queue will fail until this mark is cleared. This method is needed to block any interference between the
DataTable class and the other classes using the data queue. The method has no parameters or return value.
The method DataTable_WriteTitle
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_WriteTitle(void);
|
The
DataTable_WriteTitle method writes a title for a table of values along with other control information that may be needed to begin the actual table display to the currently active output stream using the form required by the
Output Syntax attribute set for it. The title itself is stored on the runtime data queue prior to the call to this method. Note that tab files do not get a title as they are typically used for data input.
The method has no parameters or return value.
The method DataTable_DefineColumn
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_DefineColumn(char* heading, int width);
|
The
DataTable_DefineColumn method sets up the call to the method
DataTable_WriteHeadings which expects the find a series of (String, Integer) pairs in the data queue. The number of pairs defines the number of columns in the table. Its parameters are as follows:
Parameter | Description |
heading | Contains the actual heading to be used for the column being defined. |
width | Specifies the field width and orientation to be used as follows: Width | Meaning | +n | Right justify the characters in a cell n characters wide. | -n | Left justify the characters in a cell n characters wide. |
|
These values are actually only used when the
Output Syntax is
Text; however, since this syntax choice does not take effect until runtime, the columns should always be supplied with reasonable values. Note that the method checks to make certain that the width of the heading is not larger than the column width. If so, it resets the column width.
The method DataTable_WriteHeadings
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_WriteHeadings(void);
|
The
DataTable_WriteHeadings method writes a column heading to the currently active tabular display using the table style specified when the table display was started. The heading and their desired widths themselves are stored in the runtime data queue via the method
DataTable_DefineColumn.
This method has no parameters or return value.
The method DataTable_WriteCell
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_WriteCell(void);
|
The
DataTable_WriteCell method writes the current table cell. In many complex output situations it is often desirable to nest the output support utilities so that complex outputs can be nested within each other or can be constructed with independent sets of logic. This method allows for the writing of complex data cells within data tables. Rather than writing the current output record and thus clearing its internal buffers so that another record can be written, this method pushes the content of the internal buffer onto the runtime data queue and then clears the buffer.
The method has no parameters or return value.
The method DataTable_WriteRow
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_WriteRow(void);
|
The
DataTable_WriteRow method writes a data row to the currently active data table using the table style specified when the table display was started. The cell content making up the data raw are stored as strings on the runtime data queue.
The method has no parameters or return value.
The method DataTable_WriteEnd
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_WriteEnd(void);
|
The
DataTable_WriteEnd method writes the end portion of an html data table and ends the centering associated with it. For other output styles it does nothing.
The method has no parameters or return value.
The method DataTable_WriteOpen
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_WriteOpen(void);
|
The
DataTable_WriteOpen method writes the page opening portion of an html page that will be containing data tables. For other output styles it does nothing.
The method has no parameters or return value.
The method DataTable_WriteClose
Prototype Code Block |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
|
void DataTable_WriteClose(void);
|
The
DataTable_WriteClose method writes the page closing portion of an html page that was being used to contain data tables. For other output styles it does nothing.
The method has no parameters or return value.