Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Haage am 06.06.06 - 11:00:20

Titel: Anhänge werden mehrfach dargestellt
Beitrag 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.
Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Lossa am 06.06.06 - 11:11:23
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.
Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Haage am 06.06.06 - 11:19:39
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!
Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Lossa am 06.06.06 - 11:26:59
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.

Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Haage am 06.06.06 - 12:01:41
In deiner Formel:
_linkAnfang+_imageRessource+_att+_linkEnde;
also liegt der fehler nur in der oben genannten zeile?
Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Lossa am 06.06.06 - 12:07:26
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.
Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Ayhan am 06.06.06 - 14:20:54
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


Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Haage am 06.06.06 - 15:03:35
wenn ich den Befehl so übernehme, dann bekomme ich eine Fehlermeldung:
HTTP Web Server: Lotus Notes Ausnahme - Array index out of bounds
Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Ayhan am 06.06.06 - 15:39:48
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  :-[
Titel: Re: Anhänge werden mehrfach dargestellt
Beitrag von: Haage am 06.06.06 - 15:50:44
Danke, jetzt hat es geklappt. Super!!!