Tabelle um Untertabelle ergänzen
Hallo zusammen, vor Zeiten haben wir eine Tabelle: Arbeitsblatt angelegt um Werte für eine aussagekräftige Statistik zu sammeln. Dabei ist der Inhalt von einer Berechnung (EPreis1*Menge1=GPreis1) auf drei Berechnungen erweitert worden, ich habe da also jetzt zusätzlich EPreis2*Menge2=GPreis2 und EPreis3*Menge32=GPreis3 verarbeitet und ziehe hieraus die Summe für statistische Zwecke. Das ist sowas wie die Statistik der Fakturierung.
Jetzt denken wir über den Schritt nach, die Tabelle Arbeitsblatt per .csv zur Fakturierung zu schicken. Dazu braucht es aber pro Berechnung einen Datensatz. An anderer Stelle ist das per Untertabelle gelöst.
Was würdet Ihr vorschlagen, und wie bekomme ich die historischen Daten in diese Untertabelle geschrieben?
Danke! Wolfgang
5 Antworten
-
Hallo Wolfgang, werden die drei Formeln alle berechnet oder jeweils immer nur eine davon? In letzterem Fall müsste es ja eine Bedingung geben, anhand derer entschieden wird, ob GPreis1, -2 oder -3 berechnet wird. Dann würde ich auch nur 1 Formelfeld nutzen und die entsprechende Bedingung schon zur Berechnung des Ergebnisses heranziehen. So nach diesem Schema:
GPreis := switch BEDINGUNG do case "A": EPreis1 * Menge1 case "B": EPreis2 * Menge2 case "C": EPreis3 * Menge3 default: 0 end
Dann gäbe es immer nur 1 Ergebnisfeld (GPreis), das ausgewertet werden müsste.
-
Hallo Wolfgang. Versuche mal folgendes: Lege die verknüpfte Untertabelle an, nenne sie "Statistik", lege drei Zahlenfelder an (GPreis1, GPreis2, GPreis2) und in der Tabelle Arbeitsblatt einen Button mit folgendem Code.
for i in select Arbeitsblatt do let fields := ["GPreis1", "GPreis2", "GPreis3"]; let values := [i.EPreis1 * i.Menge1, i.EPreis2 * i.Menge2, i.EPreis3 * i.Menge3]; let me := i.this; for j in range(3) do let new := (create Statistik); new.( set(this, item(fields, j), item(values, j)); Arbeitsblatt := me ) end end
Jetzt wird für jeden GPreis ein eigener Datensatz in der Untertabelle angelegt und das entsprechende Feld gefüllt. Ein Zahlenfeld deshalb, damit nicht zu viele Funktionsfelder benutzt werden (Rechenleistung) und die Werte fix geschrieben sind, nicht referenziert. Den Code im Button kann man später noch einschränken, dass nur die aktuellen Records herangezogen werden. Wenn es viele Datensätze sind, lohnt es sich, den Code in do as server...end einzubetten. Mirko
Content aside
- gesternZuletzt aktiv
- 5Antworten
- 30Ansichten
-
3
Folge bereits