Autor Thema: Daten kopieren  (Gelesen 1335 mal)

Offline FlashDance

  • Frischling
  • *
  • Beiträge: 24
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Daten kopieren
« am: 09.07.03 - 09:01:38 »
Script Neuling hat da ein Problem:
Fülle in einer Tabelle diverse Felder. Über einen Button werden diese Felder wiederum in andere Felder übertragen.
Wird nun ein neuer Datensatz hinzugefügt soll dieser hinzugefügt werden und den bereits bestehenden nicht überschreiben.
Wie krieg ich das hin ?

Das ist der Script
Sub Click(Source As Button)
   Dim session As New NotesSession   
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument    
   Dim doc As NotesDocument
   Dim db As NotesDatabase
   
   Set db = session.CurrentDatabase
   Set uidoc = workspace.CurrentDocument    
   
   Set doc = uidoc.Document
   Set doc = New NotesDocument(db)
   'doc.Form = "Anlagebewegung"
   
   doc.PartNo_AB= uidoc.FieldGetText("PartNo")
   doc.Description_AB= uidoc.FieldGetText("Description")
   doc.Quantity_AB= uidoc.FieldGetText("Quantity")
   doc.Sender_KST_AB= uidoc.FieldGetText("Sender_KST")
   doc.Empfaenger_KST_AB= uidoc.FieldGetText("Empfaenger_KST")
   
   Call doc.MakeResponse( doc )
   Call doc.Save(True, False)  
   
   Call uidoc.Reload
   Call uidoc.FieldSetText("PartNo", "")
   Call uidoc.FieldSetText("Description", "" )
   Call uidoc.FieldSetText("Quantity","" )
   Call uidoc.FieldSetText( "Sender_KST", "" )
   Call uidoc.FieldSetText("Empfaenger_KST", "" )
   Call uidoc.Refresh  
   
   Call uidoc.Save
End Sub

 ??? ???
12 MailServer Notes 8.0.2, 12 ApplikationsServer Notes 8.0.2
1 WEB Server, 6000 Client 8.0.2
1200 Blackberry User

Offline Meff

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.095
  • Geschlecht: Männlich
  • Das Denken der Zukunft muß Kriege unmöglich machen
    • apparet id etiam caeco
Re:Daten kopieren
« Antwort #1 am: 09.07.03 - 09:08:21 »
Du musst einfach nur den Array ermitteln und den neuen Datensatz mit dem Wert +1 hinzufügen.

Meff


P.S.: Ich mache das leider nur immer im Backend. Muss mir kurz mal ein Frontendbeispiel basten.
"Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen."
Albert Einstein

Offline FlashDance

  • Frischling
  • *
  • Beiträge: 24
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re:Daten kopieren
« Antwort #2 am: 09.07.03 - 09:54:34 »
Danke für die Info. Habe leider mit Arrays noch nichts gemacht.
12 MailServer Notes 8.0.2, 12 ApplikationsServer Notes 8.0.2
1 WEB Server, 6000 Client 8.0.2
1200 Blackberry User

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Daten kopieren
« Antwort #3 am: 09.07.03 - 13:05:03 »
... ich habe auf meiner Homepage grundlegendes zur LS-Programmierung hinterlegt und erklärt...

http://www.anton-tauscher.de/LotusScript

... unter Sprachelemente findest du auch Arrays

ata
Grüßle Toni :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Daten kopieren
« Antwort #4 am: 15.07.03 - 21:42:59 »
Hi,

eine ziemlich verspätete Antwort, aber vielleicht kann ich helfen:

Zunächst einmal solltest Du Dir grundsätzlich Gedanken machen über Lotus Notes - Du kommst sicherlich gerade aus einer anderen Programmierecke und machst Dir so nur selbst Schwierigkeiten:
- Eine "Tabelle" in Notes ist ein rein grafisches Element in einer Maske. Notes ist Dokument-orientiert und kann bestenfalls mit üblen Tricks in "Spalten und Zeilen" aufgeteilt werden.
- Felder: Wenn Du mit LS arbeiten willst, vergißt Du besser auch das ganz fix. Ein "Feld" (wie im Designer für eine spezielle Maske definiert) kann durchaus aus mehreren "Items" bestehen. Ergo: Besser auf "Item"-Ebene denken - das senkt das Frust-Potential, wenn es ans "Eingemachte" geht ;-)  Hier reicht uns jetzt aber die Annahme "item = Feld" ;-)
- Datensatz: In Notes ein "Dokument". Während in RDMS pro Datensatz immer x "Felder" enthalten sind, muß dies in Notes überhaupt nicht so sein - es können mehr oder weniger oder ganz andere sein.

Das jetzt bitte nicht als altkluge Belehrung verstehen, sondern als ein Tip aus sehr langer Erfahrung über die "no-no"'s in Notes ;-)

Jetzt zu Deinem eigentlichen Problem:
Den gesandten Code kannst Du erstmal getrost vergessen - Du machst da ja ganz wilde Sachen, die sich gleich wieder gegenseitig aufheben. Im Kern geht es Dir ja aber, einer LISTE (= ein Notes-Feld, das ein eindimensionales Array darstellt) in Feld y aus Feld x einen Wert anzuhängen.
Und das geht in LS am einfachsten mit ArrayAppend:
ArrayAppend( v1 As Variant, v2 As Variant ) As Variant v3
Du weist v1 den Inhalt Deines Ziel-Items zu, v2 Deinem Quell-Item, und v3 wird dann wieder das ZielItem.

Beispiel für eine solche Aktion im gerade aktuellen NotesUIDocument (Field2 ist das Feld, das die gesammelten Ergebnisse aufnehmen soll, Feld1 liefert den anzuhängenden Wert):

Dim ws as New NotesUIWorkpace
Dim uidoc as NotesUIDocument

Set uidoc = ws.CurrentDocument
uidoc.Document.Field2 = Arrayappend (uidoc.Document.Field2, uidoc.Document.Field1 (0))
Call uidoc.Reload

Dies läßt sich natürlich genau so auch quer über Dokumente erledigen.

Wenn Du weitere Fragen hast, rühr' Dich einfach.

HTH,
Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz