Hi!
I've found a script in ibm forum which could be very interesting to put in your framework
function dbLookup(server,path,view,key,columns){
//alert("dbLookUp ( " + server + ", " + path + ", " + view + ", " + key + ")");
xmlLookUp = new ActiveXObject("Microsoft.XMLDOM");
xmlLookUp.async = false;
var pos=0;
currURL = (document.location.href).toLowerCase();
if (trim(server) == "") {
pos = currURL.indexOf('://');
if (pos < 0 )
server = "http://11.22.33.44"// PUT YOUR SERVERNAME HERE
else
{
pos += 3;
pos = currURL.indexOf('/', pos);
server = currURL.substring(0, pos)
}
}
if( trim(path) == "" )
{
if( pos > 0 )
{
newPos = currURL.indexOf('.nsf',pos);
if (newPos > 0)
{
path = currURL.substring(pos+1,newPos+4)
}
}
}
//Javascript index starts at 0, so need to decrement the column by -1
//vurl = trim(server)+"/"+trim(path)+"/"+view+"?readviewentries&login=1&count=9999&startkey="+key+"&untilkey="+key;
vurl = trim(server)+"/"+trim(path)+"/"+view+"?readviewentries&login=1&count=9999&restricttocategory="+key;
//alert(vurl);
xmlLookUp.load(vurl);
if (xmlLookUp.documentElement == undefined)
{
return("")
}
var nodes = xmlLookUp.documentElement.childNodes;
var imax = 0;
var jmax = nodes.length;
<br/>
//alert("Key : " + key);
alert(vurl);
if ( columns instanceof Array ) {
imax = columns.length;<br/>
<br/>
temp = new Array(jmax);<br/>
for ( var j = 0; j < jmax; j++)<br/>
{
temp[j] = new Array(imax);<br/>
for (var i = 0; i < imax; i++)<br/>
{<br/>
/* <br/>
if( !isNaN(columns[i]) ) { <br/>
columns[i] -= 1;<br/>
}<br/>
*/<br/>
/*<br/>
alert("i : " + i);<br/>
alert("j : " + j);<br/>
alert("text : " + nodes.item(j).childNodes.item(columns[i]).text);<br/>
*/<br/>
temp[j][i] = nodes.item(j).childNodes.item(columns[i]).text; <br/>
}<br/>
}<br/>
} else {
temp = new Array(nodes.length);<br/>
if( !isNaN(columns) ) {<br/>
columns -= 1;<br/>
}<br/>
var j = 0;<br/>
for (var i = 0; i < nodes.length; i++)<br/>
{<br/>
temp[j] = nodes.item(i).childNodes.item(columns).text;<br/>
j++;<br/>
}<br/>
}
return(temp);
}//End of dbLookup
function dbColumn(server,path,view,columns){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
var pos=0;
currURL = (document.location.href).toLowerCase();
if (trim(server) == "") {
pos = currURL.indexOf('://');
if (pos < 0 )
server = "http://11.22.33.44"// PUT YOUR SERVERNAME HERE
else
{
pos += 3;
pos = currURL.indexOf('/', pos);
server = currURL.substring(0, pos)
}
}
if( trim(path) == "" )
{
if( pos > 0 )
{
newPos = currURL.indexOf('.nsf',pos);
if (newPos > 0)
{
path = currURL.substring(pos+1,newPos+4)
}
}
}
vurl = trim(server)+"/"+trim(path)+"/"+view+"?readviewentries&login=1&count=9999";
xmlDoc.load(vurl);
var nodes = xmlDoc.documentElement.childNodes;
var imax = 0;
var jmax = nodes.length;
<br/>
if ( columns instanceof Array ) {
imax = columns.length;<br/>
<br/>
temp = new Array(jmax);<br/>
for ( var j = 0; j < jmax; j++)<br/>
{
temp[j] = new Array(imax);<br/>
for (var i = 0; i < imax; i++)<br/>
{<br/>
/* <br/>
if( !isNaN(columns[i]) ) { <br/>
columns[i] -= 1;<br/>
}<br/>
*/<br/>
temp[j][i] = nodes.item(j).childNodes.item(columns[i]).text; <br/>
}<br/>
}<br/>
} else {
temp = new Array(nodes.length);<br/>
if( !isNaN(columns) ) {<br/>
columns -= 1;<br/>
}<br/>
var j = 0;<br/>
for (var i = 0; i < nodes.length; i++)<br/>
{<br/>
temp[j] = nodes.item(i).childNodes.item(columns).text;<br/>
j++;<br/>
}<br/>
}
return(temp);
}//End of dbColumn
function trim(sStr)
{
var iI = 0;
var iJ = 0;
var iTam = 0;
var sAux = "";
iTam = sStr.length;
if(iTam==0) return(sStr);
for(iI=0; iI<iTam; iI++)
if(sStr.charAt(iI)!=' ') break;
if(iI >= iTam) return("");
for(iJ=iTam - 1; iJ>=0; iJ–)
if(sStr.charAt(iJ)!=' ') break;
return(sStr.substring(iI,iJ+1));
}//End of trim
found here : http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/f291334d26b3dcf585256f2a0043ec9e?OpenDocument
With some modifications