Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: nafets am 21.05.02 - 14:25:59

Titel: @UniqueDocumentID
Beitrag von: nafets am 21.05.02 - 14:25:59
Hi  ;),

wollte gerade einen Dokumentelink über eine Formel in eine Maske einfügen. Und zwar soll immer das oberste Dokument aus einer Ansicht als Link angezeigt werden. Dazu hab ich in der Ansicht die @DocumentUniqueID berechnen lassen und dann über @DBColumn und @Subset den obersten Wert ausgelesen. Aber leider wird die DocID nicht als Link angezeigt, sondern als Text. In der Hilfe steht aber, dass eine DocID in einem berechneten Feld zu einem Link wird  ???

Hab ich da was falsch gemacht, oder geht das gar nicht.

Gruß Stefan
Titel: Re: @UniqueDocumentID
Beitrag von: grosses.manitu am 21.05.02 - 15:30:03
Klassische Frage: Das Feld ist schon berechnet, oder  :)
Und hast Du ganz einfach das Dokument gespeichert und es dann wieder geoeffnet? Steht dann immer noch nur der Text?
Vom Typ RichText ist das berechnete Feld auch?
Titel: Re: @UniqueDocumentID
Beitrag von: nafets am 22.05.02 - 07:51:27
Ja, das Feld ist berechnet und vom Typ Richtext. Es wird aber trotzdem nur der DocLink als Text angezeigt. Ich lese mit folgender Formel aus der Ansicht die Doc-Id aus:

_wert := @DbColumn( "Notes":"NoCache"; @DbName; "(zuletzt beendet)"; 4);
_ersterWert := @Subset( _wert; 1);
@If( @IsError(_wert); @Text(_ersterwert); _ersterwert)

In der Ansicht "(zuletzt beendet)" steht sortiert nach Datum an oberster Stelle das neuest Dokument im Status "beendet". Ich lese die Spalte der Doc-Ids aus, und nehm den ersten Wert. Das Feld in dem ich das anzeige, ist berechet und vom Typ RichText.

Kann es vielleicht daran liegen, dass ich in der Ansicht die Doc-ID nur mit @Text(@DocumentUniqueID) anzeigen kann? Und wenn das das Problem ist, wie krieg ich das trotzdem hin?

Wenn ich in einer Maske die eigene DocID in einem Feld anzeige dann erscheint automatisch ein Link, aber nur wenn ich @DocumentUniqueID ohne @Text davor schreibe.

Titel: Re: @UniqueDocumentID
Beitrag von: grosses.manitu am 22.05.02 - 08:50:18
Versuch doch einfach, ein Feld im bestehenden Dokument hinzuzufuegen, wo das @DocumentUniqueID bereits gespeichert ist und Du es nicht mir in der View "berechnen" musst.
Dann machst ein @DBColumn auf dieses Feld.
Titel: Re: @UniqueDocumentID
Beitrag von: nafets am 22.05.02 - 10:24:22
Danke für den Tip, habs mal ausprobiert, allerdings wird das Feld dann nicht in der Ansicht angzeigt. D.h. ich kann es auch nicht mit DBColumn auslesen. Hab dann ein DBLookup auf das Feld probiert, hat aber auch nicht funktioniert.

Ich krieg das bloß als Text rüber und dann wird kein Link angezeigt.

Titel: Re: @UniqueDocumentID
Beitrag von: Tec am 22.05.02 - 12:31:22
Zitat
Ja, das Feld ist berechnet und vom Typ Richtext. Es wird aber trotzdem nur der DocLink als Text angezeigt. Ich lese mit folgender Formel aus der Ansicht die Doc-Id aus:

_wert := @DbColumn( "Notes":"NoCache"; @DbName; "(zuletzt beendet)"; 4);
_ersterWert := @Subset( _wert; 1);
@If( @IsError(_wert); @Text(_ersterwert); _ersterwert)

In der Ansicht "(zuletzt beendet)" steht sortiert nach Datum an oberster Stelle das neuest Dokument im Status "beendet". Ich lese die Spalte der Doc-Ids aus, und nehm den ersten Wert. Das Feld in dem ich das anzeige, ist berechet und vom Typ RichText.

Kann es vielleicht daran liegen, dass ich in der Ansicht die Doc-ID nur mit @Text(@DocumentUniqueID) anzeigen kann? Und wenn das das Problem ist, wie krieg ich das trotzdem hin?

Wenn ich in einer Maske die eigene DocID in einem Feld anzeige dann erscheint automatisch ein Link, aber nur wenn ich @DocumentUniqueID ohne @Text davor schreibe.



Workaround: mit @DBColumn wie bisher die DocUNId als Text ermitteln, dann mit @DBLookUp ( Schlüssel = DocUNId als Text ) aus einer Ansicht sortiert nach DocUNId die tatsächliche DocUNId aus dem entsprechenden Feld rausholen und speichern.

Oder du änderst den Text der DocUNId einfach indem du an den richtigen Stellen die Doppelpunkte und den Bindestrich einfügst ( schau dir einfach mal den Unterschied zwischen dem was @Text( @DocumentUniqueId ) und dem was @DocumentUniqueId liefert an, dann dürfte alles klar sein. ;)
Titel: Re: @UniqueDocumentID
Beitrag von: nafets am 23.05.02 - 10:25:34
Danke für deine Vorschläge, hat aber leider auch nicht funktioniert!

Beim auslesen mit DBLookup wird kein Wert zurückgeliefert, wenn das Feld welches ich auslese die Original-DocID ist.

Hab dann die ID zusammengebastelt mit folgendem Code:

"OF" + @Left(_link;8) + ":" + @Left(@Right(_link; 24);8) + "-ON" + @Left(@Right(_link; 16);8) + ":" + @Right(_link; 8)

wobei _link die DocID im Textformat ist. Hat aber auch nix gebracht.

Mir ist da noch was aufgefallen, wenn man ein DocLink in einen Editor einfügt, erhält man folgendes:

<NDL>
<REPLICA C1345B52:05432608>
<VIEW OF332A1CB4:FE9C1C0E-ONC4586B52:0026147A>
<NOTE OFD8745C05:B0BC3C55-ONC4875BA5:0065A51A>
<HINT>CN=hgdesh/O=hansgrohe</HINT>
<REM>AXOR Manufaktur (Template)</REM>
</NDL>

Kann ich diesen Code mit meiner DocID erweitern und irgendwie in einen Link umbauen? Hab leider keine Ahnung von HTML!