Domino 9 und frühere Versionen > ND7: Entwicklung

@column

(1/6) > >>

Marie:
Hallo Leute,

ich habe eine Ansicht mit 5 Spalten. In einer Maske lese ich in 5 verschiedenen Feldern die Summen mit folgender Formel jeweils aus:

@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";4))

Jetzt möchte ich in einem weiteren Feld eine durchschnittsergebnis mit diesen werten berechnen.

Kann mir jemand helfen, da die felder sich irgendwie nicht berechnen lassen...

Vielen Dank schonmal

Peter Klett:
Meinst Du den Durchschnitt der 5 Summen?

FIELD Summe1 := @Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";1));
FIELD Summe2 := @Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";2));
FIELD Summe3 := @Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";3));
FIELD Summe4 := @Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";4));
FIELD Summe5 := @Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";5));
(Summe1 + Summe2 + Summe3 + Summe4 + Summe5) / 5

Die ersten 5 Zeilen kannst Du weglassen, wenn die schon in den Feldformeln enthalten sind.

koehlerbv:
Peter, meinst Du wirklich, dass jemand mit Notes-Programmierung beauftragt ist, der nicht mal in der Lage, das arithmetische Mittel zu berechnen. Ich weigere mich, das zu glauben.
Wenn ich allerdings

--- Zitat ---... sich irgendwie nicht berechnen lassen ...
--- Ende Zitat ---
lese (was ich schon einmal als vollkommen ungeeignet für Fragen in Foren angemahnt habe), dann ahne ich schlimmes.

Aber vielleicht geht es ja doch um mehr? Den Median, das geometrische Mittel oder das harmonische? Oder das quadratische Mittel?
Aber das kann nur Marie klären.

Peter, an Deinem Konstrukt noch eine Kritik im Sinne aller, die diesen Thread vielleicht irgendwann einmal entdecken: Es fehlt die Prüfung, ob die Bildung von Summe1 .. Summe5 überhaupt eine Zahl ergeben (kann ja auch in die Hose gehen, nicht wahr?). Der gute Programmierer schaut auch in einer Einbahnstrasse nach links *und* nach rechts, daher muss er hier auf @IsNumber prüfen. Gerade Anfängern sollte das helfen, bevor sie irgendwann einmal böse auf die Nase fallen.

@Marie: Stelle bitte durchdachte Fragen. Die korrekte Antwort auf Deine Frage

--- Zitat ---In einer Maske lese ich in 5 verschiedenen Feldern die Summen mit folgender Formel jeweils aus:
@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";4))
--- Ende Zitat ---
lautet:
@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";4))

Es ist nicht einzusehen, dass freiwillige Helfer wie Peter und viele andere (ich schliesse mich da ein!) erst lange nachdenken müssen, um Dein Problem bzw. das Deines Arbeitgebers zu ergründen.

Bernhard

PS: Und kommt nicht wieder mit sowas wie

--- Zitat von: Marie am 19.08.10 - 08:59:36 ---... Einige in diesem Forum reden ja immer nur und scheinen sich als Edle Ritter zu verstehen, die die Welt der Foren "säubern" wollen...
--- Ende Zitat ---
Wir wollen helfen, aber dazu braucht es auch jeweils den Gegenpart.

Peter Klett:
@Bernhard

Ich gebe Dir völlig Recht mit der Fehlerprüfung. In Forumeinträgen lasse ich die i.d.R. weg, damit die nicht von dem wesentlichen Inhalt ablenken. Eigentlich setze ich voraus, dass das dann jeder selber hinzufügt (ist vielleicht eine falsche Annahme).

Normalerweise mache ich das so:

_tmp := @MeineFormel;
@If (@IsError (_tmp); Alternativwert; _tmp)

@Marie

Falls Du den Durchschnitt der Spaltenwerte pro Dokument errechnen willst, solltest Du eine sechste Spalte einfügen, Wert 1. @Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";6)) ist dann die Anzahl Dokumente, damit müsstest Du dann alles ausrechnen können.

Aus Performancegründen würde ich diese Formel aber nicht in jedes Feld schreiben (sonst holst Du Dir fünf mal die Anzahl der Dokumente), sondern die Felder als berechnet beim Anlegen einstellen und nur eines der Felder berechnen und darin alle anderen Felder wie in meinem ersten Post setzen.

Ach ja, und das mit den edlen Rittern war wirklich nicht in Ordnung ...

Marie:
Hallo Peter,

vielen Dank schonmal für deine Antwort.

Also ich erkläre es die Sache nochmal anders, da ich schon etwas weiter gekommen bin.

Ich habe eine Spalte: Auftragssumme,
eine mit den gesamten Kosten
und eine mit den gesamten Stückzahlen
und eine mit den Listenpreisen.


Ich möchte jetzt im header der Datenbank eine eingefügte Maske haben, in den der Durchschnittspreis, die gesamt verkauften Anlagen, der durchschnittliche Rabatt und der durchschnittliche Deckungsbeitrag (C1) berechnet und angezeigt wird.

Durchschnittspreis ist klar: gesamt Summe / gesamt Stückzahl
Die gesamten verkauften Anlagen sind die Summen aus den Spalten 7 bis 12.
Diese errechnet ich mit folgender Formel:

_temp :=(@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";7)))+(@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";8)))+(@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";9)))+(@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";10))+(@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";11)))+(@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";12)))+(@Sum(@DbColumn("" : "NoCache"; ""; "auftragsdetails";13))));
@If (@IsError (_tmp); Alternativwert; _tmp);

Wenn ich jetzt einen neuen Auftrag anlege, dann zeigt das Feld, wenn ich Deine Fehlerüberprüfung mit in der Formel habe nichts an, und wenn ich diese rausnehme, dann bekomme ich eine Fehlermeldung:

Feld "Value_1" Die datentypen der zwei Vergleichsergebnisse sind nicht kompatibel.

Das gleiche passiert auch mit den Feldern, in denen ich den Durchschnittspreis, den C1 und den Rabatt berechne!

Ich bin sicher für Euch ist das Problem wahrscheinlich lächerlich, aber ich bin kein Experte und bastel mir hier nur meine Eigene Datenbank zusammen, wobei ich doch öfters an meine Grenzen stoße.
Dennoch möchte ich diese Problem auch lösen...

Vielen Dank schonmal...

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln