Datumsfunktionen

Fragen zum Thema Berichte
Antworten
Matze
Interessent
Beiträge: 8
Registriert: Mo, 26 Nov, 2007 20:36

Datumsfunktionen

Beitrag von Matze » Mo, 26 Nov, 2007 20:50

Hallo

ich bin ganz neu hier und versuche zum 2. Mal den Einstieg in EuroKass. Bislang habe ich meine Finanzen immer mit Access und Excel (Budgetverwaltung) organisiert.

Aber der Anfang ist schon nicht einfach. Ich möchte gerne in einem Bericht über ein Datumsfeld was nur den Monat und das Jahr beschreibt eine entsprechende Ansicht der Daten bekommen.

Z.B. Stelle ich in dem Feld ein November 2007 und möchte nun alle Einnahmen und Ausgaben von diesem Monat sehen. Weiterhin möchte ich mich später auch mal durch die Monate klicken.

Kann mir jemand sagen wie ich das hinbekomme?
Vielen Dank im vorraus.

Matthias

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » Mo, 26 Nov, 2007 21:01

Hallo Matthias,

eine Monatskomponente gibt es z.Z. noch nicht, steht aber auf unserer internen Jobliste.
Bisher besteht nur die Möglichkeit über zwei Datumskomponenten Werte aus EK abzurufen.

Gruß,
Dirk Schauries
Team Schauries

Christian Hönnicke
Profi
Beiträge: 105
Registriert: Sa, 10 Feb, 2007 19:31

Beitrag von Christian Hönnicke » So, 02 Dez, 2007 13:27

Hallo Matthias,

so kurz auf die Schnelle kann ich dir keinen Quellcode liefern. Aber ich versuche mal einen möglichen Weg zu skizzieren.

Variante 1: Kalendercontrol
Variante 2: Auswahlbox mit allen Monaten

Soweit ich mich erinnere, gibt es eine Funktion, die dir den aktuellen Monat aus einem Datum zurück liefert. In Variante 2 hast du den aktuellen Monat schon direkt. Siehe dazu in der Interrun-Hilfe die Funktionen BoM (Date : String), EoM (Date : String). Damit kannst du dir den Start- und Endtag des Monats berechnen. Mit AccountSum(AccountName,BeginDate,EndDate) kannst du dir die Summen für die einzelnen Konten berechnen lassen.

Die Variante hat leider den Nachteil, dass du deinen Bericht mit jeder Änderung der Kontenanzahl bzw. -benennung anpassen musst.

Ich habe mir einfach zwei Statistiken - je eine für Einnahmen und Ausgaben - zusammen geklickt, wobei du dafür die passende Kontostruktur brauchst.

Gruß
Christian

Matze
Interessent
Beiträge: 8
Registriert: Mo, 26 Nov, 2007 20:36

Beitrag von Matze » So, 02 Dez, 2007 19:54

Hallo Christian,

vielen Dank für deine Antwort. Ich werde es die Tage ma versuchen.

Matthias

Matze
Interessent
Beiträge: 8
Registriert: Mo, 26 Nov, 2007 20:36

Hallo...

Beitrag von Matze » Di, 04 Dez, 2007 21:19

Ich habe mal ne Frage. Ich wollte etwas mit den Datumsfunktionen experimentieren aber ich weiss nicht was String bzw. Integer bedeutet.

Ich dachte mir folgendes.

Datumsfeld1 gibt mir den Anfang des aktuellen Monats. Ein zweites Feld addiert einen Monat hinzu. Ein drittes Feld zieht einen Tag ab.
Dadurch sollte ich das Enddatum des Monats bekommen. Im Datumsfeld1 kann ich weiterhin den Monat ändern und bekomme immer in Feld 3 das Enddatum des Monats was ich für Berichte verwenden kann. Bei jeder Änderung lasse ich meine Werte aktualisieren.

Kann mir jemand sagen wie ich Monate addiere?

Gruß Matthias

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » Di, 04 Dez, 2007 21:27

Hallo Matthias,

die Funktionen, die Du suchst lauten

BoM und EoM.

Um ein Zeitfenster von einem Monat über eine Komponente an eine EuroKass-Funktion weiterzugeben schreibst Du einfach:

Funktion( BoM(Datumsfeld1.Date), EoM(Datumsfeld1.Date) )

BoM errechnet den Monatsanfang und EoM das Monatsende.

Zum Addieren von Monaten verwende die Funktion AddMonth (s. www.interrun.de)

Viel Erfolg,
Dirk Schauries
Team Schauries

Matze
Interessent
Beiträge: 8
Registriert: Mo, 26 Nov, 2007 20:36

Beitrag von Matze » Mi, 05 Dez, 2007 22:28

Hallo...

danke für die Antwort. Aber um einen Filter auszuwerten brauche ich doch 2 felder mit entsprechenden datum oder?

Ich weiß leider immernoch nicht was ein String ist.

Kann mir jemand den Befehl schreiben um ein Datum in Datumsfeld1 einen Monat zu addieren.

Ich komme mit AddMonth (Date : String; Months: Interger) einfach nicht klar. Ich weiss nicht für was , was steht.

Bitte um hilfe...

Danke

Christian Hönnicke
Profi
Beiträge: 105
Registriert: Sa, 10 Feb, 2007 19:31

Beitrag von Christian Hönnicke » Do, 06 Dez, 2007 19:44

Hallo Matthias,

String steht abstrakt für eine beliebige Zeichenketten. Also alles, was du mit Buchstaben und Zahlen schreiben kannst. Integer steht abstrakt für eine beliebige Ganzzahl, wie zum Beispiel "2007".
AddMonth( Date : String; Months : Integer ) ist wie folgt zu lesen. Der erste geforderte Parameter muss ein Text sein, mit dem (engl.) Hinweis "Datum". Der zweite geforderte Parameter muss eine Zahl sein, mit dem (engl.) Hinweis "Monat". Kombiert lässt sich schlussfolgern, dass die Funktion auf ein Datum "Month" Monate addiert.
Die Funktion AddMonth kannst du also wie folgt aufrufen: AddMonth( "01.04.2007", 2 ) dies addiert zwei Monate auf den 1.April 2007. Da du nicht immer den "01.04.2007" verwenden möchtest, solltest du eine Variable verwenden, die du beispielsweise mit dem gewählten Datum aus dem Datumcontrol fütterst.
Aber um einen Filter auszuwerten brauche ich doch 2 felder mit entsprechenden datum oder?
Das hatte Dirk unten angesprochen. Siehe:
Funktion( BoM(Datumsfeld1.Date), EoM(Datumsfeld1.Date) )
Also mit Datumsfeld1.Date bekommst du das aktuell vom Nutzer ausgewählte Datum. BoM(..) steht für BeginOfMonth und berechnet dir den Monatsanfang eines Datums. EoM(..) steht für EndOfMonth und berechnet dir den letzten Tag eines Monats.

Wenn nun der Nutzer per Datumsfeld1 den "20.02.2007" ausgewählt hat, kannst du per Datumsfeld1.Date darauf zugreifen und liefert dir "20.02.2007" zurück. BoM( Datumsfeld.Date ) nimmt sich den "20.02.2007" und liefert "01.02.2007" zurück.
-> AddMonth( BoM(Datumsfeld.Date), 1 ) würde dir den "01.03.2007" zurückliefern.

Ich hoffe, dass war verständlich. Sonst melde dich einfach wieder.

Gruß
Christian

Matze
Interessent
Beiträge: 8
Registriert: Mo, 26 Nov, 2007 20:36

Hallo

Beitrag von Matze » Do, 06 Dez, 2007 21:59

danke für die Hilfe... Ich habe nun mit der Funktion BoM und EoM gearbeitet, das ganze Verschachtelt (so wie von Dirk geschrieben) und nun kann ich mich durch die Monate klicken. Des war mein Anliegen.

Nun habe ich aber nochwas.

Ich habe ein Feld 1 . In diesem mache ich eine Änderung. Z.B. ändere ich das Datum. Nun soll sich Feld 2 aktualisieren. Wie "sage" ich das dem Feld?

Ich meine im Feld 1 , Ereignis -> bei Änderung ... aber wie heisst der Befehl für aktualisieren von Feld 2?

Danke für die Hilfe....

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » Do, 06 Dez, 2007 22:09

Hallo Matze,

in dem Du die Standardeigenschaft des jeweiligen Eingabefeldes änderst.

Bei einem Textfeld wäre das die Eigenschaft „Text“ und bei einem Datumsfeld die Eigenschaft „Date“.

Schreibe also im Ereignis „OnChange“ (oder in Deutsch „Beim Ändern“) des Feldes 1:

Textfeld2.Text = „Meine Änderung“
Oder
Datumsfeld2.Date = AddDate(Datumsfeld1.Date,30)

Gruß,
Dirk Schauries
Team Schauries

Antworten