Many people who initially made the move to AREV32 with the intention of slowly re-engineering their way to a purely OpenInsight based environment still find themselves with systems that are heavily AREV32 reliant. With this in mind we thought it might be an idea to spend a little time examining CFG_CTO to see what little goodies might be lurking in there. So with the help of Revelation's esteemed CTO guru, Bryan Shumsky we've put together this little guide.
CFG_CTO consists (at the time of writing) of 10 columns in a single row. Note that several of these columns are only relevant when working with the CTO rather than AREV32 but for the sake of completeness we will document all of the columns.
Bear in mind that when looking for a config row for the CTO OpenInsight will firstly look for
CFG_CTO*<appid>*<username>, then CFG_CTO**<username>, then CFG_CTO*<appid> before finally settling on CFG_CTO.
Column 1 - Server Details
URL
If a URL is entered here it will be assumed to be the path to the engine server responsible for dealing with engine requests
Path
If a path is entered here it will be assumed to be the path to the REVCAPI32.DLL to use for dealing with engine requests. Normally this is set to a period (full stop) to indicate the currently running engine.
!
If an exclamation mark is entered here the IP address and port number will be taken from the CFG_ESERVER row in SYSENV.
Column 2 - Additional Details
This is a multi-valued column having up to four values.
Value 1 Port Number
The port number on which to communicate with the engine (server). By default this will be 8088 so if you are not changing the default this does not have to be entered.In OI 10 this value will default to 18088 to allow earlier versions and 10 to coexist on the same server.
Value 2 Engine Name
If you want to communicate with a specifically named engine server then enter the name here.
Value 3 Startup Flags
The flags to apply to the engine on startup. These can be as follows :-
0 = Open Existing engine.
1 = Create a New Engine
2 = Open existing if available, otherwise create a new engine
65 = Create a New Engine with no UI
The default value is 65
Value 4 Shutdown Flags
The flags to apply to the engine on shutdown. These can be as follows :-
0 = Leave engine open
1 = Close engine
The default value is 1
Column 3 - Foreground Color - CTO Only
This contains a text string, being chosen from a list of hard coded colours, namely
BLACK
DARK_BLUE
DARK_GREEN
TURQUOISE
DARK_RED
PURPLE
OLIVE
LIGHT_GREY
DARK_GREY
BLUE
GREEN
CYAN
RED
MAGENTA
YELLOW
WHITE
Column 4 - Background Color - CTO Only
This contains a text string, being chosen from a list of hard coded colours, namely
BLACK
DARK_BLUE
DARK_GREEN
TURQUOISE
DARK_RED
PURPLE
OLIVE
LIGHT_GREY
DARK_GREY
BLUE
GREEN
CYAN
RED
MAGENTA
YELLOW
WHITE
Column 5 - Window Title
The caption to appear in the AREV32 window.
Column 6 - Program
The name of a program to run within the AREV32/CTO environment. It will be run and then AREV32/ CTO will be terminated so this is NOT a startup program in the traditional sense. It does not run and then continue to AREV32/CTO. This permits the running of a single AREV32 routine without having to have the user log off.
Column 7 - Font Name
If you enter the name of a fixed pitch ANSI Windows font here it will be used in place of the default AREV32.
Column 8 - Macro Name
This does not refer to AREV32 Macros but rather the VBScript-alike Macros supported by the underlying AccuTerm OCX. This is specified as the name
of a record in SYSENV, or as <table><space><recordname> if
stored anywhere else.
Column 9 - History Lines
This column determines how many lines of "history" will be kept. You will likely have noticed that normally the AREV32 console has a vertical scroll bar. This is because by default a history is being kept of previous screens. This is a new feature and is not present in the shipping version with 9.4.
Column 10 - Character Mapping Function
The AREV32 console actually displays UTF8 characters not ANSI. So when working with alternate character sets it can sometimes be desirable to display different UTF8 characters for specific ANSI values. Column 10 permits the specification of the name of a function to be called that actually returns the mapping to be used.
When a mapping has been specified, any time the control receives one of the mapped ANSI characters (either via the keyboard, or sent from the host for display), the associated Unicode character will be displayed on the screen. The function should take no parameters, and should return a string that has the following format:
<char_code>:<Unicode_value>,<char_code>:<Unicode_value>{,…}/<char_code>:<Unicode_value>,<char_code>:<Unicode_value>{,…}
Where <char_code> represents the “input” ANSI character (as a decimal value), and <Unicode_value> represents the desired Unicode “output” (specified as a hex string). The <char_code> and <Unicode_value> are separated by a colon; multiple mappings are separated by commas. The first “/” delimited section of the string specifies the mappings (if any) that should be applied to the control when it is in “text” (CTO) mode; the second “/” delimited section of the string specifies the mappings (if any) that should be applied to the control when it is in “graphics” (AREV32) mode.
For example, the following string shows a very simple set of mappings:
65:010C/65:0171
This says that, when an ANSI 65 (“A”) is received by the control, it should display either Č (when running in CTO mode) or ű when running in AREV32 mode.
Note that the data that is actually RECEIVED or SAVED into the database will still be the associated ANSI(single byte) character under all circumstances.
This is a new feature and is not present in the shipping version with 9.4.