Kontostand zum Stichtag

Fragen zum Thema Berichte
Antworten
Ede

Kontostand zum Stichtag

Beitrag von Ede » So, 24 Jul, 2005 9:58

Hallo Team Schauries,

in den Hilfe-Texten steht: "Berichte stellen die höchte Form der Auswertung dar." . Und genau deshalb sind sie auch so interessant für mich.
Kann man eigentlich in einem Bericht ein Währungsfeld, z.B. Kontostand, mit einem Datumsfeld verknüpfen, um so die Kontostände aller in einem Bericht enthaltenen Konten zu einem beliebig wechselnden Datum (Stichtag) anzuzeigen?

Mit Gruß
Ede

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

Beitrag von Team Schauries » So, 24 Jul, 2005 11:43

Hallo Ede,

ja, das geht.

Im Normalfall schreibt man in der Auto-Funktion:

Waerungsfeld1.Value = AccountSum("Bank","01.01.2005",“30.06.2005)
Gemeint ist das Konto Bank mit dem Zeitraum 01.01 – 30.06.2005.

Um den Stichtag dynamisch zu halten, ersetzt man das „30.06.2005“ durch eine Variable wie z.B. ein Datumsfeld.

Das sieht dann so aus:

Waerungsfeld1.Value = AccountSum("Bank","01.01.2005",Datumsfeld1.Date)

Jetzt muss das Datumsfeld nur noch dafür sorgen, dass bei einer Änderung des Datums der Bericht neu errechnet werden soll und das geht so:
Klicke im Designmodus auf das Datumsfeld und im Eigenschaften-Editor auf den Reiter Ereignisse. Mache dann einen Doppelklick auf den ersten Eintrag „Beim Ändern“. Es öffnet sich das Programm-Center und zeigt einen vorgefertigten Text a la

Procedure Datumsfeld1_OnChange
|Ihre Programmzeilen
EndProcedure

Tausche die Zeile |Ihre Programmzeilen aus gegen:

Frame.Refresh

Dieses Datumsfeld kann jetzt für alle möglichen Berechnungen anderer Komponenten dieses Berichts verwendet werden.

Kommst Du damit klar?

Gruß,
Dirk Schauries
Team Schauries

Ede

Beitrag von Ede » So, 24 Jul, 2005 16:46

Hallo Team Schauries,

vielen Dank für den schnellen und kompetenten Support - das ist echt Spitze!!

Ein schönes Wochenende
wünscht Ede

Ede

Beitrag von Ede » So, 24 Jul, 2005 17:03

Hallo Team Schauries,

eine kleine Frage habe ich dann aber doch noch.
Bei einem Konto mit dem Anfangswert=0 funktioniert das prima.
Bei einem Konto, bei dem ich per Hand einen bestimmten Anfangswert eingegeben habe, wird der jedoch nicht mit berücksichtigt - kann man das ändern?

Mit Gruß
Ede

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

Beitrag von Team Schauries » So, 24 Jul, 2005 18:23

Hallo Ede,

haben wir geändert...Update kommt aber erst in vier Wochen, leider.

Bis dahin kannst Du Dir behelfen, in dem Du den Anfangsbestand manuell dazu addierst.

Schreibe:
Waerungsfeld1.Value = AccountSum("Bank","01.01.2005",Datumsfeld1.Date) + Account("Bank").InputValue

Gruß,
Dirk Schauries
Team Schauries

Ede

Beitrag von Ede » Mo, 25 Jul, 2005 10:05

Hallo Team Schauries,

nach gleicher Vorgehensweise wie bei dem variablen Datum wollte ich ein Auswahlfeld mit variablem Kontoname in ein Währungsfeld einbinden. Also dass ich nicht für alle Konten ein Währungsfeld z.B. "Balance" erstellen muss, sondern nur ein Währungsfeld und im Auswahlfeld immer nur das Konto auswählen, von dem ich den aktuellen Kontostand gerade sehen möchte. Leider funktioniert das nicht. Könnt ihr mir bitte helfen?

Mit Gruß
Ede

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

Beitrag von Team Schauries » Mo, 25 Jul, 2005 12:49

Hallo Ede,

ab der Version 5.0 gibt es ein Demo-Kassenbuch „Familienkassenbuch mit vier Berichten“.
Da wird in einem Bericht „KontostandVom“ genau das gemacht, was Du brauchst.

Für die Liste aller Kontonamen braucht man bspw. eine Auswahlliste. Diese wird über die Auto-Funktion Accounts(-1).Names gefüllt.
Der komplette Programmtext lautet:

|Die Namen aller Konten in Auswahlliste laden
Auswahlliste1.Text = Accounts(-1).Names

|Auswahlliste sortiert ausgeben
Auswahlliste1.Sort

|Erstes Konto in der Auswahlliste anwählen
Auswahlliste1.ItemIndex = 0

|Die Anzahl der sichtbaren Einträge bei aufgeklappter Liste von 8 auf 20 erhöhen
Auswahlliste1.DropDownCount = 20

Um jetzt ein Währungsfeld mit dem jeweiligen Kontostand des angewählten Kontos zu füllen, benutzt man das OnChange-Ereignis der Auswahliste.
Klicke die Auswahlliste an und mache im Eigenschaften-Editor im Reiter Ereignisse einen Doppelklick auf den ersten Eintrag „Beim Ändern“.
Es öffnet das Programm-Center mit einem vordefinierten Text.
Tausche den Text durch diesen hier aus:

Procedure Auswahlliste1_OnChange
if Auswahlliste1.SelectText > ""
Waerungsfeld1.Value =
Account(Auswahlliste1.SelectText).Balance
EndIf
EndProcedure

Die Komponentennamen Auswahlliste1 und Waehrungsfeld1 können bei Dir anders lauten, also bitte noch im Quellcode anpassen.

Anders als sonst, beschreibt also hier die Auswahlliste das Währungsfeld. Das erscheint unüblich, ist aber so gewollt.

Wie man sieht, lassen sich alle Parameter auch dynamisch über Komponenten oder sogar über InterRun-Funktionsergebnisse abfragen. Wichtig ist nur, dass die zu erwartenden Daten in den richtigen Komponententyp gespeichert werden. Texte z.B. gehören in ein Beschriftungs-, Eingabe-, oder Listenfeld und numerische Daten in ein Währungs- oder Zählerfeld.

Ich hoffe, Du steigst durch...

Gruß,
Dirk Schauries
Team Schauries

Ede

Beitrag von Ede » Di, 26 Jul, 2005 14:21

Hallo Team Schauries,

also der Kontostand eines definierten Kontos über ein variables Datumsfeld zum Stichtag funktioniert und auch der aktuelle Kontostand eines beliebigen Kontos über ein variables Auswahlfeld.
Wie kann ich jetzt aber beides kombinieren? D.h. ich möchte mir in einem Währungsfeld den Kontostand eines frei wählbaren Kontos (über ein Auswahlfeld) zu einem frei wählbaren Datum (über ein Datumsfeld) anzeigen lassen.

Vielen Dank für eure Bemühungen
Mit Gruß
Ede

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

Beitrag von Team Schauries » Di, 26 Jul, 2005 18:54

Hallo Ede,

das geht natürlich auch!
Erstelle einfach die Summe aus dem, was wir hier über mir besprochen haben:

Schreibe im Programm-Center im Ereignis „Beim Ändern“ der Auswahlliste...

Procedure Auswahlliste1_OnChange
if Auswahlliste1.SelectText > ""
AccountSum(Auswahlliste1.SelectText,"01.01.2005",Datumsfeld1.Date) +
Account(Auswahlliste1.SelectText).InputValue
EndIf
EndProcedure

Also statt:

Waerungsfeld1.Value = AccountSum("Bank","01.01.2005",Datumsfeld1.Date) +
Account("Bank").InputValue

Schreibst Du:
AccountSum(Auswahlliste1.SelectText,"01.01.2005",Datumsfeld1.Date) +
Account(Auswahlliste1.SelectText).InputValue

Der Kontobezug "Bank" wird ersetzt durch den Inhalt der Auswahlliste1. Aber nur, wenn in der Auswahlliste1 was drin steht.

Gruß,
Dirk Schauries
Team Schauries

Ede

Beitrag von Ede » Mi, 27 Jul, 2005 11:53

Hallo Team Schauries,

vielen Dank für die schnellen Antworten - es funktioniert alles prima.

Mit Gruß
Ede

holo04
Neuling
Beiträge: 1
Registriert: Di, 24 Okt, 2006 6:31

Kontostand zum Stichtag, keine neuen Konten

Beitrag von holo04 » Di, 24 Okt, 2006 8:15

Hallo Team Schauries, in meinem Bericht arbeite ich mit 2 dynamischen Datumsfeldern (1=von, 2=bis), die ich mit boy(date) und eom(date) vorbelegt habe. Alles funktioniert wie gewollt. Nun habe ich in dem Bericht weitere Konten hinzugefügt, diese werden jedoch bei Änderung des Von- oder Bis-Datums nicht aktualisiert, es steht lediglich der aktuelle Saldo drin. Die "alten" Konten werden aktualisiert. Lösche ich die Datumsfelder 1 und 2 und lege sie neu an, werden alle Konten bei einer Datumsänderung berücksichtigt.
Gruss Holger

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

Beitrag von Team Schauries » Di, 24 Okt, 2006 20:23

Hallo Holger,

ich kann das leider nicht nachvollziehen. Wenn im OnChange-Ereignis der Datumskomponenten der Befehl „Frame.Refresh“ steht, werden die Autofunktionen aller Berichts-Komponenten aktualisiert.

Überprüfe doch bitte noch mal das Ereignis OnChange.

Gruß,
Dirk Schauries
Team Schauries

Karen
Profi
Beiträge: 102
Registriert: Mi, 03 Jan, 2007 22:24

Beitrag von Karen » Sa, 06 Jan, 2007 16:40

Hallo liebes Team,
ich experimentiere fleißig, komme aber bei folgendem Punkt einfach nicht weiter. Leider hat die Suche im Forum mich auch nicht weitergebracht.

Ich habe ein Bankkonto x
Dieses Kto. hat mehrere Unterkonten
Nun möchte ich im Bericht eine Summe aller Konten haben. Da das Konto im Laufe der Zeit Konten hinzubekommen wird möchte ich nicht alles einzeln listen.

Bis hier hin alles klar.
Dann möchte ich aber den Kontenstand zum Datum x aufrufen.

Mit einem einfachen Konto ohne Unterkonten läuft es.

Geht das?

Vielen Dank für Eure Hilfe
Gruß
Karen

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

Beitrag von Team Schauries » Sa, 06 Jan, 2007 17:37

Hallo Karen,

ich meine, es lautet Account(„Meinbankkonto“).TotalBalance(„06.01.2007“).
TotalBalance liefert den Kontostand eines Kontos und die Kontostände aller Unterkonten. Optional kann ein Fixdatum angegeben werden.

Account(„Meinbankkonto“).TotalBalance(Datumsfeld1.Date), wenn das Datum flexibel sein soll.

Weitere Hilfe erhältst Du über F1, Schalter Programmieren, Unterschalter Sprachumfang. Da werden sämtliche EuroKass eigenen Programmierbefehle aufgelistet.

Gruß,
Dirk Schauries
Team Schauries

Ede
Profi
Beiträge: 89
Registriert: Sa, 10 Dez, 2005 17:53

Beitrag von Ede » Do, 01 Mai, 2008 16:24

Hallo Leute,

neben einzelnen Datumsangaben kann man ja auch in einem Bericht einen ganzen Zeitraum (letztes jahr, letzter Monat, ...) angeben. Kann man eigentlich diese Angabe auch über ein Datumsfeld bzw. Auswahlfeld in einen Bericht bzw. die Währungsfelder einbinden?
Ich habe z.B. einen Bericht mit vielen Währungsfeldern, deren Zeitraum sich bei allen auf das letzte Jahr bezieht (in der jeweiligen Währungsfeldfunktion so angegeben). Ich möchte nun mit einem einzigen Wechsel in einem Datumsfeld/Auswahlfeld den zu berechnenden Zeitraum aller Währungsfelder auf vorletztes Jahr umstellen können.

Vielen Dank für eure Hilfe
Ede

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

Beitrag von Team Schauries » Do, 01 Mai, 2008 17:22

Hallo Ede,

wenn ich Dich richtig verstanden habe sollen sich mehrere Währungsfelder auf ein Datumsfeld beziehen und bei Änderung des Datumsfeldes gleich ein ganzer Zeitbereich festgelegt werden.
Das geht leider nicht ohne Programmierung über InterRun und wurde hier schon mehrmals diskutiert.

Gruß,
Dirk Schauries
Team Schauries

Antworten