Types used in librdd

These data types are used in the librdd module.

rddReportPrintElementInfo

TYPE rddReportPrintElementInfo RECORD
  unionType CHAR(1), #v=variable, e=expression, l=literal
  value STRING, #the value in case of type 'l'
  variableName STRING, #the variable name case of type 'v'
  variableType STRING #the variable or expression type in case of type 'v'
END RECORD

rddReportPrintInfo

TYPE rddReportPrintInfo RECORD
   controlPath DYNAMIC ARRAY OF rddTree, # Path into tree, e.g. 
                          # REPORT/ON EVERY ROW/IF/THEN/FOR,
                          # REPORT/ON EVERY ROW/IF/ELSE/FOR
   printxName STRING, 
   printElements DYNAMIC ARRAY OF rddReportPrintElementInfo 
END RECORD

rddReportSectionInfo

TYPE rddReportSectionInfo RECORD
   name STRING, # FIRST PAGE HEADER, BEFORE GROUP customer_id, ON EVERY ROW, ...
   reportPrints DYNAMIC ARRAY OF rddReportPrintInfo 
END RECORD

rddReportInfo

TYPE rddReportInfo RECORD
   reportName STRING, 
   reportSections DYNAMIC ARRAY OF rddReportSectionInfo 
END RECORD

rddTree

TYPE rddTree RECORD
   firstLine INTEGER, 
   lastLine INTEGER, 
   type CHAR(1), # l: loop: FOR, FOREACH, WHILE
                 # c: conditional: CASE, IF, OTHERWHISE, WHEN
                 # i: interaction: MENU, {DISPLAY|INPUT} ARRAY, INPUT, PROMPT, 
                 #                 ON {KEY|ACTION}, {BEFORE|AFTER} .. 
                 # d: declaration: GLOBALS, DEFINE, RECORD 
                 # o: other statements: TRY, CATCH 
                 # a: trigger in interaction or report
  fileId INTEGER, #  references rddFiles (rddFile.id=fileId)
  fileIdEnd INTEGER, # references rddFiles (rddFile.id=fileIdEnd) = 
                      # the file where the declaration ends 
  name STRING # for example BEFORE GROUP 
END RECORD