Resourcen
Übersicht
Programmierung
Schulungen
Projektabwicklung
Consulting & Coaching
Tools und AddOns zu FoxPro
Frameworks für Visual FoxPro
Grafik und Berichtsausgabe
Installation und Dokumentation
Sicherheit und Übertragung
Standardsoftware in FoxPro
Bücher und Zeitschriften
dFPUG Service
dFPUG Regionaltreffen
dFPUG Online
MS Most Valuable Professionals
Microsoft Certified Professionals
Bücher
Übersicht
Visual FoxPro 8.0
Visual FoxPro 7.0
Visual FoxPro 6.0
Visual FoxPro 5.0
Visual FoxPro 3.0
dFPUG Service
Objektorientierung
Softwareentwicklung
Visual FoxPro Mac
FoxPro f. Windows
FoxPro f. Mac
FoxPro f. DOS
SQL Server
Buchlisten
Buchhandlung
Presse
Stellen
Tipps

alle öffnen    alle schließen


Nicht compiliert - . . geändert
 

Quartalsanfang

QUARTALSANFANG

von Rainer Becker

Viele Berichte im Rechnungswesen und für die Geschäftsführung basieren auf quartalsweisen Berechnungen. Die nachfolgende Funktion ermittelt den Quartalsanfang für ein übergebenes Datum bzw. für das aktuelle Datum:

Function QuartAnf
Parameters cDatum
Private nMonth,cYear,sDate
If Parameters() == 0 or empty(m.cDatum)
m.cDatum = Date()
Endif
m.sDate = Set("DATE")
Set Date German
m.nMonth = Month(m.cDatum)
m.cYear = Ltrim(Str(Year(m.cDatum)))
Do Case
Case m.nMonth > 9
m.cDatum = Ctod("01.10."+m.cYear)
Case m.Month > 6
m.cDatum = Ctod("01.07."+m.cYear)
Case m.Month > 3
m.cDatum = Ctod("01.04."+m.cYear)
Otherwise
m.cDatum = Ctod("01.01."+m.cYear)
Endcase
If Set("Date")!="GERMAN"
Set Date &sDate
Endif
Return m.cDatum

Die Funktion lebt von der richtigen Einstellung von DATE, nämlich "SET DATE GERMAN". Deshalb wird der alte DATE-Wert gesichert und später wieder zurückgesetzt. Man könnte über einen zusätzlichen Parameter noch das vorige und nächste Quartal bzw. das Quartalsende ermitteln lassen.