Autor Thema: Filter wer Vorgabe nicht erfüllt  (Gelesen 56 mal)

NicolasGlatz

  • Full Member
  • ***
  • Beiträge: 62
Filter wer Vorgabe nicht erfüllt
« am: 27. November 2018, 16:44 »
Hallo zusammen,

ich verwalte ca. 300 ehrenamtliche Einsatzkräfte der Feuerwehr.
nun muss ich filtern auf Alter > 18 Jahre, da ich beim 17jährigen keinen Führerschein prüfen muss.
soweit alles noch recht einfach.

um nun jedoch den Rücklauf zu überwachen und bei denen, die den Führerschein nicht vorbei bringen nachhaken zu können / das fahren offiziell untersagen kann, brauch ich eine Auswertung über alle, bei denen der Wert "Führerscheinkontrolle" nicht nach dem 01.01. des aktuellen Jahres erfasst wurde

Ich habe dafür aktuell folgenden Code:

{PERSONAL_SONSTLEHRG.AUSBILDUNG} startswith "Führerscheinkontrolle" and
{PERSONAL_SONSTLEHRG.VONDATUM} > DateTime (2018, 01, 01, 00, 00, 00)

allerdings bekomme ich so nur die, die dieses Jahr schon Ihren Führerschein gezeigt haben.
ändere ich es in

{PERSONAL_SONSTLEHRG.AUSBILDUNG} startswith "Führerscheinkontrolle" and
{PERSONAL_SONSTLEHRG.VONDATUM} < DateTime (2018, 01, 01, 00, 00, 00)

habe ich das Problem, dass ich alle angezeigt bekomme, die 2017 Ihren Führerschein vorgezeigt haben



wie schaffe ich es, dass er all die anzeigt, die keinen Eintrag für das aktuelle Jahr haben

plinni

  • Experte
  • *****
  • Beiträge: 151
Re: Filter wer Vorgabe nicht erfüllt
« Antwort #1 am: 28. November 2018, 07:27 »
Du müsstest das VONDATUM auf null prüfen bzw. auf Date (0), je nachdem, was deine Datenbank speichert bzw. wie die NULL-Settings in deinem Bericht aussehen.

NicolasGlatz

  • Full Member
  • ***
  • Beiträge: 62
Re: Filter wer Vorgabe nicht erfüllt
« Antwort #2 am: 28. November 2018, 07:39 »
Hallo,

danke für deine Rückmeldung.
aber ich habe ja keinen Eintrag mit "0".

Ich habe ja den Feuerwehrmann/Frau xyz

Führerscheinkontrolle 23.06.2015
Führerscheinkontrolle 11.08.2016
Führerscheinkontrolle 03.04.2017
Führerscheinkontrolle 10.11.2018

den möchte ich in meiner Auswertung für 2018 nicht mehr sehen, da er in 2018 seine Pflicht erfüllt hat.


Den Kameraden ABC

Führerscheinkontrolle 23.06.2015
Führerscheinkontrolle 11.08.2016
Führerscheinkontrolle 03.04.2017

möchte ich jedoch angezeigt / ausgewertet bekommen, weil der hat seinen Führerschein bisher nicht vorgezeigt.


das von-Datum wird "07.04.2001 00:00:00" gespeichert


leere Felder muss ich hiermit ausblenden
// Einheit "Bis" Datum muss leer sein
(isnull({PERSONAL_ABT.BISDATUM}) =true)

plinni

  • Experte
  • *****
  • Beiträge: 151
Re: Filter wer Vorgabe nicht erfüllt
« Antwort #3 am: 28. November 2018, 10:07 »
Letztlich prüfst du ja aber, ob in PERSONAL_SONSTLEHRG ein Eintrag quasi nicht existiert. Ich nehme an, dass es noch eine PERSONAL-Tabelle gibt, die alle FW_Angehörigen beinhaltet. Du müsstest also prüfen, ob die PERSONAL_SONSTLEHRG für eine/n Angehörige/n null ist oder das Jahr = 2018 ist.

Oder ich habe es noch nicht richtig verstanden^^

NicolasGlatz

  • Full Member
  • ***
  • Beiträge: 62
Re: Filter wer Vorgabe nicht erfüllt
« Antwort #4 am: 28. November 2018, 11:47 »
genau, es gibt die Tabelle "Personal" mit allen Feuerwehrkameraden, diese dann gefiltert auf die Einheit (bei einem Mitglieder der Bambini Feuerwehr brauche ich keinen Führerschein zu prüfen)

und es gibt die Tabelle Personal_sonstLehrgang und hier benötige ich dann alle, bei denen

a) der Eintrag Führerscheinkontrolle komplett fehlt
b) kein Eintrag Führerscheinkontrolle zwischen dem 01.01. und dem heutigen Datum besteht.

plinni

  • Experte
  • *****
  • Beiträge: 151
Re: Filter wer Vorgabe nicht erfüllt
« Antwort #5 am: 28. November 2018, 13:59 »
Ok, meine isnull()-Lösung funktioniert nicht, weil in der Lehrgangstabelle für 2018 ja kein Wert vorhanden ist. Sorry, mein Fehler.

Du könntest es über einen Unterbericht lösen, den du für jeden FW-Angehörigen ausführst und darin dann ggf. das Datum anzeigst, wann die Führerscheinprüfung 2018 stattgefunden hat. Es kommt dann kein Ergebnis für die, die noch keine Prüfung hatten. Performant ist das nicht so sehr, aber bei 300 Datensätzen sollte es gehen.

NicolasGlatz

  • Full Member
  • ***
  • Beiträge: 62
Re: Filter wer Vorgabe nicht erfüllt
« Antwort #6 am: 28. November 2018, 16:46 »
ok, die Performance, insbesondere da ich den Report nur 1-2 mal im Jahr ausführe, kann man vernachlässigen.

wie würdest du die Abfrage im Unterbericht machen?

NicolasGlatz

  • Full Member
  • ***
  • Beiträge: 62
Re: Filter wer Vorgabe nicht erfüllt
« Antwort #7 am: 29. November 2018, 07:52 »
ich hab's geschafft, vmtl. zwar sehr kompliziert, aber es "funktioniert"

ich erzeuge mir zum einen eine "Namenskombi" bestehend aus Nachname, Vorname, Personalnummer, sodass ich einen eindeutigen Wert habe auf den ich selektieren & sortieren kann. Personalnummer ist nötig, da wir den fall haben, dass Nachname & Vorname identisch sind.

danach habe ich das Geburtsdatum, hier filtere ich in einem 2ten Versuch noch auf die Volljährigkeit (DD.MM.JJJJ 00:00:00), von minderjährigen brauch ich keinen Führerschein zu kontrollieren.

dahinter habe ich einen Unterbericht

alle 3 Felder sind im "Gruppenkopf 1", gruppiert auf die "Namenskombi"


Im Unterbericht habe ich in Details die Ausbildungsbezeichnung sowie das Datum
im Berichtsfuß lass ich mir das höchste Datum anzeigen.
alle anderen Zeilen sind ausgeblendet / unterdrückt




Weiter habe ich im Unterbericht ein Parameterfeld mit jeweils dem 01.01. und verschiedenen Jahren zum auswählen.
über die Feld Formatierung prüfe ich ob der Wert höher ist, dann farbe Schwarz, ansonsten farbe rot

Da wo noch nie ein Führerschein kontrolliert wurde, bleibt das Datumsfeld leer

NicolasGlatz

  • Full Member
  • ***
  • Beiträge: 62
Re: Filter wer Vorgabe nicht erfüllt
« Antwort #8 am: 6. Dezember 2018, 10:13 »
mmmh, es funktioniert doch nicht so richtig, aber ich verstehe nicht warum.

ich habe einen Hauptbericht, habe alles im Gruppenkopf, und gruppiere auf die Personalnummer.

im Gruppenkopf habe ich auch einen Unterbericht "Führerscheinkontrolle"
Hier habe ich in "Details" den "Lehrgang" sowie das Datum
im Berichtsfuß summiere ich auf den höchsten Datums-Wert

alles bis auf den Berichtsfuß blende ich aus.


Im Unterbericht habe ich ein Paramterfeld

Im Summenfeld (Unterbericht) habe ich bei der Text-Farbe folgende Formel hinterlegt
if {PERSONAL_SONSTLEHRG.VONDATUM} < {?Jahr} then red


nun habe ich teilweise den Fall, dass der Führerschein kontrolliert wurde, aber dennoch die Zeile rot ausgegeben wird.

zur Erklärung, im Bild "Ergebnis" ist der 21.08.84 das Geburtsdatum, die 34 sein Alter