Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Aladdin Sane am 24.05.05 - 13:00:23

Titel: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: Aladdin Sane am 24.05.05 - 13:00:23
Hallo,

ich habe zwei  Zahlenfelder in einer Maske.
Das eine Feld kann bearbeitet werden und das zweite Feld ist berechnet - dahinter steht einer
DBLookup-Formel.

Ein drittes berechnetes Zahlenfeld soll die Summe ermitteln.

Ich bekomme die Fehlermeldung "Falscher Datentyp für Operator oder @ Funktion"

Es stehen definitiv Zahlen in den Feldern und auch keine Leerstrings.

Wenn ich das zweite Feld bearbeitbar mache, klappt es!!!

DBLookup liefert nur einen Wert zurück und keine List...


Gruß
pASCAL
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: klaussal am 24.05.05 - 13:10:59
Hacken gemacht bei "Felder aktualisieren, etc...." ?
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: animate am 24.05.05 - 13:21:09
Formeln des berechneten und des Ergebnisfelds?
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: Aladdin Sane am 24.05.05 - 13:28:29

Felder automatisch aktualisieren ist angehakt.


Feld1: bearbeitbar (Zahl, Währung)

Feld2: berechnet (Zahl, Währung)
Formel: @DbLookup("":"NoCache";"":"";"Projektdaten";Name_Bauherr;"Umsatz")

Feld3: berechnet (Zahl, Währung)
Feld1 + Feld2
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: diali am 24.05.05 - 13:52:05
mach mal um den @DBLookup noch ein @Trim(@TextToNumber(@Text( ... ))).

Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: Aladdin Sane am 24.05.05 - 13:57:17
Ah!!!!

Ohne das @Trim gehts auch - also so:
@texttonumber(@Text(@DbLookup("":"NoCache";"":"";"Projektdaten";Name_Bauherr;"Umsatz")))

DAAAANKE!!!


pASCAL
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: diali am 24.05.05 - 13:59:18
d.h. der DBLookup hat Dir Text zurückgegeben.
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: Aladdin Sane am 24.05.05 - 14:03:05
Dann kann man das @text auch ruhig weglassen.
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: diali am 24.05.05 - 14:05:16
nein, falls Dir etwas anderes zurückgegeben wird, dann muss es erst in Text umghewandelt werden, damit der @TextToNumber nicht auf die Nase fällt.
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: Aladdin Sane am 24.05.05 - 14:23:40
ja okay.
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: koehlerbv am 24.05.05 - 17:20:06
Ab gesehen davon sollte @dbLookup nie ohne ErrorHandling verwendet werden - wenn Name_Bauherr nicht zu finden ist, bekommst Du auf jeden Fall keine Zahl, sondern eine Fehlermeldung vorgebraten:
Code
@If (@IsError (@DbLookup("":"NoCache";"":"";"Projektdaten";Name_Bauherr;"Umsatz"); 0; @DbLookup("":"NoCache";"":"";"Projektdaten";Name_Bauherr;"Umsatz"))

HTH,
Bernhard
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: Aladdin Sane am 25.05.05 - 12:48:36

Das leuchtet mir ein.
Wenn ich jedoch in einer Maske viele solcher DBLookups implementiere, stelle ich fest, dass die Laufzeit
deutlich darunter leidet, wenn beim wechslen in den EditMode diese Formeln berechnet werden.
-> Unser Server ist alt und langsam!

Mit dem Error-Handling würde die Berechnung doch doppelt so lange dauern.

Jetzt habe ich folgende Idee:
Wenn ich die Formel so ändere, dass das zweite DBLookup mit dem Cache arbeitet, so würde ich doch
Laufzeit einsparen, oder? Und sind die beiden Formeln unabhängig?


pASCAL

Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: diali am 25.05.05 - 13:30:02
falls Du mehrer Felder aus einem Dokument auslesen willst, kannst Du dies mit einem Lookup machen und einen String in der Form Wert1~wert2~...~Wertx auslesen und dann mit @Word wieder trennen.

Damit kannst Du eventuell mehrere Lookups einsparen.
Titel: Re: Berechnetes Zahlenfeld verursacht Fehler in Summe
Beitrag von: umi am 25.05.05 - 13:38:36
alternative:
Code
_wert:=@DbLookup("":"NoCache";"":"";"Projektdaten";Name_Bauherr;"Umsatz");
@If (@IsError (_wert); 0;_wert);