Autor Thema: ObjectVariable not set (NotesRichTextItem)  (Gelesen 3309 mal)

bend0r

  • Gast
ObjectVariable not set (NotesRichTextItem)
« am: 16.08.07 - 15:03:41 »
Hallo  ...

Folgender Code:

Sub Exiting(Source As Field)
   
   Dim uiw As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim doc As Notesdocument
   Dim rtitem As NotesRichTextItem
   Dim boo_isnewdoc As Boolean
   
   Set uidoc = uiw.CurrentDocument
   boo_isnewdoc = uidoc.IsNewDoc
   
   Set doc=uidoc.Document
   Set rtitem = doc.GetFirstItem("Body")
   
   If boo_isnewdoc Then
      ....
   Else
      .....
   End If
   
   Call uidoc.Refresh(True)
   
End Sub


Lustigerweise wehrt sich Notes permanent das RichTextItem zu belegen obwohl besagtes Feld auch ein Richtextiten ist.

Zur Zusatzinfo : Das Feld hat einen Vorgabewert.  Existiert also auch schon.

jemand lust mir zu helfen?

grüsse rene

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #1 am: 16.08.07 - 15:12:17 »
Kann es sein, dass die Ausführung bereits hier

Code
Set uidoc = uiw.CurrentDocument

abgebrochen wird? Wo wird uiw initialisiert?

Hubert

Glombi

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #2 am: 16.08.07 - 15:13:38 »
Ist das ein neues Dokument?

Falls ja, gibt es Einschränkungen bzgl. Rich Text Feldern. Die stehen erst nach dem Speichern zur Verfügung.

bend0r

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #3 am: 16.08.07 - 15:15:42 »
hmm, ist ein neues Dokument

ich kann aber via fieldsettext Wörter reinschreiben
... ein doc.Save(... , ... ) hatte ich eigentlich nicht vor direkt daraufzuschiessen

bend0r

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #4 am: 16.08.07 - 15:18:35 »
hrmmm, selbst wenn ich ein doc.Save davorsetze kommt immer noch die Fehlermeldung. Keine Ahnung woran das liegen könnten.

doc, uidoc, uiw sind alle richtig initialisiert

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #5 am: 16.08.07 - 15:25:56 »
Hast du mal mit einem "doc.HasItem"- geprüft ob es da ist ?

Wenn es ein neues Dokument ist solltest du vllt auch :

Code
Dim rtItem as New NotesRichTextItem(doc,"body")

versuchen und dann mit dem

Code
rtItem.appendText("TESTTEST")

arbeiten
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #6 am: 16.08.07 - 15:27:42 »
Works as designed.

Du erstellst ein neues Dokument, das Feld "Body" existiert noch nicht. Laut Designer-Hifle zu "GetFirstItem":
Zitat
Returns Nothing if the document does not contain an item with this name.

Du willst
Code
Set rtitem = New NotesRichTextItem ( doc, "Body" )
verwenden.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #7 am: 16.08.07 - 15:30:24 »
M3 hat recht.

Da fällt mir ein das die RichtextOperationen im Front-End sowieso sehr eingeschränkt sind. Mein Vorschlag mach es im Back-end und Reloade das Dokument wieder.
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

bend0r

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #8 am: 16.08.07 - 15:35:44 »
hmmkay,

1. das item ist da .... (Laut debugger zumindest :-)  )
2. die operationen mach ich ja im back-end ---> doc = uidoc.document

Die Designer-Hilfe ist mir bekannt, oder zumindest die Einträge dazu. ..  Jedoch funktioniert es noch nicht einmal wenn ich vorher ein Save drüberjage

Glombi

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #9 am: 16.08.07 - 15:42:42 »
Beachte auch folgendes aus der Hilfe:

If you specify a new NotesRichTextItem object but do not add content to it, an item is not created when the document is saved.

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #10 am: 16.08.07 - 15:44:24 »
Ein Kollge von mir hatte damit auch mal Ärger. ich glaube, im Debugger wird das angezeigt, ist aber 'in echt' nicht da.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

bend0r

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #11 am: 16.08.07 - 15:47:34 »
gerade nochmals durchgetestet:

neues rtitrm erstellt, zwei Zeilen dran gehangen , text hinzugefügt , gesaved

gleiche spiel

Glombi

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #12 am: 16.08.07 - 16:01:59 »
Wenn das was in RTF Feld schreibst, dann darf das UI Dokument nicht im Bearbeitenmodus sein. Andernfalls wird das RTF Feld sonst beim Speichern des UI Dok. wieder überschreiben - und zwar mit dem Wert der aktuell im UI Dok. drin steht.

bend0r

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #13 am: 16.08.07 - 16:09:17 »
hrmmm ....
*grumml*

das sind leider so die backgrounds die einem als Student fehlen. Leider ...

Werde mich jetzt nochmal intensiv mit der designer-hilfe beschäftigen und erstmal in einer test-db weiterarbeiten

danke nochmals für die zahlreichen antworten

grüsse rene

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #14 am: 16.08.07 - 19:49:43 »
 ??? muss mal ne "blöde Frage" stellen,
aber was hast du im Exciting (ist ja eigentlich UI) mit dem backend-RTItem eigentlich vor ???

Sub Exiting(Source As Field)
   
[...]
   
   Set doc=uidoc.Document
   Set rtitem = doc.GetFirstItem("Body")
   
[...}
   
   Call uidoc.Refresh(True)
   
End Sub
pete(r)

bend0r

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #15 am: 16.08.07 - 22:21:59 »
@pete_bla:

es geht konkret um eine art Trouble-Ticket-System. Um möglichst schnell die erforderlichen Daten eingeben zu können arbeite ich viel mit entering und exiting ereignisse. Beispielsweise um zu feldern zu springen, felder automatisch zu füllen, etc.

nun zu deiner frage. Meines Erachtens ist es grundsätzlich komfortabler im Back-End anstatt im Front-End zu arbeiten.
Hoffe das war ausführlich genug ;-)

grüsse rene

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #16 am: 17.08.07 - 12:32:52 »
dann würd ich sagen,dass du dich für ein neus RichtText-Feld entscheiden musst..
wenn schon ui dann auch die daten mit ui-funktionen eintragen/bearbeiten...

ansonsten kommst du bei nem rt-feld kaum ums speichern des docs.

hab mal dein code ausprobiert und muss sagen, klar ist das "object" da aber eben nicht das feld (solange nicht gespeichert..)

->
entscheide dich:
-> das feld muss bereits vor der erstellung da sein um backend damit zu arbeiten
-> das doc muss eben zuvor gespeichert werden (ev. mit nem flag "temporär")
pete(r)

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #17 am: 17.08.07 - 12:42:12 »
Um eine Art TT-System?
Ist !!HELP!! zu mächtig?
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

bend0r

  • Gast
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #18 am: 20.08.07 - 14:36:33 »
!!HELP!! müsste zu stark auf unsere Bedürfnisse bzgl. Auswertungen, etc. angepasst werden


grüsse rene

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: ObjectVariable not set (NotesRichTextItem)
« Antwort #19 am: 20.08.07 - 15:00:02 »
nun zu deiner frage. Meines Erachtens ist es grundsätzlich komfortabler im Back-End anstatt im Front-End zu arbeiten.
stimm ich Dir schon zu (im ui ist halt einfach zu krakelig und backend so 'schön'...),
, aber mit RT-Feldern nur, wenns eben nicht wie hier um neue UIDocs geht....

Sub Exiting(Source As Field)
ist ja eindeutig UI

   Call uidoc.Refresh(True)
bring nicht viel für backend geänderte rtitems und schon garnicht, wenn du nicht zwischen-speichern willst! (aber so weit waren wir ja noch garnichtnicht)

Soweit aus der Desinger-Help: Reload method:
(zwar unter UIDoc.Reload, gilt aber auch für refresh!)
Zitat
Modifications made to items on the corresponding back-end document accessed outside the front-end document (for example, by an agent or another user) do not appear unless the document is closed and reopened.

pete(r)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz