:: Forum >> Version 2 >>

Data Type Formatting

Is there a way to format columns by applying a mask or some type of formatting?
I would like to tell the grid to display column x as currency, column y as vbShortDate etc...

Is this ability built into the grid??

If not, does anybody have any ideas on what may be the easist way to implement something like this??


I realize I can format the data before I pass it to the grid, but I am using an XML Data Island from a recordset, and I never actually loop through the data.

I have also been trying to find an xsl solution to this problem, but can't seem to find an example or tutorial that explains how to format data by data type, or even how to determine the data type for a given value.
Jim Shaffer
Monday, October 24, 2005
Jim,

it is possible to format your XML data inside AW.XML.Table class. For this purpose you should create formatting objects (instances of AW.Formats.Number/Date/String class), configure them and assign to table column.

Here is complete formatting example:

<html>
<
head>
    <
link href="../../runtime/styles/xp/aw.css" rel="stylesheet" type="text/css" ></link>
    <
script src="../../runtime/lib/aw.js"></script>
    <
style>
        .
aw-grid-control {height150pxwidth100%; fontmenu;}
    </
style>
</
head>
<
body>
    <
xml id="xmlDataIsland">
        <
companies>
            <
company>
                <
ticker>MSFT</ticker>
                <
name>Microsoft Corporation</name>
                <
mktcap>314571.156</mktcap>
                <
sales>32187.000</sales>
                <
employees>55000</employees>
            </
company>
            <
company>
                <
ticker>ORCL</ticker>
                <
name>Oracle Corporation</name>
                <
mktcap>62615.266</mktcap>
                <
sales>9519.000</sales>
                <
employees>40650</employees>
            </
company>
            <
company>
                <
ticker>SAP</ticker>
                <
name>SAP AG (ADR)</name>
                <
mktcap>40986.328</mktcap>
                <
sales>8296.420</sales>
                <
employees>28961</employees>
            </
company>
        </
companies>
    </
xml>
    <
script>

    
//    create ActiveWidgets data model - XML-based table
    
var table = new AW.XML.Table;

    
//    fix for format index bug in 2.0b1
    
table.getText = function(ij){
        var 
node this.getNode(ij);
        var 
data node ? node.text "";
        var 
format this._formats[i];
        return 
format ? format.dataToText(data) : data;
    };

    
//    create formatting object
    
var number = new AW.Formats.Number;

    
//    configure formatting object
    
number.setTextFormat("$ #,###.#");

    
//    assign format to data column
    
table.setFormat(number2);


    
//  get reference to the xml data island node (IE only)
    
var xml document.getElementById("xmlDataIsland");

    
//    provide data XML
    
table.setXML(xml);

    
//    define column labels
    
var columns = ["Ticker""Company Name""Market Cap.""$ Sales""Employees"];

    
//    create ActiveWidgets Grid javascript object
    
var obj = new AW.UI.Grid;

    
//    set number of rows, columns
    
obj.setColumnCount(5);
    
obj.setRowCount(3);

    
//    provide column labels
    
obj.setHeaderText(columns);

    
//    provide external model as a grid data source
    
obj.setCellModel(table);

    
//    write grid html to the page
    
document.write(obj);

    </
script>
</
body>
</
html>

 
More formatting samples are here:

/javascript.forum.8116.0/example-using-recordset-xml-output.html
Alex (ActiveWidgets)
Monday, October 24, 2005



This topic is archived.

Back to support forum

Forum search