Werte an Liste anhängen

  • Hallo


    wer kann mir ein Tipp geben, wie kann man neue Werte an eine bestehende Datum-Liste anhängen ??
    so was ähnliches wie AppendToTextList , aber für Variant oder Date Datentype ???


    gibt es eine fertige Methode ???
    wenn nein wie kann men es sinvoll machen??
    vlt so was in die Richtung neue Liste machen, und dadurch die alte ersetzen ..????



    DANKE
    Gruss Nelli

  • In der Hilfe wird doch beim Stichwort "AppendToTextList" auf "AppendItemValue" verwiesen.


    Pro Frage reicht ein Fragezeichen völlig aus.


    Und zukünftig bitte das Themenpräfix beachten. Danke.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    oder wenn Du bestimmen willst, ob es vorn oder hinten eingefügt wird, nimmst Du ArrayAppend.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • RockWilder
    AppendItemValue würde ich nicht verwenden, denn das legt dann immer neue gleichnamige Items an


    skorpi


    Lies die aktuelle Liste aus dem Item aus und häng an diese ein neues Element an und weise dann das Ergebnis wieder dem Item zu.


    Also prinzipiell so:


    Code
    varValue = doc.ItemName
    varValue = ArrayAppend(varValue, NeuerWert)
    doc.ItemName = varValue
  • Ja, darauf falle ich immer wieder rein. Ich erinnere mich zwar dunkel, dass du mir das schon des Öfteren gesagt hast, aber dafür hab ich ja 2 gesunde Ohren und nix dazwischen :P
    Ok, statt AppenItemValue sollte man ReplaceItemValue nehmen, so sagt die Hilfe :rtfm:

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • danke für die tips,


    über AppendItemValue hatte ich auch schon veruscht, das hat ncihts angehängt..


    ReplaceItemValue auch versucht , dies macht ja nur neuen Wert in das Feld rein ..


    und alle Versuche mit ArrayAppend sind irgendwie gescheitert,
    wegen type mismatch, obwohl gleicher Datentyp ist..
    Ziel ist eigentlich auch die Werte an das Ende anzuhängen...

    • Offizieller Beitrag

    Wie hast Du es versucht?
    Mit
    doc.Feld = ArrayAppend(doc.Feld, "neuer Wert oder Array")
    funktioniert es bei mir.


    Gruß
    Dirk

  • Hi DIrk


    dies hatte ich getestet


    Dim uiws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim listF As Variant
    Dim item As NotesItem
    Dim dates2(1) As NotesDateTime
    Dim dates1 As NotesDateTime

    Set uidoc=uiws.CurrentDocument
    Set doc=uidoc.Document
    Set item =doc.getFirstItem("List")
    Set dates1=New NotesDateTime("21.06.2008 10:00:00")
    Set dates2(0)=item.GetValueDateTimeArray()
    Set dates1=Arrayappend(dates1,dates2(0))
    Call doc.ReplaceItemValue("liste",dates1)


    habe 100 varianten ausprobiert,wollte eigentlich eine Liste mit Werten aus Feld auslesen, dann eine neue Liste anhängen


    type mismatch
    mir ist schwirig zu verstehen wie das alles abläuft, da ich noch nicht wirklich dieses System verstehe, mit Documenten, items und Listen bearbeitung in LS :(


    Gruss Nelli

    • Offizieller Beitrag

    der Fehler kommt davon, dass Du versuchst ein DateTime-Objekt an ein Array übergibst. Es müsste in etwa so aussehen:

    Code
    Set uidoc=uiws.CurrentDocument
    Set doc=uidoc.Document
    Set dates1=New NotesDateTime("21.06.2008 10:00:00")
    doc.List = Arrayappend(doc.List, dates2(0).LSLocalTime)


    Gruß
    Dirk

  • edit:
    das mit arrayappend habe ich immer noch nicht sinvoll lösen können (hat ein mal mit vielen UMwegen un4 arrays und Schleifen geklappt, aber nciht os wie ich es haben will)


    hier also :
    Set item=doc.GetFirstItem("RepeatDates")
    rDates = item.GetValueDateTimeArray()

    Set dt(0)=New NotesDateTime("21.06.2008 10:00:00")
    Set rDates=Arrayappend(rDates, dt(0) )


    rDates ist als Variant dimensioniert, enthält NotesDateTime Werte aus RepeatDates Feld in CalendarDB..
    dt habe ich im Moment auch als ReDim dt(0)As Variant dimensioniert , vorher hatte ich auch NotesDateTime probiert , mit oder ohne (0).


    wie muss ich dieses dt dimensionieren ?
    so wie in deinem Bsp passt mir nicht so ganz, weil
    später soll, statt diesem fertigen Datum, ein neues (eventuell auch meherere Daten) ausgerechnet werden .
    dann kann das zum Feld "RepeatDates" hinzugefügt und im Document gespeichert werden


    es ist etwas verwirrend mit Datentypen und in Hilfe im Beispielen werden manche Arrays nicht wirklich , oder sogar gar nicht dimensioniert
    >Dim dt
    ..
    Set dt=New NotesDateTime("21.06.2008 10:00:00")
    Set rDates = Arrayappend (rDates, dt) <
    wenn ch es so mache habe ich trotzdem type Mismatch,
    im debugger steht [color=009900]dt[/color] als Variant
    sollte also eigentlich passen , beide Variant, beide mit Datum
    verstehe nichts

  • Warum das alles so kompliziert? Es reicht ein Einzeiler:


    docCurrent.RepeatDates = Arrayappend (docCurrent.RepeatDates, Datenumber (2008, 6, 21) + Timenumber (10, 0, 0))


    Statt Datenumber + Timenumber könnte man zwar auch Cdat verwenden, um einen Variant vom Type Date/Time zu erhalten, begibt sich dann aber sofort in die kreuzgefährliche Abhängigkeit von den Einstellungen des Betriebssystems ("01.10.2007" wird von einem OS mit deutschen Einstellungen anders interpretiert als von einem OS mit amerikanischen Einstellungen).


    Nelli, Du hättest zum EntwicklerCamp kommen sollen ;)


    HTH,
    Bernhard

  • ict currentDocument nicht so was, wenn man ein geöffnetes Document hat ?
    denn ich ändere das per agent.
    was macht man im EntwicklerCamp???
    wird dort LS beigebracht ???


    bis zum Status "Entwickler " bin ich noch ganz weit entfernt :):)
    das sind meine ersten versuche in LS


    Gruss Nelli

  • docCurrent ist die Variable in der das zu bearbeitende Dokument drinsteht.
    Unabhängig davon ob es im Frontend offen ist oder du es per Agent bearbeitest.


    Das EntwicklerCamp ist eine jährliche Veranstaltung, auf der es Vorträge und Hands-On Sessions zu vielen unterschiedlichen Entwicklungsthemen gibt.


    Das letzte war jetzt im Februar, das nächste ist dann wieder kommendes Jahr.


    Dort sind auch immer ne ganze Menge Leute hier aus dem Forum

  • Hallo Nelli,


    in Ergänzung zu Mathias (taurec) noch folgendes:
    "docCurrent" ist lediglich ein Name für ein Objekt aus der Notes-Klassenbibliothek. Du kömtest das auch "TanteAnnaIhrDokument" nennen. Ob Dein Agent nun im Front- oder Backend (und was Front- und Backend ist)rennt, das musst Du Dir erarbeiten. Die DesignerHelp ist Dein Freund.



    Ein paar Tipps:
    - Verwende niemals Code, den Du (noch) nicht verstehst - das kann katastrophal enden
    - Besorge Dir Literaur
    - Gehe beim Lernen strukturiert vor
    - Fordere Zeit für das Lernen (vom Arbeitgeber, wenn er bestimmte Leistungen erwartet, oder von Dir selbst ausserhalb der Arbeitszeit, wenn der Arbeitgeber nicht mag und Du selber weiterkommen willst).
    - Gehe Schritt für Schritt vor. Baue Dir eine Spiel- und Test-DB auf, in der Du auch "kleine" Routinen aufbauen und ausprobieren kannst.


    Und: Beantrage schon mal die Teilnahme am EntwicklerCamp 2009. Das ist wirklich DIE Veranstaltung für Entwickler im deutschsprachigen Raum, und wir können durchaus auch mal darüber nachdenken, dort einen LS-Kurs anzubieten. Das ist zumindest meine Meinung.


    Bernhard

  • das mit dem ls-kurs hatte ich auch schon mal angeregt. würde sogar anbieten den selbst zu halten. einfach mal ein paar grundlegende dinge für leute die meistens nur mit formelsprache arbeiten oder vielleicht als admins das entwicklercamp besuchen ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

    • Offizieller Beitrag

    den Gedanken hatte ich auch schon. Aber von 0 an in 1,5 Stunden mit Klassenmodell, Eigenschaften, Methoden, DatenTypen usw.?
    Halte ich für zu wenig Zeit. Alternativ habe ich auch schon über HandsOn 2x 1,5 Stunden nachgedacht ...


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • danke Euch .


    das mit Arrays hat geklappt, hängt neue Daten an :):)
    zwar ohne Append, aber wie auch immer, hauptsache funktioniert


    also , wenn ihr den Kurs anbietet, bin ich dabei :)
    hoffe , aber dass ich bis dahin keine "LS-0" bin :):) sondern wenigstens "LS-Einsteigerin"


    Gruss Nelli