Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: sylli1908 am 06.03.06 - 15:38:24

Titel: CartID für jeden Benutzer in ein Notes-Feld
Beitrag von: sylli1908 am 06.03.06 - 15:38:24
Ich habe hier ein JavaScript das mir für jeden Besucher der Internetseite eine Zahl anlegt die 10stellig wird und nicht fortlaufend von Besucher zu Besucher ist. (für einen Warenkorb notwendig)Das ganze sieht so aus:

function setZero(zahl) {
   return(("0" + zahl).substr((zahl>9) ,2));
}

function getCookie() {

   var datum = new Date();
   var Monat = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
   var Wochentag = Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");

   if (datum.getMonth() < 11) {
      datum.setMonth(datum.getMonth() + 1);
   } else {
      datum.setMonth(0);
      datum.setFullYear(datum.getFullYear() + 1);
   }

   var exp = "cartid="+randomnum()+"; expires=" + Wochentag[datum.getDay()] + ", " + datum.getDate() + "-" + Monat[datum.getMonth()]+"-"+datum.getFullYear() + " " + setZero(datum.getHours())+":"+setZero(datum.getMinutes())+":"+setZero(datum.getSeconds());

   return(exp + cartID);
}

var cartID;

function initializepage() {
// alert ('Ich initialisiere....');
   //Look for CartID in cookie first
   var cookies=document.cookie;
   cartID = getcartid("cartid", cookies, ";");
   //If cookies aren't enabled, first determine if customer is coming from an external site.  If so, a new
   //CartID must be generated for them.  If they are changing pages within Liberty Fund, simply get the
   //CartID from the URL
   if (cartID==null) {
//      alert("referrer: "+document.referrer.toLowerCase().substring(0,52));
      // external call when cartid is missing (definition)

      if (document.location.href.toLowerCase().indexOf("cartid=") < 0)
   {
         cartID=randomnum();
        }
      else {
      var URLcartid = new String(document.URL);
      cartID=getcartid("cartid", URLcartid, "&");
        }
    }
    //Append CartID to all links on the current page, regardless of whether cookies are enabled or not   
    setlinks(cartID);
 }

function randomnum() {
      var TodaysDate=new Date();
      var rn = Math.floor(16000*Math.random()+1)+"-"+TodaysDate.getHours()+TodaysDate.getMinutes()+TodaysDate.getSeconds();
      return rn;
 }

// attach missing cartid (is necessary)
function setlinks(v) {
       for (var i = 0; i < document.links.length; i++) {
              //Use the search property of the link object to append the CartID
              var link = new String(document.links).toLowerCase();
              if( (link.toLowerCase().indexOf("mailto")<0) && (link.toLowerCase().indexOf("cartid=") < 0) && (link.toLowerCase().indexOf("javascript") < 0))
              {
                     document.links.search=document.links.search + "&CartID=" +v;
              }
       }
 } 

function getcartid(name, inputstring, trunc) {
        //Simply parses out CartID from either the cookie or URL passed to function
        inputstring = inputstring + trunc;
        inputstring = inputstring.toLowerCase();
        var start=inputstring.indexOf(name + "=");
        if (start>-1) {
             start=inputstring.indexOf("=", start)+1
           }
        var end = inputstring.indexOf(trunc, start);
        if (start==-1 || end==-1) {
              value=null
           }
        else {
              var value=unescape(inputstring.substring(start,end))
           }
        return value;
 }

genieal!!!!!!

Ich brauche nun ein Datenbankfeld für eine Notesanwendung, in der ebenfalls eine solche ID (ca 7-9 stellig) angelegt wird. Hat ein Genie unter Euch so etwas schon mal gemacht???? Ich bin dazu nicht in der Lage.  Hiiiiiiiiiiiilfe  .
Titel: Re: CartID für jeden Benutzer in ein Notes-Feld
Beitrag von: klaussal am 06.03.06 - 15:49:14
Code
_number:=@ReplaceSubstring(@Text(@Time(@Now));":";"")
+"-"+ @ReplaceSubstring(@Text(@Date(@Today));".";"");
_supporter:=@Name([CN];@UserName);
_RequestNumber:=
@UpperCase(@Left(@Word(_supporter; " "; 1); 2) +
@Left(@Word(_supporter; " "; 2); 1)) +
_number;
FIELD OrderNumber := OrderNumber;
@If(@IsNewDoc;
@SetField("OrderNumber";_RequestNumber);"")

Ergibt etwas ähnliches....
Titel: Re: CartID für jeden Benutzer in ein Notes-Feld
Beitrag von: sylli1908 am 06.03.06 - 15:51:16
probier ich gleich mal .  dankeeeee
Titel: Re: CartID für jeden Benutzer in ein Notes-Feld
Beitrag von: sylli1908 am 06.03.06 - 15:57:08
funktioniert.   

danke nochmal