Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: jr am 09.08.06 - 12:58:03

Titel: Feldnamen einer Maske
Beitrag von: jr am 09.08.06 - 12:58:03
Hallo,

für ein Projekt benötigt ich die Liste der Felder in einer Maske. Die Field-Liste aus NotesForm liefert aber nur Felder, die gespeichert werden, also eigentlich nicht die Maskenfelder, sondern die Dokumentenfelder. Alle Felder vom Typ "Computed for display" werden dort nicht übergeben.

Meine Idee war es jetzt, die Liste über den DXL Stream zu holen. Das funktioniert soweit auch und ich bekomme eine Liste der Felder. Aber dort tauchen jetzt plötzlich jede Menge Felder auf, die gar nicht in der Maske sind!?!? Vermutlich wurde die Maske kopiert und umbennant und jetzt hat er alle Felder, die irgend wann einmal in dieser Maske gespeichert wurden. In einer Maske mit 10 echten Feldern hat die DXL-Liste über 200 Einträge!!!

Hat jemand eine Idee, wie man eine echte und aktuelle Liste der Felder einer Maske bekommt? Wieso merkt sich Notes diese alten Felder? Bekommt man die irgend wie wieder aus der Maske raus? Irgend wie kostet das ja auch Speicherplatz, auch wenn das jetzt nicht gleich einige MB ausmacht.

Wäre super, wenn einer eine Idee hätte.

Gruß,

Joachim
Titel: Re: Feldnamen einer Maske
Beitrag von: klaussal am 09.08.06 - 13:01:53
zu 1) Im Designer gibt es unter dem Punkt "Andere" eine Übersicht.....

zu 2) dazu gibt es hier schon unzählige Beiträge. Bitte die Suchfunktion benutzen.
Titel: Re: Feldnamen einer Maske
Beitrag von: jr am 09.08.06 - 13:09:33
Hall klauss,

danke für die schnelle Antwort, aber das passt noch nicht ganz.

zu 1.
Die Synopsis nützt nichts, da kann ich auch die Maske manuell öffnen und nachsehen.

zu 2.
Klar, habe ich zuvor die Suchfunktion benutzt. Aber da geht es meist darum, die Felder zu entfernen. Ich brauche aber eine Liste der Felder.

Nochmal. Vielleicht habe ich mich nicht richtig ausgedrückt.

Ich benötige per Programm (LotusScript oder Java) eine Liste der Felder einer Maske. Dabei kommt es mir vor allem auf die Felder "Berechnet zur Anzeige" an, weil es um eine Liste von Prompts geht, die dynamisch gefüllt werden muss.

Gruß,

Joachim
Titel: Re: Feldnamen einer Maske
Beitrag von: klaussal am 09.08.06 - 13:22:03
Vielleicht hilft das hier aus der Designer-Hilfe:

Code
  1.	This example prints the name of every item in a document. For example, if the document contains five items, the script might print "From," "SendTo," "Subject," "Body," and "DeliveredDate."
Dim doc As NotesDocument
'...set value of doc...
Forall i In doc.Items
  Messagebox( i.Name )
End Forall
  2.	This script finds an Authors item in a document and assigns it to the authorItem object.
Dim doc As NotesDocument
Dim authorItem As NotesItem
'...set value of doc...
Forall item In doc.Items
  If ( item.IsAuthors ) Then
    Set authorItem = item
  End If
End Forall
Titel: Re: Feldnamen einer Maske
Beitrag von: Glombi am 09.08.06 - 13:26:04
Also mit einem DXL Export bekomme ich die zur Anzeige berechneten Felder so im DXL File:

<field type='text' kind='computedfordisplay' name='Display'>

Das kannst Du doch einfach parsen.

Andreas
Titel: Re: Feldnamen einer Maske
Beitrag von: jr am 09.08.06 - 13:42:56
Hallo Andreas,

danke für die Antwort. Das ist die Lösung. Ich habe bisher immer <item name=...> gesucht und dort steht nichts über die Feldart drin, aber natürlich muss ich nach "<field ...> suchen. Bin wohl irgend wie auf dem Schlauch gestanden. Wundert mich trotzdem ein bisschen, wieso die Felder dort nochmal als items auftauchen. Ist aber egal.

Danke für die Hilfe,

Joachim


@Klauss

das nützt leider alles nichts.
1. Dein Hilfe-Ausschnitt ist aus NotesDocument, ich brauche aber die Felder aus NotesForm (im Dokument könnten Felder drin sein, die in der Maske gar nicht auftauchen)
2. werden dort items durchlaufen, keine Felder (das ist genau der Fehler, auf den mich Anderas aufmerksam gemacht hat)
3. werden DisplayFelder nicht gespeichert, tauchen also in dieser Liste nicht auf.

Die Lösung von Andreas ist optimal, weil ich da einfach durch den Stream parsen kann und Feld für Feld abgreifen kann.

Nochmals Danke.