Wenn man in Lade-Skripten automatisch alle Felder einer Tabelle oder einer QVD-Datei laden will (also typische SELECT * FROM … Szenarien), ist es für weitere Skripts oft notwendig zu wissen, ob ein Feld in einer Tabelle existiert oder nicht.
Folgender Beispielcode demonstriert, wie dies einfach zu machen ist:
Customers:
LOAD * INLINE [
CustomerId, PostalCode, City
1, 1010, Vienna
2, 8020, Graz
3, 6020, Innsbruck
4, 9020, Klagenfurt
];
// Nun wollen wir wissen, ob das Feld 'Country' in der Tabelle 'Customers' existiert
LET X = FieldNumber('Country','Customers');
if $(X) = 0 then
// field does not exist
TRACE field 'country' does not exist;
/*
add your code here ...
*/
else
// field exists
TRACE field 'country' exists;
/*
add your code here ...
*/
end if
Erläuterung:
Die Funktion FieldNumber gibt 0 retour, wenn ein Feld in einer Tabelle nicht funktioniert, so lässt sich leicht abfragen, ob ein Feld existiert oder nicht.

Stefan WALTHER
2 Comments
Hallo Stefan,
du hast wirklich einen echt guten Blog!
Er ist übersichtlich, informativ und wirklich extrem hilfreich!
Ich befasse mich erst seit drei Wochen mit QlikView und bin deshalb noch nicht allwissend
Ich bin im Moment dabei mir ein kleines HowTo zu erarbeiten (inkl. QVW etc).
Nun aber zur meiner Frage.
Ich möchte, dass mir der Skript automatisch eine Nachricht inklusive des Feldnamens angibt. Die Nachricht habe ich schon, nur an dem Feldnamen (in meinem Fall ‘C’) hapert es noch ein wenig
Hier mein Skript:
// **************** Laden der Tabelle ********************************************************************
Tabelle1:
LOAD * INLINE [
Key, A, B, C
1, A1, B1, C1
2, A2, B2, C2
3, A3, B3, C3
];
// **************** Existiert ‘C’ in der Tabelle ‘Tabelle1′ **********************************************
LET X= FieldNumber(‘C’,'Tabelle1′);
// **************** existiert nicht **********************************************************************
if $(X) = 0 then
LOAD MsgBox(‘Existiert nicht’) AutoGenerate 1;
// **************** es existiert *************************************************************************
ELSE
LOAD MsgBox(‘Existiert’) AutoGenerate 1;
end if;
Ziel ist es also, dass er mir sagt “Das Feld ‘C’ existiert nicht”!
Dankeschön für deine Hilfe und mach weiter so.
Christian
Using msgbox within a load script is not possible.
Regards
Stefan
4 Trackbacks
[...] QlikTip #3: Überprüfen, ob ein Feld existiert [...]
[...] Possibly related posts:QlikTip #3: Überprüfen, ob ein Feld existiert [...]
[...] (Country): $(a); TRACE udf-result (CustomerId): $(b); The original german version of this article can be found here.Possibly related posts:QlikTip #3: Überprüfen, ob ein Feld existiert Dieser Beitrag zeigt, wie [...]
[...] ob eine Tabelle existiertBy Stefan Walther 2 CommentsThis entry was posted in German Articles Im QlikTip #3 habe ich ja bereits ausgeführt, wie man im Load-Script überprüfen kann, ob ein Feld existiert [...]