• javascript @dbcolumn & @dblookup

    By Benoit de TARADE 2 decades ago

    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 &lt; jmax; j++)<br/>
    

    {

            temp[j] = new Array(imax);<br/>
            for (var i = 0; i &lt; imax; i++)<br/>
            {<br/>
                   /* <br/>
                    if( !isNaN(columns[i]) ) {  <br/>
                        columns[i] -= 1;<br/>
                    }<br/>
                    */<br/>
                   /*<br/>
                    alert(&quot;i : &quot; + i);<br/>
                    alert(&quot;j : &quot; + j);<br/>
                    alert(&quot;text : &quot; + 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 &lt; 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 &lt; jmax; j++)<br/>
    

    {

            temp[j] = new Array(imax);<br/>
            for (var i = 0; i &lt; 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 &lt; 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