Autor Thema: Problem mit RenderToItem der RichTextItem-Klasse  (Gelesen 7953 mal)

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Problem mit RenderToItem der RichTextItem-Klasse
« am: 18.11.04 - 15:12:52 »
Hallo zusammen!

Ich programmiere gerade eine Datenbank mit einer Checkliste für Personalveränderungen bei uns in der IT-Abteilung.

In einem Dokument soll in ein Richtextfeld ein Dokument mit einer Art Berechtigungsprofil hereingefügt werden. Hierzu habe ich eine Aktion in der Maske hinterlegt, die mit Script arbeitet. Hier taucht jedoch mein Problem auf:

Beim Aufruf der Methode RenderToItem meldet mir Notes in dieser Zeile
Code
flag = prof_doc.rendertoitem ( prof_rt_item )
kommt vom Debugger die Meldung "Type mismatch" . Die Variable flag ist als Variant definiert, so wie es in der DesignerHelp steht.

Kann mir jemand verraten, wo das Problem liegt?

Danke schonmal vorweg!

Markus
« Letzte Änderung: 19.11.04 - 09:17:56 von Alexis Pyromanis »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #1 am: 18.11.04 - 15:16:50 »
Was sagt denn der Debugger ? Ist prot_rt_item instantiiert und zeigt dieses auf ein RichtTextItem ?

Bernhard

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #2 am: 18.11.04 - 16:47:06 »
Es ist instantiiert und zeigt auch auf das richtige RT-Item...  ???

Schon 'ne Richtung, was ich gucken könnte?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #3 am: 18.11.04 - 16:55:02 »
Kannst Du noch ein wenig mehr Code posten ?

Bernhard

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #4 am: 18.11.04 - 17:19:24 »
Ich poste hier mal den ganzen Code:

Code
Dim session					As notessession
	Dim ws						As notesuiworkspace
	Dim this_db					As notesdatabase
	Dim par_view				As notesview
	Dim prof_dc					As notesdocumentcollection
	Dim this_ui_doc			As notesuidocument
	Dim par_doc				As notesdocument
	Dim prof_doc				As notesdocument
	Dim this_doc				As notesdocument
	Dim prof_rt_item			As Variant
	Dim flag						As Variant
	
	Dim server					As String
	Dim bk_datenbank		As String
	
	'##################################################################################################
	
	Set session					= New notessession
	Set ws						= New notesuiworkspace
	Set this_db					= session.currentdatabase
	Set par_view				= this_db.getview ( "Parameter" )
	
	Set this_ui_doc			= ws.currentdocument
	Set this_doc				= this_ui_doc.document
	
	flag = False
	
	Call this_doc.save (True,True)
	
	Set prof_rt_item				= this_doc.getfirstitem ( "BerechtigungProfilRT" )
	
	If Not par_view Is Nothing Then
		Set par_doc			= par_view.getdocumentbykey("Berechtigungskonzept")
	Else
		Msgbox "Ansicht Parameter nicht gefunden!",16,"Fehler"
		Exit Sub
	End If
	
	If Not par_doc Is Nothing Then
		server					= this_db.server
		bk_datenbank			= par_doc.ParameterWertTX (0)
	Else
		Msgbox "Parameter >Berechtigungskonzept< nicht gefunden!",16,"Fehler"
		Exit Sub
	End If
	
	Set prof_dc = ws.picklistcollection ( PICKLIST_CUSTOM, False, server, bk_datenbank, "BerechtigungsprofileAktuell", "Profilauswahl", "Bitte wählen Sie ein Profil aus!")
	
	Set prof_doc 				= prof_dc.getfirstdocument
	
	If prof_rt_item.type = RICHTEXT Then
		flag						= prof_doc.rendertoitem ( prof_rt_item )
		If flag = True Then
			Call this_doc.save (True,True)
		Else		
			Msgbox "Profil konnte nicht eingefügt werden!",16,"Fehler"
		End If
	End If

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #5 am: 18.11.04 - 17:26:21 »
Warum deklarierst du eigentlich prof_rt_item als Variant ? Das tut doch nun überhaupt nicht not ...

Bernhard

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #6 am: 18.11.04 - 17:33:28 »
Habe mich nach der Designerhelp gerichtet...

Using this method to get rich text items
The compiler raises an error if you try to set the return value of GetFirstItem equal to a NotesRichTextItem object. This is because a NotesItem is not necessarily a NotesRichTextItem, and the compiler has no way of knowing whether the name$ you specify actually corresponds to a rich text item. For example:
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
'...set value of doc...   
Set rtitem = doc.GetFirstItem( "Body" ) 
'compiler complains
The solution to this problem is to declare a variant, set it equal to the return value of GetFirstItem, and then treat the variant as a NotesRichTextItem. For example:
Dim doc As NotesDocument
Dim rtitem As Variant
'...set value of doc...   
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
  '...use NotesRichTextItem methods...
End If

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #7 am: 18.11.04 - 17:47:21 »
Ich muss ehrlich zugeben, dass ich RenderToRTItem noch nie anders verwendet habe als mit neu angelegten RichTextItems. Keine Ahnung, wie sich die Methode auswirkt, wenn das Item schon vorhanden und gar belegt war.

Auch wenn das jetzt das von mir gehasste try & error ist: Probier doch mal, das
- vorhandene Item zu instantieren (pur als NotesItem),
- wenn vorhanden, ein Remove
- das RTItem als eigenes Objekt deklarieren und jetzt als New mit dem selben Namen anzulegen
- und dann RenderToRTItem.

Mit welcher Designer-Version arbeitest Du ? Stimmt da Dein Footer ?

Bernhard

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #8 am: 18.11.04 - 17:58:42 »
Das macht leider keinen Unterschied... habe jetzt auch schon probiert, ob es daran liegt, dass es kein bearbeitbares RT-Feld ist. Jedoch Ergebnis war das gleiche...

Mein Footer stimmt nicht mehr, Designer ist 5.0.11...

P.S. Den sollte ich mal ändern...

Offline -Michael-

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
    • Software Guide
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #9 am: 18.11.04 - 21:33:49 »
Hi,

ich hatte mich mit der Thematik auch schon mal tiefer auseinandergesetzt.

habe jetzt auch schon probiert, ob es daran liegt, dass es kein bearbeitbares RT-Feld ist. Jedoch Ergebnis war das gleiche...
Daran sollte es nicht liegen.

Auch die Deklaration des rtitem als Variant sollte keine Probleme machen.

Dein:
Zitat
flag = prof_doc.rendertoitem ( prof_rt_item )
sollte so eigentlich gehen. Einen Type Mismatch hätte ich da jetzt nicht erwartet.

Wirf mal zum testen das "flag =" raus und ruf mach stattdessen einen Call:
Code
call prof_doc.rendertoitem ( prof_rt_item )


Ich habe unten mal eine Routine von mir drangehängt, die 1a läuft (stammt aus meiner Yet another Document Library). Diese kannst Du ja bei Dir mal testen und auch vergleichen.


Michael
« Letzte Änderung: 18.11.04 - 21:39:07 von -Michael- »

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #10 am: 19.11.04 - 07:50:27 »
Wenn ich das ohne "flag =" laufen lasse, dann bekomme ich die Fehlermeldung "Illegal use of property"... Ich verstehe es ehrlich gesagt nicht...

Offline mibo11

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #11 am: 19.11.04 - 08:40:38 »
Zitat von: Alexis Pyromanis
flag = prof_doc.rendertoitem ( prof_rt_item )
[quote

Hallo Markus,

der Aufruf muss heißen:

flag = prof_doc.RenderToRTItem( prof_rt_item )

nicht

flag = prof_doc.rendertoitem ( prof_rt_item )

Gruß Sascha

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #12 am: 19.11.04 - 08:44:47 »
Alles klar!Jetzt geht es wie geschmiert! Manchmal sieht man echt solche Kleinigkeiten nicht...

Danke an alle für die Hilfe!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #13 am: 19.11.04 - 14:33:37 »
Oh Mann, manchmal liest man wirklich das, was man unbedingt lesen möchte ! Auf diesen simplen Tippfehler bin ich partout nicht gekommen.
Hochinteressant ist aber, dass der Compiler das einfach so abnimmt. Die Methode RenderToItem muss dann ja auch eingebaut sein ...

Bernhard

Offline mibo11

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #14 am: 19.11.04 - 15:05:05 »
Hochinteressant ist aber, dass der Compiler das einfach so abnimmt. Die Methode RenderToItem muss dann ja auch eingebaut sein ...

Bernhard

Würd' mich übrigens auch mal interessieren. Wo steht den der Code. Script Bibliothe, Shared Action o.ä.?

Gruß Sascha

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #15 am: 20.11.04 - 01:03:46 »
Wo der Code steht, dürfte vollkommen egal sein. Punkt ist, dass es die (wozu auch immer brauchbare) Methode "NotesDocument.RenderToItem" wohl vorhanden ist. Brauchbar ist das (abgesehen vom Status "undokumentiert") aber wohl überhaupt nicht.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #16 am: 20.11.04 - 09:59:13 »
Berrnhard, RenderToItem muss nicht eingebaut sein. Das ist die riesige, dumme, ekelhafte Kehrseite der "verkürzten Notation". Der Compiler nimmt einfach mal an, RenderToItem könnte ein Feld/Item im Dokument sein und meckert deshalb keinen Syntaxfehler an ........ Is leider so, und ärgert mich auch jedesmal, wenn ich drüberstolpere. Jede Abkürzung - und darum handelt es sich ja bei der Kurzschreibweise - hat eben auch irgendwelche Dornen .....
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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #17 am: 20.11.04 - 10:31:58 »
Oh ja - natürlich, Jens. Oh, da habe ich aber auf dem Schlauch gestanden. Erst das eine übersehen, dann in der Folge nur noch an "das eine" gedacht ...
Die Fehlermeldung "Type mismatch" ist dann ja auch vollkommen logisch - es wird der Index erwartet, also ein Integer, und keine Rich text item.

Mit der Schamesröte im Gesicht,
Bernhard

audiojosi

  • Gast
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #18 am: 20.11.04 - 13:31:22 »
Hallo Bernhard,

als Programmierer muss doch nicht rot werden, bloss weil man mal was übersieht oder in Eile falsch interpretiert, gehört doch dazu, sowas. Wir sind ja hier nicht auf Arbeit, und selbst dort..., oder ? :D

[BTW]Warum hast du denn dein Bild entfernt, also ich finds gut, wenn man das Gegenüber wenigstens sieht, wenn man sich schon nicht kennt...[/BTW]

Den Avatar von Dilli find ich übrigens absolut ...BILDeindruckend...  ;D Jo@Schwarzwald: 100 Points  :)

Gruss
Jürgen

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit RenderToItem der RichTextItem-Klasse
« Antwort #19 am: 20.11.04 - 14:17:54 »
Hallo, Jürgen,

ich habe da aber ganz arg was übersehen - das war wirklich schon peinlich !

Das Bild vorher war mir zu gross (es sah in manchen Postings schon merkwürdig aus: Eine Zeile, und wegen des Bildes mussten die User trotzdem scrollen bis zum nächsten Eintrag).
Ich habe jetzt trotzdem darauf verzichtet, das Bild an den nötigen Stellen rot zu färben (es hat sich ja eh' wieder gelegt  ;D )

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz