Autor Thema: [Notesscript] Vorhandenes Dokument öffnen, Werte übernehmen  (Gelesen 3428 mal)

Offline augustus

  • Frischling
  • *
  • Beiträge: 11
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

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
« Letzte Änderung: 22.05.07 - 08:14:05 von augustus »

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
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




mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline augustus

  • Frischling
  • *
  • Beiträge: 11
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.

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

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -


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?




mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
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".

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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline augustus

  • Frischling
  • *
  • Beiträge: 11
@DAU-in

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

weil das alte dokument, aus dem ausgelesen wird in einer anderen Maske ist. Dieses Dokument ist für die User der Datenbank, "Usermaske"
das andere Dokument  in dem die Werte reingeschrieben werden ist für die Manager der Datenbank, "Managermaske"

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

das eine dok ist in der Usermaske, das andere in der Managermaske.
Die "projectnumber" ist in jeder Ansicht ein eindeutiger Schlüssel.

@Axel

Die Projectnumber kommt in jeder Maske nur einmal vor, ist also ein eindeutiger Schlüssel.
Jede Projectnumber die in der "Managermaske" vorhanden ist, existiert auch in der "Usermaske" und umgekehrt.

 
Tut mir wirklich Leid, ich habe das ganze wirklich ein bischen verwirrend erklärt, aber ich sitze schon den ganzen Tag an diesem Problem und komme nicht weiter, ich glaub' Lotusnotes hat mir mein Verständis für die deutsche Gramatik geklaut. ::)

Vielen Dank, für eure Bemühungen.


Augustus

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Ich fürchte du verstehst ganz grundsätzliche Dinge nicht.

Masken sind Instrumente zur Anzeige von Daten, sie können keine Dokumente enthalten!

Wenn du das alte Dokument nicht veränderst, sondern nur ausliest, brauchst du es nicht abzuspeichern.

Kann es sein, dass du nur ein Dokument hast, das du für unterchiedliche User unterschiedlich anzeigen willst?

Dass du nicht weiterkommst, liegt (noch) nicht an deinen Programmierkenntnissen, sondern m. E. darin, dass dir gar nicht klar ist, was du machen willst, und auch die Bedeutung der verschiedenen Designelemente nicht kennst.
Bevor du nicht weisst , was du machen willst, hat es auch gar keinen Sinn.

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline augustus

  • Frischling
  • *
  • Beiträge: 11
Hallo DAU-in

Zitat
Masken sind Instrumente zur Anzeige von Daten, sie können keine Dokumente enthalten!

Ich weiss, aber ich denke jeder weiss, was damit gemeint ist. Ansichten können Dokumente enthalten. Ich habe auch 2 Ansichten für 2 Maske.

Zitat
Wenn du das alte Dokument nicht veränderst, sondern nur ausliest, brauchst du es nicht abzuspeichern.

Die Werte die ich übergebe, verändere ich davor. Dann klicke ich den Button der die Aktion startet.

Zitat
Kann es sein, dass du nur ein Dokument hast, das du für unterchiedliche User unterschiedlich anzeigen willst?

Nein, ganz bestimmt nicht. Schau dir doch den geposteten Code an.


Ich will nur wissen wie ich die Dokumente abspeichern kann.

Nur das, mehr nicht. der Code existiert doch schon und funktioniert ja auch soweit wie beschrieben.

Bitte, kann mir jemand sagen wie ich beide Dokumente abspeichern kann?

Danke für dein kopfzerbrechen.

Augustus


Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
sieh dir in der Designer-Hilfe die Methode 'save' der Klasse Notesdocument an.


Und ich habe mir deinen Code angeschaut. Gerade das hat ja heftige Zweifel in mir aufkommen lassen ..






mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Mir geht es wie Axel ("Was soll das eigentlich werden?"), und ein kurzer Blick auf den Code bestätigen die Zweifel der DAU-in. Zudem fehlt mir der Zusammenhang in Bezug auf "Managermaske" und "Usermaske" - lt. Code spielen diese überhaupt keine Rolle (ausser, dass mit der "Managermaske" ein Dokument im Frontend geöffnet wird.

Fazit: So kann das nichts werden. Die klare Ansage, was überhaupt erreicht werden soll, fehlt, dazu werden massive Defizite in LS eingestanden (was ja nun nicht beschämend sein muss, aber in Verbindung mit der Aufgabenstellung ...).

Ergo: Mal auf, was Du machen möchtest, und zwar so, dass es andere verstehen können (das ist sowieso eine Grundvoraussetzung, um ein Problem zu lösen - momentan siehst Du ja offensichtlich schon mal selber nicht durch). Und dann werden wir ganz bestimmt helfen können. Ob dann aber wieder Deine LS-Kenntnisse ausreichen, sei dahingestellt.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz