Claudia Schlegel: grafische Darstellung

Liebe XMLNS-Kosmonauten

Wie anders als mit ActiveX könnte ich die BroswerDaten auswerten und grafisch darstellen. Für mich ist es nicht sinnvoll eine Datenbank für einen UserAblauf anzulegen. Aber dadurch habe ich die grosse Knacknuss zu lösen wie ich die CookieZahlen in eine xmlns Tabelle kriege. Abgesehen von zwei Fehlermeldungen im CookieSkript, die ich nicht wegkriege, bemühe ich mich folgendes ActiveX-Programm:
 <object classid="clsid:0002E510-0000-0000-C000-000000000046" id="Spreadsheet1" codebase="file:///M:/msowc.cab" width="576" height="288">

<param name="HTMLURL" value>
  <param name="HTMLData" value="<html xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">
etc…

in folgende Form:

<center>
<form name="frm1">
<table align="center" border="0" resize="none" width="247">
<tr>
<td align="right" width="113">Seite1:</td>
<td width="115"><input type="box" name="Seite1" size="12"></td></tr>
<tr>
<td align="right" width="113">Seite2:</td><td colspan="5" width="75"><input type="box" name="Seite2" size="9"></td></tr>
<tr>
<td align="right" width="113">Seite3:</td><td width="75"><input type="box" name="Seite3" size="15"></td>
<td align="right" width="82">Seite4:</td><td width="75"><input type="box" name="Seite4" size="15"></td>
<td align="right" width="28">Seite5:</td><td width="52"><input type="box" size="6" name="Seite5"></td></tr>
<TR>
<td align="right" width="113">Seite6:</td><td align="left" width="117"><input type="box" name="Seite6" size="15"></td>
<td align="right" width="75">Seite7:</td><td align="left" width="117"><input type="box" name="Seite7" size="15"></td></TR>
</table></form>

einzubringen. Es will mir einfach nicht gelingen. Ich versuchte es bereits direkt im CookieSkript:
<HTML>
<HEAD>
<TITLE>@r_frei</TITLE>
<META HTTP-EQUIV="The JavaScript Source" CONTENT = "no-cache">
<META NAME="author" CONTENT="Richard Frei">
<META NAME="section" CONTENT="Cookies">

<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
var arrRecords = new Array();
var arrCookie = new Array();
var recCount = 0;
var strRecord="";
expireDate = new Date;
expireDate.setDate(expireDate.getDate()+365);
function cookieVal(cookieName) {
thisCookie = document.cookie.split("; ")
for (i = 0; i < thisCookie.length; i++) {
if (cookieName == thisCookie[i].split("=")[0]) {
return thisCookie[i].split("=")[1];
   }
}
return 0;
}
function loadCookie() {
if(document.cookie != "") {
arrRecords = cookieVal("Records").split(",");
currentRecord();
   }
}
function setRec() {
strRecord = "";
for(i = 0; i < document.frm1.elements.length; i++) {
strRecord = strRecord + document.frm1.elements[i].value + ":";
}
arrRecords[recCount] = strRecord;
document.frm2.add.value = "  NEW  ";
document.cookie = "Records="+arrRecords+";expires=" + expireDate.toGMTString();
}
function newRec() {
switch (document.frm2.add.value) {
case "  NEW  " :
   varTemp = recCount;
***   for(i = 0; i < document.frm1.elements.length; i++) {
***   document.frm1.elements[i].value = ""
   }
   recCount = arrRecords.length;
   document.frm2.add.value = "CANCEL";
   break;
case "CANCEL" :
   recCount = varTemp;
   document.frm2.add.value = "  NEW  ";
   currentRecord();
   break;
   }
}
function countRecords() {
document.frm2.actual.value = "Record " + (recCount+1)+";  "+arrRecords.length+" saved records";
}
function delRec() {
arrRecords.splice(recCount,1);
navigate("previous");
setRec();
}
function currentRecord() {
if (arrRecords.length != "") {
strRecord = arrRecords[recCount];
currRecord = strRecord.split(":");
for(i = 0; i < document.frm1.elements.length; i++) {
document.frm1.elements[i].value = currRecord[i];
      }
   }
}
function navigate(control) {
switch (control) {
case "first" :
   recCount = 0;
   currentRecord();
   document.frm2.add.value = "  NEW  ";
   break;
case "last" :
   recCount = arrRecords.length - 1;
   currentRecord();
   document.frm2.add.value = "  NEW  ";
   break;
case "next" :
   if (recCount < arrRecords.length - 1) {
   recCount = recCount + 1;
   currentRecord();
   document.frm2.add.value = "  NEW  ";
   }
   break;
case "previous" :
   if (recCount > 0) {
   recCount = recCount - 1;
   currentRecord();
   }
   document.frm2.add.value = "  NEW  ";
   break;
   default:
   }
}

// Splice method Protype Function
if (!Array.prototype.splice) {
function array_splice(ind,cnt) {
if (arguments.length == 0) return ind;
if (typeof ind != "number") ind = 0;
if (ind < 0) ind = Math.max(0,this.length + ind);
if (ind > this.length) {
if (arguments.length > 2) ind = this.length;
else return [];
}
if (arguments.length < 2) cnt = this.length-ind;
cnt = (typeof cnt == "number") ? Math.max(0,cnt) : 0;
removeArray = this.slice(ind,ind+cnt);
endArray = this.slice(ind+cnt);
this.length = ind;
for (var i = 2; i < arguments.length; i++) {
this[this.length] = arguments[i];
}
for(var i = 0; i < endArray.length; i++) {
this[this.length] = endArray[i];
}
return removeArray;
}
Array.prototype.splice = array_splice;
}
recCount = 0;
loadCookie();
countRecords();

unterzukriegen und mit Parametereinstellungen im Spreadsheet.
Damit das ganze verständlicher ist, habe ich meine Bastelarbeit auf folgender Homepage http://home.datacomm.ch/r_frei/ abgelegt. Das Coole und eben Wichtige, auch wenn von Microsoft, ist der unmittelbare Chart. Wenn du in der ersten Zeile von A - E Zahlen eingibst, wird das Resultat automatisch sichtbar. Die sichtbaren Seitenangaben empfinde ich zum jetzigen Zeitpunkt als ein nebensächlicher Störfaktor, aber dafür hilft es das Problem der inaktiven und undynamischen Tabelle besser zu verstehen.

Sollte ich das Ganze von Neuem angehen müssen, wäre ich für jedes Beispiel und für jeden Tool- bzw. Builder-Tipp sehr dankbar.

Mit freundlichem Gruss

Claudia

  1. Die URL ist hier besser plaziert...oder?