Robert,
here is the example of simple in-cell 'progress bar':
<html>
<head>
<title>ActiveWidgets Grid :: Examples</title>
<style> body, html {margin:0px; padding: 0px; overflow: hidden;} </style>
<link href="../../runtime/styles/xp/grid.css" rel="stylesheet" type="text/css" ></link>
<script src="../../runtime/lib/grid.js"></script>
<style>
.active-controls-grid {height: 100%; font: menu;}
.active-column-1 {width: 80px;}
.active-column-2 {width: 200px;}
.active-column-3 {text-align: right;}
.active-column-4 {text-align: right;}
.active-column-5 {text-align: right;}
.active-grid-column {border-right: 1px solid threedlightshadow;}
.active-grid-row {border-bottom: 1px solid threedlightshadow;}
.active-progress-bar {
display: inline;
overflow: hidden;
height: 8px;
width: 70%;
margin: 5px;
padding: 1px;
border: 1px solid #090;
vertical-align: middle;
}
.active-progress-bar div {
overflow: hidden;
height: 100%;
background: #0f0;
}
.active-progress-bar.gecko {
width: 60%;
float: left;
}
.active-progress-bar.gecko div {
float: left;
}
</style>
<script>
var myData = [
[100, "MSFT","Microsoft Corporation", "314,571.156", "32,187.000", "55000"],
[95, "ORCL", "Oracle Corporation", "62,615.266", "9,519.000", "40650"],
[50, "SAP", "SAP AG (ADR)", "40,986.328", "8,296.420", "28961"],
[20, "CA", "Computer Associates Inter", "15,606.335", "3,164.000", "16000"],
[0, "ERTS", "Electronic Arts Inc.", "14,490.895", "2,503.727", "4000"],
[0, "SFTBF", "Softbank Corp. (ADR)", "14,485.840", ".000", "6865"],
[0, "VRTS", "Veritas Software Corp.", "14,444.272", "1,578.658", "5647"],
[0, "SYMC", "Symantec Corporation", "9,932.483", "1,482.029", "4300"],
[0, "INFY", "Infosys Technologies Ltd.", "9,763.851", "830.748", "15400"],
[0, "INTU", "Intuit Inc.", "9,702.477", "1,650.743", "6700"],
[0, "ADBE", "Adobe Systems Incorporate", "9,533.050", "1,230.817", "3341"],
[0, "PSFT", "PeopleSoft, Inc.", "8,246.467", "1,941.167", "8180"],
[0, "SEBL", "Siebel Systems, Inc.", "5,434.649", "1,417.952", "5909"],
[0, "BEAS", "BEA Systems, Inc.", "5,111.813", "965.694", "3063"],
[0, "SNPS", "Synopsys, Inc.", "4,482.535", "1,169.786", "4254"],
[0, "CHKP", "Check Point Software Tech", "4,396.853", "424.769", "1203"],
[0, "MERQ", "Mercury Interactive Corp.", "4,325.488", "444.063", "1822"],
[0, "DOX", "Amdocs Limited", "4,288.017", "1,427.088", "9400"],
[0, "CTXS", "Citrix Systems, Inc.", "3,946.485", "554.222", "1670"],
[0, "KNM", "Konami Corporation (ADR)", "3,710.784", ".000", "4313"]
];
var myColumns = [
"Loading %", "Ticker", "Company Name", "Market Cap.", "$ Sales", "Employees"
];
</script>
</head>
<body>
<script>
var progressBar = new Active.Templates.Image;
var outerBox = new Active.HTML.DIV;
var innerBox = new Active.HTML.DIV;
innerBox.setStyle("width", function(){
return this.getItemProperty("value") + "%";
});
outerBox.setClass("progress", "bar");
outerBox.setContent("box", innerBox);
progressBar.setContent("image", outerBox);
progressBar.setContent("text", function(){
return this.getItemProperty("text") + "%";
});
var obj = new Active.Controls.Grid;
obj.setTemplate("column", progressBar, 0);
obj.setRowProperty("count", 20);
obj.setColumnProperty("count", 6);
obj.setDataProperty("text", function(i, j){return myData[i][j]});
obj.setColumnProperty("text", function(i){return myColumns[i]});
obj.setRowHeaderWidth("28px");
obj.setColumnHeaderHeight("20px");
obj.setAction("click", function(src){window.status = src.getItemProperty("text")});
document.write(obj);
</script>
</body>
</html>
The second part (switching to date display) is missing in this example.