[Gelöst] Code gesucht

Bild Microsoft Dynamics NAV 3.xx
(ehem. Navision Attain)

[Gelöst] Code gesucht

Beitragvon mgerhartz » 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
Dateianhänge
Beispiel.jpg
Beispiel Beitragstabelle
Zuletzt geändert von mgerhartz am 13. Juni 2006 14:54, insgesamt 1-mal geändert.
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz

Beitragvon mgerhartz » 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.
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz

Beitragvon rotsch » 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.
Gruss und besten Dank, Roger
Benutzeravatar
rotsch
Microsoft Partner
Microsoft Partner
 
Beiträge: 1703
Registriert: 8. März 2006 14:44
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab Version 1.3 bis Aktuell

Beitragvon mgerhartz » 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
mgerhartz
 
Beiträge: 308
Registriert: 13. Februar 2006 15:18
Wohnort: Koblenz


ZurĂĽck zu NAV 3.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast