Alpha Anywhere shipped at the end of June. August 15 saw a major feature update. Now on Nov 1 an even bigger update is shipping!

Blog



Alpha Anywhere shipped at the end of June. August 15 saw a major feature update. Now on Nov 1 an even bigger update is shipping!

rapidinnovation

In August of 2013 we  introduced an important update to Alpha Anywhere which introduced some very useful and powerful new features.

This was on top of the original release of Alpha Anywhere  in the  late June of 2013 which offered these key capabilities

Keeping up the pace of constant improvements available to subscribers of Alpha Anywhere (Alpha Five v12,) we are happy to introduce a host of very important improvements.


--The updated features are summarized in part in these videos below.


--Also some of the key capabilities are shown here. Over 30+ Significant New Features were added




 To see a complete list of new features and functionality, along with video tutorials, screenshots, documentation, and more, please  see the full release notes for this update.






















































































































































Responsive Layout Genie

Quickly and easily build Responsive Web Apps that run a single codebase. Using the Responsive Layout Genie, your web and mobile apps will automatically adjust to the screen size, window size, and orientation differences of the various devices your users are accessing them from.Watch the video →







AbsoluteLayout Container

Alpha Anywhere developers can now place controls at absolute positions on the screen using an astoundingly simple WYSIWYG drag-and-drop interface. Especially useful for creating complex forms using an image as the background.Watch the video →







Absolute Positioning of Objects in Reports

After an extremely positive response to the pre-release of the AbsoluteLayout Container, we've added abolute positioning of objects in reports. Layout Table reports now offer the ability to use an image of a form as the report background and to then position the report fields directly over the 'fields' on the background image.Watch the video →







Custom Styling: Radiobutton and Checkbox Controls

The standard way in which browsers render checkbox and radiobutton controls is pretty drab. Now, in Alpha Anywhere, the UX component allows you to apply a rich set of styling options to radiobutton and checkbox controls.Watch the video →







Printing QR Codes

Layout Table Reports now support printing any cell in the Layout Table that contains a text value as a QR code. To print the contents of a cell as q QR code, simply check the 'Display QRCode for text in cell' property at the bottom of the 'Cell Contents' dialog box.Watch the video →







Displaying QR Codes on a UX Component

A common requirement, especially in mobile applications, is to display data encoded as a QR code. Now, Alpha Anywhere makes it easy. QR codes can now be shown on a UX component using both client-side and server-side techniques.Watch the video →







New Mobile Theme: Slate

"Slate," a goregeous new stylesheet for mobile applications, is now ready for testing. Although not quite ready for official use (it doesn't yet contain classes for Grids or the Tabbed UI) we're releasing this to mobile developers for feedback. Let us know what you think!Download now →







Session Timeout Warning

In Alpha Anywhere, the UX component can now be configured to display a warning to the user that their session is about to expire.




Remember, this is brief overview of some of the 30+ new features added as part of this update.


To see a complete list, please





We look forward to continuing to innovate to ensure that Alpha Anywhere offers developers and companies the most powerful and complete way to rapidly build business applications that automatically adapt to provide an optimal experience on mobile devices and the desktop








UX ComponentImage and File Upload - In Depth Look at What Happens Behind the Scenes When a File is UploadedWhen you upload a file or image in the UX component, the binary data that is uploaded is stored in temporary session storage until the user commits the record they are editing. This video discusses what happens when a file is uploaded and what happens when the record you are editing is committed.The video also shows how you can write Xbasic to modify the filename that is stored on disk when the Camera is used to capture an image on a mobile device.Watch Video - Part 1
Watch Video - Part 2
Watch Video - Part 3
Watch Video - Part 4Download Component




































































































































































ReportsPrinting Data that Contains HTML MarkupIn some cases the data in a report you are printing might contain HTML markup. You might want to print the HTML markup in its rendered form, rather than its raw form. In this video we show how you can configure the report editor to print HTML markup as rendered HTML.Watch Video
UX and Grid ComponentUnderstanding Component Aliases and the Use of Placeholders in Javascript CodeWhen you write your own Javascript code in a Grid or UX component, you often use 'placeholders' (such as {Dialog.object} ) in your code. In this video we explain in depth how these placeholders work and we discuss the concepts of a component 'alias'.Watch Video - Part 1
Watch Video - Part 2
Watch Video - Part 3
Watch Video - Part 4
Watch Video - Part 5
UX ComponentConsolidate Multiple Ajax Callbacks into a Single CallbackThis video is aimed at advanced developers. It shows how the a5_ux_action() utility function can be used to optimize certain types of UX and List control actions into a single Ajax callback.Watch Video - Part 1
Watch Video - Part 2Download Component
XbasicWorking with XML DocumentsXbasic has always had a powerful XML parser, but the new *property_from_xml() function and the new XML document viewer make it ever easier to work with XML documents.Watch Video
Grid and UX ComponentImage Upload to a Character FieldWhen you upload images in either the Grid or UX component, the target field can either be a binary field or a character field. In the case of a character field, the filename of the image is stored in the field and the image file itself is stored in a file in the specified 'upload folder'.The filename of the image that is stored in the target character field can be a fully qualified filename, or more likely, you will store the 'shortfilename' (i.e. a relative filename).If you choose to store the 'shortfilename', then you must configure an image path property so that the image filename can be resolved.This video discusses this issue.Watch video
UX ComponentResponsive Layout - Modifying the Design of a Component Automatically Based on the Device and Screen Orientation'Responsive' is the term used to refer to a design that automatically changes its layout based on the device on which it is running, the device orientation and the window size (for desktop browsers). The UX component has very powerful tools for implementing responsive layouts.In this video we show how the Responsive Layout Genie can be used to build highly responsive UX component designs.Watch Video - Part 1
Watch Video - Part 2
Watch Video - Part 3Advanced settings
Watch VideoDownload Components
UX ComponentList Controls/Data Series - Using an IN Clause with Array Arguments in a SQL StatementList controls, Charts and Data Series in a UX can all be based on a SQL query. In some cases you might want to use an IN clause in the SQL query and reference an argument value to get the values for the IN clause.This video shows how you can use arrays in a SQL::argument object and then reference the argument in a SQL IN clause.Watch Video
Download Component
UX Component - List ControlUsing the Server-side AfterQuery Event - Computing a Column TotalFor List controls that are based on a SQL query, the server-side AftterQuery event fires after the query to get the List data has been executed. This event is typically used to compute some Javascript code to return to the browser.In this video we show how the event can be used to return the total for a column in the List. Since the List is paginated, all of the data in the List query is not currently shown in the List and therefore the calculation of the total must be done on the server.Watch Video - Part 1
Watch Video - Part 2
Watch Video - Part 3Download Components
UX ComponentComputing a List Column Total using Client-side CalculationsIn cases where the List data is not paginated (and therefore the List contains all of the data in the List query), column totals can be computed client-side.In this video we show how the data in a column in the List is computed using Javascript.Watch Video
Download Components
UX Component - List ControlAdding Dynamic Bubble Help (tooltips) to a Field in a ListIn this video we show how you can add dynamic bubble help to a field in a List control using some Javascript in the onItemDraw event.Watch Video
Download Component
UX ComponentEmbedded UX Components - Understanding the onPanelActivateEventA common practice when designing mobile applications is to break a large application into multiple smaller UX components and then embed components in Panel Cards in the 'master' UX component. When you do this, it is useful to be able to execute code whenever a child UX component gets focus.In this video we show how the onPanelActive client-side event in a child UX will fire whenever the Panel Card in which it is embedded gets focus.Watch Video
Download Components
UX ComponentAnnotating an Image using the Signature Capture ControlThe signature capture control can be used for more than capturing images. In this video we show how a medical application can use the signature capture control to annotate an image of the body to indicate affected areas.Watch Video
Download Component
UX Component - List ControlServer-side Summary ValuesFor List controls that are based on SQL data, you can specify that summary data (e.g. total, avg, count, min and max) should be computed for certain columns in the List control. The summary computations are based on the List query (not on the rows actually visible in the List). In the case of a paginated List, there may be more rows in the query than are visible in the List. For example, the query might have 1,000,000 rows, but the list might show 20 rows at a time.This video shows how a List control is configured to compute summary values, and then how the afterServerSideSummaryCompute event in the List is used to update a label on the UX component showing the summary values.Watch Video
Grid ComponentLocking the Screen while a Long Running Ajax Callback is ExecutingIf a Grid or UX component makes an Ajax callback that takes a long time to complete, you might want to display a message to the user telling them to wait and also you might want to 'lock' the screen to prevent them from firing other callbacks until the current callback has completed.In this video we show how this is easily done using a custom modal window.Watch Video
Grid ComponentStoring State InformationBoth the Grid and the UX allow you to store 'state' variables that are available on both the client and server-side.The UX has always allowed you to set state variables on the server side (in any server-side event or an Ajax callback) by setting variables in the 'e._state' object. Previously, to set state variables on the server side in the Grid you had to generate Javascript code. Now, you can also set variables in the e._state object on Grid server side events.This video shows how this is done.Watch Video - Part 1
Watch Video - Part 2
UX and Grid ComponentOverview of How to Localize a UX or Grid ComponentIn this video we give a brief overview on how a Grid or UX component can be localized so that the same component can be used for different languages. The technique involves using either Language tags (<a5:r>) or Text Dictionary tag (<a5:t>) around text strings that need to be localized.Watch Video - Part 1
Watch Video - Part 2For certain languages, the text flow direction is 'right to left' (e.g. Hebrew, Arabic). In this video we show how you can execute Javascript to change the text flow direction for the whole page. The Javascript is added to the component's render complete event. It sets the text direction using this code: document.body.style.direction= 'rtl'Watch Video - Part 3
UX ComponentShow/Hide Buttons in Panel Header/Footer Without Messing Up Button AlignmentA common pattern in mobile applications is to have buttons in a Panel header or footer and to space the buttons so that some are left justified, some centered and some right justified. Then you might show/hide one or more of the buttons, but you don't want the spacing on the buttons to be affected.This video shows how this can be done.Watch Video
UX ComponentBuilding a Menuing System in a UX Component Using Docked  Panels in a Panel LayoutIn mobile applications is it common to build menus that slide in from the right or left of the screen. In this video we contrast how this is accomplished in jQuery mobile and Alpha Anywhere. The approach we have taken in this video for Alpha Anywhere shows how the menus can be placed in Panel Cards that are docked inside a Panel Navigator.Watch Video - Part 1
Watch Video - Part 2
Watch Video - Part 3
Watch Video - Part 4
Watch Video - Part 5Download Components
UX ComponentHow to Dynamically Change the Code on a Button(Advanced Javascript Developers) This video shows how you can dynamically change the code associated with a button on a UX component by 'unbinding' the existing code and then 'binding' new code.Watch Video
UX Component - List ControlEdit the Current Row in a List Control in another UX ComponentThe Grid component has an option in Action Javascript to edit the current row in a Grid using a UX component (that is data bound to the same table that the Grid is based on). This option also allows you to add a new record to the Grid using a UX component. The action for the Grid is called:"Open a UX component to Edit Current Record in Grid, or add a new Record"Now an analogous action is available in Action Javascript to edit the current row in a List control (for Lists that are based on SQL or DBF data sources) using another UX component that is data bound to the same table that the List is based on. The action for the UX is called:"Open a UX component to Edit Current Record in List Control in a UX, or add a new Record to a List Control in a UX"Watch Video
UX Component - MobilePanel Layout - Understanding the Different Ways in Which a Docked Panel Can Be Shown - 'Over', 'Slide' and 'Push'Using Panel Layouts that contain multiple child Panels is common when building mobile applications. One or more of the child Panels that are shown in a Panel Layout can be 'docked' (i.e. hidden). Panels can either be explicitly docked, or conditionally docked (for example, on an orientation change).Panels that have been docked can be shown (typically by clicking on a 'controller' button in a Panel Header). When a docked Panel is shown, you can specify the method use to show the Panel. This method discusses the various methods - Over, Slide and PushWatch Video
UX Component - MobileOverview of Different Methods for Specifying the Size of a Panel in a Panel LayoutWhen using a Panel Layout you can optionally specify the size of each Panel that is displayed within the Panel Layout. When you specify the size of a Panel, you can use either an absolute, percentage or relative size. This video discusses the various options.Watch Video
UX ComponentEmbedding Reports into a UX Component and Dynamically Filtering the ReportReports can be 'embedded' into the UX component and then dynamically filtered based on values that the user enters into controls on the UX. This allows for powerful interactive dashboard type applications where users can interact with reports. This video shows how this can be done.Watch Video
UX ComponentCustom Styling for RadioButton and CheckBox ControlsThe standard way in which browsers render checkbox and radiobutton controls is pretty drab. In this video we show how the UX component allows you to apply a rich set of styling options to radiobutton and checkbox controls.Watch Video - Part 1
Watch Video - Part 2
Watch Video - Part 3Download Component
UX ComponentPositioning Controls at Absolute Locations on the Screen using the WYSYWIG Builder -  Understanding the AbsoluteLayout ContainerBy default, the UX component lays out the controls that have been placed on the component automatically, 'flowing' the controls from left to right, top to bottom. All controls are perfectly aligned. However, there are times when you want more precise control over the placement of controls. This is especially true when you want to use an image (for example, an image  of a PDF form you might have) as the backdrop to a form and then place your UX component controls at precise locations exactly over the 'fields' in the image.This video shows how you can place controls in an an AbsoluteLayout container and the set the absolute position and size of each control.Watch Video - Part 1
Watch Video - Part 2
Watch Video - Part 3
Watch Video - Part 4
Watch Video - Part 5
Watch Video - Part 6
Watch Video - Part 7
UX ComponentUnderstanding the 'NoFloat' Container TypeBy default, all controls in a UX component are wrapped in a DIV with a class name of A5CWLayout. This class adds a CSS float and padding so that the controls 'flow' automatically, left to right, top to bottom across the page. If a control has a 'break' after it, a new 'line' is started. This automatic lay out of the controls on a UX makes it very easy to design attractive, perfectly aligned forms.However, there are cases when the padding that is automatically added to all controls gets in the way of the effect that you are trying to achieve and in these cases you can wrap controls in a special 'NoFloat' container.This video explains how the 'NoFloat' container works.Watch Video
UX ComponentAdding a 'Flow Collapse' Button to Panels in a Panel Layout to Hide/Show PanelsPanels in a PanelLayout can be hidden or shown by adding a 'flow collapse' button to a Panel. A common reason for doing this is to create a 'full screen' view for the 'primary' Panel in a PanelLayout. This video shows how this is done.Watch Video
Download Component
UX and Grid Component -'NotInList' Event for Auto-Suggest and Edit-Combo ControlsThe 'NotInList' event fires when the user enters a value into an Auto-suggest or Edit-combo control and the value entered is not is the list of available choices for the control.Watch Video
ReportsPrinting QR CodesPrinting QR Codes on Layout Table Reports is now a built-in feature.Watch Video
UX ComponentDisplaying QR Codes on a UX ComponentA common requirement, especially in mobile applications, is to display data encoded as a QR code. The UX component has a built-in QR Code control that makes it very easy to display any data in the form of a QR Code. This control uses Javascript to generate the QR Code. Because it is a pure Javascript control, no Ajax callback is required and therefore it is very fast. However, you can also generate QR codes on the server.This video shows how QR codes can be shown on a UX component using both client-side and server-side techniques.Watch Video - Part 1
Watch Video - Part 2
Download Component
ReportsAbsolute Positioning of Objects in a Layout Table Report - Using a Form Image as Report BackgroundIn a previous video we have shown how the UX component supports absolute positioning of controls over a bitmap image of a form (typically a PDF form).Layout Table reports also offer the ability to also use an image of a form as the report background and to then position the report fields directly over the 'fields' on the background image.This video shows how this is done.Watch Video - Part 1
Watch Video - Part 2
Watch Video - Part 3
Build a Mobile Application Quickly in Alpha Anywhere - A Tutorial
An Innovative Way to Design Responsive Business Apps - Now Available in Alpha Anywhere

About Author

Richard Rabins
Richard Rabins

Co-founder of Alpha Software, Richard Rabins focuses on strategy, sales, and marketing. Richard also served as CEO of SoftQuad International from 1997 to 2001, when it owned Alpha. In addition to his 30 years with the company, Richard played a key role as co-founder, and served as president and chairman of the Massachusetts Software Council (now the Massachusetts Technology Leadership Council), the largest technology trade organization in Massachusetts. Prior to founding Alpha, Richard was a project leader and consultant with Information Resources, Inc. (IRI), and a management consultant with Management Decision Systems, Inc. Richard holds a master's degree in system dynamics from the Sloan School at MIT, and a bachelor's degree in electrical engineering and master's degree in control engineering from University of the Witwatersrand in Johannesburg, South Africa. He has served on the boards of Silent Systems, Legacy Technology and O3B Networks, and is co-founder of Tubifi www.tubifi.com.

Related Posts
Integration between Alpha Anywhere and Microsoft Power BI
Integration between Alpha Anywhere and Microsoft Power BI
How Enterprise Architects Can Drive Digital Transformation
How Enterprise Architects Can Drive Digital Transformation
Updating Mobile Apps Just Got WAY Easier
Updating Mobile Apps Just Got WAY Easier

Comment

Subscribe To Blog

Subscribe to Email Updates