Megakalkulation: Unterschied zwischen den Versionen
(→Der Report) |
|||
Zeile 51: | Zeile 51: | ||
Die Textfelder für die Überschriften werden im Code gefüllt: | Die Textfelder für die Überschriften werden im Code gefüllt: | ||
− | |||
procedure GroupHeaderAbschnittOnBeforePrint(Sender: TfrxComponent); | procedure GroupHeaderAbschnittOnBeforePrint(Sender: TfrxComponent); | ||
Zeile 75: | Zeile 74: | ||
end; | 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; | ||
== Links == | == Links == | ||
* '''[[FastReport: Anlegen und verwenden von Variablen im Report]]''' | * '''[[FastReport: Anlegen und verwenden von Variablen im Report]]''' |
Version vom 20. Januar 2023, 14:29 Uhr
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;