Megakalkulation
Inhaltsverzeichnis
1 Allgemeines
Die Megakalkulation ist ein optionales Modul zur Kalkulation von Aufträgen, um sowohl ein Vorausschau als auch einen Rückblick über die finanzielle Bewertung der Aufträge zu erhalten.
2 Das Grundprinzip
- Die Megakalkulation erzeugt eine Liste von REFLEX-Aufträgen anhand der eingegebenen Filter (Zeitraum, Bereiche usw.). In der Liste sind Auftragsdaten, Kalkulationsdaten und ein Bereichskennzeichen "Abschnitt" (s.u.) enthalten.
- Danach werden die betreffenden Aufträge neu durchkalkuliert (wenn man die Option "✅ Aufträge neu megakalkulieren" eingeschaltet hat).
- Anschließend wird der ausgewählte Report gestartet.
- Bereiche
- 1 = Angebote Miete
- 2 = Aufträge Miete oder Aktive Aufträge Miete oder Abgeschlossene Aufträge Miete
- 3 = Angebote Verkauf/Mietverkauf
- 4 = Aufträge Verkauf/Mietverkauf
- 5 = Aktive Aufträge Verkauf/Mietverkauf
- 6 = Abgeschlossene Aufträge Verkauf/Mietverkauf
- Dispo-Aufträge
- Aufträge mit dem Kennzeichen DispoAuftrag werden nicht aufgeführt!
- (MAufKo.DispoAuftrag=1)
- Textaufträge
- Auftragsnummern, die mit 999 beginnen werden nicht aufgeführt!
3 Starten
Aus REFLEX heraus über das Menü "Info, Drucken" ⇒ "Megakalkulation".
4 Prozente für Untergrenzen
Hier im Bereich Untergrenzen in %: kann man Prozente angeben, ab denen die entsprechenden Felder im Report farbig markiert werden sollen. Dort müssen entsprechende Variablen angelegt und abgefragt werden. Außerdem müssen im Report entsprechend Code-Zeilen angegeben werden, die die Variablen abfragen und die Felder entsprechend farbig einstellen.
Variablen:
- UntergrenzeDBSoll
- UntergrenzeDBIst1
- UntergrenzeDBIst2
Im Report müssen die Variablen angelegt werden mit Report ⇒ Variablen
5 Der Report
Dem Report wird die Tabelle "MegaKalk" mit den Auftrags- und Kalkulationsdaten übergeben.
Der Report gruppiert die Datensätze nach dem Bereichs-Kennzeichen MegaKalk.Abschnitt.
Die Textfelder für die Überschriften werden im Code gefüllt:
procedure GroupHeaderAbschnittOnBeforePrint(Sender: TfrxComponent); begin if ( <MegaKalk."Abschnitt"> = 1 ) then memoAbschnittCaption.Text := 'Angebote Miete'; if ( <MegaKalk."Abschnitt"> = 2 ) then memoAbschnittCaption.Text := 'Aufträge Miete'; // ' oder Aktive Aufträge Miete oder Abgeschlossene Aufträge Miete'; if ( <MegaKalk."Abschnitt"> = 3 ) then memoAbschnittCaption.Text := 'Angebote Verkauf/Mietverkauf'; if ( <MegaKalk."Abschnitt"> = 4 ) then memoAbschnittCaption.Text := 'Aufträge Verkauf/Mietverkauf'; if ( <MegaKalk."Abschnitt"> = 5 ) then memoAbschnittCaption.Text := 'Aktive Aufträge Verkauf/Mietverkauf'; if ( <MegaKalk."Abschnitt"> = 6 ) then memoAbschnittCaption.Text := 'Abgeschlossene Aufträge Verkauf/Mietverkauf'; memoAbschnittCaption2.Text := 'Summe ' + trim(memoAbschnittCaption.Text) + ':';
end;
Die Felder werden teilweise farbig markiert, z.B. so:
procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin // Default: memoRohDBSollProz.Font.Color := clBlack; memoRohDBSollBetrag.Font.Color := clBlack;
// DB-Prozent über 100 markieren: if <MegaKalk."DBSollSumme"> > 100 then begin memoRohDBSollProz.Color := clRed; memoRohDBSollBetrag.Color := clRed; memoRohDBSollProz.Font.Color := clWhite; memoRohDBSollBetrag.Font.Color := clWhite; end else
// Gelb, wenn über der angegebenen Prozentgrenze:
if <MegaKalk."DBSollSumme"> < <UntergrenzeDBSoll> then begin memoRohDBSollProz.Color := clYellow; memoRohDBSollBetrag.Color := clYellow; end else begin memoRohDBSollProz.Color := $00FFECEC; // hellblau statt clNone memoRohDBSollBetrag.Color := $00FFECEC; end; if <MegaKalk."DBIst1Summe"> < <UntergrenzeDBIst1> then begin memoDBIst1Proz.Color := clYellow; memoDBIst1Betrag.Color := clYellow; end else begin memoDBIst1Proz.Color := clNone; memoDBIst1Betrag.Color := clNone; end; if <MegaKalk."DBIst2Summe"> < <UntergrenzeDBIst2> then begin memoDBIst2Proz.Color := clYellow; memoDBIst2Betrag.Color := clYellow; end else begin memoDBIst2Proz.Color := $00B0FDBA; memoDBIst2Betrag.Color := $00B0FDBA; end; end;