Your organization may rely on a spreadsheet to:
One or more Users may:
Distributing the raw spreadsheet might carry the following challenges:
The following tutorial demonstrates an EASA solution to the problems above.
We will create a an Adjustable Rate Mortgage Calculator EASAP that derives its user interface and functionality from an existing Excel spreadsheet.
The underlying spreadsheet will define the EASAP's input and output. Certain Ranges, Tables and Charts will be connected to the EASAP's User Interface and presented in a Web Browser. A PDF printout function will be added.
These Excel-linked objects will change in real-time in the browser when a User modifies an input.
As we build this application, think about your organization's key spreadsheets and the potential value created if they could be easily transformed into standalone web applications. (They can be!)
This tutorial assumes access to a properly configured EASA Server with a compatible version of Excel.
An Author uses the EASAP Builder to create an EASA application without writing any code.
The Builder interface consists of a Tree of EASAP objects on the left and their parameters on the right.
The New Application Wizard is displayed the first time we edit a New EASAP. Here we'll set some initial PROPERTIES. These can be changed later.
We now have options on how we wish to define the user interface of our new EASAP.
The first option is to proceed straight to EASAP Builder and begin to add objects to our EASAP manually.
However, in our case we want to initialize our EASAP user interface to replicate our Excel spreadsheet, and utilize its functionality.
The Excel Range Wizard reproduces the look and function of an Excel spreadsheet within an EASAP.
Our EASAP will not only replicate the look of our spreadsheet, it will connect to the relevant cells in the secured master copy of the spreadsheet on the EASA Server.
As the EASAP User updates input fields in their Web Browser, the Excel spreadsheet will recalculate based on their inputs, and the EASAP will display the updated outputs to the User in real time.
For now, we will add just one range of cells to the EASAP.
The main EASAP Builder window should appear with the EASAP Tree pre-populated with USER INTERFACE objects by the Excel Range Wizard.
By now, the EASAP Builder with SPREADSHEET LIST expanded should be shown as per below.
The EASAP should open in your Web Browser in testing mode. Try it out by changing a few inputs and observe the outputs being recalculated.
When you're done, close the tab and return to EASAP Builder.
Every new EASAP begins with some existing objects that form a template that is common to every EASAP.
In the Builder this is called the Tree. The highest level branches are always the same, their names are in ALL CAPS.
Step 1: Create a second Layout Panel
This LAYOUT PANEL and its Child objects were automatically created when we ran the Excel Range Wizard.
Step 2: Add Button objects to the new Layout Panel
The Label: text will be displayed inside the rectangular button.
To be clear this new BUTTON is named, button_submit which we, as Authors, will use elsewhere within the Builder.
button_submit has a Label: which is the text that a User will see enclosed within the button's outline in the GUI.
Press <Enter> after typing a parameter value to ensure it updates.
For the moment button_submit will not do anything.
ACTION's may be added as Child objects under a BUTTON, each will be executed sequentially when a BUTTON is pressed.
3→ Here we create a way for the User to exit the EASAP gracefully.
We now introduce our first ACTION called MENU ACTION which initiates activities common to many EASAP's.
We have now defined what happens when a User presses the exit BUTTON.
In a moment we will define another ACTION and associate it with button_submit.
4→ Since LAYOUT PANEL doesn't add an space around its Child objects, we will add a space between our buttons now.
5→ Let's check our work.
In this section, we will introduce an EVENT and its associated ACTION.
In this case, the BUTTON PRESSED EVENT will be activated and an ACTION triggered when button_submit is pressed.
A BUTTON PRESSED EVENT is an alternative way that a BUTTON can trigger an ACTION
Here we use BUTTON PRESSED to introduce a general EVENT/ACTION model implemented in an EVENT PROCESSING object.
1→ Let's add an EVENT PROCESSING to the Tree.
Child objects of an EVENT will trigger any Child ACTION objects under the associated ACTION GROUP.
When a User clicks on button_submit a BUTTON PRESSED EVENT (Child of event_submitted) is activated.
2→ Let's define an ACTION to trigger a submit for the EASAP.
The EASAP is now perfectly usable, but let’s suppose that, after its published, a few Users provide feedback. In this case, they ask to include two charts from the spreadsheet and display each of them on new TABBED PANE's in the EASAP.
1→ Let's add these charts to enable a User to see live results graphically even before the EASAP is submitted.
These selections were made from the Basic Information Excel tab so there are two new LAYOUT PANEL's under tab_Basic_Information which contain the Amortization and Rate History charts.
2→ Let's make sure we've captured the Excel-derived objects we wanted.
3→ We can move these objects wherever we want them in the user interface by changing their location on the Tree.
4→ The Tree should look like the following panel.
5→ Test the EASAP, click Web Browser Test.
A User may vary inputs for a number of EASAP runs and and view the results in the browser.
Once an EASAP run meets the User's requirements it may be exported to a PDF.
1→ We add EXPORT TO PDF functionality to our EASAP.
2→ For the EXPORT TO PDF set,
3→ We put a link to the output PDF file in the HTML report.
We have completed the Excel Tutorial.