Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Alexis am 21.10.04 - 10:13:11

Titel: Script-(Anfänger)-Fehler
Beitrag von: Alexis am 21.10.04 - 10:13:11
Hallo Forum,

was ist hier falsch (Fehlermeldung: Illegal Property Use)?

Dim session As New NotesSession
   Set db = session.Currentdatabase
   Dim FieldName As String
   Dim NewValue As String
   Set collection = db.UnprocessedDocuments  'Alle markierten Doks in die Collection
   FieldName = Inputbox$("Feldname:")
   NewValue = Inputbox$("Neuer Wert:")
   Set doc = collection.GetFirstDocument
   While Not (doc Is Nothing)
      Call doc.fieldsettext(FieldName,NewValue)
      Call doc.Save(True, False)
      Set doc = collection.GetNextDocument(doc)
   Wend

Alexis
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: klaussal am 21.10.04 - 10:21:49
1. Wann kommt der Fehler ?
2. dim db.....  dim collection... etc fehlen

klaus
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: koehlerbv am 21.10.04 - 10:56:03
1. Immer die Zeile angeben, in der der Fehler auftritt.
2. Bevor eine Zeile gecoded wird, Option Declare eingeben
3. Alle verwendeten Variablen deklarieren

Du instanziierst ein NotesDocument, willst dann aber mit FieldSetText eine Methode von NotesUIDocument verwenden. Das geht natürlich nicht.

HTH,
Bernhard
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: mibo11 am 21.10.04 - 10:59:15
Hallo Alexis,

diese Zeile ist falsch.

Call doc.fieldsettext(FieldName,NewValue)

Schaue dir einmal den Unterscheid zwischen Backend und Frontend Klassen an.

Du benutzt eine Frontend Methode auf ein Backend Objekt (doc).

Statt dessen müsste die Zeile so lauten:

Call doc.repalceitemvalue(FieldName,NewValue)


Gruß Sascha
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: mibo11 am 21.10.04 - 11:00:28
Sorry Schreibfehler,

Call doc.replaceitemvalue(FieldName,NewValue)

Sascha
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: Alexis am 21.10.04 - 11:16:31
Danke für Eure Hinweise.

So geht's:

Dim session As New NotesSession
   Set db = session.Currentdatabase
   Dim uidoc As NotesUIDocument
   Dim FieldName As String
   Dim NewValue As String
   Set collection = db.UnprocessedDocuments  'Alle markierten Doks in die Collection
   FieldName = Inputbox$("Feldname:")
   NewValue = Inputbox$("Neuer Wert:")
   Set doc = collection.GetFirstDocument
   While Not (doc Is Nothing)
      doc.ReplaceItemValue  FieldName, NewValue 
      Call doc.Save(True, False)
      Set doc = collection.GetNextDocument(doc)
   Wend

Alexis
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: koehlerbv am 21.10.04 - 11:21:17
Jetzt hast Du uidoc deklarierst, aber verwendest es nicht. Statt dessen verwendest Du doc - deklarierst es aber nicht.
Demzufolge fehlt bei Dir immer noch Option Declare.

Mach das von Anfang an ganz sauber - das erspart Dir viel Ärger.

Bernhard
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: Alexis am 21.10.04 - 12:14:01
OK!

Dim doc as NotesDocument

muss es wohl richtig heißen.
LN meckerte nicht mal, aber es sollte schon sauber sein.

Merci

Alexis
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: koehlerbv am 21.10.04 - 12:20:53
Dann hast Du immer noch kein Option Declare gesetzt.

Weiterhin nicht deklariert sind:
session, db, collection

Sowas kann bei umfangreicheren Code schnell in die Hose gehen.

HTH,
Bernhard
Titel: Re: Script-(Anfänger)-Fehler
Beitrag von: Alexis am 21.10.04 - 13:45:15
Hallo Bernhard,

was Du nicht wissen kontest: diese Deklarationen liegen bereits im Bereich Declarations des Agenten.

Danke und Gruß

Alexis