[Gelöst] Code gesucht

26. Mai 2006 11:12

Hallo zusammen,

brauch mal wieder Eure Hilfe :-) Ich habe einen Report geschrieben, der aus der Beitragstabelle erzeugt wird. Es gibt in dieser Tabelle folgende Zahlungsperioden: (monatlich, quartalsweise, halbjährlich und jährlich). Hier ein kleines Beispiel zur Verdeutlichung der Fragestellung:

Es kommt schon mal vor, dass ein Mitglied seinen freiwilligen Beitrag erhöht. Beispielsweise zahlte er immer 10 EURO und ist bereit, ab dem 01.04. 12 EURO zu zahlen. Das Mitglied zahlt seine Beiträge quartalsweise (01.01, 01.04. usw). Daraus folgt also, dass das Mitglied für den 01.01. 10 EURO zahlt und ab dem 01.04. 12 EURO.

Dieser Bericht berechnet die Höhe der Mitgliedsbeiträge für einen bestimmten Zeitraum. Nun meine Fragestellung:

Der Code sollte in der Beitragstabelle nach Records suchen, die mehr als einen Eintrag haben. Die Kontaktnummer kommt also mind. 2 x vor. Dann soll in Abhängigkeit des Zahlungsweise der jeweils gültige Beitrag genommen werden.

Hier noch ein weiteres Beispiel:

- Datumsfilter auf 01.01.05..01.05.05 gesetzt => 2 Quartale
- Mitglied Müller zahlt am 01.01. 10 EURO und ab dem 01.04. 12 EURO Also muss in der Summe für diesen gesetzten Filter für Müller 22 EURO errechnet werden.

Sicherheitshalber habe ich noch einen kl. Screenshot angehängt. Ich brauche natürlich nicht den kompletten Code von Euch. Aber eine kleine Hilfestellung mit Hinweisen und Ansätzen wäre wie immer prima.

Grüße

Markus
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von mgerhartz am 13. Juni 2006 14:54, insgesamt 1-mal geändert.

26. Mai 2006 13:48

Vielleicht noch ein kleiner Hinweis. Der Primary Key setzt sich aus den Feldern "Kontaktnummer" und "Datum" zusammen.

Im Grunde möchte ich nur wissen, wie ich innerhalb eines Feldes einer Tabelle feststellen kann, ob es a) Datensätze mit gleicher Kontaktnummer gibt und b) wenn ja, ob die Werte in dem Feld "Betrag" voneinander abweichen.

26. Mai 2006 13:51

Ich würde das mit 2 FlowFields lösen. Eines ermittelt die Anzahl der Records, und das andere den Betrag. In beiden FlowFields muss dann der Datumsbereich und die Kundennumer als FlowFilter mitgegeben werden.

Wenn eine Anzahl Records bestimmt werden muss, könnte dies ja mittels COUNT geschehen. Bei vielen Datensätzen wird das dann aber zum Performance-Problem. Für solche Fälle führe ich in der Zieltabelle jeweils ein Decimal-Feld mit Namen 'Counter' mit. Auf diesem Feld ist das InitValue-Property auf 1 gesetzt. Das heisst, dieses Feld hat immer den Wert 1. Auf dieses Feld kann dann wunderbar ein FlowField (mit FlowFilter) gesetzt und mit 'Sum' berechnet werden. Die so errechnete Summe gibt dann die Anzahl Records im Filter an, was sehr schnell geht.

Du kannst also in deinem Programm dann zuerst die Anzahl berechnen, und wenn diese >1 ist, berechnest du noch den Betrag.

26. Mai 2006 15:31

Danke Roger, ich werde mich daran versuchen. Sobald es Ergebnisse gibt, poste ich diese. Allerdings wird das wohl vor Montag nichts werden. Schönes Wochenende wünsche ich.

Gruß

Markus