Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: pippo am 15.02.06 - 16:22:34
-
Hallo,
habe folgende Anforderung.
Ein User sollte in einem Feld ein Bild abspeichern können.
Dieses Bild sollte nun im Dokument öfters dargestellt weden können.
Habe versucht in einem Richttextfeld das Bild zu speichern. Habe es aber nicht geschafft in anderen Feldern das Bild wiederum darzustellen.
Kann man (ähnlich wie auf WEB) ein Bild über einen Pfad darzustellen?
Wer kann mir da bitte einen guten RAT geben?
Grüße, Pippo
-
Diese Bilder werden ja, wie ich annehme, in $FILE-Feldern abgespeichert. Wenn man jetzt im RTF das selbe $FILE-Feld, wie ein anderes refernziert, sollte es klappen. Die Frage ist, ob man diese Referenzierung ändern kann ;D
Ansonsten könnte man vielleicht die Bilder in separaten Docs abspeichern und diese Docs dann mehrmals in Subforms anzeigen.
Hab das alles nicht probiert, weiss nicht obs funktioniert...
Grüsse
Untitled
-
Diese Bilder werden ja, wie ich annehme, in $FILE-Feldern abgespeichert. Wenn man jetzt im RTF das selbe $FILE-Feld, wie ein anderes refernziert, sollte es klappen. Die Frage ist, ob man diese Referenzierung ändern kann ;D
Also das dürfte jetzt nicht wirklich funktionieren. Was ich mir vorstellen könnte ist das es eventuell mit Layern (Ebenen) zu lösen wäre, aber das warscheinlich auch nur dann wenn du das Bild immer an der gleichen Stelle halten kannst. Denn IBM hat es nicht geschafft das die absolute Position von Layern zur Laufzeit im Notes Client verändert werden kann. Noch so eine nette Funktion die "particular useless" ist.
-
Es geht so:
Überall wo das Bild sonst noch erscheinem soll, machst Du ein berechnetes Rich Text Feld. Die Formel für das Richtext Feld muss den Feldnamen des Richtext Feldes beinhalten, in das das Bild eingefügt wird.
Im Postsave dann sowas:
Sub Postsave(Source As Notesuidocument)
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As NotesItem
Set uidoc = ws.CurrentDocument
Set doc = Source.Document
If doc.Flag(0) = "1" Then
Do While doc.HasItem( "Bild2" )
Set item = doc.GetFirstItem( "Bild2" )
Call item.Remove
Call doc.Save( True, True, True )
Loop
Do While doc.HasItem( "Bild3" )
Set item = doc.GetFirstItem( "Bild3" )
Call item.Remove
Call doc.Save( True, True, True )
Loop
doc.Flag = ""
doc.SaveOptions = "0"
Call doc.Save( True, True, True )
Call uidoc.Close
Call ws.EditDocument( True, doc )
End If
End Sub
Du musst dann dafür sorgen, dass das Dokument nach dem Einfügen des Bildes gespeichert wird. Daher würde ich einen Button machen, mit dem man
1. das Bild wählt
2. das Bild importiert
3. ein Flag setzt und
3. das Dokument speichert.
Im Postopen dann das SaveOptions Item löschen, sofern vorhanden.
Andreas
-
Was dann wieder klassische Notes Programmierung ist.
>:D
Von hinten, durch die Brust, übers Knie ins Auge.
-
Was dann wieder klassische Notes Programmierung ist.
>:D
Von hinten, durch die Brust, übers Knie ins Auge.
Genau, so war es schon immer in Notes, so ist es jetzt und vor allem - so wird es immer sein ! ;-)
Andreas
-
Aber es funktioniert ;D
Das ist wohl der Preis, den wir bezahlen müssen für alle Sachen, die in Notes mit links zu erledigen sind, mit anderen Systemen aber unmöglich oder extrem anstrengend sind.
Bernhard
-
Hab schon mehrmals versucht eine Antwort einzugeben
ohne Erfolg - versuch es morgen nochmals...
-
Oh Gott... jetzt gehts also wieder...
hab es nun so gelöst:
Der Editor kann im Dokument Bilddocument wählen. Beim Speichern wird immer nur die BildID gespeichert.
Beim Öffnen des Dokumentes such ich über die BildID das Document und kopiere das Item in die nötigen Felder.
Die Größe der Dokumente geht dabei von einigen 100KG auf einigen KBs zurück. Unser Admin wird sich freuen...
Grüße, Pippo
(hoffe diesmal geht die Antwort auch ins Forum...)
-
Du kannst natürlich auch IMMER die Items (nur nicht das erste Feld) im Postsave / Queryclose löschen, dann werden die nur beom Öffnen zur Laufzeit geladen. D.h. das Bild ist im Backend nur einmal da.
Andreas
-
Hallo,
beim Speichern lösche ich die bestimmen Items immer alle weg.
Beim Öffnen (auch für LESER) werden die ITEMs immer neu über die IDs erstellt - aber nicht gespeichert.
Das hat den Vorteil, dass die Einträge bei jedem Öffnen aktuell sind.
Grüße, Pippo