Domino 9 und frühere Versionen > ND6: Entwicklung

Zugriff auf Felder eines Formulars / Dokuments

(1/2) > >>

black_jack:
Hallo,
ich arbeite mit AllDocs und soll an einem Standardformular  eine Änderung durchführen. Allerdings habe ich von Lotus Notes Progammierung keine Ahnung. Ich programmiere aber seit einiger Zeit (ca. 16 Jahre) in anderen prozedualen Programmiersprachen.
Zum Problem:
Das Formular enthält div. Kopfdaten wie "Betreff", "Zuständig" usw.
Wenn das Formular ausgefüllt ist, kann man es über einen Button, der sich im Formular befindet, abspeichern.
Das Formular wird dann autom. in eine bestehende Verzeichnisstruktur eingefügt.
Jetzt soll ich in dieser Struktur weitere Verzeichnisse von A-Z erzeugen (habe ich) und die Formulare sollen autom. in Abhängigkeit vom Anfangsbuchstaben des Benutzernachnamens in das jeweilige Verzeichnis (A-Z) gespeichert werden.
Dummerweise kann ich im Quelltext zu dem Button nicht auf mein Feld "Betreff" (in dem steht direkt der Nachname) zugreifen.
Ich habe einfach mal einen Namen hardcodiert vorgegeben und mit left("Name", 1) den Buchstaben abgeschnitten und mit & einfach an den vorgegebenen Pfad gehängt. Der Teil klappt schon mal, aber ich komme ums verrecken nicht an den aktuellen Namen ran.
Ich habe in etwa sowas probiert:

DIM Betreff AS String
DIM doc      AS NotesDocument
..
..
SET Betreff = doc.GetItemValue("Subject")

Habe den Quelltext leider auf dem Firmenrechner und komme Montag erst wieder ran :-(
Auf jeden Fall klappt das nicht, Subject ist immer leer.
Ich hoffe jemand hat eine Lösung.

Vielen Dank schon mal

eknori:
wenn es nur um die Darstellung der Daten in der Ansicht geht, dann bist du mit left("Name", 1) schon auf dem richtigen Weg. Allerdings brauchst du die bestehenden Dokumente in keiner Weise zu verändern, um deren Darstellung zu ändern.

Erstelle eine neue Ansicht in der Datenbank ( idealerweise kopierst du deine bestehende Ansicht ) Benenne die Ansicht so um, daß es für dich passt ( bsp. CatByNameFirstLetter )

Vor die erste Spalte in der Ansicht fügst du eine neue Spalte ein ( Im Designer: Erstellen - neue Spalte einfügen )
Spaltenwert ist dein Feld "Betreff" ( warum eigentlich Betrefff, wenn dort der Name steht ?? )

Bei den Spalteneigenschaften wählst du im zweiten Reiter die Option "Kategorien" und gegebenen falls eine Sortierreihefolge.

Jetzt stellst du den Spaltenwert von "Feld" auf "Formel" um und schreibst als Formel dort ein:

@Left(Betreff;1)

rein.

Nun speichere die Ansicht und sieh dir das Ergebnis an ...

black_jack:
Hi,
ich will ja nicht das Dokument ändern, sondern nur den Quelltext zu dem Button, der das Dokument ablegt/archiviert/speichert.
Das Dokument soll jetzt nur eine Ebene tiefer abgelegt werden.
Was den Betreff anbelangt, dort wird aus Name, Datum usw. eine Betreffzeile gebastelt. Habe ich nicht gemacht, muss ich auch so hinnehmen.
Ich glaube ich parke das Thema mal bis Montag. Ich habe als absoluter Notesneuling vermutlich die falschen Vokabeln bei der Beschreibung des Problems benutzt.
Ich habe auf jeden Fall das Gefühl, wir reden aneinander vorbei.
Montag habe ich den Queltext und der spricht eine klarere Sprache als ich.
Auf jeden Fall schon mal Danke für die schnelle Reaktion

eknori:

--- Zitat ---SET Betreff = doc.GetItemValue("Subject")
--- Ende Zitat ---

... ist eh Nudelteig, da "Betreff" in deinem Fall als String deklariert wird. Hier ist aber Variant als Typ gefragt.

So wie ich dein Ausgangsposting interpretiere scheinen bei dir / euch die Basics über den Aufbau einer Notes Datenbank zu fehlen ( nicht böse gemeint ... )
Hänge hier am Besten einmal einen Screenshot deiner "Verzeichnisse" rein. Dann lässt sich der Status Quo besser beurteilen ...

Axel:

--- Zitat von: black_jack am 03.03.07 - 07:08:19 ---Ich habe in etwa sowas probiert:

DIM Betreff AS String
DIM doc      AS NotesDocument
..
..
SET Betreff = doc.GetItemValue("Subject")


--- Ende Zitat ---

Wenn das dein Quellcode ist, dann hätte es Fehlermeldungen bereits beim Speichern geben müssen.


--- Zitat ---SET may only be used on class instance assignments

--- Ende Zitat ---

Bei Ausführen hättest du einen Type mismatch bekommen müssen.

Poste mal den gesamten Code und führe dir mal die Designer-Hilfe zu Gemüte und hier insbesondere die Klassen NotesUIWorkspace, NotesUIDocument und NotesDocument. Da findest du einiges an Infos wie man an Feldinhalte rankommt.


Axel

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln