Visual DataFlex AJAX Library
Building Real-Life Applications with the Visual DataFlex AJAX Library
Harm Wibier (Data Access Europe)
Overview
• What's latest?
– Version 2.2
– Version 2.3
• Real-Life Applications
– Energiewacht
– ParaNICE
– Schuitemaker
– Several others
Previous releases
• 2.0 for Visual DataFlex 2009 - 15.0
– Rebuild of the AJAX Library
– New themes
• 2.1 for Visual DataFlex 2009 – 15.1
– JSON Calls
– TreeView
WHAT'S LATEST?
Looking back at the 2010 releases of the AJAX Library.
AJAX LIBRARY 2.2
About the AJAX Library 2.2 for Visual DataFlex 2010 - 16.0.
AJAX Library 2.2
• Visual DataFlex 2010 – 16.0
– Updated theme’s
– Performance improvements using CSS Sprites
– Improved DDO support
• Supports more complex DDO structures
• Improved constraint support
– Clear All
– Improved AJAX API's
– Expressions
– Error details
Updated theme
Updated theme
Custom AJAX Calls
• vdf.ajax.HttpRequest
– Plain HTTP requests
• vdf.ajax.SoapCall
– Call SOAP Web Services
• vdf.ajax.JSONCall
– Call JSON Web Services
• vdf.ajax.VdfCall
– Call methods in web ojbects
VdfCall
• Improved API
• Method of the vdf.core.Form
JavaScript: var oForm = vdf.getForm("products_form");
oForm.vdfCall("get_AmountOrdered", [ 95 ], handleDetermineAmount);
VDF (inside web object for products form): { Published = True }
{ Description = "" }
Function AmountOrdered Integer iProductId Returns Integer
…
Function_Return iFound
End_Function
DbCall
• Data bound variant of the VdfCall
• Method of the vdf.core.Form
JavaScript: var oForm = vdf.getForm("orders_form");
oForm.dbCall("get_MarkShipped", [ ], handleMarkShipped);
VDF (inside web object for orders form): { Published = True }
{ Description = "" }
Function MarkShipped Returns Boolean
Set Field_Changed_Value of oOrders_DD Field Orders.ShippedDate to
(CurrentDateTime())
Function_Return True
End_Function
Expressions
• Published method
– Inside WO
– Returns value
– Uses data in the buffer
• Bind fields to the expression method
– Lookup fields
– Regular data entry fields
Expression API
HTML: <input type="text" value="" name="e:EmployeeFullName" title="Employee
Name" vdfServerTable="employee" />
VDF (inside web object for the form): { Published = True }
{ Description = "" }
Function EmployeeFullName Returns String
Function_Return (Trim(Employee.FirstName * Employee.LastName))
End_Function
AJAX LIBRARY 2.3
The new release for Visual DataFlex 16.1.
AJAX Library 2.3
• Visual DataFlex 16.1
– New SpinForm control
– Support for Internet Explorer 9
– Support for Mozilla FireFox 4
– Several bugfixes
• Beta already available…
vdf.deo.SpinForm
• Increment and decrement values
– Keyboard control
• Cursor up and down
– Mouse control
– Intuitive fast spin when kept down
– Numeric and date fields
– Configurable step
– Respects masks
– Simple API
Simple API
HTML:
<input vdfControlType="vdf.deo.SpinForm" type="text"
value="1000" name="customer__credit_limit" size="20" />
HTML:
<input vdfControlType="vdf.deo.SpinForm" class="Data"
type="text" value="" name="datefield" vdfDataType="date"
vdfMaskType="dat" vdfMask="dd Mmm, yyyy" />
ENERGIEWACHT
Real world example.
The company
• Energiewacht
– Installation and maintenance of heating and hot water installations
– Retail and business market
– 130.000 customers
– 90 service technicians
• Already worked with DataFlex and Visual DataFlex
The application
• In-house application
• Resource management and planning
– Technicians
– Shifts
– Area's
– Capacity
• Regular maintenance
• Troubleshooting
– Vacations
Specifics
• Intranet only
– Full web application
– Big application (30GB SQL Database)
• Custom scheduling component
Reporting
• Filtering
• Data shown in expandable tables
Choice of technique
• Build with AJAX for ease of management
– Central application updates
– No client installation
• Ease of development improved over time
– Starting with AJAX 1.1 development was slow and difficult
– With the latest releases (2.1 & 2.2) development time improved
PARANICE
Real world example.
The company
• NICE Software B.V.
– Started in 1995
– Specialized in medical software
• Developed with Visual DataFlex since its beginning
The application
• ParaNICE
– Used in over 60 hospitals
– Windows
• Patient registration
• Medical information
• Agenda scheduling
• Statistics
– Web extension
• View and process daily schedule
• Register medical information
Specifics
• Intranet only
– Mobile devices (Ipads)
– Parts of windows application
• Only details needed next to the bed
• Specific user scenarios
Components
• Data Entry
– Default AJAX Library controls on the Ipad
• Custom big buttons
Choice of technique
• Decided to go webapp to allow specific user scenarios
– Access information on location
– Less paperwork
• AJAX Library proves to run on mobile devices without problems
SCHUITEMAKER
Real world example.
The company
• Schuitemaker Machines B.V.
– Agricultural machinery
• Develops
• Produces
• Sells
– Over 160 employees
– Since 1918
Specifics
• Internet portal
– Full application
• Service Portal
– In house
– Maintenance
– Synchronized with ERP
• Dealer Portal
– Used by the customers / dealers
Example
• http://localhost/SchuitemakerPortal/Login.asp
Choice of technique
• Decided to create a web portal to allow dealers to access the application.
• The AJAX Library has been used because of the typical data entry style.
QUESTIONS?
THANKS!
I'll be around and would be happy to answer any specific questions you may have...