Hallo,
ich versuche mir einen Report zu basteln der mir den Füllstand vom Systemaufwerk C: berichtet. Das geht doch schnell, dachte ich.
Leider ergab sich für mich ein Problem beim Erstellen der entsprechnden Abfrage. Ich habe mir folgendes für die Abfrage zusammengesucht:
Felder: "Computer Name", "Laufwerk ID", "Laufwerk Benutzung".
Filter: UND [Laufwerk ID gleich "C:"]
Angeordnet nach: "Logical Drives"
sortiert nach Füllstand
Leider greift der Filter nicht wie gewüscht, es sollen nur Ergebnisse vom Laufwerk C: angezeigt werden. Alle anderen Laufwerke nicht.
Wenn ich den Filter in der Ergebnistabelle anwende arbeitet die Befilterung wie gewünscht. Das hilft mir aber beim Report nicht weiter da dort wieder alle Laufwerke gelistet werden.
Was mache ich falsch ?
MfG HDReg
Abfragen mit Filter
-
- Beiträge: 10
- Registriert: Mo Feb 28, 2022 3:55 pm
Servus HDReg,
ähnliches Problem hatte ich heute morgen auch.
In dem Fall musst du den Filter im Report setzen
öffne mal deinen Bericht im FastReport, Doppelklick auf dein MasterData1, dort kannst du einen Filter setzen.
Wenn ichs richig verstehe müsste
POS( lowercase('C:'),lowercase(<Laufwerk ID>) ) > 0
den gewünschten Effekt haben.
(vermutlich heißt die Variable bei dir noch anders)
Gruß
Florian
ähnliches Problem hatte ich heute morgen auch.
In dem Fall musst du den Filter im Report setzen
öffne mal deinen Bericht im FastReport, Doppelklick auf dein MasterData1, dort kannst du einen Filter setzen.
Wenn ichs richig verstehe müsste
POS( lowercase('C:'),lowercase(<Laufwerk ID>) ) > 0
den gewünschten Effekt haben.
(vermutlich heißt die Variable bei dir noch anders)
Gruß
Florian
Hallo Florian,
danke für deine Antwort.
Ich habe deinen Tipp ausprobiert. Beim Ausführen des Reports erhalte ich eine Fehlermeldung: "Folgende(r) Fehler traten auf: Unbekannte Variable oder Datenfeld: Laufwerk ID Variante des Typs (Null) konnte nicht in Typ (OleStr) konvertiert werden"
Habe ich die Funktion des Filters in einer Abfrage falsch verstanden? Oder ist das ein Programmbug? Nach einer Weile herumprobieren habe ich festgestellt das der Filter eigentlich nur nach "Computer Name" zuverlässig filtert. Tests mit "Laufwerksbezeichnung"/"Drive Label" like "Daten" haben nicht gegriffen.
Vielleicht kann Jemand etwas damit anfangen, hier der SQL Code des Filters:
"CLT_CLIENTS"."CLIENTID" IN (
SELECT "CLT_CLIENTS"."CLIENTID" FROM "CLT_CLIENTS" WITH (READUNCOMMITTED)
INTERSECT (
SELECT "CLT_CLIENTS"."CLIENTID" FROM "CLT_CLIENTS" WITH (READUNCOMMITTED)
LEFT JOIN "CLT_HDW_LDRIVES" ON
"CLT_HDW_LDRIVES"."CLIENTID" =
"CLT_CLIENTS"."CLIENTID"
WHERE
("CLT_HDW_LDRIVES"."DRIVENAME"
=
N'C:')
)
)
MfG HDReg
danke für deine Antwort.
Ich habe deinen Tipp ausprobiert. Beim Ausführen des Reports erhalte ich eine Fehlermeldung: "Folgende(r) Fehler traten auf: Unbekannte Variable oder Datenfeld: Laufwerk ID Variante des Typs (Null) konnte nicht in Typ (OleStr) konvertiert werden"
Habe ich die Funktion des Filters in einer Abfrage falsch verstanden? Oder ist das ein Programmbug? Nach einer Weile herumprobieren habe ich festgestellt das der Filter eigentlich nur nach "Computer Name" zuverlässig filtert. Tests mit "Laufwerksbezeichnung"/"Drive Label" like "Daten" haben nicht gegriffen.
Vielleicht kann Jemand etwas damit anfangen, hier der SQL Code des Filters:
"CLT_CLIENTS"."CLIENTID" IN (
SELECT "CLT_CLIENTS"."CLIENTID" FROM "CLT_CLIENTS" WITH (READUNCOMMITTED)
INTERSECT (
SELECT "CLT_CLIENTS"."CLIENTID" FROM "CLT_CLIENTS" WITH (READUNCOMMITTED)
LEFT JOIN "CLT_HDW_LDRIVES" ON
"CLT_HDW_LDRIVES"."CLIENTID" =
"CLT_CLIENTS"."CLIENTID"
WHERE
("CLT_HDW_LDRIVES"."DRIVENAME"
=
N'C:')
)
)
MfG HDReg
-
- Beiträge: 10
- Registriert: Mo Feb 28, 2022 3:55 pm
Servus,
bzgl der Abfragen: da falle ich auch regelmäßig auf die Nase. ACMP "denkt" da ein bisschen anders:
Deine Abfrage sagt: Suche mir alle Computer die eine Platte namens C: haben
Die Logik im Report sagt aber: Iteriere über alle gefundenen Computer und iteriere dann über alle Festplatten (völlig Egal ob die C,D,E oder X heißen)
Von daher brauchst den Filter im Rerport.
Heißt das Feld bei dir wirklich "Laufwerk ID" ?
Wenn ich auf die schnelle ne Abfrage zusammenklicke kommt [Logical drives."Drive Label"] bei raus.
Gruß
Flo
bzgl der Abfragen: da falle ich auch regelmäßig auf die Nase. ACMP "denkt" da ein bisschen anders:
Deine Abfrage sagt: Suche mir alle Computer die eine Platte namens C: haben
Die Logik im Report sagt aber: Iteriere über alle gefundenen Computer und iteriere dann über alle Festplatten (völlig Egal ob die C,D,E oder X heißen)
Von daher brauchst den Filter im Rerport.
Heißt das Feld bei dir wirklich "Laufwerk ID" ?
Wenn ich auf die schnelle ne Abfrage zusammenklicke kommt [Logical drives."Drive Label"] bei raus.
Gruß
Flo