QlikTip #3: Überprüfen, ob ein Feld existiert

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.

Bookmark and Share

and tagged , , , . Bookmark the permalink. Both comments and trackbacks are currently closed.

2 Comments

  1. Christian C
    Posted March 31, 2011 at 13:10 | Permalink

    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

    • Posted April 4, 2011 at 13:02 | Permalink

      Using msgbox within a load script is not possible.

      Regards
      Stefan

4 Trackbacks

  1. […] QlikTip #3: Überprüfen, ob ein Feld existiert […]

  2. […] Possibly related posts:QlikTip #3: Überprüfen, ob ein Feld existiert […]

  3. […] (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 […]

  4. […] 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 […]