Felder per Script / Array ansprechen

  • Hallo zusammen,
    ich versuche mich grad in Notes und möchte als einstieg eine DB zur Fahrtkostenabrechnung erstellen.
    Ich habe u. a. folgende Felder:
    Kilometer
    Pauschale = 0,3
    Betrag = Kilometer * Pauschale


    Nun möchte ich das die Tabelle nicht direkt 100 Einträge untereinander enthält, sondern wenn eine Zeile ausgefüllt wurde, das eine neue kommt.
    Geht das? und wenn ja, wie.


    Desweiteren muss auch ein Endbetrag errechnet werden, wie mache ich das am besten?
    Klar mit nem Array, aber wie kann ich damit auf die Felder zugreifen???


    Hoffe ihr könnt das Problem nachvollziehen,
    bin für jede Hilfe Dankbar.


    Gruß Marcel

  • Hi Marci,


    ist jetzt nur eine spontane Idee..


    1. Ein Feld in dem die Kilometer einetragen werden, dazu evtl ein verstecktes Feld in dem der Betrag berechnet wird.


    2. Eine Schaltfläche, beim ausführen werden die Daten:


    a) In ein Feld (Größe dynamisch und Feld evtl. berechnet) untereinander geschrieben und


    b) in 2 weiteren Feldern die Gesamt-KM und Gesamt-Betrag über Wert = Wert + Neuer Wert berechnet.


    gruß
    rubbeldidup

  • Hallo, und nen guten morgen,
    ich glaube das mein erster Thread etwas undeutlich und zu kompliziert war, ich versuch's einfacher *g*


    Also ich würde gerne auf meiner Maske nur ein Feld mit KM haben, wenn dieses Feld ausgefüllt wird soll ein neues automatisch dadrunter erstellt werden (während der Laufzeit) es könnte dann sein das evtl max. 2 Felder auf der Maske sind, aber es könnten auch hunderte sein, und die sollten automatisch angelegt werden, nichtg von mir von hand.


    zum 2ten Problem, das wäre die zusammenrechnung. unter VisualBasic etc. kann ich mit Index-Werten Arbeiten z.b. KM(0) KM(1) ...
    Dann kann ich mit einer For-Schleife Problemlos x Werte zusammenaddieren:
    for i = 0 to 100
    wert = wert + KM(i)
    next i
    das möchte ich auch mit meiner maske machen, dazu müsste ich
    1. Wissen, wie ich ein Feld per Script "aufnehme" denn im Script bereich ist KM nicht gleich der Wert der im Feld KM auf der Maske eingetragen ist.
    2. Ob das mit dem Index so machbar ist.


    Gruß Marcel

  • Moin Marcel,


    Für die Felder könntest Du evtl. die "appendItemValue method" benutzen. Bedenke aber bitte das Du für jedes Feld einen Feldnamen und dementsprechende Variablen vergeben mußt und dies das Dokument und Maske unnötig aufbläht. Außerdem brauch jedes Feld ja auch einen gewissen Platz in der Maske welches dann schnell unübersichtlich wird.


    Bei dem Array ist es genauso da ja bei jedem neuen Entrag die Felder in das Array eingelesen werden müssen um den neue Betrag addieren zu können.


    Ich verstehe denn Sinn hinter den ganzen Feldern nicht, sind es optische Gründe ?


    gruß
    rubbeldidup

  • Hallo rubbeldidup,


    Also im Endeffekt soll nachher eine Tabelle entstehen, wo nachvollziehbar ist, wann Person xy wieviel KM wohin gefahren ist, das ganze soll dann über ein Quartal aufgelistet und berechnet werden, mit entsprechender endsumme.


    Bsp:
    Datum | Ziel | KM | Betrag |
    12.12 |Essen | 20 | 6,00 |
    13.12 |Köln | 33 | 9,90 |
    15.12 |Bonn | 24 | 7,20 |


    -----------------------------
    Summe: 23,10


    Die Einträge sollen an verschiedenen Tagen gemacht werden können und das Ergebnis wird immer aktualisiert


    Gruß Marcel

  • Hi, dann würde ich das über eine Eingaberegion und dem bereits oben erwähnten Feld mit einem Sortier-Algorythmus (Kann ich Dir gerne senden) machen. Eigentlich schon wie im ersten Post beschrieben.


    Es gibt wohl auch die Möglichkeit, eine dyn. Tabelle erstellen zu können, habe es aber selbst noch nicht gemacht.


    gruß
    rubbeldidup

  • Aha, Eingaberegion???

    Erstma Danke, für beide Postings (auch dem String to Number-Posting)


    Leider habe ich noch nicht soviel ahnung von der Umgebung, da sagt mir eingaberegion gar nix, komme quasi von JavaScript und VisualBasic hierher, was mir das programmieren erleichtert, aber leider nicht die Umgebung *g*


    Aber den Algorythmus nehme ich gerne an.


    Kannst du mir auch evtl. sagen wie ich in ein Item-Feld was schreiben kann?? Also mit getfirstitem(NAME) bekomme ich ja den inhalt, aber wie kann ich irgendwo reinschreiben? finde in meinem englischen Buch leider nix.


    Nochmal besten Dank


    Gruß


    MS

  • Ups, das mit der Eingaberegion war mehr optisch gemeint, sorry falls es Missverständlich war.


    Reinschreiben z.B. so


    Call uidoc.GotoField( "FELD" )
    Call uidoc.FieldSetText _
    ( "FELD", VARIABLE )


    Ich nutze sehr oft die Noteseigene Hilfe, da dort auch viele Beispiele vorhanden sind, z.B. das:


    Dim doc As NotesDocument
    Dim item As NotesItem
    '...set value of doc...
    Set item = doc.ReplaceItemValue( "EstimatedCost", 122 )
    Call doc.Save( True, True )


    Ach ja, Du hast Post :)


    gruß
    rubbeldidup

  • Hallo !


    Zuerst brauchst Du zwei Forms, die eine Form hat die Felder [MainDocumentID],[Datum],[Ziel],[KM] und [Betrag].
    Im zweiten Form erstellst Du eine embededd View welche durch die Einträge mit dem ersten Form darstellt. Danach noch ein [Hinzufügen] Button erstellen mit dem das erste Form aufgerufen wird. Im ersten Dokument muss dann nur noch das Feld mit gleichem Namen [MainDocumentID] existieren und auf Computed when Composed eingestellt werden. Dies ist jedoch nur nötig wenn mehrere Dokumente mit der zweiten Form erstellt werden sollen (wovon ich ausgehe :). Der Embedded View sollte dann noch mit dem Attribut ShowSingleCategory auf die gewünschte MainDocumentID zeigen.


    Hier noch ein kleines Beispiel für den Button [Hinzufügen] :


    Sub Click(Source As Button)
    Dim workspace As New NotesUIWorkspace
    Call workspace.viewrefresh()
    Call workspace.DialogBox( "formTravel",True, True, True, True, True, False, "Reise Eintrag",,True,True )
    Call workspace.viewrefresh()
    Call workspace.ReloadWindow( )
    End Sub




    I hope this helps ;)


    Gruss
    Marcel (Zedi)