Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: dia am 10.03.04 - 13:06:48

Titel: $Fields auslesen
Beitrag von: dia am 10.03.04 - 13:06:48
Hallo ich hab das Problem, dass ich mir aus einer Maske per LotusScript alle Felder ausgeben lassen will. Mit Forall field In frmMaske.Fields bekomme ich alle Felder die sich direkt auf der Maske befinden. Aber nicht die der eingebetteten SubForms. Nun hab ich gesehen, dass es das Feld $Fields gibt in dem alle Felder stehen, die ich brauche. Sprich alle Felder der Maske samt der Felder der eingebetteten Teilmasken. Aber wie kann ich nun dieses Feld auslesen. GetItemValue geht ja nicht, weils ja kein Dokument ist sondern ne Maske.  :(
Titel: Lösung für 5.0.2b
Beitrag von: dia am 11.03.04 - 09:32:25
Also in einem andern Forum bekam ich dies als Lösung, was bestimmt auch funktionieren würde, wenn ich nicht die Version 5.0.11 hätte. Denn die Property notesurl gibt es erst ab 5.0.2b. Was nun? Bitte keine Vorschläge der Art 5.0.2b oder höher installieren. Ich habe hier auf Arbeit keinen Einfluss auf darauf, womit wir hier arbeiten. Alles strengstens vorgegeben.

Dim ns As New notessession
Dim db As notesdatabase
Dim form As notesform
Dim doc As notesdocument
Dim unid As String

Set db = ns.CurrentDatabase
Set form = db.getform("Test")
unid = Strrightback(Strleft(form.notesurl,"?"), "/")
Set doc = db.GetDocumentByUNID(unid)
value = doc.GetItemValue("$Fields")

Titel: Re:Lösung für 5.0.2b
Beitrag von: Axel am 11.03.04 - 09:38:35
Also in einem andern Forum bekam ich dies als Lösung, was bestimmt auch funktionieren würde, wenn ich nicht die Version 5.0.11 hätte. Denn die Property notesurl gibt es erst ab 5.0.2b. Was nun? Bitte keine Vorschläge der Art 5.0.2b oder höher installieren. Ich habe hier auf Arbeit keinen Einfluss auf darauf, womit wir hier arbeiten. Alles strengstens vorgegeben.

Ähhmm, hast du das mal genau gelesen ?    ???

Die Version 5.0.11 ist erheblich neuer als 5.0.2b. Also sollte die Lösung funktionieren.

Axel
Titel: Version
Beitrag von: dia am 11.03.04 - 09:44:47
Ok keine Ahnung ob die Version jetzt neuer ist oder nicht. Auf jeden Fall funktionierts nicht. Macht mal Vorschläge woran das liegen kann bzw. Vorschläge wie ich es anders auslesen kann.
Titel: Re:$Fields auslesen
Beitrag von: Semeaphoros am 11.03.04 - 09:47:46
Also, mit einem Ton im Posting nach der Art "Her mit den Vorschlägen" geht es hier in diesem Forum sehr schlecht.


Und mit einer Angabe "Es funktioniert nicht" gibt es auch keine Antworten. Du musst dann schon sagen, was nicht funktioniert, Fehlermeldung oder was immer ....
Titel: Versionen
Beitrag von: dia am 11.03.04 - 09:58:03
Ja also ich hab jetzt rausgefunden, dass die Version 5.0.11 tatsächlich neuer ist. Also wirds daran nicht liegen. Aber funktioniert halt immer noch nicht.
Ich kann Messagebox Maskenname.notesurl nichtmal speichern. dann kommt der Fehler is not a member.
Titel: Re:$Fields auslesen
Beitrag von: Axel am 11.03.04 - 10:00:37
Hi,

hier ein Auszug aus der Notes-Hilfe:

Zitat
NotesURL property  

Read-only. The Notes URL of a form.
Hinweis  This property is new with Release 5.0.2b.
Hinweis  This property is supported in COM only.
Defined in
NotesForm
Data type
String
Syntax
To get: url$ = notesForm.NotesURL

Deswegen funktioniert das nicht.


Axel
Titel: Auszug aus der Hilfe
Beitrag von: dia am 11.03.04 - 10:04:07
Ich nehme an du deutes auf das is supported in com only hin. Aber das sagt mir gar nix. Erklär mir das mal bitte wie nem Fünftklässler.  ;D
Titel: Re:$Fields auslesen
Beitrag von: Semeaphoros am 11.03.04 - 10:05:22
Also: wie einem Fünftklässler:

"Wenn Du einmal gross bist, kannst Du das begreifen"
Titel: Fünftklässler
Beitrag von: dia am 11.03.04 - 10:12:22
Schön und nun bitte eine zufriedenstellende Erklärung. Liegt es nun an diesem COM only? Was ist COM? Wofür steht COM? Kann ich das benutzen oder nicht?
Titel: Re:$Fields auslesen
Beitrag von: Semeaphoros am 11.03.04 - 10:15:45
COM steht für Component Object Model und ist eine MS-Definition für den programmatischen Zugriff programmübergreifend, von Notes aus gesehen heisst das, wenn COM-Only steht, ist diese Eigenschaft nur verfügbar für Fremdprogramme, die über die COM-Schnittstelle auf Notes zugreifen. Beispielsweise könnte man diese Eigenschaft mit VBA von Word aus benutzen, nicht jedoch mit LotusScript. COM ist Nachfolger des wohl bekannten OLE.
Titel: COM
Beitrag von: dia am 11.03.04 - 10:20:21
Ok das hab ich verstanden. Somit kann ich mein Problem damit also nicht lösen, da ich ja mit LotusScript arbeite. Kann also das $Fields immer noch nicht auslesen.  :'(
Titel: Re:$Fields auslesen
Beitrag von: animate am 11.03.04 - 10:36:56
damit solltest du rankommen:
http://www-10.lotus.com/ldd/sandbox.nsf/ecc552f1ab6e46e4852568a90055c4cd/f81067f94a1143f3852567d800660625?OpenDocument&Highlight=0,design,class (http://www-10.lotus.com/ldd/sandbox.nsf/ecc552f1ab6e46e4852568a90055c4cd/f81067f94a1143f3852567d800660625?OpenDocument&Highlight=0,design,class)
Titel: hmm
Beitrag von: dia am 11.03.04 - 11:34:30
Hab mir die Sandbox mal runtergeladen und reingeschaut. Ich sehe da aber nur wie ich mir die ganzen Forms anzeigen lassen kann, die in einer DB sind. Aber nicht die ich die Felder ($Fields) der Form auslesen kann. Oder hab ich da jetzt was falsch gemacht?
Titel: Re:$Fields auslesen
Beitrag von: Axel am 11.03.04 - 11:48:21
Hi,

schau dir mal die Programmierung dort an. Ich denke mal du musst dir die ID der Maske auslesen. Wenn du die hast, dann kannst du auch das Feld auslesen. Wie du an die ID kommst, sollte in der DB enthalten sein.


Axel