HAT 5 Text File Format


Time Scales Section

  • Format:
    ##TimeScale   {name}
    {start}       {code}
    {start}       {code}
    ...
    
  • Description:
    ##TimeScale   = Section header
    {name}        = Name of this time scale
    {start}       = Card ID of the first card in the period
    {code}        = Code of the period
    
  • Example:
    ##TimeScale   Accounting Periods
    900103-001    P9001
    900204-001    P9002
    900306-001    P9003
    900404-001    P9004
    
  • Comments:

    Each time scale is stored in a separate section.
    This section can be skipped if no time scales are used.



Macro Section

  • Format:
    ##Macro  {name}
    {selector}
    {selector}
    ...
    
  • Description:
    ##Macro       = section header
    {name}        = name of this macro
    {selector}    = macro data
    
      Currently defined selectors:
    
        M  {macro}     Macro command text
                       - returns are coded as ascii 3
                       - tabs are coded as ascii 4
    
        A+             Include this command in "Execute" Menu
        A-             Do not include in "Execute" Menu
    
        S+             Execute this macro when opening a database
        S-             Do not execute this macro when opening a database
    
        P+             Protect this macro with a password
        P-             Do not protect this macro
    
  • Example:
    ##Macro   Beeper
    M         Beep
    A+
    
  • Comments:

    Each macro is stored in a separate section.
    For the command details, see Macro Language Reference.



Commands Section

    Command sections provide a simple way to script some database operations. These commands are executed when the file is opened. HAT itself never writes a command section when saving a file.

    Multiple command sections can be inlcuded in a file. These are processed in their order of appearance in the file.

    Command sections use the same commands and syntax as the HAT Macro Language. Note that the commands and options are separated by whitespace in macro language, which is different from the other HAT textfile sections.

    For the command details, see Macro Language Reference.

  • Format:
    ##Commands
    {command}
    {command}
    ...
    
  • Description:
    ##Commands    = Section header
    {command}     = Each line define a command with options.
    
  • Example:
    ##Commands
    ErrorFile  "MessageFile A"
    Signature  AG
    DeleteCards  9701  9808
    DeleteData  Filters:Subsets:Badcards
    Import  "C:\data\new\update.hat"  -pw bingo
    Save  "C:\data:datafile.hat"  FN   P-
    Quit
    
  • Comments:

    When a file has a command section, the "Open Direct" -templates are not opened automatically. Opening templates can be explicitly controlled by the OpenTemplate command.



Dimension Section

  • Format:
    ##Dimension   {dim}
    -N   {singular}   {plural}
    -C   {codeCase}
    -T   {textCase}
    -H   {hostCase}
    -S   {stringFormat}
    -X   {compulsory}
    -I   {indent}
    -W   {codeWidth}	{textWidth}	{hostWidth}
    {code}   {text}   {host}
    {code}   {text}   {host}
    {code}   {text}   {host}
    ...      ...      ...
    
  • Description:
    ##Dimension    = Section header
    {dim}          = Dimension number (1..32)
    {singular}     = Dimension name in singular form
    {plural}       = Dimension name in plural form
    
    {codeCase}     = {strCase} for HAT-code,   default U, cannot be D or W
    {textCase}     = {strCase} for text,       default N
    {hostCase}     = {strCase} for host code,  default N
    
       {strCase} =
          U  = Uppercase
          L  = Lowercase
          D  = Default format: first character uppercase
          W  = Words: first character of each word uppercase
          S  = Case Sensitive
          N  = Case Nonsensitive
    
    {stringFormat} = Presentation format of dimension fields in analyses
    
       {stringFormat} =
          C   = Code
          H   = Host
          T   = Text
          CT  = Code Text  (this is the default setting)
          HT  = Host Text
          CH  = Code Host
          CHT = Code Host Text
    
    {compulsory} = Forces the user to specify a search criteria in analyses
    
       {compulsory} =
          -  = Normal, search criteria may be left empty (default setting)
          +  = Must be filled in, forces the user to specify a search criteria
    
    {indent} = Hierarchy indentation in dimension chart editor window
    
       {indent} =
          F  = Flat, no indentation
          S  = Single  (this is the default setting)
          D  = Double
    
    {codeWidth}  = Width of the code field in the dimension editor
    {textWidth}  = Width of the text field in the dimension editor
    {hostWidth}  = Width of the host field in the dimension editor
    
    {code}       = HAT-code of a dimension component
    {text}       = Text title of a dimension component
    {host}       = Host code from host computer system
    
  • Example:
    ##Dimension   2
    -N    Account   Accounts
    -T    W
    -S    HT
    C     Costs
    CL    Labour
    CLW   Salaries          3040
    CLP   Pension Schemes   3050
    CLT   Training          3010
    CV    Vehicle Expenses
    CD    Depreciation
    CX    Other Costs
    A     Assets
    
  • Comments:

    Dimensions charts can be defined in any order. Only dimensions in use need be defined. Selectors with default values are omitted when HAT saves a file.

    Note: The component hierarchy in HAT is based on HAT-codes, so that the order in which the components are defined is significant. For example, if CL is supposed to reside under C then C must be defined before CL.



Dimension Import Setup Section

  • Format:
    ##DimImport   {dim}
    {selector}
    {selector}
    ...
    
  • Description:
    ##ImportSetup     = Section header
    {dim}             = Dimension number (1..32)
    {selector}        = Import setup data
    
    Currently defined selectors:
    
      FV              = Variable field lengths
      FX              = Fixed field lengths
    
      A   {encoding}  = Character encoding                 (HAT 5.6 and later)
    
      AM   = ASCII Extended Macintosh character set      (HAT 5.5 and earlier)
      A7   = ASCII 7-bit character set                   (HAT 5.5 and earlier)
      AP   = IBM-PC character set                        (HAT 5.5 and earlier)
      AW   = ANSI Windows character set                  (HAT 5.5 and earlier)
      AE   = EBCDIC character set                        (HAT 5.5 and earlier)
    
      CC              = UTF-8: Count character positions   (HAT 5.6 and later)
      CB              = UTF-8: Count byte positions        (HAT 5.6 and later)
    
      PX              = Exclude control characters from position calculations
      PI              = Include control characters in position calculations
      PS  {string}    = Exclude other characters from position calculations
                        (exclude characters completely)  (HAT 5.1.1 and later)
    
      T   {integer}   = Row Terminator (Unicode codepoint)
      S   {integer}   = Field Separator (Unicode codepoint)
    
      RX  {integer}   = Number of rows to exclude at the beginning
    
      RP  {parents}   = Create parents for HAT-Code
                          1..8    Up to character 1 to 8
                          P       For each part   (HAT 5.3 and later)
    
      RF  {integer}   = Fill zeros in host code (1..8)
    
                        Redefined components:
      rW              = Show warning              (HAT 5.3 and later)
      rX              = Keep old component        (HAT 5.3 and later)
      rR              = Modify component          (HAT 5.3 and later)
    
                        Duplicate host codes:
      HW              = Show warning              (HAT 5.3 and later)
      HX              = Skip new component
      HC              = Keep old code             (HAT 5.3 and later)
      HR              = Use new code              (HAT 5.3 and later)
    
                        Character conversion:
      CF  {string}      A character in the CF-string is converted to the
      CT  {string}      character at same position in the CT-string.
    
      CS  {string}    = Exclude characters in text fields
                        (included in position calculations)
    
      MC              = Hierarchy defined in HAT-Codes
      MI              = Hierarchy according to indentation
      ML              = Hierarchy defined using level numbers
      MP              = Hierarchy defined by parent references
    
      NC              = Parent links use HAT-Codes
      NT              = Parent links use component texts
      NH              = Parent links use host codes
    
    Field definitions are stored in selectors beginning with an 'L'.
    Following format and selectors are used:
    
    {FSelector}   {FCode}   {FCode}   {FCode}   ...
    
      {FSelector} =
         LC      = HAT-Code
         LT      = Component text
         LH      = Host code
         LP      = Parent code
    
      {FCode} =
         F{integer}   = Field number
         B{integer}   = First character position
         E{integer}   = Last character position
         T{text}      = Comparison text / default value
         S{text}      = Separator string                     HAT 5.3 and later
         +            = implication of next part of the field
         +{integer}   = ASCII code of a separator char       used before HAT 5.3
                        and implication of next part
    
  • Example:
    ##DimImport   12
    AW
    PX
    LC   F1
    LT   F2
    LH   F3
    


Cards Section

  • Format:
    ##Cards
    {options}
    {card}
    {card}
    {card}
    ...
    
  • Description:
    ##Cards   = Section header
    
    {options} = Options for card section
       -DC  {dim}          Dimension links as HAT-codes (default)
       -DT  {dim}          Dimension links as component texts
       -DH  {dim}          Dimension links as host codes
       -LN  {valuefields}  Number of value fields on each line (1..24)
                                 HAT 5.3 and later
    
    {card} =
       C{cardID}    {cardtext}
       N{notesign}  {notes}
       S{created}   {modified}   {examined}   {approved}
       {group}
       {group}
       ...
    
    {group} =
       G{dim1}
       {line}
       {line}
       ...
    
    {line} =
       L{value}  ...   {value24}   {linetext}   {dim2}   {dim3}   ...   {dim32}
    
    {cardID}   = Card ID in format YYMMDD-LLL
    
                 YY   = Year   (28..99 = years 1928..1999)
                               (00..27 = years 2000..2027)
                 MM   = Month  (01..12)
                 DD   = Day    (01..31)
                 LLL  = Ordinal number inside one day, 1 to 5 digits.
                        Ordinal number can be skipped. In that case HAT
                        provides the ordinal number automatically.
    
    {cardtext}  = Free text for the card (max 1023 characters).
    
    {notesign}  = {signature} of notes
    {notes}     = Free text for notes. Returns are replaced by ASCII 3.
    
    {created}   = {signature} of first creation
    {modified}  = {signature} of last modification
    {examined}  = {signature} of examination
    {approved}  = {signature} of approval
    
    {signature} = Signature in format: YYMMDDHHNNXXX or empty.
    
                 YY   = Year   (28..99 = years 1928..1999)
                               (00..27 = years 2000..2027)
                 MM   = Month  (01..12)
                 DD   = Day    (01..31)
                 HH   = Hour   (00..23)
                 NN   = Minute (00..59)
                 XXX  = Signature, max three characters (first not a digit).
    
    {value}     = First value for a line. Zero decimals can be omitted.
                  Both comma and point can be used as a decimal separator
                  between integer and fraction parts. Neither comma nor point
                  is allowed as a thousand separator.
                  HAT 5.0 and later always uses point as a decimal separator
                  when writing files.
    
    {value24}   = Last value for a line. Line values are tab-separated.
    
                  Number of line values is one by default for each file.
                  If more than one value field is stored on each line,
                  either database options section or -LN option must be used.
    
    {linetext}  = Free text, max 1023 characters
    
    {dim1}      = Dimension 1 code
    {dim2}      = Dimension 2 code
    ...
    {dim32}     = Dimension 32 code
                     note: maximum number of dimensions is
                     HAT 5.0    16
                     HAT 5.1    24
                     HAT 5.2    32
    
  • Example:
    ##Cards
    C960223-1     Program manuals
    N9608162327HU   Notes are free text, max 1023 characters.
    S9608162327HU   9108162341HU   9108162327HU
    GUB
    L15000   10 pcs   KMKR   BOA
    L-15000           TLBC   LR002
    GUC
    L15000            KMKR   BBA    ESS
    L-15000           TLBC
    
  • Comments:

    A row beginning with character C creates a new card. All subsequent lines refer to this card until next card is created.

    Note row beginning with character N and signature row beginning with character S are optional.

    Multiple groups with the same {dim1} code are catenated.

    The number of lines in a group and the number of groups in a card are not limited.



Previous Contents Next