Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: rocky29 am 05.07.04 - 14:53:36

Titel: JPEG Bilder im Backend importieren
Beitrag von: rocky29 am 05.07.04 - 14:53:36
Hallo!

ich suche nach einer Möglichkeit ein JPEG Bild in ein RichText - Feld zu importieren, so daß es beim öffnen der Maske angezeigt wird.

Hab es schon mit EmbedObject probiert, aber da bekommt man bestenfalls einen Link zum Bild hin, bzw. ein Attachement.
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: Christopher am 05.07.04 - 21:46:12
Ich denke sowas läßt sich nur mit C-API lösen. Hier gibt es ein Produkt siehe http://www.peopleware.be/peopleware/public/tnreg.nsf/dft?openframeset
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: Semeaphoros am 06.07.04 - 00:22:17
Denke auch, das ist so, und da kann man an die traditionellen Richt-Text Gurus denken:

Normunds Kalnberzins mit rtlib http://www.rtlib.com

oder Ben Langhinrichs mit Midas  http://www.geniisoft.com
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: Thomas Schulte am 06.07.04 - 10:10:49
Und beide Aussagen sind leider im Prinzip richtig, weil du deine Version nicht mitgegeben hast. Ab einer definierten V5irgendwas geht es nämlich auch ohne C und Midas.

Code folgt wenn ich wieder daheim bin.

Thomas
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: Thomas Schulte am 06.07.04 - 22:13:29
Also hundertpro im Backend geht das nicht, dann bleiben wirklich nur C-API, Midas und ähnliches übrig, aber wenn du damit leben kannst das ein Backend Dokument erzeugt wird, das Ganze ins Frontend geholt wird und anshcließend SOFORT wieder geschlossen, dann geht das hier:
Set newdoc = mydb.createdocument()
   ' Fill all the fields in the document
      newdoc.form = "frmPictureData"
      newdoc.keyTyp = descriptiondoc.KeyTyp(0)
      Set stichwoerter = descriptiondoc.GetFirstItem( "keyStichwort" )
      Call stichwoerter.CopyItemToDocument( newdoc, "txtStichwort" )
      newdoc.keyKategorie1 = descriptiondoc.KeyKategorie1(0)
      newdoc.keyKategorie2 = descriptiondoc.KeyKategorie2(0)
      newdoc.keyKategorie3 = descriptiondoc.KeyKategorie3(0)
      newdoc.keyKategorie4 = descriptiondoc.KeyKategorie4(0)
      newdoc.keyKategorie5 = descriptiondoc.KeyKategorie5(0)
      newdoc.txtBeschreibung = descriptiondoc.txtBeschreibung(0)
   ' Get the file that has to be attached and attach it
      DirFile = Directory + Filename
   ' Check if the size of the object is equal or bigger then the defined Size
      sizeinbytes = Filelen(DirFile)
      If sizeinbytes >= Cdbl(descriptiondoc.numMinPictureSize(0)) * 1024 Then
   ' Compute the rest of the fields
         success =  newdoc.computewithform(False,False)
   ' save if computing was correct
         If Success = True Then
            Call newdoc.save(True,True)
         End If
         Set uiDoc = ws.EditDocument( True, newdoc )
         Call uiDoc.GotoField( "rtxdata" ) ' or whatever the RTF field is called for the photo
         Call uiDoc.Import( "JPEG Image", DirFile ) ' assumes the fileName field includes a full path to the file!!!
         Call uiDoc.Save()
         Call uiDoc.Close(True)
         Set uidoc  =Nothing

Wobei es auf den Uidoc.Close(True) ankommt.
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: TMC am 06.07.04 - 22:17:53
weil du deine Version nicht mitgegeben hast.

Kann auch sein dass er R6 nutzt. Er hatte nur versehentlich in "BestPractices" gepostet, daher hab ich den Thread verschoben. Da ohne Versionsangabe habe ich dann R5 gewählt.
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: animate am 06.07.04 - 22:22:16
also wenn Notes 6, dann geht das im Backend mit den XML/DXL-Klassen (exportieren, Bild einfügen, importieren; hört sich kompliziert an, ist es aber nicht, kann es aber werden, je nachdem, was außer dem Bild noch so alles in besagtes Feld muss).
Theoretisch zumindest, habs selbst noch nicht probiert.
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: TMC am 06.07.04 - 22:51:16
Wobei es auf den Uidoc.Close(True) ankommt.

Für was steht denn das (True), Thomas?

Wenn ich in die R5 Designerhilfe schaue, sehe ich das hier:
Call notesUIDocument.Close

Hat es damit was spezielles auf sich?

Matthias
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: koehlerbv am 06.07.04 - 22:58:21
Da hat man wohl vergessen, die R5 DesignerHelp anzupassen:
Zitat
Call notesUIDocument.Close( [ immediate ] )
Parameters
immediate
Boolean. Optional. If True, the document is immediately closed. If False, closing the document may be delayed. The default is False.
Hinweis  This parameter is new with Release 5.0.7.

Das steht jedenfalls in der R6 DesignerHelp ...

Bernhard
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: Thomas Schulte am 06.07.04 - 22:58:51
True ist ein Option die ab irgendeiner hohen 5.0.x Version funzt. Damit machst du ein UIDOc das du über Script geöffnet hast SOFORT wieder zu. Eigentlich ist das zwar erst ab V6 vorhanden funkioniert aber schon da:
Auszug aus der V6 Hilfe:
Call notesUIDocument.Close( [ immediate ] )
Parameters
immediate
Boolean. Optional. If True, the document is immediately closed. The default is False.

Im Gegensatz zum normalen Close ist es damit möglich auf mal mehrere dokumente hintereinander zu verwurschten, ohne einen Speicherüberlauf wegen zuvieler geöffneter Dokumente zu produzieren.

Thomas
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: TMC am 06.07.04 - 23:04:31
Danke Thomas und Bernhard, hört sich interessant an.

Muss ich mir unbedingt merken, da ich auch öfter mal mit Frontend- und Backend - Docs hantiere in einem Script, da könnte das u.U. hilfreich sein - zumindest werde ich es da mal testen. Wobei das "Undokumentiertsein" immer Nebenwirkungen haben kann.
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: animate am 06.07.04 - 23:04:46
das ist, glaube ich, der absurdeste Parameter, der mir je über den Weg gelaufen ist.
Ich befehle dem Objekt: "Schließe dich!".
Und dann muss ich ihm sagen, dass es das, was ich ihm befohlen habe auch noch sofort ausführen muss. Einfach absurd eben. Wer denkt sich sowas denn aus?!
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: Thomas Schulte am 06.07.04 - 23:06:56
Nee nee du musst ihm sagen schließe dich und schmeiß deine Speicherinstanz sofort in den Müll.
Natürlich ist der Parameter absurd aber offensichtlich hat da jemand beim Programmieren Mist gebaut und auf die Art haben Sie es wieder ausgebügelt.

Thomas
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: TMC am 06.07.04 - 23:12:39
Natürlich ist der Parameter absurd aber offensichtlich hat da jemand beim Programmieren Mist gebaut und auf die Art haben Sie es wieder ausgebügelt.

Und ich glaube, diesen Mist schon öfter mal erlebt zu haben.
Werde ich demnächst mal beobachten, ob das True mich da dann weiterbringt.
Titel: Re:JPEG Bilder im Backend importieren
Beitrag von: Tode am 20.07.04 - 13:40:27
Nur so zur Anmerkung:

Offensichtlich hat der Programmierer der "uidoc.Close" - Methode sich auf die Implementierung des @Command( [FileCloseWindow] ) gestürzt, denn das reagiert exakt gleich:

Erst wenn aller sonstiger Code durchgeführt ist, wird das Fenster wirklich geschlossen....

Und dann hat ein anderer Programmierer das über den Immediate = True versucht auszubügeln.

Ich schreibe bewusst "versucht", weil ich schon MEHRFACH den Fall (in verschiedensten Kombinationen) hatte, dass trotz immediate=True das Fenster sich erst dann schloss, nachdem der komplette Code abgearbeitet war...

Ich konnte keine Regelmässigkeiten (Version, Ort des Scripts, etc) feststellen und bin da schon öfters dran verzweifelt...

Wollte ich nur mal engemerkt haben...

Gruß
Tode