![]() | ![]() | ![]() | ![]() | ![]() |
These type of #Imports have clearly defined fields. You would frequently wish to display these in a table (say in a HTML page) however nothing says that you need to do so. If you wish to create macros and then #include a template file then that is also possible.
Within a record the fields are delimited by a single character such as a tab or comma.
On these types of imports "FieldInfo" followings the "DefineName" parameter.
You must specify field information for each field up to the last one you are interested in. The field information is of the format:
[{NewColumn}]TitleText
The optional "NewColumn" specifies the column you wish the field to be moved to. This need only be supplied if you wish to change the order, by default the first field is column 1 etc.
The "title text" specifies the value for the field in the header record. A blank "title" is used to indicate that we don't require a field and it should be dropped.
If you can't understand how these options work then I suggest you try using /debug or #debug to watch what variables the import uses etc.
For even more control (probably rare requirement):
This definition lists zero, one or more names as used on previous "#AsIs SETUP" commands (seperated by whitespace). Clear this definition to prevent all ASIS conversions.
Note that you will probably need to override this value (maybe others as well) if you wished to expand any macros that the imported data might contain (by default this is not done).
If this define is not used then you can use the following:
If this define is not used then you can use the following:
Normally all records are displayed. A filter can examine all column variables and modify them or tell PPWIZARD to ignore the record. The filter is not called for the heading record.
The following rexx variables and functions are relevant:
If the contents starts with 'EOF:' then the current record and ALL following are dropped.
If all your records are processed the same way then you should not need to modify this variable. It is useful where you might want the output (row of table) to look different depending on the records data. In some cases this can be better done by updating the rexx "Column.?" array.
If you need multiple lines you can of course use "<?NewLine>" where required.
You should also check out an example of importing a file into multiple HTML pages based on the contents of one of the fields.
A tab delimited file is probably be best format to use however this example will use comma delimited as its a bit hard to display a tab! Assume the following file is being imported (Importme.CMA):
Dennis,Bareis,Programmer Wendy,Buxton,Librarian Fred,Nerk,Idiot
Please treat each of the following examples in isolation and assume that no #defines other than those specifically shown for that example have been set. Please note that I could have used ",,," instead of "CMA" when specifying the format.
The following code will display the 3 fields in the order they occur (in a completely default table format):
#import IMPORTME.CMA "CMA" '' "First Name" "Last Name" "Job"
We now wish to simply swap the order of the "Job" column so it becomes first:
#import IMPORTME.CMA CMA '' "{2}First Name" "{3}Last Name" "{1}Job"
Lets drop the last name altogether so that we only see the first name and job columns:
#import IMPORTME.CMA CMA '' "First Name" "" "Job"
Lets display the above table using slightly different table formatting (column borders thinner, table border fatter, headings centered on yellow background and record data left justified):
#define IMPORT_TABLE_ATTRIBS BORDER=20 CELLSPACING=1 #define IMPORT_HEADING_COLUMNS ALIGN=CENTER BGCOLOR=YELLOW #define IMPORT_RECORD_COLUMNS ALIGN=LEFT #import IMPORTME.CMA CMA '' "First Name" "" "Job"
As above but column 2 is centered:
#define IMPORT_TABLE_ATTRIBS BORDER=20 CELLSPACING=1 #define IMPORT_HEADING_COLUMNS ALIGN=CENTER BGCOLOR=YELLOW #define IMPORT_RECORD_COLUMNS ALIGN=LEFT #define IMPORT_RECORD_COLUMN_2 ALIGN=CENTER #import IMPORTME.CMA CMA '' "First Name" "" "Job"
This example is based on a real one situation at work. We export date from Microsoft's access/Excel and want this data to appear in a table.
The following main points are demonstrated:
<HTML> ;--- Problem database data exported from Excel (trying from access) --------- <CENTER><H1>Release 98.0.1</H1></CENTER> ;--- Setup table definitions ------------------------------------------------ #define IMPORT_TABLE_ATTRIBS BORDER=5 CELLSPACING=1 #define IMPORT_BLANK_FIELD - ;** CommentBlock /* (Tuesday 23/06/1998, 13:00:55, by Dennis_Bareis) */ ;**+-------------------------------------------------------------------------- ;**|#define IMPORT_HEADING_COLUMNS ALIGN=CENTER BGCOLOR=YELLOW ;**|#define IMPORT_RECORD_COLUMNS ALIGN=CENTER ;**|#define IMPORT_RECORD_COLUMN_2 ALIGN=LEFT ;**|#define IMPORT_RECORD_COLUMN_4 ALIGN=LEFT ;**+-------------------------------------------------------------------------- ;** /* (Tuesday 23/06/1998, 13:00:55, by Dennis_Bareis) */ ;--- Define some data translations (shorten Priority + Problem Type) -------- #AutoTag ">High<" ">H<" #AutoTag ">Low<" ">L<" #AutoTag ">Medium<" ">M<" #AutoTag ">Change<" ">C<" #AutoTag ">Error<" ">E<" ;--- Try these -------------------------------------------------------------- #define IMPORT_HEADER <TR> -\ <TH ALIGN=CENTER BGCOLOR=YELLOW><FONT SIZE=-1>{$Column1} -\ <TH ALIGN=CENTER BGCOLOR=YELLOW><FONT SIZE=-1>{$Column2} -\ <TH ALIGN=CENTER BGCOLOR=YELLOW><FONT SIZE=-1>{$Column3} -\ <TH ALIGN=CENTER BGCOLOR=YELLOW><FONT SIZE=-1>{$Column4} -\ <TH ALIGN=CENTER BGCOLOR=YELLOW><FONT SIZE=-1>{$Column5} -\ <TH ALIGN=CENTER BGCOLOR=YELLOW><FONT SIZE=-1>{$Column6} -\ <TH ALIGN=CENTER BGCOLOR=YELLOW><FONT SIZE=-1>{$Column7} -\ <TH ALIGN=CENTER BGCOLOR=YELLOW><FONT SIZE=-1>{$Column8} -\ </TR> #define IMPORT_RECORD <TR> -\ <TD ALIGN=CENTER><FONT SIZE=-1>{$Column1} -\ <TD ALIGN=LEFT><FONT SIZE=-1>{$Column2} -\ <TD ALIGN=CENTER><FONT SIZE=-1>{$Column3} -\ <TD ALIGN=LEFT><FONT SIZE=-1>{$Column4} -\ <TD ALIGN=CENTER><FONT SIZE=-1>{$Column5} -\ <TD ALIGN=CENTER><FONT SIZE=-1>{$Column6} -\ <TD ALIGN=CENTER><FONT SIZE=-1>{$Column7} -\ <TD ALIGN=CENTER><FONT SIZE=-1>{$Column8} -\ </TR> ;--- Specify the fields ----------------------------------------------------- #define FIELD_NAMES "{1}Problem<BR>#" \ "{2}Title" \ "{5}P<BR>r<BR>i" \ "{8}Pre<BR>/<BR>Spar" \ "{6}T<BR>y<BR>p<BR>e" \ "{3}Application" \ "" \ "" \ "{7}Fixed By" \ "" \ "" \ "" \ "" \ "" \ "{4}User Impact" ;--- Make the changes (autotag some text) ----------------------------------- #AutoTag ON #import "export.tab" TAB- "" <$FIELD_NAMES> #AutoTag OFF </HTML>
The following code:
#define IMPORT_NEWLINE_CHAR <?NewLine>.br<?NewLine> #define IMPORT_BEFORE :table cols='15 15 10'. #define IMPORT_HEADER :row. -\ :c.:hp9.{$Column1}:ehp9. -\ :c.:hp9.{$Column2}:ehp9. -\ :c.:hp9.{$Column3}:ehp9. #define IMPORT_RECORD :row. -\ :c.{$Column1} -\ :c.{$Column2} -\ :c.{$Column3} #define IMPORT_AFTER :etable. #define IMPORT_RECORD_COLUMNS ALIGN=LEFT #import "EXAMPLE.CMA" CMA '' "First Name" "Surname" "Job"
#DefineRexx IMPORT_RECORD_FILTER if Column.1 = "Wendy" then Remove='This is "Wendy" record' ;;Don't want this record else Column.1 = translate(Column.1) ;;Make column #1 upper case #DefineRexx #import ImportMe.CMA CMA "" "First<BR>Name" "Surname" "Job"
![]() | ![]() | ![]() | ![]() | ![]() |