Autor Thema: Richtext mit Anhang  (Gelesen 3099 mal)

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Richtext mit Anhang
« am: 05.01.05 - 14:03:00 »
Hallo,

ich habe ein Problem mit einem Richtextfeld. Habe auch in eurem Forum gesucht und viel gefunden, aber nichts was mein Problem lössen kann:

In einer Datenbank wird ein Richtextitem aus einem Feld einer anderen Datenbank geholt, eingefügt und das Dokument gespeichert. Anschließen wird das dokument angezeigt.

Wenn das Richtextfeld keinen Anhang enthält, kann anschließen das Feld weiter bearbeitet werden, das uidoc gespeichert werden und anschließend als eMail versand, funzt alles wunderbar, nur kann ich leider nicht ausschließen, das ein Anhang im RTF liegt. Wenn das passiert, kommt beim Versuch des versendens folgende Fehlermeldung: "Error: Angegebene Datenbank ist momentan nicht geöffnet".

Ein RTF mit anhang wird in meinem Script nicht gesondert behandelt, oder woanders her geholt --> es muss am Anhang liegen!?
mit besten Grüßen

Markus Petzold

klaussal

  • Gast
Re: Richtext mit Anhang
« Antwort #1 am: 05.01.05 - 14:05:28 »
Ein bisschen Code wär schon nicht schlecht....

Was sagt der Debugger ?

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Richtext mit Anhang
« Antwort #2 am: 05.01.05 - 14:12:35 »
der debugger sagt nichts, denn der debugger springt nicht an, wenn ich den sendenbutton drücke (er ist aber an und funktioniert sonst aber)

Die Fehlermeldung kommt aber speziell bei

uidoc.save (frontenddoc nach bearbeitung speichern)

und

Call doc2.send(False) (Mail abschicken)
mit besten Grüßen

Markus Petzold

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Richtext mit Anhang
« Antwort #3 am: 05.01.05 - 14:14:56 »
Wie bewerkstelligst Du denn das:
"In einer Datenbank wird ein Richtextitem aus einem Feld einer anderen Datenbank geholt"
Da wird der Casus knacktus liegen.

Bernhard

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Richtext mit Anhang
« Antwort #4 am: 05.01.05 - 14:15:52 »
Hier der ganze code:

Code
Sub Click(Source As Button)
	Dim wk As New notesuiworkspace
	Dim session As New NotesSession	
	Dim db As notesDatabase
	Dim db2 As notesDatabase
	Dim doc As notesdocument
	Dim doc2 As notesdocument
	Dim uidoc As notesuidocument
	Dim coll As NotesDocumentCollection
	Dim view As notesview
	
	Set db2 = session.currentdatabase
	
	'Set sn = New NotesName( db.server )
	Dim ndoc As  notesdocument
	Set uidoc = wk.currentdocument
	uidoc.Refresh
	uidoc.Reload
	
	Set ndoc = wk.currentdocument.document
	
	uidoc.save        'Hier tritt der Fehler beim versenden mit Anhang auf
	
	ndoc.saveoptions =0
	
	
	If Not db2.isopen Then
		Msgbox "database not found"
		Exit Sub
	End If
	
	
	Set view =db2.getview("VMailAdresses")
	
	
	Dim coll2 As notesdocumentcollection
	Dim u As Integer
	u=1
	
	Forall x In ndoc.co_empfaenger
		If x<>"" Then
			If u=1 Then
				Set coll = view.getalldocumentsbykey(Cstr(x))
				
				If coll.count>0 Then u=2
			Else
				Set coll2 = view.getalldocumentsbykey(Cstr(x))
				Set doc=coll2.getfirstdocument 
				
				While Not doc Is Nothing
					If coll Is Nothing Then
						
					End If
					If coll.getdocument(doc) Is Nothing Then
						Call coll.adddocument(doc)
					End If
					Set doc = coll2.getnextdocument(doc)
				Wend
			End If
		End If
	End Forall
	
	Dim rt As notesrichtextitem
	Dim rte As notesrichtextitem
	Dim mdoc As notesdocument
%REM	
	If coll.count>0 Then	
		Set mdoc = db2.createdocument
		
		Set rt = ndoc.getfirstitem("Body")
		Call rt.copyitemtodocument(mdoc,"Body")
				mdoc.subject = ndoc.subject
		mdoc.in_icon = 140
				mdoc.form = "MMass"
		mdoc.in_Type =""
		mdoc.ComputeWithForm False, False
		Call mdoc.save(True,True)
		
	End If
%END REM
	
	Set doc=coll.getfirstdocument 
	Do Until doc Is Nothing
		Set rt = ndoc.getfirstitem("Body")
		If Trim$(doc.co_CompanyEmail(0)) <> "" Then 
			Print "Verarbeite Person ", doc.Fullname(0)
			Set doc2 = db2.createdocument
			
			Set rtItem = New NotesRichTextItem(doc2, "Body")
			Dim stmp As String
			
			stmp = ndoc.BodyP0(0)
			
			stmp= TokentoValue(stmp, doc,False)
			Call rtItem.AppendText(stmp)
			Call rtItem.AddNewLine( 2 )
			
			
			Call rtItem.AppendRTItem(rt)
			
			
									If ndoc.TestMode(0)="1" Then
				doc2.subject =doc.co_CompanyEmail(0) + ndoc.subject(0)
				doc2.sendto=session.username
			Else
				doc2.subject = ndoc.subject(0)
				doc2.sendto=doc.co_CompanyEmail(0)
				If ndoc.BlindCopy(0)="1" Then
					doc2.BlindCopyTo="IM" 
				End If
			End If
			
						doc2.form = "Memo"
						
						Call doc2.send(False)   'Hier tritt der Fehler auch auf
			%REM
			Set doc2 = db2.createdocument
			
			Set rt = doc2.createrichtextitem("Body")
			Call rt.AppendDocLink( mdoc, "Link zum Massenmail" , "Link zum Massenmail")
			doc2.subject = ndoc.subject
			doc2.in_icon = 140
			doc2.tm_AdressInfo = doc.universalid
			doc2.sendto=doc.co_CompanyEmail(0)
			doc2.form = "MEMail"
			doc2.is_MassMail= "1"
			doc2.ComputeWithForm False, False
			Call BEAdressOver( doc2 )   				' 
			doc2.ComputeWithForm False, False
			Call zugriff(doc2)
			Call doc2.save(False,False)
%END REM
		End If
		Set doc=coll.getnextdocument (doc)	
	Loop
	
	wk.currentdocument.close
End Sub
mit besten Grüßen

Markus Petzold

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Richtext mit Anhang
« Antwort #5 am: 05.01.05 - 14:17:03 »
der code ist nicht von mir, kann sein das ich da etwas falsch verstanden habe, ich soll nur diesen Fehler entfernen.
mit besten Grüßen

Markus Petzold

klaussal

  • Gast
Re: Richtext mit Anhang
« Antwort #6 am: 05.01.05 - 14:22:02 »
Sollte es nicht "CALL UIDOC.SAVE" heissen.... (dto. Reload) ?

Warum behebt der Author den Fehler denn nicht selbst ?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Richtext mit Anhang
« Antwort #7 am: 05.01.05 - 14:25:43 »
Das Problem ist die Zeile

Call rtItem.AppendRTItem(rt)

Hiermit wird der Inhalt des anderen RTItems übernommen - auch der interne Link auf das Attachment - aber nicht das Attachment selber. Dies funktioniert nur mit einem NotesItem.CopyToDocument.

Bernhard

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Richtext mit Anhang
« Antwort #8 am: 05.01.05 - 15:54:37 »
Erstmal einen großen Dank, wenn ich das aber so mache wie du sagst, dann findet er das item nicht (=Body):

Code
Call rt.CopyItemToDocument( doc2, "Body" )
habe es auch schon versucht

call doc2.CreateRichTextItem("Body")

davorzusetzen, aber er will nicht!?
mit besten Grüßen

Markus Petzold

klaussal

  • Gast
Re: Richtext mit Anhang
« Antwort #9 am: 05.01.05 - 16:14:18 »
.... aus der Designer-Hilfe:

Code
This script creates a new rich text item called ProjectDescription and adds a text value to it.
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
'...set value of doc...
Set rtitem = doc.CreateRichTextItem( "ProjectDescription" )
Call rtitem.AppendText( "Book for children ages 9-12" )
Call doc.Save( False, True )

Offline Mandalor

  • Senior Mitglied
  • ****
  • Beiträge: 359
  • Geschlecht: Männlich
Re: Richtext mit Anhang
« Antwort #10 am: 05.01.05 - 16:18:25 »
hatte das aus der hilfe:

Code
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim memo As NotesDocument
Dim itemA As NotesItem
Dim itemB As NotesItem
Set db = session.CurrentDatabase
'...set value of doc...
Set itemA = doc.GetFirstItem( "Body" )
Set itemB = doc.GetFirstItem( "BriefDescription" )
Set memo = New NotesDocument( db )
Call itemA.CopyItemToDocument( memo, "Body" )
Call itemB.CopyItemToDocument( memo, "Subject" )
Call memo.Send( False, "Cynthia Brainey" )

aber habe den Fehler gerade gefunden (RTI wird schon beim Erstellen der Vorlage falsch übergeben)

Danke an alle :)
mit besten Grüßen

Markus Petzold

klaussal

  • Gast
Re: Richtext mit Anhang
« Antwort #11 am: 05.01.05 - 16:20:01 »
Feierabend gerettet...  :D

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz