Statistik und InterRun
Statistik und InterRun
Hallo,
nun läuft EuroKass bei mir sehr gut, allerdings hab ich ein Problem mit der Statistik (oder wahrscheinlich eher mit der Programmierung in InterRun). Ich möchte gern meine Konten, zum Beispiel Lebensmittel, für den aktuellen Monat, daneben für den Vormonat und daneben für das laufende Jahr bisher auswerfen. Die Eingrenzung für den laufenden Monat bekomme ich ja noch hin - habe ich mit zwei Datumsfeldern gelöst. Was mache ich mit dem Rest (die Funktion AddMonth könnte mir helfen, aber da wirft er mir ständig Fehler aus).
Eine Frage wäre noch, wie ich mir Monats-Mittelwerte (zum Beispiel den durchschnitt der monatlichen Lebensmittelkosten) auswerfen lassen kann.
Gruß
Albi
nun läuft EuroKass bei mir sehr gut, allerdings hab ich ein Problem mit der Statistik (oder wahrscheinlich eher mit der Programmierung in InterRun). Ich möchte gern meine Konten, zum Beispiel Lebensmittel, für den aktuellen Monat, daneben für den Vormonat und daneben für das laufende Jahr bisher auswerfen. Die Eingrenzung für den laufenden Monat bekomme ich ja noch hin - habe ich mit zwei Datumsfeldern gelöst. Was mache ich mit dem Rest (die Funktion AddMonth könnte mir helfen, aber da wirft er mir ständig Fehler aus).
Eine Frage wäre noch, wie ich mir Monats-Mittelwerte (zum Beispiel den durchschnitt der monatlichen Lebensmittelkosten) auswerfen lassen kann.
Gruß
Albi
- Team Schauries
- Site Admin
- Beiträge: 1058
- Registriert: Mo, 17 Jan, 2005 20:25
- Wohnort: Essen
Hallo Albi,
schön, dass EuroKass wieder läuft!
Meintest Du Statistik oder Bericht? Statistiken können per InterRun nicht modifiziert werden...
Die Funktion AddMonth erwartet zwei Parameter: zum einen Bezugsdatum und zum anderen die Anzahl Monate, um die das Ergebnis inkrementiert bzw. dekrementiert wird.
Ein Beispiel:
Alle Lebensmittelkosten des letzten Monats
Waehrungsfeld1.Value = ManualFilter(BoM(AddMonth(Date,-1)),EoM(AddMonth(Date,-1)),"",0.00,0.00,"","und","","Lebensmittel","und","")
Wenn man die Klammern von innen nach außen untersucht, liefert Date das heutige Datum, AddMonth(Date,-1) liefert den vorherigen Monat und BoM den Anfang des letzten Monats.
Wegen der Durchschnittswerte schau mal hier...
http://www.eurokass.de/phpBB2/viewtopic ... between%2A
Gruß,
Dirk Schauries
schön, dass EuroKass wieder läuft!
Meintest Du Statistik oder Bericht? Statistiken können per InterRun nicht modifiziert werden...
Die Funktion AddMonth erwartet zwei Parameter: zum einen Bezugsdatum und zum anderen die Anzahl Monate, um die das Ergebnis inkrementiert bzw. dekrementiert wird.
Ein Beispiel:
Alle Lebensmittelkosten des letzten Monats
Waehrungsfeld1.Value = ManualFilter(BoM(AddMonth(Date,-1)),EoM(AddMonth(Date,-1)),"",0.00,0.00,"","und","","Lebensmittel","und","")
Wenn man die Klammern von innen nach außen untersucht, liefert Date das heutige Datum, AddMonth(Date,-1) liefert den vorherigen Monat und BoM den Anfang des letzten Monats.
Wegen der Durchschnittswerte schau mal hier...
http://www.eurokass.de/phpBB2/viewtopic ... between%2A
Gruß,
Dirk Schauries
Team Schauries
Hallo zusammen,
Danke für die schnelle Antwort. Das funktioniert phantastisch. Eine Frage hätte ich da noch: Ist es möglich Berichte untereinander zu verknüpfen - also z. B. auf ein Währungsfeld eines anderen Berichtes zu verweisen oder dies bei der Addition mit einzubeziehen? Das erspart ja dann doch eine ganze Menge "Klickerei".
Viele Grüße
Albi

Danke für die schnelle Antwort. Das funktioniert phantastisch. Eine Frage hätte ich da noch: Ist es möglich Berichte untereinander zu verknüpfen - also z. B. auf ein Währungsfeld eines anderen Berichtes zu verweisen oder dies bei der Addition mit einzubeziehen? Das erspart ja dann doch eine ganze Menge "Klickerei".
Viele Grüße
Albi

- Team Schauries
- Site Admin
- Beiträge: 1058
- Registriert: Mo, 17 Jan, 2005 20:25
- Wohnort: Essen
Hallo Albi,
Ja, das geht. Vorraussetzung: der Bericht muss geöffnet sein.
Hier ein Beispiel:
Procedure Schalter2_OnClick
if Frame("Bericht6").Showing = false
Frame("Bericht6").Show
Frame.Show
EndIf
Eingabefeld2.Text = FloatToStr(Frame("Bericht6").WaehrungsFeld1.Value)
EndProcedure
Erläuterung:
if Frame("Bericht6").Showing = false
ermittelt, ob der Bericht6 geöffnet ist.
Frame("Bericht6").Show
Öffnet den Bericht und setzt den Fokus auf diesen.
Frame.Show
Wechselt den Fokus wieder auf den aktuellen Bericht.
Eingabefeld2.Text = FloatToStr(Frame("Bericht6").WaehrungsFeld1.Value)
Füllt das Textfeld Eingabefeld2 mit dem Zahlenwert von WaehrungsFeld1 aus Bericht6.
Gruß,
Dirk Schauries
Ja, das geht. Vorraussetzung: der Bericht muss geöffnet sein.
Hier ein Beispiel:
Procedure Schalter2_OnClick
if Frame("Bericht6").Showing = false
Frame("Bericht6").Show
Frame.Show
EndIf
Eingabefeld2.Text = FloatToStr(Frame("Bericht6").WaehrungsFeld1.Value)
EndProcedure
Erläuterung:
if Frame("Bericht6").Showing = false
ermittelt, ob der Bericht6 geöffnet ist.
Frame("Bericht6").Show
Öffnet den Bericht und setzt den Fokus auf diesen.
Frame.Show
Wechselt den Fokus wieder auf den aktuellen Bericht.
Eingabefeld2.Text = FloatToStr(Frame("Bericht6").WaehrungsFeld1.Value)
Füllt das Textfeld Eingabefeld2 mit dem Zahlenwert von WaehrungsFeld1 aus Bericht6.
Gruß,
Dirk Schauries
Team Schauries
Hallo zusammen,
auch das funktio0niert sehr gut. Nun hab ich ein neues Problem in diesem Zusammenhang: Die Verknüpfung der Berichte ist nur dann sinnvoll, wenn die Daten vergleichbar sind, ihnen u. a. exakt der gleiche Zeitraum zu Grunde liegt. Ich möchte deshalb erreichen, dass durch die Schaltfläche nicht nur der verknüpfte Bericht geöffnet und die Zahl aus dem entsprechenden Währungsfeld geholt wird, sonder auch, dass zuvor das Datumvom Ausgangsbericht übernommen und der verknüpfte Bericht aktualisiert wird. Geht das und wenn ja, wie?
Viele Grüße und vielen Dank im voraus!
Albi
auch das funktio0niert sehr gut. Nun hab ich ein neues Problem in diesem Zusammenhang: Die Verknüpfung der Berichte ist nur dann sinnvoll, wenn die Daten vergleichbar sind, ihnen u. a. exakt der gleiche Zeitraum zu Grunde liegt. Ich möchte deshalb erreichen, dass durch die Schaltfläche nicht nur der verknüpfte Bericht geöffnet und die Zahl aus dem entsprechenden Währungsfeld geholt wird, sonder auch, dass zuvor das Datumvom Ausgangsbericht übernommen und der verknüpfte Bericht aktualisiert wird. Geht das und wenn ja, wie?
Viele Grüße und vielen Dank im voraus!

Albi
- Team Schauries
- Site Admin
- Beiträge: 1058
- Registriert: Mo, 17 Jan, 2005 20:25
- Wohnort: Essen
Hallo Albi,
da sehe ich keinen besonderen Unterschied zum oben Besprochenen.
Nehme doch einfach einen administrativen Hauptbericht, der alle Parameter in Form von Auswahlfeldern bereitstellt und übergebe diese als Funktionsparameter den Rechenfunktionen der Unterberichte.
Wird die Schreibarbeit insgesamt sehr umfangreich, kann man auch auf Modul-Variablen ausweichen: Öffne das Programm-Center und klicke dort auf „Modul“. Erstelle zwei Variablen wie
var gVon : String
var gBis : String
und im OnChange-Ereignis eines Datumsfeldes im Hauptbericht schreibst Du:
Procedure Datumsfeld1_OnChange
gVon = Datumsfeld1.Date
Frame(„Unterbericht“).Refresh
EndProcedure
Im Unterbericht kann jetzt die Variable gVon (g für Global) an allen Stellen eingesetzt werden.
Das ist jetzt etwas sehr knapp und auch nicht der beste Stil, zeigt aber, dass über Modulvariablen sehr bequem kommuniziert werden kann.
Kommst Du damit weiter?
Gruß,
Dirk Schauries
da sehe ich keinen besonderen Unterschied zum oben Besprochenen.
Nehme doch einfach einen administrativen Hauptbericht, der alle Parameter in Form von Auswahlfeldern bereitstellt und übergebe diese als Funktionsparameter den Rechenfunktionen der Unterberichte.
Wird die Schreibarbeit insgesamt sehr umfangreich, kann man auch auf Modul-Variablen ausweichen: Öffne das Programm-Center und klicke dort auf „Modul“. Erstelle zwei Variablen wie
var gVon : String
var gBis : String
und im OnChange-Ereignis eines Datumsfeldes im Hauptbericht schreibst Du:
Procedure Datumsfeld1_OnChange
gVon = Datumsfeld1.Date
Frame(„Unterbericht“).Refresh
EndProcedure
Im Unterbericht kann jetzt die Variable gVon (g für Global) an allen Stellen eingesetzt werden.
Das ist jetzt etwas sehr knapp und auch nicht der beste Stil, zeigt aber, dass über Modulvariablen sehr bequem kommuniziert werden kann.
Kommst Du damit weiter?
Gruß,
Dirk Schauries
Team Schauries
Hallo erstmal,
also vielen Dank für die Antwort. Ich dachte ja auch, dass es eigentlich gehen müßte. Nun hab ich mit der Syntax bei Interrun noch so meine Probleme, da ich sonst nur "Anwender" bin. Der Vorschlag mit den Variablen klingt noch interessanter - das werd ich als erstes mal probieren.
Im schlimmsten Fall melde ich mich wieder.
Viele Grüße
Albi
also vielen Dank für die Antwort. Ich dachte ja auch, dass es eigentlich gehen müßte. Nun hab ich mit der Syntax bei Interrun noch so meine Probleme, da ich sonst nur "Anwender" bin. Der Vorschlag mit den Variablen klingt noch interessanter - das werd ich als erstes mal probieren.
Im schlimmsten Fall melde ich mich wieder.
Viele Grüße
Albi