Domino 9 und frühere Versionen > ND6: Entwicklung
Beim einlesen von CSV-Datei Zeilen addieren
john doh:
--- Zitat von: MadMetzger am 08.07.08 - 11:09:32 ---Erzeuge dir ein temporäres Dokument in dessen Kontext das Evaluate laufen kann. Da kannst du dann dein Field-Array als Item hinterlegen und Schwupps sollte es funken.
--- Ende Zitat ---
Ich weiß ungefähr, was Du meinst. Nur, ich hab sehr wenig Erfahrung in Script und weiß nicht wie ich das einbauen soll.
Tut mir Leid.
Matthias
MadMetzger:
Für das temporäre Dokument:
Schau dir mal in der Designer-Help den Eintrag zu NotesDatabase und insbesondere CreateDocument an. Wenn du ein erzeugtes NotesDocument nicht speicherst verschwindet es auch von alleine wieder.
Für das Zuweisen:
Interessant ist da wahrscheinlich der Artikel in der Hilfe zu NotesDocument. Dort werden Wege gezeigt, wie man einem NotesDocument Items hinzufügen kann.
Driri:
--- Zitat ---If Instr (inputstr$,"43409699") Then
If Instr (inputstr$,"Rechnungsbetrag") Then
fieldarray = Replace(Right(inputstr$,10) ,";","")
rest = Evaluate("@sum(fieldarray)")
Call CreateDocument(db, rest)
End If
End If
--- Ende Zitat ---
Mit "fieldarray = ..." schießt Du in jedem Durchlauf einen anderen Stringwert in fieldarray. Du erhälst somit also nur einen Wert und nicht alle relevanten.
Das Evaluate dürfte immer 0 ergeben, weil die Formel @Sum versucht, aus einem Feld "fieldarray" die Summe zu bilden.
Was Du doch eigentlich erreichen möchtest, ist doch eine Summierung aller Beträge aus den Zeilen, die den beiden Bedingungen aus den If-Abfragen entsprechen, oder ?
Dann reicht es doch, wenn Du die Beträge jeweils aus dem String herausoperierst (möglichst noch mit Prüfung, ob es eine Zahl ist) und diese Einzelbeträge dann in einer Double-Variable aufsummierst.
In Auszügen so etwa :
--- Zitat ---Dim ergebnis As Double
...
If Instr (inputstr$,"43409699") Then
If Instr (inputstr$,"Rechnungsbetrag") Then
fieldarray = Replace(Right(inputstr$,10) ,";","")
If IsNumeric(fieldarray) Then
ergebnis = ergebnis + CDbl(fieldarray)
Else
...
End If
...
End If
End If
--- Ende Zitat ---
Das Replace wird vermutlich nicht ausreichen, um sicherzustellen, daß Du nur eine Zahl aus dem String extrahierst. Da mußt Du noch Nachbearbeitung leisten.
Wenn der Betrag immer an der letzten Stelle steht, wäre es das Einfachste, den String per Split in einen Array zu zerlegen und das letzte Element des Array auszulesen (Stichwort UBound).
Diesen Wert kannst Du dann noch prüfen (z.B. € enthalten, IsNumeric, etc.) und erst dann summieren.
john doh:
--- Zitat von: Driri am 08.07.08 - 12:55:49 ---Was Du doch eigentlich erreichen möchtest, ist doch eine Summierung aller Beträge aus den Zeilen, die den beiden Bedingungen aus den If-Abfragen entsprechen, oder ?
--- Ende Zitat ---
Ja, genau so!
Das Ergebnis, mit Deiner Ergänzung, sieht so aus
79,45
80,19
Er soll mir aber nur ein Document erzeugen, mit der Summe der Beträge.
Matthias
Driri:
Mein Code oben "repariert" auch nur deinen geposteten Code. Der letzte Absatz in meinem Posting weist Dir den Weg.
Edit : Das CreateDocument mußt Du nach der Do-Schleife einbauen. Innerhalb der Schleife kann sich der Wert ja ändern und somit würde für jeden Zwischenwert ein Ergebnisdokument erzeugt.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln