Megakalkulation: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Allgemeines == Die Megakalkulation ist ein optionales Modul zur Kalkulation von Aufträgen, um sowohl ein Vorausschau als auch einen Rückblick über die f…“)
 
(IST 1)
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
  
 
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.
 
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!
 +
 +
== Aufteilung der Umsätze, Erlöse und Kosten ==
 +
 +
Umsätze, Erlöse und Kosten sind in diese Bereiche aufgeteilt:
 +
 +
;Material Miete
 +
;Material Kauf (Verkauf)
 +
;Dienstleistungen/Transport
 +
;Arbeitszeit/Personal
 +
;Sonstiges
 +
 +
Die Zuordnung der Zahlen erfolgt über die Kostenarten, die in den Stammdaten der Kostenarten angelegt werden. Bei jeder Kostenart kann an den Bereich festlegen.
 +
 +
Beispiel:
 +
 +
[[Datei:StammdatenKostenarten.png]]
 +
 +
 +
In den Artikelstammdaten:
 +
 +
[[Datei:StammdatenArtikelKostenarten.png]]
 +
 +
== Spalten der Kalkulation ==
 +
 +
Beispiel:
 +
 +
[[Datei:MegaKalkulation_GesamtKalkulation.png]]
 +
 +
 +
=== Umsatz ===
 +
 +
Umsatz aus den Auftragspositionen, aufgeteilt nach den Kostenarten.
 +
 +
Die Aufteilung auf die Zeilen erfolgt über die Kostenarten. Fehlende Kostenarten oder Kostenarten ohne Bereichsangabe werden unter '''Sonstiges''' eingeordnet.
 +
 +
 +
=== SOLL ===
 +
 +
Soll-Kosten aus den Selbstkosten aus den Auftragspositionen.
 +
 +
 +
=== IST 1 ===
 +
 +
Ist-Kosten aus den Bestellungen.
 +
 +
Die Kostenart dazu kommt aus dem Bestell-Kopf.
 +
 +
=== IST 2 ===
 +
 +
Ist-Kosten aus den Eingangsrechnungen. Wenn noch keine Eingangsrechnungen vorhanden sind, werden die Bestellungen verwendet.
  
 
== Starten ==
 
== Starten ==
Zeile 9: Zeile 82:
 
== Prozente für Untergrenzen ==
 
== Prozente für Untergrenzen ==
  
Hier kann man Prozente angeben, ab denen die entsprechenden Felder im Report farbig markiert werden sollen. Dort müssen entsprechende Variablen angelegt und abgefragt werden.
+
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:
 
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;
 +
 +
Es wird hier das Prozent- und Betragsfeld markiert.
 +
 +
== Links ==
 +
 +
* '''[[FastReport: Anlegen und verwenden von Variablen im Report]]'''

Aktuelle Version vom 29. Februar 2024, 12:46 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 Aufteilung der Umsätze, Erlöse und Kosten

Umsätze, Erlöse und Kosten sind in diese Bereiche aufgeteilt:

Material Miete
Material Kauf (Verkauf)
Dienstleistungen/Transport
Arbeitszeit/Personal
Sonstiges

Die Zuordnung der Zahlen erfolgt über die Kostenarten, die in den Stammdaten der Kostenarten angelegt werden. Bei jeder Kostenart kann an den Bereich festlegen.

Beispiel:

StammdatenKostenarten.png


In den Artikelstammdaten:

StammdatenArtikelKostenarten.png

4 Spalten der Kalkulation

Beispiel:

MegaKalkulation GesamtKalkulation.png


4.1 Umsatz

Umsatz aus den Auftragspositionen, aufgeteilt nach den Kostenarten.

Die Aufteilung auf die Zeilen erfolgt über die Kostenarten. Fehlende Kostenarten oder Kostenarten ohne Bereichsangabe werden unter Sonstiges eingeordnet.


4.2 SOLL

Soll-Kosten aus den Selbstkosten aus den Auftragspositionen.


4.3 IST 1

Ist-Kosten aus den Bestellungen.

Die Kostenart dazu kommt aus dem Bestell-Kopf.

4.4 IST 2

Ist-Kosten aus den Eingangsrechnungen. Wenn noch keine Eingangsrechnungen vorhanden sind, werden die Bestellungen verwendet.

5 Starten

Aus REFLEX heraus über das Menü "Info, Drucken" ⇒ "Megakalkulation".

6 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

7 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;

Es wird hier das Prozent- und Betragsfeld markiert.

8 Links