Autor Thema: Aus UIDocument das Body-Feld auslesen  (Gelesen 2824 mal)

Offline Monster

  • Frischling
  • *
  • Beiträge: 42
  • Ich liebe dieses Forum!
Aus UIDocument das Body-Feld auslesen
« am: 30.01.03 - 14:02:48 »
Hallo Admins,

kann mir jemand von Euch sagen, wie ich mit Hilfe von LotusScript,
aus einem NotesUIDocument das Body-Feld auslesen kann.


Gruss
Monster

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #1 am: 30.01.03 - 14:16:40 »
Hi,

ich gehe davon aus das du ein RTF-Feld meinst. Versuch's mal so

Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As NotesItem
Dim contents As String

Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document

Set item = doc.GetFirstItem( "Body" )
contents = item.Text

Damit kannst du allerdings nur Text auslesen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Till_21

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • I love Germany
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #2 am: 30.01.03 - 14:19:16 »
...und es darf kein neues dokument sein...

gruss

Offline Monster

  • Frischling
  • *
  • Beiträge: 42
  • Ich liebe dieses Forum!
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #3 am: 30.01.03 - 14:50:03 »
Danke für die schnelle Hilfe ,

die Version von @Axel habe ich getestet ,
funktioniert aber nur bei normalen Text-Feldern ,
nicht bei Richtext ( Body-feld ).

Geht leider nicht.

-----------------
Hi @Till_21
ich möchte einfach das Body-Feld auslesen und ein neues Dokument mit diesem BodyInhalt in die Mail.box ablegen.

Gruss

Amonster

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #4 am: 30.01.03 - 16:21:46 »
... mit Abstract bekommst du den Text des Feldes...

... doch eie bereits gesagt, bei neuen Dokumenten geht das nicht. Rich-Text funzt erst nach der Speicherung und muß für die Anzeige erneut ins Forntend geladen werden...

ata
Grüßle Toni :)

Offline Monster

  • Frischling
  • *
  • Beiträge: 42
  • Ich liebe dieses Forum!
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #5 am: 30.01.03 - 16:25:21 »
genau ,

das ist ja mein Problem,
gibt es da eine Löung und wie ????

Gruss

monster

Offline Monster

  • Frischling
  • *
  • Beiträge: 42
  • Ich liebe dieses Forum!
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #6 am: 30.01.03 - 16:35:09 »
Oder

wie kann ich das gespeicherte UIDoc gleich wieder löschen?

1. Speicher das UiDoc
- damit ich an das Bodyfeld komme
2. Lösche das UiDoc
- mit uidoc.DeleteDocument erhalte ich eine Fehlermeldung

Bitte HILFEEEEEEE

Gruss
Monster

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #7 am: 30.01.03 - 16:53:11 »
.... solange das aktive Dokument das UIDoc ist, kannst du es über uidoc nicht löschen. Du speicherst das Backend-Dokument (docThis) , merkst dir die UniversalID, schließt das uidoc, jetzt kannst du es im Backend löschen...

ata
Grüßle Toni :)

Offline Monster

  • Frischling
  • *
  • Beiträge: 42
  • Ich liebe dieses Forum!
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #8 am: 30.01.03 - 16:55:57 »
hast du ein Beispiel - Code,

wäre Super.

DANKE

 ;)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #9 am: 30.01.03 - 17:00:12 »
... muß ich zu Hause stöbern, bin noch bei Arbeit...

ata
Grüßle Toni :)

Offline Monster

  • Frischling
  • *
  • Beiträge: 42
  • Ich liebe dieses Forum!
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #10 am: 30.01.03 - 17:06:07 »
wäre Super,

in der Hilfe finde ich nichts
 :(

Monster

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #11 am: 30.01.03 - 19:49:53 »
... daß du in der Hilfe nichts findest wundert mich, denn da ist alles drin - ich hatte meinen Code mit der Hilfe zusammengestupft...

ata
Grüßle Toni :)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #12 am: 30.01.03 - 20:14:53 »
... bevor ich lange zu suchen anfange...

Code
' # Text aus einem Richtextfeld - hier "Body" - des aktuellen Dokumentes einlesen
' # ... bitte beachten - Zeilenumbrüche und Formatierungen gehen dabei verloren
' # ... ata
   Dim ws As New NotesUIworkspace
   Dim docThis As NotesDocument
   Dim rtItem As NotesRichtextItem
   Dim sContent As String
   '
   Call ws.CurrentDocument.Save
   Set docThis = ws.CurrentDocument.Document ' # das aktuelle Dokument ins Backen nehmen
   Set rtItem = docThis.GetFirstItem("Body")
   If rtItem.Type = 1 Then ' # Sicher stellen, daß es ein Richtext-Feld ist
      sContent = rtItem.Abstract( 64000  , False , False)
   End If

ata
Grüßle Toni :)

Offline Monster

  • Frischling
  • *
  • Beiträge: 42
  • Ich liebe dieses Forum!
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #13 am: 31.01.03 - 10:10:43 »
Hallo @ata,

Das Problem bei dem Script ist,
er speichert das Dokument.

Ich hatte gedacht du kannst mir mit einem Script helfen,
was anschliessend das gespeicherte Dokument wieder löscht.

Und dazu finde ich nichts in der Hilfe.

Gruss

Monster

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Aus UIDocument das Body-Feld auslesen
« Antwort #14 am: 31.01.03 - 14:40:31 »
... sorry, das war natürlich nur die Haälfte der Wahrheit...

... dazu mußt du noch einen Agenten anlegen (Run once...), den ich im Script "DelDoc" nenne. Dort wird aus der Notes.ini die zu löschende DocID in der Variablen "DelDocID" ausgelesen und das Dokument gelöscht. Der Agent wird zum Ende deines Scriptes aufgerufen...

... der Code für den Agent "DelDoc" ins Initialize setzen - darauf achten, daß der Agent gemeinsam sein soll...
Code
   Dim session As New NotesSession
   Dim dbThis As NotesDatabase
   Dim doc As NotesDocument
   Dim sID As String
   
   Set dbThis = session.CurrentDatabase
   sID = session.GetEnvironmentString("DelDocID" , False)
   Set doc = dbThis.GetDocumentByUNID(sID)
   Call doc.Remove(True)
   Call session.SetEnvironmentVar("DelDocID" , "")   


... hier der korrigierte Code zum auslesen des Feldes und aufrufen des Agenten...
Code
' # Text aus einem Richtextfeld - hier "Body" - des aktuellen Dokumentes einlesen
' # ... bitte beachten - Zeilenumbrüche und Formatierungen gehen dabei verloren
' # ... ata
   Dim session As New NotesSession
   Dim ws As New NotesUIworkspace
   Dim dbThis As NotesDatabase
   Dim agent As NotesAgent
   Dim docThis As NotesDocument
   Dim rtItem As NotesRichtextItem
   Dim sContent As String
   '
   Call ws.CurrentDocument.Save
   Set docThis = ws.CurrentDocument.Document ' # das aktuelle Dokument ins Backen nehmen
   Call session.SetEnvironmentVar("DelDocID" , docThis.UniversalID)
   Set dbThis = docThis.ParentDatabase
   Set agent = dbThis.getAgent("DelDoc")
   
   Set rtItem = docThis.GetFirstItem("Body")
   If rtItem.Type = 1 Then ' # Sicher stellen, daß es ein Richtext-Feld ist
      sContent = rtItem.Abstract( 64000  , False , False)
   End If   
   
   Call ws.CurrentDocument.Close
   Call agent.Run
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz