Autor Thema: Rich Text Lite abfragen  (Gelesen 6498 mal)

Offline maiko

  • Aktives Mitglied
  • ***
  • Beiträge: 118
  • Geschlecht: Männlich
  • habs gleich ...
    • Michael Morban
Rich Text Lite abfragen
« am: 23.11.04 - 14:37:30 »
Hi,

hat jemand eine Möglichkeit parat um den Inhalt von Rich Text Lite feldern abzufragen, also nur ob was drin ist oder ob die leer sind. In meinem Fall sind das Grafiken und ich muss wissen ob eine drin ist, oder nicht?

Ich habe leider keien Moeglichkeit gefunden ...

Danke im voraus

Maiko

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Rich Text Lite abfragen
« Antwort #1 am: 23.11.04 - 22:32:31 »
Ich muss gestehen noch nie mit Richtext Lite gearbeitet zu haben.

Aber würde da nicht sowas gehen?

Set rtitm = doc.GetFirstItem("RichtextLiteName")
If rtitm.ValueLength = 0 Then Msgbox "Möööööp. Das Feld ist leer."


Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Rich Text Lite abfragen
« Antwort #2 am: 23.11.04 - 22:42:16 »
So ähnlich geht das, aber, RichtText hat auch wenn es leer ist eine Länge > 0, diese "Nulllinie" ist aber von Version zu Version höher, so dass es nicht ganz einfach ist, festzustellen, ob Richtext leer ist oder nicht. Ich nehme mal an, dass RTLight (nicht zu verwechseln mit was anderem :) ) sich da nicht ander verhält wie RT "Full"
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Rich Text Lite abfragen
« Antwort #3 am: 23.11.04 - 22:48:11 »
Da hast Du wohl vollkommen Recht, Jens.  :)

Hier in diesem Fall würde wohl reichen, nach Embedded Objects zu suchen, um herauszufinden, ob ein Bild enthalten ist oder nicht. Dazu könnte man noch PlainText auswerten, wenn einen auch Text interessiert.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Rich Text Lite abfragen
« Antwort #4 am: 23.11.04 - 22:54:22 »
BudLight ... äh ... RichTextLite verhält sich im Backend exakt wie RichtText.
Ergo: EmbeddedObjects bringt keinen Bezug zu "Grafiken", insofern damit importierte / einkopierte Bilder handelt.

Dann hilft wirklich nur: Beachten, dass das RTI erst nach dem Speichern "greifbar" ist, sich auf eine Mindestgrösse für das Item einigen (100 Byte oder ein ganz wenig mehr) und nach dem Speichern die Itemgrösse prüfen.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Rich Text Lite abfragen
« Antwort #5 am: 23.11.04 - 23:03:40 »
Ahh, natürlich, Bernhard, wenn es importierte Bilder sind, dann hat das mit embedded Objects keinen Zweck. Danke für den Hinweis.

Spätestens jetzt sind wir wieder so weit: wir müssen im Detail wissen wie die Randbedingungen sind  :)
Werden nämlich auch irgendwelche Blind-Gifs mit wenigen Bytes importiert, dann kann das ganze etwas schwierig werden, sind es aber z.B. Digitalkamera-Fotos, dann kann man mit einer Größe von etwa ein paar Hundert Bytes sicherlich das gut abprüfen.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Rich Text Lite abfragen
« Antwort #6 am: 23.11.04 - 23:42:21 »
Genau, auf die Rahmenbedingungen kommt es an. Ein "leeres" RTF hat beispielsweise in einer DB, in der ein RTF ohne weitere Angaben angelegt wurde, 96 Byte (5.0.8), 94 Byte in R6.5. Ist nur ein einziger Punkt (als Character) im RTF, sind es 104 Byte in R6.5, und 96 in R5.
Im Mail-File sind es allerdings bei R5 und R6 im Body-RTF mehr als 150 Byte, die ein leeres Body-Feld enthält.

Man muss sich dabei auch absolut darüber im Klaren sein, dass RTF keinen Vergleich zu anderen Feldtypen erlauben - das ist eine völlige andere Welt mit extrem mehr Angaben, die da gespeichert werden. Wäre eigentlich einen BP-Artikel wert, wobei dieser sehr lang werden müsste.

Bernhard

Offline maiko

  • Aktives Mitglied
  • ***
  • Beiträge: 118
  • Geschlecht: Männlich
  • habs gleich ...
    • Michael Morban
Re: Rich Text Lite abfragen
« Antwort #7 am: 24.11.04 - 08:17:35 »
Hi,

schoen das Ihr darueber disktutiert.
Es geht um einen Webauftritt und dazu ein kleines CMS System. Die Redakteure koennen selbst in eine Rich Text Lite Feld Bilder/Grafiken einfuegen. Diese sind zwischen 1KB und 20 KB gross. Also wird die ganze Sache schwierig, oder?

Was ich eben vermeiden moechte ist, das der Redakteur mittels Checkbox sagen muss, der Artikel hat ein Bild oder nicht. Ich wuerde das gerne automatisieren.

Gruss

Maiko

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Rich Text Lite abfragen
« Antwort #8 am: 24.11.04 - 19:46:50 »
Die Redakteure koennen selbst in eine Rich Text Lite Feld Bilder/Grafiken einfuegen. Diese sind zwischen 1KB und 20 KB gross. Also wird die ganze Sache schwierig, oder?

Na ja, wenn es nicht recht viel kleiner als 1 KB wird, könntest Du z.B. auf 500 Bytes abfragen. Ich denke dies wäre da ein guter Wert. Evtl. noch etwas runter....

Matthias
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Rich Text Lite abfragen
« Antwort #9 am: 26.11.04 - 17:26:39 »
Was ich zuletzt gesehen habe, liegen die höchsten Werte bei ca. 200KB für leere Felder, heisst, mit 500KB als Grenzwert liegt man in jedem Fall sicher.

*edit* siehe unbedingt die Korrektur hier untendran von Matthias
« Letzte Änderung: 26.11.04 - 18:00:44 von Semeaphoros »
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Rich Text Lite abfragen
« Antwort #10 am: 26.11.04 - 17:29:42 »
Was ich zuletzt gesehen habe, liegen die höchsten Werte bei ca. 200KB für leere Felder, heisst, mit 500KB als Grenzwert liegt man in jedem Fall sicher.

Du meinst sicher Bytes statt KB, Jens  :)  ;D
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Rich Text Lite abfragen
« Antwort #11 am: 26.11.04 - 18:00:01 »
Du hast natürlich völlig richtig .... danke für die Korrektur   ;D
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Fehno

  • Junior Mitglied
  • **
  • Beiträge: 62
  • Geschlecht: Männlich
Re: Rich Text Lite abfragen
« Antwort #12 am: 30.11.05 - 16:24:53 »
Hallo ! Ich bin heute auf das gleiche Problem gestossen: Ich will wissen ob der User einen Datei angehängt hat oder nicht. Eure Lösung finde ich einfach zu kompliziert.

Kann ich nicht einfach über @If(@Attachments; "Ja"; "Nein") das ganze abfragen ? Bei mir funktioniert das einwandfrei...

Dies unter der Vorgabe, dass ich nur einen Anhang je Dokument machen kann, was bei mir der Fall ist.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Rich Text Lite abfragen
« Antwort #13 am: 30.11.05 - 16:46:40 »
Die Frage war, ob das RTF irgendetwas enthält und nicht so simpel, ob dort ein Attachment eingebunden ist.

Bernhard

Offline Christian Huber

  • Frischling
  • *
  • Beiträge: 11
Re: Rich Text Lite abfragen
« Antwort #14 am: 30.11.05 - 23:20:59 »
Hallo,

Kleiner Auszug aus Contact - Maileingangsverwaltung. Hat bis dato immer funktioniert.
(5/6/7). Geht nicht bei verschlüsselten Feldern, da braucht man dann ........
 
Die Sizemethode ist einfach zu unsicher.

Einfach kleine Funktion drausbasteln mit Pointer auf doc und Prüffeldname.

Sub Initialize
   
   Dim session   As New NotesSession
   Dim doc      As NotesDocument
   Dim rtitem   As Variant
   Dim iUsed   As Integer
   Dim pText   As String
   
   On Error Goto LabErr
   
   iUsed = 0
   Set doc = session.DocumentContext
   
   Set rtitem = doc.GetFirstItem( "HGInhalt" )   '* Prüffeld -> austauschen
   If Not rtItem Is Nothing Then
      If (rtitem.Type = RICHTEXT ) Then
         On Error Goto LabNoEmbedd
         Forall o In rtitem.EmbeddedObjects
            If ( o.Type = EMBED_ATTACHMENT ) Then
               iUsed = 1   '* RT ist belegt
               Exit Forall
            End If
         End Forall
LabNoEmbedd:
                       Err = 0
         On Error Goto LabErr
      End If
      
      If iUsed = 0 Then '* Nur prüfen, wenn keine Anhänge
         pText = rtitem.GetFormattedText (False, 0)
         If Trim (pText) <> "" Then
            iUsed = 2
         End If
      End If
   End If
   
   Select Case iUsed
   Case 0
      Msgbox "das Richtextfeld ist leer"
   Case 1
      Msgbox "das Richtextfeld beinhaltet Dateianhänge"
   Case 2
      Msgbox "das Richtextfeld beinhaltet Text"
   End Select
   
LabOk:
   Exit Sub
   
LabErr:
   Print Error (Err), Erl
   Exit Sub
End Sub

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Rich Text Lite abfragen
« Antwort #15 am: 30.11.05 - 23:37:23 »
Hallo Christian,

kehren wir doch zur Ausgangsfrage zurück: Es ging darum, ob "irgendwas" (in diesem Fall eine Grafik) in einem RTI steckt. Einigermassen sauber lässt sich gerade diese Frage nur via API oder DXL-Export und -Analyse (ab R6) lösen.
Dein Code prüft auch "nur" auf Attachments oder vorhandene Buchstaben (wenn ich jetzt nichts übersehen habe), aber nicht auf weitere mögliche Elemente.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Rich Text Lite abfragen
« Antwort #16 am: 30.11.05 - 23:45:39 »
Christian, wie prüfst Du da auf Bilder ab, die "reingepastet" sind?

AFAIK bekommst Du diese nicht über die EmbeddedObjects Property.

In solchen Fällen prüfe ich mehrere Schritte:
 - gibt es das Item überhaupt? (If Item Is Nothing Then ....)
 - Enthält das Item Text (If Len(Item.Text) > 0 Then ....)
 - Handelt es sich überhaupt um ein Richtext-Item? (If Not (Item.Type = RICHTEXT)
 - Falls Richtext: ValueLength Property abfragen. Das ist jetzt der heikle Teil, gerade wenn irgendwelche 1 KB - Gif-Bilder enthalten sind......... 300 KB passt meist....
 - Gibt es Embedded Objects? (If Not Isempty(Item.EmbeddedObjects) .....)

IMHO bekommt man das mit LotusScript nicht besser in den Griff.
In ND6 natürlich per DXL, keine Frage, ist aber ein Performance-Issue, kann also sehr lange dauern große Notes-Dokumente mal schnell in einen Stream zu laden, dort das RT-Feld zu prüfen etc......
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Christian Huber

  • Frischling
  • *
  • Beiträge: 11
Re: Rich Text Lite abfragen
« Antwort #17 am: 02.12.05 - 07:26:24 »
Hallo,

Ihr habt beide recht. Wenn man Beispielcode einpastet, sollte man halt alles
komplett reinstellen. Hatte ja geschrieben, die size-methode ist zu unsicher.
Gehört natürlich trotzdem zur Grundprüfung.

  - ob's ein RT-Feld ist (z.B. habe ich die Erfahrung unter Domino 6 gemacht,
    das das Bodyfeld im Mail teilweise als Textfeld und nicht als RT-Feld angelegt
    wird (möglicherweise Bug)
  - ob's mehrere Instanzen hierzu gibt
  - ob das Feld größer als 94 Byte (V5) bzw. 102 Byte (V6)

Was ich nicht scanne, wären reine Steuerzeichen, aber die interessieren mich
auch nicht.

Hab bis jetzt eigentlich alles damit erwischt und das Abprüfen ist zeitlich
nicht spürbar.

Christian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz