Domino 9 und frühere Versionen > ND8: Entwicklung
neue Dokumente erstellen
samWare:
Die einschlägigen Klassen lauten: "NotesViewEntryCollection" bzw. "NotesDocumentCollection". Einfach mal in der Hilfe die Klassen durchgucken :) Deine Vorgabe war ja ein Agent, muss das wirklich sein? Sowas lässt sich über die Events eig. viel einfacher lösen (bsp. QueryClose, wie das Dirk ja schon beschrieben hat). Wenn du über die Events gehst, müsstest du beim erstellen/öffnen des Dokuments alle Feldwerte einlesen. Ich würde das über die Globals machen. Einfach ein Array in das du alle Feldwerte einträgst.
Beispiel:
Dim array(0 to 2) As String
array(0) = doc.feld1(0)
array(1) = doc.feld2(0)
array(2) = doc.feld3(0)
...
Im QueryClose vergleichst du halt dann die Werte aus dem Array mit den aktuellen Feldwerten. Wenn sich dann was geändert hat, weißt du dass du dein Dokument oder sonstwas erstellen musst. Das kannst du dann auch gleich im Event machen. Ist gescheiter, da hat Dirk auf jeden recht. Jetzt wird mich Bernhard bestimmt wieder zersägen ;D aber vllt hilfts dir ja ein wenig :knuddel: :love:
koehlerbv:
@Dirk: Das mit dem Flag ist aber unnötig unter der Massgabe des Threaderstellers, dass neue und modifizierte Dokumente die Erstellung eines neuen Dokuments triggern sollen. Hierfür reicht ja im QueryClose (jo, ich würde das auch so machen) ein Vergleich mit
NotesUIDocument.ModifiedSinceSaved = True
bzw.
NotesUIDocument.IsNewDoc = True
@Sam:
Warum sollte ich Dich zersägen? Nur mit Deiner Kaprizierung immer auf das erste Element eines Arrays (und ein solches ist ein NotesItem) ist wenig vorausschauend. Heute ist noch ein skalarer Wert im Item abgelegt, und morgen wird es ein Array - und keiner denkt mehr an die Routine xy ...
Bernhard
samWare:
@Bernhard: Wie ließt du dann Werte aus Feldern aus? :-:
PS: war doch garnicht bös gemeint ;)
koehlerbv:
Ich weiss doch, dass Du das nicht böse gemeint hast, Sam ;)
Zu Deiner Frage, erläutert an Deinen beiden Beispielen:
newdoc.Feld1 = doc.FeldA
Und wenn man denn dazu überhaupt ein Array hernehmen will:
Dim array (0 to 2) As Variant
array (0) = doc.feld1
array (1) = doc.feld2
array (2) = doc.feld3
...
NotesItems (ausser RTIs) als skalare Werte zu verwursten, ist jedenfalls doof. Und das habe ich natürlich auch aus bitterer Erfahrung vor vielen Jahren lernen müssen ;)
HTH,
Bernhard
tooot:
Hey,
also es muss nicht unbedingt ein Agent sein. Ich habe erst in der Formelsprache gesucht aber da habe ich nichts gefunden um ein neues Dokument zu erstellen. Da war meine nächste Idee ein Agent.
Das es sowas wie QueryClose gibt wusste ich als absoluter Notes Beginner nicht...
Vielen Dank für eure Antworten werde mich morgen da mal einlesen und versuchen es damit zu machen.
Christoph
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln