Megakalkulation: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
| 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, 13:29 Uhr
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.
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!
Starten
Aus REFLEX heraus über das Menü "Info, Drucken" ⇒ "Megakalkulation".
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
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;