Autor Thema: Nicht vorhandene Methode in NotesDocument?  (Gelesen 11501 mal)

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Nicht vorhandene Methode in NotesDocument?
« am: 19.03.08 - 09:09:58 »
Hallo,
ich eigne mir gerade die Basics von LotusScript an und ein Beispiel in einem LotusScript-Buch, das schon etwas älter ist, will einfach nicht funktionieren:

Code
Sub Click(Source As Button)
	Dim ns As New NotesSession
	Dim ws As New NotesUIWorkspace
	Dim db As NotesDatabase
	Set db = ns.CurrentDatabase
	
	Dim doc As NotesDocument
	Set doc = New NotesDocument(db)
	
	doc.form = "FormOne"
	doc.FieldOne = "Created by View ActionScript"
	doc.SaveTrue, True
	
	Messagebox "New doc created, shouldn't be visible"
	
	ws.ViewRefresh
	
	Messagebox "New doc should now be visible"
	
	
End Sub

Sowohl bei die Methode "form" als auch "FieldOne" wurden bei mir beim Abtippen nicht automatisch angezeigt.
Beim Ausführen der Anwendung bekomme ich die Fehlermeldung "Illegal Use of Property".

Was genau mache ich falsch?!

Danke, im Voraus!

Liebe Grüße
Giordano

klaussal

  • Gast
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #1 am: 19.03.08 - 09:12:29 »
Es muss heissen "Call doc.save......"

Lies dir bitte dazu die Designer-Hilfe durch. Da gibt es sehr viele + gute Beispiele.

Dann fehlt da nooch ein Dim doc as.....


Benutze im Designer auch immer die Option declare.
« Letzte Änderung: 19.03.08 - 09:14:12 von klauss »

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #2 am: 19.03.08 - 09:14:20 »
Und der vielgeliebte Errorhandle.

Direkt angewöhnen.
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 )

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #3 am: 19.03.08 - 09:14:30 »
Sowohl bei die Methode "form" als auch "FieldOne" wurden bei mir beim Abtippen nicht automatisch angezeigt.
Beim Ausführen der Anwendung bekomme ich die Fehlermeldung "Illegal Use of Property".

Form und FieldOne sind keine Methoden sondern Felder innerhalb der Maske. Wobei das Feld Form ein internes Feld ist und den Namen der Maske enthält.

Die Fehlermeldung "Illegal...." kommt wahrscheinlich von der Save-Anweisung. Hier musst du ein Call davor setzen.

Die Zeile muss so aussehen:  Call doc.Save(True, True)


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

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: Nicht vorhandene Methode in NotesDocument?
« Antwort #4 am: 19.03.08 - 09:14:33 »
1) "Form" und "FieldOne" sind keine Methoden, sondern Attribute bzw. Felder in der Notes-Diktion

2) "Save" wäre eine Methode ("SaveTrue" allerdings nicht), die man dann aber auch entsprechend aufrufen muss
Code
Call doc.Save( True, True )
Die von Dir verwendete Syntax
Code
doc.SaveTrue, True
wirft natürlich einen Fehler, steht so aber auch sicher nicht in dem Buch.

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 Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #5 am: 19.03.08 - 09:16:08 »
Dann fehlt da nooch ein Dim doc as.....

Das ist aber vorhanden.

Nach Set db = ....

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

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #6 am: 19.03.08 - 09:17:48 »
Und doc.form ist keine Methode sondern ein Feldname. Genauso wie doc.FieldOne. Und wenn das in der verkürzten Notation angesprochen wird, dann musst du es so schreiben doc.Form(0).

Und doc.savetrue gibt es auch nicht.

Welches Script Buch ist das eigentlich?
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

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: Nicht vorhandene Methode in NotesDocument?
« Antwort #7 am: 19.03.08 - 09:20:15 »
Und doc.form ist keine Methode sondern ein Feldname. Genauso wie doc.FieldOne. Und wenn das in der verkürzten Notation angesprochen wird, dann musst du es so schreiben doc.Form(0).
Wenn er sie auslesen würde - aber er setzt sie ja, da ist das (0) nicht notwendig, odrrr?
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 Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #8 am: 19.03.08 - 09:22:16 »
Stimmt. Wobei ich das beim Setzen mittlerweile wirklich hassen gelernt habe.
Sinnvoller ist eigentlich immer der Weg über das Notesitem.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #9 am: 19.03.08 - 09:26:43 »
Hi,
danke, an alle, für die schnelle Antworten!
Ich hatte ein Leerzeichen vergessen, denn mit
Code
doc.Save True, True

funktioniert es und es steht so auch im Buch!

Allerdings kann ich nicht erkennen, was nun zusätzlich sichtbar sein soll!

Zitat
Und doc.form ist keine Methode sondern ein Feldname.

Was genau soll das sein? In der Designer-Hilfe konnte ich dazu nichts finden (womöglich weil ich nicht die richtigen Stichwörter eingebe).

Zitat
Welches Script Buch ist das eigentlich?

"Lotus Notes and Domino R5 Development" von Deborah Lynd & Steven Kern.

Liebe Grüße
Giordano

klaussal

  • Gast
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #10 am: 19.03.08 - 09:29:01 »
Lies dir am besten in der Designer-Hilfe solche Kapitel durch wie:

- Masken erstellen
- Feldnamen
- Ansichten erstellen
- usw usw.

Glombi

  • Gast
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #11 am: 19.03.08 - 09:31:13 »
Aus der Designer Hilfe zur Methode "ReplaceItemValue" der Klasse "NotesDocument":

"Extended class" syntax
You can also change an item's value using the NotesDocument "extended class" syntax, which eliminates the need for ReplaceItemValue. For example, you have the following script:

Dim item As NotesItem
Set item = doc.ReplaceItemValue _
( "Subject", "Update on stock options" )
Call doc.Save( False, True )
You can achieve the same result by doing the following:
doc.Subject = "Update on stock options"
Call doc.Save( False, True )

This syntax lets you treat NotesDocument as an "extended class" by using an item name as if it were a property of NotesDocument. In the example above, "Subject" is used as if it is a property of the NotesDocument class. The result is the same as if you used ReplaceItemValue, except that ReplaceItemValue returns a NotesItem object representing the item you just created, and the IsSummary property defaults to True.



Das kann man sozusagen als Abkürzung verwenden. Diese Art ist aber nicht so performant wie ReplaceItemValue.



Andreas

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #12 am: 19.03.08 - 09:44:06 »
Und eine aktuelle Version des Buches wäre bestimmt auch nicht schlecht.
Lektüre gibt es auch beim Herdt-Verlag.
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 )

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #13 am: 19.03.08 - 09:57:10 »
Hi,
danke, für die Erklärungen!
Trotzdem kann ich nirgends erkennen, was bei meiner Anwendung eingeblendet werden soll nach dem ich das NotesUIWorkspace refreshe! :(

Liebe Grüße
Giordano

klaussal

  • Gast
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #14 am: 19.03.08 - 09:59:58 »
Zitat
Trotzdem kann ich nirgends erkennen, was bei meiner Anwendung eingeblendet werden soll nach dem ich das NotesUIWorkspace refreshe!

Meinst Du jetzt das Doc oder die Messagebox ?

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #15 am: 19.03.08 - 10:02:09 »
Das im Hintergrund erstellte neue Dokument sollte dann in deiner Ansicht auftauchen.
Das ist genau das was das ws.viewRefresh bezwecken soll.

Es wird das aber vermutlich nicht tun. Denn diese Art Feldern Werte zuzuweisen setzt das Issummary Flag des Notesitems nicht. Und das wird wiederum in Ansichten gebraucht damit er den Wert darstellen kann.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #16 am: 19.03.08 - 10:14:10 »
Denn diese Art Feldern Werte zuzuweisen setzt das Issummary Flag des Notesitems nicht. Und das wird wiederum in Ansichten gebraucht damit er den Wert darstellen kann.

Doch, das tut es, Thomas.

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #17 am: 19.03.08 - 10:21:15 »
Du hast recht Bernhard. Falscher Film.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #18 am: 19.03.08 - 10:29:10 »
Zitat
Trotzdem kann ich nirgends erkennen, was bei meiner Anwendung eingeblendet werden soll nach dem ich das NotesUIWorkspace refreshe!

Meinst Du jetzt das Doc oder die Messagebox ?

Nein, das neu erstelle Dokument meine ich.

Ich habe es mal mit der längeren Methode versucht. Da passiert auch nichts.

Code
Sub Click(Source As Button)
	Dim ns As New NotesSession
	Dim ws As New NotesUIWorkspace
	Dim db As NotesDatabase
	Set db = ns.CurrentDatabase
	
	Dim doc As NotesDocument
	Set doc = New NotesDocument(db)
	
	'doc.form = "FormOne"
	'doc.FieldOne = "Created by View ActionScript"
	
	Dim item As NotesItem
	Set item = doc.ReplaceItemValue _
	( "FormOne", "Created by View ActionScript" )	
	item.IsSummary = True
	doc.Save True, True
	
	Messagebox "New doc created, shouldn't be visible"
	
	ws.ViewRefresh
	
	Messagebox "New doc should now be visible"
	
	
End Sub

Liebe Grüße
Giordano

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Nicht vorhandene Methode in NotesDocument?
« Antwort #19 am: 19.03.08 - 10:33:28 »
Ich habe es mal mit der längeren Methode versucht. Da passiert auch nichts.

Was heißt: "Da passiert auch nichts"?

Ein bisschen genauer musst du das schon definieren.  Meine Kristallkugel befindet sich schon im Osterurlaub.  ;)


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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz