© All rights reserved. U.S International Tech Support FormBuilder and AppBuilder BASIS RAD Tools Nico Spence, Chief Marketing Officer Jon Bradley, Software Engineer BASIS International Ltd.
© All rights reserved. U.S International Tech Support Overview ► Introducing FormBuilder and AppBuilder ► Using the RAD tools Building a font chooser Creating code blocks ► Customizing code profiles ► Creating a file management utility Binding record sets to controls ► Incorporating validation ► Enabling the pre-processor ► Summary
© All rights reserved. U.S International Tech Support Introduction ► FormBuilder creates/edits.arc files Functional super-set of ResBuilder Resource file presents a GUI interface to the user with graphical controls ► AppBuilder creates/edits.gbf files Functional super-set of GUIBuilder.gbf files specify code blocks linked to event handlers Generates BBj program source and tokens ► Integrated with each other
© All rights reserved. U.S International Tech Support Advantages ► Integrated Simultaneous edit of GUI screen controls and code fired by their events ► Cross Platform Edit.arc and.gbf files anywhere BBj runs ► WYSIWYG Interface What You See Is What You Get Child Windows rendered in TopLevelWindows Look and feel of IDE or Visual PRO/5 legacy L&F
© All rights reserved. U.S International Tech Support Using the Tool ► Building a Font Chooser Build the form with child windows and tabs Add code blocks Create a menu Add Events and associate code with Code Editor Save file Build source and tokens Run program
© All rights reserved. U.S International Tech Support FormBuilder Demonstration
© All rights reserved. U.S International Tech Support Building a Font Chooser Child Window
© All rights reserved. U.S International Tech Support Building a Font Chooser Tabs
© All rights reserved. U.S International Tech Support Update Font Code Block
© All rights reserved. U.S International Tech Support Code Profiles ► Code pre-pended to code block for event handler ► Specified in the Default Code Profile ► Profile can automatically add an event handler for specific events on a given control type
© All rights reserved. U.S International Tech Support Code Profiles Demonstration
© All rights reserved. U.S International Tech Support Record Sets ► BBjRecordSet Set of records From a data file via a string template SQL select query Maintains a pointer to the current record Provides method to insert, update, delete, and move between records Often bound to one or more data-aware GUI controls
© All rights reserved. U.S International Tech Support File Maintenance Utility ► Use new RAD tools to create a simple file maintenance utility Uses record sets Navigator control ► Apply validation rules – special circumstance Fields Forms ► Enabling the mouse scroll event ► Adding Images – the image bucket
© All rights reserved. U.S International Tech Support Demonstration
© All rights reserved. U.S International Tech Support Extending the RAD FMU Masked Events
© All rights reserved. U.S International Tech Support Extending the RAD FMU Mouse Scroll Code gb__event! = bbjapi().getSysGui().getLastEvent() gb__control! = gb__event!.getControl() direction = gb__event!.getScrollDirection() if(direction) navigator!.getTargetRecordSet().next(err=*next) else navigator!.getTargetRecordSet().previous(err=*next) endif
© All rights reserved. U.S International Tech Support Extending the RAD FMU FormBuilder Renders Images
© All rights reserved. U.S International Tech Support Image Bucket ► Resolves the Development vs. Deployment directory structure problem ► Develop with your images in one place ► Deploy with the images in your prefix ► Image Bucket has no effect on.arc or.gbf file; exists to display images at development time
© All rights reserved. U.S International Tech Support Image Bucket Demonstration
© All rights reserved. U.S International Tech Support Pre-Processor ► AppBuilder provides a pre-processor User programmable in BBj Example of easy string-literal substitutions by adding a pre-processed MessageBox ► Add KEY_PRESS event to Form 101 ► Add code to switch ► Edit pre-processor source file /appbuilder/app_gb_pre_processor.src
© All rights reserved. U.S International Tech Support Pre-Processor Demonstration
© All rights reserved. U.S International Tech Support Pre-Processor Demonstration
© All rights reserved. U.S International Tech Support Context Sensitive Help
© All rights reserved. U.S International Tech Support Review ► Introduced FormBuilder and AppBuilder ► Used the RAD tools Built a font chooser Created code blocks ► Customized code profiles ► Created a file management utility Bound record sets to controls ► Incorporated validation ► Enabled the pre-processor
© All rights reserved. U.S International Tech Support Summary ► Added function and integrated tools ► Benefits Tenfold reduction in development time Investment in old code preserved Backward compatible Intuitive interface Facilitates rapid application prototyping Employee satisfaction enhanced