Category:MAPPER: Difference between revisions

Content added Content deleted
(Having taught this product, I may has some images I created for powerpoint slides that may be useful)
No edit summary
Line 34: Line 34:
A report is a column-oriented grid of fixed-length fields, similar in some ways to a spreadsheet, in that there are columns and rows and a set of headers.
A report is a column-oriented grid of fixed-length fields, similar in some ways to a spreadsheet, in that there are columns and rows and a set of headers.


Many operations on reports create a result, which is a non-permanent report with the same structure as a report. In manual funtions, there is only one result possible, but runs (scripts) can support up to 17 results, which are referenced the same way as reports but with a negative report-ID. The result created by an operation is "-0", but these can be saved to -1 to -16 inclusive by the "rename" (@rnm) function. This allows runs to perform powerful match, blend and reformat instructions.
Many operations on reports create a result, which is a non-permanent report with the same structure as a report. In manual functions, there is only one result possible, but runs (scripts) can support up to 17 results, which are referenced the same way as reports but with a negative report-ID. The result created by an operation is "-0", but these can be saved to -1 to -16 inclusive by the "rename" (@rnm) function. This allows runs to perform powerful match, blend and reformat instructions.


The MAPPER language is an interpreted scripting language, and is held within the MAPPER database, in reports. An application in MAPPER is commonly held in reports, within drawers, within a cabinet, or within a series of consecutive cabinets.
The MAPPER language is an interpreted scripting language, and is held within the MAPPER database, in reports. An application in MAPPER is commonly held in reports, within drawers, within a cabinet, or within a series of consecutive cabinets.
Line 40: Line 40:
While an interpreted language, MAPPER is reasonably quick as the atoms themselves are quite powerful- sort, search, match, count etc are all atoms of the language (which are written in C++ or MASM, depending on platform).
While an interpreted language, MAPPER is reasonably quick as the atoms themselves are quite powerful- sort, search, match, count etc are all atoms of the language (which are written in C++ or MASM, depending on platform).


The typing in MAPPER script is very simple: the types are primitive (integer, real, string) and no structs or similar complex classes are supported. One-dimensional arrays are supported, arrays of higher dimension would have to simulated in code.
The typing in MAPPER script is very simple: the types are primitive (integer, real, string) and no constructs or similar complex classes are supported. One-dimensional arrays are supported, arrays of higher dimension would have to simulated in code.


Complex data structures would need to be held in reports or results.
Complex data structures would need to be held in reports or results.


As an alternative, MAPPER may be scripted using Javascript, and the environment contains its own embedded javascript interpreter, with some extensions to reference reports etc as recordset objects, and methods which map onto the atoms of the native scripting language.
As an alternative, MAPPER may be scripted using JavaScript, and the environment contains its own embedded JavaScript interpreter, with some extensions to reference reports etc as recordset objects, and methods which map onto the atoms of the native scripting language.