27 December 2010

Escape the American date format in DateTimeAxis Flex charts using the <mx:DateTimeAxis> are hardcoded with the American date format. As only 6% of the world's population is using this date format, I've seen more than one request for something like this: As the <mx:DateTimeAxis> has the label formats hardcoded, one solution is to extend it. The class <mx:DateTimeAxis> contains various functions for every type of time units, e.g formatYears(), formatMonths(), formatDays(), formatMinutes(), formatSeconds() and formatMilliseconds(). The <chart:FormattedDateTimeAxis> class above overrides the date functions, and allows custom formats with the properties formatStringYears, formatStringMonths and formatStringDays. The benefit with this approach is that we utilise all the logic within <mx:DateTimeAxis>, but only overriding the formatting part.

Labels: , ,

26 December 2008

Step 4 - Create a Flex application

Now we're getting into the interesting bits. 
First we create our first Adobe LiveCycle Data Services Flex application.
Make sure you Validate the configuration. The directories should be all the same (at least in this examlpe.
Now, add the datamodel var inventory:ArrayCollection and the view mx:DataGrid. For DataGrids with given column names, I often include a mx:Label to indicat whether I actally received any data, or if just my DataGrid isn't displaying waht I received.
Then we include the <mx:DataService id="ds" destination="sql-product"/>
And finally, we're filling it in the onCreationComplete()
and don't forget to trigger the event in creationComplete="onCreationComplete() the <mx:Application>.
The final code should look like this: 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
creationComplete="onCreationComplete()">
<mx:Script>
<![CDATA[
  import mx.collections.ArrayCollection;
  [Bindable]
  protected var inventory:ArrayCollection = new ArrayCollection();

  protected function onCreationComplete():void {
      ds.fill(inventory, "all");
  }
]]>
</mx:Script>
<mx:DataService id="ds"
destination="sql-product"
/>
<mx:DataGrid id="grid1"
dataProvider="{inventory}"
editable="true"
/>
<mx:Label text="Items: {inventory.length}" />

</mx:Application>
And your application should look like this:
Update the data
Now start the Admin application (http://localhost:8400/lcds-samples/sqlassembler/index_inv.html) in another window, and update som of the info. Watch you new application!
Troubleshooting
If you receive the error:
An error executing SQL caused the operation to fail. If debug level logging is enabled for the SQL Assembler, details are logged on the server.
Make sure you start the Sample Database BEFORE you start Tomcat. Check the log windows for LCDS if you find :
******************************************************************************
*                                                                            *
*  Unable to connect to the samples database.                                *
*  You must start the samples database before you can run the samples.       *
*  To start the samples database:                                            *
*    1. Open a command prompt and go to the {install-dir}/sampledb dir       *
*    2. Run startdb.bat (Windows) or startdb.sh (Unix-based systems)         *
*                                                                            *
******************************************************************************
Turn on debugging in HSQLDB (previous post) to find out if LCDS actually finds the DB at all. 
(In my case I got 'Access denied' because I had changed the sa password.... :)
[Main article] [Next] [Previous

Labels: , , ,

12 December 2008

How-to connect LiveCycle Data Services 2.6 to Microsoft SQL Server

Flex is front-end only. So, when you want to get information from one of your databases, you need 'something else' to transport your data between the database and the Flex front-end. This 'something', you often have to make from scratch, and names and structure are often partly redundant, as it copies existing code, written in ActionScript/Flex.

Adobe LiveCycle Data Services is capable of providing this missing link, without writing a single line of code, by using its SQL Adapter. You specify SQL statements directly in a configuring file, for Creating, Reading, Updating and Deleting information (CRUD).

Here in Scandinavia, "all" databases are Microsoftified, therefore I would very much like to connect to Microsoft SQL Server. Though, finding examples for connecting to MSSQL wasn't that easy. 

 

Being a newbie to Flex, LiveCycle Data Services and Java application servers in general didn't make it easier. But I've succeeded, and here's my story for others in the same situation:

1. Download and install Livecycle Data Services  2. Understand the folders of LCDS and Tomcat, the java app server 3. Explore the existsing sample HSQLDB database and its configuration 4. Create a Flex application reading the sample database 5. Install MSSQL Java drivers 6. Set up MSSQL and LCDS' connection As you see, I'm not yet finished writing all the sub sections. But they will come...

 

Labels: , , ,