Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: robertpp am 22.08.03 - 14:34:24
-
Hallo, ich hab da mal eine frage:
Ich hab zwei RTF und füge in ein RTF ein Bild ein als Attachment.
So nun möchte ich im zweiten RTF haben das das Bild angezeigt wir.
Ich denke das müsste mit
Call uidoc.Import("JPEG Image",????????) aber wie kann ich auf das andere RTF zugreifen und mir den Pfad zum File das ja im doc liegt ausgeben lassen.
Per Formelsprache würde das galube ich so gehen:
@Text(@DocumentUniqueID) + "/$file/" + @AttachmentNames
Aber wie verknüpfe ich das?
robertpp
-
Direkt aus einem RT-Feld importieren geht meines Wissens nicht, du musst es immer aus dem Dateisystem holen. Also musst du am besten vor dem Anhängen des Attachments den Pfad irgendwo speichern, dann den Import machen und frühestens dann (wenn das geplant sein sollte) die Datei im Dateisystem löschen.
-
Ich hab hier ein script ich glaub von eknori
Declare Function NEMGetFile Lib "nnotesws" ( wHandle As Integer, Byval szFileName As String, Byval szFilter As String, Byval szTitle As String ) As Integer
Sub Click(Source As Button)
'Declare variables...
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim szFileName As String*256
Dim szTitle As String
Dim szFilter As String
Dim szSelectedFile As String
'Set values...
szFilename = Chr(0)
szTitle = "Open File"
szFilter = "All Files |*.*|Word Document |*.doc|Text Files|*.txt|"
If NEMGetFile( 0, szFileName, szFilter, szTitle) <> 0 Then
szSelectedFile = szFileName
Set uidoc = workspace.CurrentDocument
uidoc.GotoField( "BidsOS" )
Call uidoc.Import("JPEG Image",szSelectedFile)
End If
End Sub
Dieses Script fügt das Bild ein. Und ich hab dann das Script mit dem fettgedruckten erweitert:
Sub Click(Source As Button)
'Declare variables...
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim obj As NotesembeddedObject
Dim rti As NotesRichTextItem
Dim szFileName As String*256
Dim szTitle As String
Dim szFilter As String
Dim szSelectedFile As String
'Set values...
szFilename = Chr(0)
szTitle = "Open File"
szFilter = "All Files |*.*|Word Document |*.doc|Text Files|*.txt|"
If NEMGetFile( 0, szFileName, szFilter, szTitle) <> 0 Then
szSelectedFile = szFileName
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
uidoc.GotoField( "Bild" )
Call uidoc.Import("JPEG Image",szSelectedFile)
End If
TEST$ = szSelectedFile
Set rti = New NotesRichTextItem( doc, "Picture" )
Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", TEST$)
' Call doc.save (True,True)
End Sub
Nur erstellt er mir dann im doc ein neues Feld Picture ich hab aber ein bestehendes!! Aber der Anhang hängt ganz unten am doc unter einer durchgezogenen linie aber das Feld Picture ist ganz wo anders?
-
Notes macht genau, was Du willst ;-)
Statt ein neues RTI anzulegen, hol' Dir das bestehende mit NotesDocument.GetFirstItem.
Dann klappt's auch mit dem Nachbarn ;-)
Ciao,
Bernhard
-
das hab ich vorher auch schon ausprobiert:
statt:
Set rti = New NotesRichTextItem( doc, "Picture" )
Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", TEST$)
das
Set rti = doc.GetFirstItem( "Picture" )
Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", OCXREG$)
aber da bekomm ich bei set obj einen fehler
-
Und was für einen Fehler ?
-
Der Fehler ist "Object varibale not set"
robert
-
... ich prüfe in solchen Fällen des neu erstellte Item nochmals ab mit If rtItem.Type = 1 Then....
ata
-
Hallo,
Ich hab das Problem gefunden!
Es liegt daran, wenn ich mich nicht ganz irre, dass bei einem neuen doc das RTitem noch nicht existiert und ich deshalb das File nicht anhängen kann.
Aber glaub so ein problem hat es schon mal gegeben und wurde durch speichern schliessen und wieder öffnen gelöst!!
Weiß jemand mehr dazu?
-
@ata
kennst du das problem!!
Hat es nicht im Forum einen Beitrag gegeben bei dem es un Richtextfelder ging die im backend gespeichert wurden dann geschlossen und dann im Frontend wieder mit inhalt geöffnet wurden?
oder weiß sonst noch jemand etwas über dieses thema?
danke robert
-
... wenn es darum geht, ich hab auf meiner Homepage eine Funktion namens ReOpen(), die dir so etwas leistet...
... wenn das Doc noch nie gespeichert wurde, also neu ist, dann musst du vor dem Speichern noch die Maske im Dokument hinterlegen...
ata
-
@ata
müsste das nicht mit der reOpen function von deiner homepage funktionieren?
aber wie ruf ich die auf : ReOpen(doc)
robert
-
... ich sehe, daß sich unsere Beiträe eben überschnitten haben.
... die Funktion nimmst du in eine Lib oder die Globals deiner Maske auf und dann..
Call ReOpen( doc )
... das war's - aber denk an den Maskennamen...
ata
-
Ich schaff es einfach nicht ich hab jetzt mal die Db angehängt!!
vielleicht kann sich jemand mein problem ansehen wie beschrieben im ersten beitrag!! 2 RTF in einem anzeigen im anderen anhängen das bild
es ist in der ansicht neuzugänge unter new der button "dieser button"
danke robert
-
Ich hab die lösung jetzt endlich selbst hingebracht!! Hab das script von ata's page genommen wo eine Datei in ein RTF eingefügt wird dann mit reopen das doc geschlossen und geöffnet und schliesslich im forntend das gleiche Bild im anderen RTF angzeigt!!
robert
-
hallo robertpp,
bitte korrigiere mich:
1. du hast ein notes dokument mit dateianhang
2. du möchtest diesen anhang nicht als dateiobjekt sondern als klartest (bild) im dokument anzeigen lassen
3. du beförderst die datei in ein berechnetes rtf und führst ein reopen durch
4. das bild (die datei) wird im dokument als klartext angezeigt
ich bin auf der suche nach der oben skizzieten lösung und bräuchte als notes-neuling unterstützung.....
für eine beschreibung der notwendigen schritte (inkl. code) wäre ich sehr sehr dankbar......
mit bestem gruß luckynotes
-
Der Beitrag von "LuckyNotes" ist ein Doppelposting !
Damit keiner durcheinander kommt, hier der Link zu seinem eigentlichen Posting:
http://www.atnotes.de/index.php?topic=18776.0
Bernhard
-
sorry für das doppelposting.... kannte eure gepflogenheiten noch nicht so genau..... werde in zukunft ein wenig mehr acht geben....
luckynotes
-
... doppelposting...
DREIfach-Posting ;D
Viel hilft nicht viel.
Bernhard
-
nochmals sorry, ich hatte verzweifelt nach einer lösung gesucht und bei jedem verwandten thema eine nachricht hinterlassen, um die jeweiligen autoren evtl. über ihre benachrichtigungsfunktion zu erreichen....
also, nächstes mal mach ichs anders.... versprochen ;-)
luckynotes
-
Hallo zusammen.
Ich habe mal das folgende Script genutzt.
Ich hab hier ein script ich glaub von eknori
Declare Function NEMGetFile Lib "nnotesws" ( wHandle As Integer, Byval szFileName As String, Byval szFilter As String, Byval szTitle As String ) As Integer
Sub Click(Source As Button)
'Declare variables...
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim szFileName As String*256
Dim szTitle As String
Dim szFilter As String
Dim szSelectedFile As String
'Set values...
szFilename = Chr(0)
szTitle = "Open File"
szFilter = "All Files |*.*|Word Document |*.doc|Text Files|*.txt|"
If NEMGetFile( 0, szFileName, szFilter, szTitle) <> 0 Then
szSelectedFile = szFileName
Set uidoc = workspace.CurrentDocument
uidoc.GotoField( "BidsOS" )
Call uidoc.Import("JPEG Image",szSelectedFile)
End If
End Sub
Ich will dem User die Möglichkeit geben, ein Bild zu importieren, welches dann als Thumbnail angezeigt wird. Das habe ich nun auch mit dem Script geschafft.
Jetzt soll das Bild nur noch eine bestimmte Größe haben (z.B. 90x90) !
Hat jemand einen Tipp für mich !
Danke im voraus.
Gruß
SESE