« Javascript version of @DbLookup & @DbColumn | HomePage | Evaluating User Groups »

Tuesday, 11 January 2005

Javascript version of @DbLookup & @DbColumn

This is my award winning tip. Its used to perform @DbLookup & @DbColumn using Javascript on the browser without refreshing or reloading the page.

function dbLookup(server,path,view,key,column){

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)
}
}
}

//Javascript index starts at 0, so need to decrement the column by -1
if( !isNaN(column) )
column -= 1;

vurl = trim(server)+"/"+trim(path)+"/"+view+"?readviewentries&login=1&count=9999&startkey="+key;
xmlDoc.load(vurl);
if (xmlDoc.documentElement == undefined)
{
return("")
}
nodes = xmlDoc.documentElement.childNodes;
temp = new Array(nodes.length);
var j = 0;
for (var i = 0; i < nodes.length; i++)
{
if(nodes.item(i).childNodes.item(0).text==key)
{
temp[j] = nodes.item(i).childNodes.item(column).text;
j++;
}
else
{
break;
}
}

var results = ""
for (var i = 0; i < j; i++)
{
if (i==0)
{
results = temp[i];
}
else
{
results = results + ", " + temp[i];
}
}

return(results);
} //End of dbLookup


function dbColumn(server,path,view,column){

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)
}
}
}

if( !isNaN(column) )
column -= 1;

vurl = trim(server)+"/"+trim(path)+"/"+view+"?readviewentries&login=1&count=9999";
xmlDoc.load(vurl);

nodes = xmlDoc.documentElement.childNodes;
temp = new Array(nodes.length);
var j = 0;
for (var i = 0; i < nodes.length; i++)
{
temp[j] = nodes.item(i).childNodes.item(column).text;
j++;
}

results = new Array(j);
for (var i = 0; i < j; i++)
{
results[i] = temp[i];
}

return(results);
} //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


NOTE:
1) View should NOT be Categorized
2) works fine on IE 5.5 and above
3) "Server" and "Path" parameters are optional when used in current database

Usage Example:
1) Current Database
var a = dbColumn("","","Keywords",1)
var a = dbLookup("","","Keywords","LotusNotes",2)

2) Across Database
var a = dbColumn("http://11.22.33.44","folder/db.nsf","Keywords",1)
var a = dbLookup("http://11.22.33.44","folder/db.nsf","Keywords","LotusNotes",2)

01:55 Posted in Blog, Tips | Permalink | Comments (5) | Email this | Tags: Just talk Lotus

Comments

Wow - cool! I'm going to give it a try out tonight. Just on the surface, I'd say it was deserving of the award.

Cheers!

Jerry

Posted by: Jerry Carter | Wednesday, 19 January 2005

Sure ... i would be happy to know it works .. lol
let me know your thoughts.

Thanks Jerry.

Posted by: Ashish | Wednesday, 19 January 2005

url=http://portable-washer-and-dryers.beeplog.com]portable washer and dryers[/url] portable washer and dryers wet saw blades [url=http://wet-saw-blades.beeplog.com]wet saw blades[/url] steam shower [url=http://steam-shower.beeplog.com/]steam shower[/url] portable-washer-and-dryers.beeplog.com steam-shower.beeplog.com wet-saw-blades.beeplog.com

Posted by: Magdu | Saturday, 08 July 2006

crohns
hooka
greenies
[url=http://crohns.coz.in/]crohns[/url]
[url=http://hooka.coz.in/]hooka[/url]
[url=http://greenies.coz.in/]greenies[/url]

Posted by: Tim | Sunday, 09 July 2006

This one is not working..I dont know wats wrong...

Posted by: John Cruz | Thursday, 07 August 2008

Post a comment