Megakalkulation: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(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

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 ReportVariablen

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;

6 Links