When we talk about uniPaaS at Magic Software, you will often hear us refer to the “Power of Choice.” It is important to emphasize that the Power of Choice includes as the first choice: the client-server mode of application deployment, sometimes referred to as the full client or open client. Magic Software is fully aware of the strong attachment of many developers to the client server paradigm and is proud of our leadership among client server application platforms. The client server paradigm may evolve and improve, but it will not disappear. The fact that the same application platform provides an option for Web and RIA application programming and deployment is a part of the power of choice, but the first choice of client-server afficionadoes is clear.
One of the key areas of choice in designing client server applications is all of the GUI controls available in uniPaaS. uniPaaS GUI Controls used in client-server programming include: ActiveX, Check Box, Column, Combo Box, Edit, Horizontal Slider, Image, Line, List Box, OLE, Push Button, Radio, Rich Edit, RTF, Static, Subform, Tab, Table, Tree and Vertical Slider. With client-server application development of interactive tasks, subforms give you great control over your application interface.
You can use a subform control to integrate a task form inside the form of another task, while maintaining the subform's task data handling and record cycle activities independently from the parent task.
One can see a number of advantages when using subforms for client server development. Obviously, with subforms you can park on the line of a parent task and see the details from the subtask. This gives you what can be described as a one-to-many task relation. In addition, uniPaaS automatically refreshes the subform data view according to the parent task only when passing parameters. uniPaaS also retains your last position in the subform data view when you leave and reenter. Finally, a tab cycle is provided for the subform task. Taken altogether you have a much more detailed level of interaction that is possible. And yes, of course, all this GUI control is right inside the client-server mode.
The runtime behavior of a subform is quite predictable. At runtime, you can tab into the subform or click the subform window area. The runtime engine will park on the first control in the subtask. When clicking on a parkable location, the runtime engine moves focus to the subtask and parks in the selected control, which triggers the runtime engine to execute the Task Prefix, Record Prefix, and Control Prefix operations. When clicking on a non-parkable location, the runtime engine moves focus to the subform task and parks on the first parkable control there.
When the runtime engine instructs the Subform task to terminate either by a Close event, by clicking outside the Subform area, or by an End Task Condition, the runtime engine executes the Control Suffix, Record Suffix, and Task Suffix operations. The focus returns to the next control in the parent task as determined by the parent task’s tabbing order and tabbing direction. (These behaviours are different, of course, in RIA mode).
When you return to the subtask and the data view has not been refreshed, this means that the Range, Locate, Sort, Key, and the Link Join or Link Outer Join settings have not been modified. The subtask keeps the same page or record that was last displayed. No handling is required for a subtask when the parent task is closed because the subtask automatically closes when the parent task closes.
To learn more about developing client-server applications in uniPaaS, download the free online course “Getting Started with uniPaaS Open Client”from Magic University.