EMail senden Mail an den Autor Drucken

vorhergehender Eintrag

nächster Eintrag

Inhalt

Hilfe Index

.

Auswertungen der Halbfertigen Aufträge

Funktionsweise SQL-Abfrage

In diesem Kapitel

Fensteraufbau

Abfrage

Besonderheiten

Weitere Kapitel

Generelles

Funktionsweise "Alte Version"

vorhergehender Eintrag

nächster Eintrag

Inhalt

Fensteraufbau

Das neue Fenster sieht folgendermaßen aus:



  • Abteilung: Hier kann man die gewünschte Belegabteilung auswählen
  • Auftragsart: Hier kann man die gewünschte Auftragsart auswählen
  • Nur offene Aufträge – es werden nur offene Aufträge selektiert, die nicht erledigt (AUF_STATUS<>1) und nicht storniert sind (AUF_STATUS<>3).
    • Abrechnungsstatus nicht beachten – wenn dieser Haken gesetzt ist, wird keine zusätzliche Abfrage auf den Abrechnungsstatus gemacht. Ansonsten wird „AUF_STATUS_RECHNUNG<>3" dem „Where-Statement" hinzugefügt.
  • Auftragsstatus nicht beachten: Es werden alle Aufträge selektiert.
  • Auftragsselektion nach Auftrag erledigt von bis: Das Feld AUF_ERLEDIGT_AM muss in dem eingegeben Bereich (dieser erscheint bei Klick auf den Radio-Button) liegen (also muss der Auftrag dort erledigt worden sein), damit er ausgewertet wird.
  • Auftragsselektion nach Auftrag offen bis: Wird das ausgewählt müssen folgende Kriterien zutreffen:
    • AUF_EDATUM muss kleiner oder gleich dem eingegeben Datum sein
    • AUF_ERLEDIGT_AM muss leer oder größer gleich diesem Datum sein
  • Erlösbewertung – alle Aufträge: es werden alle Aufträge ausgewertet (keine zusätzliche Abfrage)
  • Erlösbewertung – nur Aufträge mit Aufwand > Erlös: Wird das ausgewählt muss folgendes zutreffen:
    • Die Differenz zwischen den Aufwänden (Lohn + Material + Gerät + Fremdleistung) und den abgerechneten Beträgen (Rechnungen) in dem unten eingegeben Leistungszeitraum muss größer diesem Betrag sein, damit der Auftrag ausgewertet wird.
  • Stundenfaktor Personal beachten: Wird das angehakt wird bei den Lohnbuchungen die LOH_ANZAHL * LOH_FAKTOR genommen. Ansonsten passiert nichts.
  • Teilrechnungen nur mit Fibukennzeichen: Es werden nur Teilrechnungen beachtet, die bereits in die FIBU übergeleitet und somit bei RGK_FIBU eine 1 drinstehen.
  • Alle Teilrechnungen beachten: Es werden alle Teilrechnungen beachtet.
  • Leistungszeitraum von … bis …: Der Auftrag muss in diesem Zeitraum entweder eine Lohnbuchung, eine Lieferung oder eine Rechnung vorweisen, damit er ausgewertet wird.
  • Kostenstelle von … bis…: Es werden nur Aufträge mit diesen Kostenstellen bzw. in diesem Kostenstellenbereich ausgewertet.
  • Deckungsrücklass, Haftrücklass wie Nachlass behandeln. Diese Checkbox wird beim Öffnen des Fensters so gesetzt, wie die Option „Deckungsrücklass, Haftrücklass wie Nachlass behandeln" eingestellt ist. Allerdings kann man mittels dieser Checkbox diese generelle Einstellung für die Auswertung der halbfertigen Aufträge übersteuern.
  • Sortierung: Auswahl des gewünschten Feldes, wie die Auswertung sortiert sein soll.
  • Reihenfolge: Auswahl in welche Richtung (aufsteigend, absteigend) sortiert werden soll.

vorhergehender Eintrag

nächster Eintrag

Inhalt

Abfrage

Die SQL-Version ist von Prozedur 300 bis 340 enthalten. Nach dem Start werden zuerst 2 Cursors für die Abfrage geöffnet (Proz. 302). Einer wird für die generelle Abfrage auf die Aufträge und der 2te für die Abfrage auf die Aufwands- und Erlöspositionen verwendet.

Anschließend wird eine Abfrage (lt. Selektion) auf die Aufträge MIT Projektzuweisung inklusive den Projekthauptaufträgen gemacht. Besonderheit hier: Es wird ein „INNER JOIN" auf die selbe Tabelle („D_AUFTRAG") gemacht um die Projekthauptaufträge herauszufinden, was wiederum eine Trennung der Datenbankfelder erfordert. Die Felder von den Projekthauptaufträgen sind mit einem „b" gekennzeichnet (z.B b.AUF_PROJEKT). Die Restlichen haben ein „a" (z.B a.AUF_EDATUM) davor. Mittels dieser Abfrage werden nur Aufträge selektiert die einem Projekt angehören (AUF_PROJEKT<>0) oder die ein Projekthauptauftrag sind (AUF_PROJEKT_HAUPTAUFTRAG=1).

Anschließend wird pro Auftrag eine Abfrage auf die Aufwands- und Erlöspositionen gemacht. Diese werden bereits mittels Statement (Proz. 326) summiert und anschließend in die Liste (F_LST_DRUCK) gegeben. Nur bei den Lohnpositionen wird gefetcht, da diese einige Programmteile enthalten, welche nicht so einfach auf SQL umzusetzen sind (z.B Seriennummern).

Anschließend wird die 2te Abfrage gestartet, welche alle Aufträge ohne Projektzuordnung selektiert (AUF_PROJEKT=0). Der restliche Ablauf bleibt gleich.

Wenn nach diesen beiden Suchvorgängen Daten gefunden wurden und die Liste „F_LST_DRUCK" somit gefüllt ist, wird die Liste noch nach den ausgewählten Kriterien sortiert und anschließend gedruckt. Wenn keine Daten gefunden werden, kommt eine Meldung.

vorhergehender Eintrag

nächster Eintrag

Inhalt

Besonderheiten

Folgende Besonderheiten ergeben sich:


  • Die Abfrage druckt nicht sofort, sonder lädt zuerst alle Daten in eine Liste. Anschließend wird die Liste sortiert und nur noch gedruckt (keine weiteren Abfragen mehr). Das hat folgende Gründe:
    • Zwischen einem „BEGIN PRINT" und „END PRINT" funktionieren KEINE Working Messages. Somit hätte man nur die Sanduhr und man wüsste nicht wo man gerade umgeht.
    • Der Druck in einer FETCH-Schleife mittels „PRINT RECORD" ist ein kleinwenig langsamer als der Druck danach (k.A wieso).
    • Man kann sortieren. Da 2 Abfragen gemacht werden, die nacheinander ablaufen, ist es logischerweise nicht möglich diese ineinander zu sortieren, wenn man sofort druckt.
  • Bei der ersten Abfrage wird ein INNER JOIN auf die selbe Tabelle gemacht (siehe „Abfrage SQL-Version")
  • Es wird bei Projekten nur der Projekthauptauftrag mit der Gesamtsumme aller zugeordneten Aufträge gedruckt.
  • Es werden 2 Cursors verwendet, die am Anfang geöffnet werden.
Zum Seitenanfang Drucken