Domino 9 und frühere Versionen > ND6: Entwicklung

[Notesscript] Vorhandenes Dokument öffnen, Werte übernehmen

(1/2) > >>

augustus:
Hallo liebe Notes-Gemeinde,

Ich will Felder von einem Dokument aus der "Usermaske" in ein anderes Dokument in der "Managermaske" übergeben. Als eindeutigen Schlüssel gebe ich die "projectnumber" an, denn sowohl bei der Managermaske als auch bei der Usermaske existieren Dokumente mit der gleichen "projectnumber".


--- Code: ---Sub Click(Source As Button)

Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim newdoc As NotesDocument


Dim collection As NotesDocumentCollection
Dim searchFormula As String   
Dim A As String


Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument 
Set doc = uidoc.Document



A = uidoc.FieldGetText("projectnumber")
searchFormula$ = |projectnumber = "| + A +|"|
Set db = session.CurrentDatabase
Set collection = db.Search(searchFormula$, Nothing,0)
Set newdoc = collection.GetFirstDocument()

newdoc.Form = "Managermaske"
newdoc.finished_1 = doc.finished_1
newdoc.finished_2 = doc.finished_2
newdoc.finished_3 = doc.finished_3
newdoc.finished_4 = doc.finished_4
newdoc.finished_5 = doc.finished_5

Set uidoc = workspace.EditDocument(False, newDoc)

End Sub

--- Ende Code ---

Ich habe es jetzt so weit geschafft, dass nach Klick auf dem Button die "Managermaske" im Bearbeitungsmodus geöffnet wird und das mit Hilfe von der "projectnumber" gesuchte Dokument angezeigt wird. Alle Werte sind in diesem Dokument vorhanden sowohl die Alten wie auch die von der "Usermaske" übergebenen Werte, sprich:


* finished_1
* finished_2
* finished_3
* finished_4
* finished_5
Nun zu meinem Problem:

Ich will das angezeigte Dokument mit den alten und neuen Werten speichern.
Das Dokument aus dem die Werte übergeben worden sind, soll auch gespeichert werden.
Beide Dokumente sollen anschließend geschlossen werden.

Das ist doch einfach oder?

Ich habe gedacht ich könnte diese Aufgabe aleine bewältigen, aber leider habe ich das nicht geschafft.
Ich kenne mich einfach zu wenig mit LS aus. Ich habe nur geschafft, dass das erstellte Dokument zusätzlich in der "Managermaske" gespeichert wird, ALSO DOPPELT(: EIN DOKUMENT MIT DEN ALTEN UND EIN DOKUMENT MIT DEN ALTEN UND DEN NEUEN WERTEN) und das dass Dokuent in der "Usermaske", also das Dokument aus dem die Werte kamen, gelöscht wurde.

Aus diesem Grund bitte ich euch um Hilfe, ich denke für euch erfahrene User wird das wenig Denkarbeit und noch weniger Code sein...ZUMINDEST HOFFE ICH DAS!!

Viele Grüße,

Augustus

DAU-in:
wenn ich deinen Code richtig verstehe, erzeugst du kein neues Dokument, sondern bearbeitest doch einfach nur das alte????

du nimmst das alte Dok, liest die Projektnummer aus, suchst das dazugehörige Dok, definierst das als neues Dok (ist meiner Meinung nach das alte) und setzt 6 Felder neu.

Wenn das andere Dokument nicht schon vorhanden ist und zufällig an erster Position der collection steht, drehst du dich da im Kreis. Ich würde dann wenigstens noch auf die Maske abfragen.

Grüsse

Dau-in




augustus:
Hallo DAU-in,


--- Zitat ---du nimmst das alte Dok, liest die Projektnummer aus, suchst das dazugehörige Dok, definierst das als neues Dok (ist meiner Meinung nach das alte) und setzt 6 Felder neu.
--- Ende Zitat ---

ja genau, ich hole dann das dazugehörige doc (mit der selben "projectnumber") und setzte die neuen werte in das doc.

nun will ich einfach nur noch das alte dok mit den 5 neuen werten abspeichern und schließen.
das dok aus dem die werte kamen, auch einfach nur abspeichern und schließen.

Nur ich kenne mich überhaupt garnicht gut in LS aus und ich bekomm das einfach nicht hin.
Kann mir jm. mit dem code behilflich sein.

Deinen Lösungsansatz kann ich leider auch nicht in LS umsetzen.

Tut mir wirklich Leid, dass ihr euch mit so einem Anfänger und seinen Lapalien rumschlagen müsst, aber das ganze ist mir wirklich wichtig, sehr wichtig sogar.

Vielen Dank für deine Antwort,

Augustus

DAU-in:

--- Zitat von: augustus am 21.05.07 - 19:11:06 ---

ja genau, ich hole dann das dazugehörige doc (mit der selben "projectnumber") und setzte die neuen werte in das doc.

nun will ich einfach nur noch das alte dok mit den 5 neuen werten abspeichern und schließen.
das dok aus dem die werte kamen, auch einfach nur abspeichern und schließen.

eben, du holst das Dok mit  der gleichen Projektnummer. wie stellst du sicher, dass es nicht dasselbe ist?



du hast dann also 2 alte Dokumente.
warum willst du das alte, aus dem nur ausgelesen wird, speichern?





--- Ende Zitat ---

Axel:

--- Zitat von: augustus am 21.05.07 - 16:52:46 ---Ich will Felder von einem Dokument aus der "Usermaske" in ein anderes Dokument in der "Managermaske" übergeben. Als eindeutigen Schlüssel gebe ich die "projectnumber" an, denn sowohl bei der Managermaske als auch bei der Usermaske existieren Dokumente mit der gleichen "projectnumber".

--- Ende Zitat ---

Also so ganz verstehe ich das noch nicht. Was für Daten sollen von wo nach wo. Wieviel Dokumente gibt es denn von jeder Sorte. Wenn ich das so lese, kann die Projektnummer kein eindeutiger Schlüssel sein. Es ist höchstens die Verbindung zwischen User- und Managerdokumente. Du schreibst ja, es gibt bei der Managermaske und der Usermaske Dokumente mit der gleichen Projektnummer. Dh. es gibt bei jeder Maske mehrere Dokumente mit der gleichen Nummer.

Versuch noch mal etwas genauer das Ganze zu beschreiben.

Axel

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln