The Indexed Screen is a screen which can receive and send information to several devices individually. When opened, the screen receives an information about the name of the object to be linked, and then automatically creates the link.
For example, on a screen there are three engines. When clicking any of them, a screen with detailed information must be opened.
The screen with detailed information about the engine is always the same, what changes is the variables where information comes from.
Developing an indexed screen
The first step is having all information to pass to the indexed screen in a single place. The best way to do this is creating an XObject.
Let’s use as an example the XObject
EngineTag created in previous chapters. The
EngineTag monitors the maintenance status, failure, and the engine speed using three properties: fail, maintenance, and RPM.
The second step is having an XControl which can access all XObject properties which you want to monitor.
Let’s use as an example the XControl
Engine created in previous chapters. This XControl displays the name of the engine using a text, the RPM using a Display, its color blinks in yellow and red in case it is on failure, and a rectangle switches between red and green to symbolize the on or off status.
Using a button, you can change the failure status, and clicking the engine image you can turn it on or off. To link the XControl to the XObject, it was created a property named Source of the same type of the XObject.
Creating an Indexed Screen
The next step is to create the indexed screen. Usually, this screen is windowed and modal. Thus, you must close it to return to the previous screen.
Create a screen with the size you want and insert an XControl to exchange information with the XObject.
This XControl must point to some XObject inserted in your application. This link is performed only when the screen opens. When this happens, the screen must receive the name of the XObject to be linked through the Arg parameter.
To do so, create in the OnPreShow event of the screen the script which links the XControl property (for example, Source) to the Arg parameter of the screen.
Sub EngineScreen_OnPreShow(Arg) 'Links to one of the engines Item("Engine1").Source = Arg End Sub
Opening the Indexed Screen
Now, you must configure it so that when clicking the engine image on the screen, the operator answers if he wants to open the indexed screen, and then define the engine name as the parameter to be controlled.
- Create an indexed screen for the Object
- Create an indexed screen for the Speedometer.