home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / editors / trw110.arj / REPORTER.DOC < prev    next >
Text File  |  1991-05-28  |  28KB  |  510 lines

  1.  
  2. ----------------------------- Program Information ------------------------------
  3.  
  4. Program       : Text Report Writer & DefMaker Utility (ShareWare)
  5.  
  6. Version       : v1.1
  7.  
  8. Release Date  : 06/01/91
  9.  
  10. Registration  : $20.00            Latest version and removal of header messages.
  11.  
  12. Author        : John Leschak      6625 Dorchester Road, #226
  13.                                   Charleston, South Carolina 29418
  14.                                   803-552-0885
  15.  
  16. Included Files: REPORTER.EXE      Executable program
  17.                 REPORTER.DEF      Basic report definition file.
  18.                 REPORTER.DOC      Documention
  19.                 SAMPLE.DEF        Sample report definition file
  20.                 SAMPLE.DAT        Sample test data.
  21.                 SAMPLE.BAT        Batch file to run sample report.
  22.                 DEFMAKER.EXE      Report definition file generator.
  23.                                   ** The file DEFMAKER.EXE has been compressed
  24.                                      with PKLite, if there is a problem with
  25.                                      this, you may decompress if need be.
  26.  
  27. ------------------------------ Program Description -----------------------------
  28.  
  29.      I wrote this program because I cound not find an easy and flexible utility
  30. to assist in converting the layout of fixed length ASCII files and offer simple
  31. reporting capabilities. It was also desirable for me that the program use DOS'
  32. redirection to allow for maximum control, simplicity and flexibility. Also
  33. included is the support of delimited files and BASIC format files.  If you
  34. work a lot with text files, you should find this utility most useful. I welcome
  35. your comments and support with open arms.
  36.  
  37.      In my opinion, this program contains great potential for a general utility.
  38. You may have the impression that a spreadsheet or good text editor may be more
  39. better suited for this type of text manipulation, well..you are correct, you
  40. will be able to achieve greater flexibility for sorts and formatting, but the
  41. cost is generally high memory overhead.
  42.  
  43.      As the the goal here was to make a general purpose utility, you will find
  44. that a user interface is virtually non-existent, nor do I have any plans to
  45. include one in future releases.  I have included a simple utility with a
  46. reasonibly good user-interface to create report definition files.  Although
  47. this utility isn't flawless, it takes a lot of the guesswork out of trying
  48. to figure out which field specification go with what field types.
  49.  
  50. --------------------------------- Program Usage --------------------------------
  51.  
  52.      In order to use this program, you should be familiar with DOS' redirection
  53. capabilities, as the program is useless without them.  For a quick idea of
  54. what the program actually does, run the SAMPLE.BAT batch file for a VERY
  55. simple demonstration.
  56.  
  57. Installation:
  58.  
  59.      The only files required to run the program are REPORTER.EXE and a report
  60.      definition file (see the example in REPORTER.DEF). Copy these files to
  61.      your favorite directory, preferable one that is in your DOS path.  The
  62.      report definition files (.DEF) should be located in the directory which
  63.      contains your data.
  64.  
  65.      You may optionally add a line to you AUTOEXEC.BAT file to set the location
  66.      of the default directory to look for the report definition file. This is
  67.      generally not a good idea for this application, since data files are
  68.      usually store in many directories on your hard disk, but nevertheless,
  69.      it is supported.
  70.  
  71.      Example:  SET RPT=C:\UTILS
  72.  
  73. Execution:
  74.  
  75.      To run the program you must first have some fixed length or delimited file
  76.      to use as input into the program and you must have also created a report
  77.      definition file which maps the output fields to that of you input file.
  78.  
  79.      Sample Data:  Below is a general description of an input file and some
  80.                    possible data it might contain:
  81.  
  82.                Description  Start  Length
  83.                -----------  -----  ------
  84.                NAME            1      20
  85.                PHONE          21       7
  86.                AGE            28       3
  87.                SALARY         31       8
  88.  
  89.                which may look like this internally (kind of hard to read?):
  90.  
  91.                LESCHAK, JOHN       552088526 99999.00
  92.                DOE, JOHN           123456756   123.21
  93.                DOE, JANE           123456755 1233.21
  94.                ALBERTSON, MITCH    555121210954000.00
  95.  
  96.      Suppose you had already created a report definition file called SAMPLE.DEF
  97.      and you wanted to generate a report sent to the screen using the above file
  98.      called SAMPLE.DAT as input. To do this you would type the following at the
  99.      DOS prompt:
  100.  
  101.                TYPE SAMPLE.DAT | REPORTER SAMPLE.DEF | MORE
  102.  
  103.      If you wanted the output to be sent to a file, type the following at the
  104.      DOS prompt:
  105.  
  106.                TYPE SAMPLE.DAT | REPORTER SAMPLE.DEF > SAMPLE.OUT
  107.  
  108.      If you wanted the output to be sent to the printer, type the following at
  109.      the DOS prompt:
  110.  
  111.                TYPE SAMPLE.DAT | REPORTER SAMPLE.DEF > PRN
  112.  
  113.      Note that if you have not set a path for the report definition file in your
  114.      AUTOEXEC.BAT, you must specify a full path name or have the report
  115.      definition file in the current directory. If you have set a path for the
  116.      report definition file in you AUTOEXEC.BAT, then only a filename can be
  117.      entered on the command line.  If no report definition file is specified,
  118.      then it will default to REPORTER.DEF.
  119.  
  120.      Although at this point, its capabilities seem kind of limited, but as you
  121.      learn more about DOS' redirection and read the following on writing your
  122.      own report definition files, you will see that the possibilites are great.
  123.  
  124.      For a sample report, run SAMPLE.BAT at the DOS prompt.
  125.  
  126. ----------------------------- Report Defintion File ----------------------------
  127.  
  128.      Report definition files are used to map your output fields to your input.
  129.      All report definition files are completely ASCII text and can be created
  130.      with your favorite editor. Total field length for a report cannot exceed
  131.      255 characters.
  132.  
  133.      A report definition file contains groups or sections:
  134.  
  135.          [REPORT]        Report definition header with comments following
  136.                          on the lines below. Must be the first line in file.
  137.                          this header group is required.
  138.  
  139.          [FORMAT]        General page formatting options which include
  140.                          field spacing, page headers, form feeds, page length,
  141.                          and character conversion to uppercase. This group
  142.                          is optional.
  143.  
  144.          [FIELD]         List of output fields and their mapping to input.
  145.                          Also include field characteristics and output specs.
  146.                          This group is required.
  147.  
  148.          [FILTER]        List of field selection criteria for output. Allows
  149.                          user to specify range of output for any defined field
  150.                          in the [Field] group.
  151.  
  152. [REPORT] Group
  153.  
  154.          The [Report] group is used to identify a report definition file and
  155.          for the user to enter comments about the report.  All comments will
  156.          be ignored.  The [Report] group heading must be the first line in the
  157.          report definition file, or an error will occur.
  158.  
  159. [FORMAT] Group
  160.  
  161.          The [Format] Group is used to set page formatting options.  This
  162.          section is optional and will fall to the default options if omitted.
  163.          Available formatting options can be entered in any order and in
  164.          any case. Options are as follows:
  165.  
  166.          FIELDSPACE=nn
  167.               Spacing between fields, where nn must be between 0 and 99.
  168.               Defaults to 2.
  169.  
  170.          PAGELENGTH=nn
  171.               Number of lines per page, where nn must be between 10 and 256 or
  172.               else 0. A page length of 0 indicates no page breaking will occur.
  173.               If headings are not suppressed then headings will appear at the
  174.               beginning of outpu only.  If form feeds are enabled then a form
  175.               feed character will be sent at the end of each page.
  176.               Defaults to 0.
  177.  
  178.          SENDFF=YES
  179.          SENDFF=NO
  180.               Indicates whether or not a form feed character will be sent after
  181.               each page break.  If the page length is set to 0, then a form
  182.               feed will be sent only at the end of the report.
  183.               Defaults to NO.
  184.  
  185.          UPPERCASE=YES
  186.          UPPERCASE=NO
  187.               Indicates whether or not all input characters will be converted
  188.               to upper case. Headings, field headers and field constants will
  189.               not be converted.
  190.               Defaults to NO.
  191.  
  192.          REMOVEBLANKS=YES
  193.          REMOVEBLANKS=NO
  194.               Indicates whether or not blank input lines should be removed from
  195.               output.
  196.               Defaults to YES.
  197.  
  198.          REMOVEDUPS=YES
  199.          REMOVEDUPS=NO
  200.               Indicates whether or not duplicate field values will be output.
  201.               If enabled, then only the first output field value for the series
  202.               of duplicate output field values will be output. Numeric duplicate
  203.               fields will not be removed, only string type duplicate fields.
  204.               Defaults to YES.
  205.  
  206.          SUPRESSHEADING=YES
  207.          SUPRESSHEADING=NO
  208.               Indicates whether or not page and field headings will be
  209.               suppressed from output. If form feed is enabled, then a form feed
  210.               will still be sent at the end of each page.
  211.               Defaults to NO.
  212.  
  213.          FILEFORMAT=FIXED
  214.          FILEFORMAT=BASIC
  215.          FILEFORMAT=DELIM
  216.               Indicates the format of the input. Types supported are fixed
  217.               length files (FIXED), delimited files, and BASIC format files
  218.               BASIC).  BASIC format files are a special type of delimited file,
  219.               with strings surrounded by double quotes and fields seperated by
  220.               commas (there is also a header on the first line).  When using
  221.               either BASIC or delimited files, you should replace the <size>
  222.               field specification in the [Field] group with the logical field
  223.               number (i.e. 1 = first field, 2 = second field, etc...).
  224.               Defaults to FIXED.
  225.  
  226.          DELIMCHAR=x
  227.               This is the delimiting character used when the file format type
  228.               is delimited to indicate field seperation. You may specify only 1
  229.               delimiting character. If no delimiting character is entered after
  230.               DELIMCHAR=, then this will signify that a space (' ') is to be
  231.               used as the delimiter.
  232.               Defaults to , (a comma).
  233.  
  234.          DELIMQUOTE=x
  235.               This is the character used when the file format type is delimited
  236.               to indicate string values. You must specify only 1 delimiting quote
  237.               character following the DELIMQUOTE=.
  238.               Defaults to " (a double quote).
  239.  
  240.          HEADING= text
  241.               Single line report heading to appear at the top of all pages if
  242.               supress headings is disabled. The text to be used for the heading
  243.               must begin in column 10 and may contain embedded spaces.
  244.               Defaults to blank.
  245.  
  246. [FIELD] Group
  247.  
  248.          The [Field] group is used to map you output fields to you input. There
  249.          are three types of fields: string, numeric, and constants. Field
  250.          specifications may be seperated by a space (' '), an equal sign ('=')
  251.          or a pipe ('|'). Sorting occurs in the order in which the fields
  252.          occur in the report definition file.  Currently there is no support
  253.          for sorting in ascending order but will be included in future versions.
  254.  
  255.          You can create as many fields as you need, you are restricted only by
  256.          available memory.
  257.  
  258.          All fields begin with a field label which is used as a field heading
  259.          when supress headings is disabled.  Field labels do not need to be
  260.          unique (although future versions may require this) and should not
  261.          contain embedded spaces. Field labels are limited to 15 characters and
  262.          are case sensitive. The following is a list of the format used for
  263.          each field type:
  264.  
  265.          STRING field
  266.               <label> = <start> <length> <size> <just> STRING GROUP
  267.  
  268.                         <label>  Field heading. Required.
  269.                         <start>  Starting character position of field in
  270.                                  input file. Required.
  271.                         <length> Length of input field. Number of characters
  272.                                  to be read beginning from the <start> position.
  273.                                  Length must be between 1 and 255. Required.
  274.                         <size>   Output field size. If size is less then the
  275.                                  size of the <label> then the label will be
  276.                                  truncated. Size must be between 1 and 255.
  277.                                  For delimited or BASIC format files, the size
  278.                                  should be changed to the logical field number
  279.                                  (i.e. 1 = first field, 2 = second field, etc.).
  280.                                  Required.
  281.                         <just>   Field justification, either RIGHT or LEFT.
  282.                                  Required.
  283.                         STRING   Indicates this is a string type field.
  284.                                  Required.
  285.                         GROUP    Optional specification, indicates whether or
  286.                                  not sub-totals should be output when this value
  287.                                  changes. if send form feed is enabled, then a
  288.                                  a form feed will be sent after the sub-totals
  289.                                  and a new page header will be output. This field
  290.                                  is ignored if suppress headings is enabled.
  291.  
  292.          NUMERIC field
  293.               <label> = <start> <length> <size> <just> NUMERIC <places> TOTAL
  294.                 or
  295.               <label> = <start> <length> <mask> <just> NUMERIC <places> TOTAL
  296.  
  297.                         <label>  Field heading. Required.
  298.                         <start>  Starting character position of field in
  299.                                  input file. Required.
  300.                         <length> Length of input field. Number of characters
  301.                                  to be read beginning from the <start> position.
  302.                                  Required.
  303.                         <size>   Output field size. If size is less then the
  304.                                  size of the <label> then the label will be
  305.                                  truncated. <size> may be replaced by the
  306.                                  <mask> field specification, but one of them
  307.                                  is required. Size must be between 1 and 255.
  308.                                  For delimited or BASIC format files, the size
  309.                                  should be changed to the logical field number
  310.                                  (i.e. 1 = first field, 2 = second field, etc.).
  311.                         <mask>   Formatting string to specify layout of output
  312.                                  field. The <size> of the field will be the
  313.                                  length of the mask. If a mask is entered then
  314.                                  <places> is ignored but must be present. <mask>
  315.                                  may be replaced by the <size> field, but one of
  316.                                  them is required.  A mask should not contain
  317.                                  embedded spaces and should not exceed 25
  318.                                  characters, valid mask characters are:
  319.  
  320.                                      @ = lead zeros, needed once
  321.                                      $ = float dollar sign, needed once
  322.                                      * = blank space filler
  323.                                      # = digit placement
  324.                                      . = decimal point location
  325.                                      , = comma seperators
  326.                                      - = display minus sign only
  327.                                      + = display minus or plus sign}
  328.  
  329.                         <just>   Field justification, either RIGHT or LEFT.
  330.                                  Required.
  331.                         NUMERIC  Indicates this is a string type field.
  332.                                  Required.
  333.                         <places> Number of decimal places to be output. No
  334.                                  rounding will occur. This will be ignored
  335.                                  if a <mask> was entered. Places must be
  336.                                  between 0 and 5 Required.
  337.                         TOTAL    Optional specification, if present field
  338.                                  will have totals at tail of output. This
  339.                                  is ignored if supress headings is enabled.
  340.  
  341.          CONSTANT field
  342.               <label> = 0 <text> <size> <just> NOSPACE
  343.  
  344.                         <label>  Field heading. Required.
  345.                         0        A zero starting position indicates that this
  346.                                  field is a constant field. Required.
  347.                         <text>   Value of constant, will be treated as a
  348.                                  string. If text is longer then the size of the
  349.                                  field, then the text will be truncated. Text
  350.                                  should no exceed 25 characters.
  351.                                  Required.
  352.                         <size>   Output field size. If size is less then the
  353.                                  size of the <label> then the label will be
  354.                                  truncated. Size must be between 1 and 255.
  355.                                  Required.
  356.                         <just>   Field justification, either RIGHT or LEFT.
  357.                                  Required.
  358.                         NOSPACE  Optional specification, if present no field
  359.                                  seperators will appear either before or after
  360.                                  this constant.
  361.  
  362. [FILTER] Group
  363.  
  364.          The [Filter] group is used to restrict output to input records which
  365.          fall within the specified field ranges.  Before a filter can be created
  366.          for a field, you must have previously defined that field in the
  367.          [Field] group. This group is optional.
  368.  
  369.          You can create a field filter for string type and numeric type fields,
  370.          but not for constant type fields.  For string type filters, the input
  371.          and filter values are always converted to upper case before comparison.
  372.          any filter created for a constant field, will be ignored. You can
  373.          create as many filters as you need, you are limited only by memory.
  374.  
  375.          If there are duplicate field labels for fields defined in the [Field]
  376.          group, then the filter will be assigned to the first occurence of the
  377.          field label identifier. Each field label can have at most two filters,
  378.          one to set the lowest allowed value, and one to set the highest allowed
  379.          value.  It is not required that both of these be present, as you are
  380.          allowed to set only the lowest allowed value or just the highest
  381.          allowed value.
  382.  
  383.          Both string type filters and numeric type filters use the same general
  384.          format. The following is a list of the format used for field filters:
  385.  
  386.          STRING filters
  387.               <label> = LOWEST <text>
  388.               <label> = HIGHEST <text>
  389.  
  390.                         <label>  Field label if a previously defined field
  391.                                  created in the [Field] group. Labels are
  392.                                  case sensitive. Required.
  393.                         LOWEST   Indicate that this filter is to be used
  394.                                  as the lowest allowed input value for the
  395.                                  specified field. Required.
  396.                         HIGHEST  Indicates that this filter is to be used
  397.                                  as the highest allowed input value for the
  398.                                  specified field. Required.
  399.                         <text>   Text string to compare input to, no wild cards
  400.                                  are currently supported. This specification
  401.                                  may contain embedded spaces. This is not
  402.                                  required, and will be taken as a blank string
  403.                                  if not present. The text can be no longer than
  404.                                  40 characters, leading spaces will be removed.
  405.  
  406.          NUMERIC filters
  407.               <label> = LOWEST <value>
  408.               <label> = HIGHEST <value>
  409.  
  410.                         <label>  Field label if a previously defined field
  411.                                  created in the [Field] group. Labels are
  412.                                  case sensitive. Required.
  413.                         LOWEST   Indicate that this filter is to be used
  414.                                  as the lowest allowed input value for the
  415.                                  specified field. Required.
  416.                         HIGHEST  Indicates that this filter is to be used
  417.                                  as the highest allowed input value for the
  418.                                  specified field. Required.
  419.                         <value>  Value to be compare input to. If this field
  420.                                  is omitted, then the value will default to 0.0.
  421.                                  Embedded spaces are not allowed, but you may
  422.                                  use a leading dollar sign ('$'), leading or
  423.                                  trailing positive or negative sign ('+','-'),
  424.                                  embedded commas (',') or leading zeros ('0').
  425.  
  426. ------------------------------------ DefMaker ----------------------------------
  427.  
  428.      To assist in writing report definition files, I have included a small
  429. utility which will generate this file and also a simple batch file which will
  430. redirect output to printer PRN.  The utility is called DefMaker (for a lack
  431. of a better word).
  432.  
  433.      The DefMaker utility is very easy to use and needs only minor instruction.
  434. When you start the utility, a menu will appear on the top line of the screen
  435. with four (4) menu options: Formats, Fields, Filters and Create (very similar
  436. to the report definition file structure..hmmm).
  437.  
  438.      For descriptions of field meanings, see the documentation above on Report
  439. Definition Files for more information.  A context sensitive help utility will
  440. be included in future releases.
  441.  
  442. To create or modify a report file:
  443.  
  444.      1) First create a new report format by selecting the Format menu option.
  445.         To add a new report format, press the INSERT key.  If this is your
  446.         first report format added, you will automatically be forwarded to the
  447.         update screen and are ready to enter in the format options for the
  448.         new report definition file.  If you are modifying an existing report
  449.         format, use the arrow keys to highlight the desired report format and
  450.         press the ENTER key.  You must complete this step before you will be
  451.         allowed to enter fields and filters.  Although you will have to enter
  452.         a response for all options, only the applicable option specifications
  453.         for the indicated file format will be used in the final report
  454.         definition file.  Note that if you change the file name of the report
  455.         format, you will lose the link to all fields and filters tied to that
  456.         report format.
  457.  
  458.      2) After you have created the format in step #1, you can move on to
  459.         create the fields which will appear in your report. Select the Fields
  460.         menu option and select the report format which you wish to add the
  461.         fields to.  To select a report format, use the arrow keys to move the
  462.         highlighted bar to the desired report format and press the ENTER key.
  463.         If this is the first field being added, you will automatically be
  464.         forwarded to adding a new field.  If there are already existing fields
  465.         for the report format, you may either modify an existing one by pressing
  466.         ENTER after highlighting the desired field, or you may add a new field
  467.         by pressing the INSERT key.  For the most part, you will be forced to
  468.         enter valid field specifications for all those which are applicable
  469.         to the specified field type.  If a field specification does not apply
  470.         to the indicated field type, you may either leave that specification
  471.         alone or change it (either way it will be ignored when creating the
  472.         report definition file).
  473.  
  474. To delete and existing report file:
  475.  
  476.      1) Deleting an existing report file is similar to adding one. The only
  477.         difference is that you must first delete all fields and filters before
  478.         you delete the report format.  To delete fields, filters and formats,
  479.         you can simply press the DELETE key while the highlighted bar is on
  480.         the desired field, filter or format (you will be promted to confirm
  481.         the deletion).
  482.  
  483. To create the report definition file:
  484.  
  485.      1) To create the report definition file, select the Create menu option
  486.         and select the report format which a report definition file and
  487.         simple batch file is to be created.  While the files are being created,
  488.         the highlighted bar will disappear and reappear when the files have
  489.         been created.  If you hear a beep while the file is being created,
  490.         then there was an error creating the report definition file.  If this
  491.         error occurs, it is because a file existing in the current directory
  492.         with the file name the same as that specified in the report format,
  493.         (i.e. a file with no extension and file names the same).  When a
  494.         report definition file is created it creates a temporary work file
  495.         with a name that of that specified in the report format, with no
  496.         extension, and after the file is generated it copies that file into
  497.         a .DEF file of the same name and deletes the file with no extension.
  498.         Well...anyway, general rule is try to assign an extension to all
  499.         of the files in the report directory and you shouldn't have any problem.
  500.  
  501. --------------------------------- Revision Notes -------------------------------
  502.  
  503. v1.0     Initial Release.
  504.  
  505. v1.1     Addition of REMOVEDUPS in [Format] group.
  506.          Addition of GROUP field specification for string types in [Field] group.
  507.          Addition of sub-totals for numeric fields upon GROUP break.
  508.          Addition of selection filter and the [Filter] group.
  509.          Addition of DefMaker utility to create .DEF files.
  510.