Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Haage am 06.06.06 - 11:00:20
-
Hallo,
ich habe folgendes Problem: Wenn ich in einen Dokument z.B. drei Anhänge habe, dann werden sie auf der HTML Oberfläche wiederholt dargestellt. So wird die erste Datei, wiederum die erste Datei dargestellt, dann die zweite, wieder die erste und zum Schluss die letzte. Unten angefügter Befehl wird in einem berechneten Wert abgebildet:
_att:=@AttachmentNames;
_linkAnfang:="<a href=\"/" + @WebDbName+ "/0/" + @Text(@DocumentUniqueID)+"/$File/" + _att + "\" target=\"_blank\" >";
_linkEnde:="</a><br><br>";
_imageRessource:=@If(@IsAvailable($File);"<img src=\"/" +@WebDbName +"/Book.jpg\" alt=\" \" border=\"0\" /><br>";"");
@Implode(_html := _linkAnfang+_imageRessource+_att+_linkEnde;
_html)
Was ist falsch? Ich hoffe die Informationen reichen aus, um sich das Problem vorzustellen.
-
Hi,
das Feld $File ist ein Mehrfachwertfeld, das bedeutet das eine String + Mehrfachwert dazu führt das der eben eine Verkettung der Ergebnisse dargestellt wird.
In deiner Formel:
_linkAnfang+_imageRessource+_att+_linkEnde;
ist _linkAnfang ein Mehrfachwert und dazu addierst du wiederrum ein Mehrfachwert _att.
Du musst erst die Mehrfachwerte zusammenführen und dann erst die Stringaddition durchführen.
-
Hi,
das Feld $File ist ein Mehrfachwertfeld, das bedeutet das eine String + Mehrfachwert dazu führt das der eben eine Verkettung der Ergebnisse dargestellt wird.
In deiner Formel:
_linkAnfang+_imageRessource+_att+_linkEnde;
ist _linkAnfang ein Mehrfachwert und dazu addierst du wiederrum ein Mehrfachwert _att.
Du musst erst die Mehrfachwerte zusammenführen und dann erst die Stringaddition durchführen.
wie führe ich das zusammen. bin in der notes programmierung nicht so fit!
-
Hi,
gehe hin und mache erst ein addition der Mehrfachwert, dann anschliessend machst du die Stringaddition.
Wenn du zum Üben den code so veränderst, das du Text ausgegeben bekommst, statt des HTML Codes, oder du dir eben deinen HTML Source anschaust, kommst du schnell auf die richtige vorgehensweise.
-
In deiner Formel:
_linkAnfang+_imageRessource+_att+_linkEnde;
also liegt der fehler nur in der oben genannten zeile?
-
Hi,
schau dir doch deinen HTML Source einmal näher an, wie die <href> Links aufgebaut sind und dann siehst du den Fehler.
Du must bei Mehrfachfeldoperationen immer beachten, das quasi intern eine schleifeaufgebaut wird der die Operation ausführt.
z.B.:
Feld A "Welt1":"Welt2":"Welt3"
"Hallo " + A
Ergebnis ist wieder ein Liste:
"Hallo Welt1":"Hallo Welt2":"Hallo Welt3"
Und wenn du darauf wieder ein Mehrfachwert addierst bekommst du wieder eine Schleife usw.
Beachte bei einer addition geht das system rein mathematisch vor von links nach rechts.
Wenn du Klammerst kannst du die Reihenfolge ändern.
-
Dein Beispiel mit einer Schleife:
_att:=@AttachmentNames;
_attel:= @Elements(_att);
_code:= "";
_imageRessource:=@If(@IsAvailable($File);"<img src=\"/" +@WebDbName +"/Book.jpg\" alt=\" \" border=\"0\" /><br>";"");
@For(i:=0;i<=_attel;i:=i+1;
_linkAnfang:= "<a href=\"/" + @WebDbName+ "/0/" + @Text(@DocumentUniqueID)+"/$File/" + _att + "\" target=\"_blank\" >";
_linkEnde:="</a><br><br>";
_code:= _code + _linkAnfang+_imageRessource+_att+_linkEnde
);
_code
-
wenn ich den Befehl so übernehme, dann bekomme ich eine Fehlermeldung:
HTTP Web Server: Lotus Notes Ausnahme - Array index out of bounds
-
Uuhh, ich hirsch :P
In der Makro-Sprache ist der Index des 1. Elements in einem Array eine 1 und keine 0.
Ändere folgende Zeile:
@For(i:=0;i<=_attel;i:=i+1;
in
@For(i:=1;i<=_attel;i:=i+1;
Sorry :-[
-
Danke, jetzt hat es geklappt. Super!!!