1 Reply Latest reply: Nov 18, 2013 1:40 PM by Jerome GODARD RSS

    Comment déterminer le nom d'un fichier source par une variable?

      Bonjour je suis nouveau sur QlikView et travaille sur mon premier projet.

      Une partie des données utilisées par mon document provient de fichiers XLSX mis a jours tous les mois.

      L'idée est que les utilisateurs les stockent dans un dossier dédié et que l'application parvienne a identifier le dernier fichier ajouté pour l'utiliser au chargement des données.

       

      J'ai donc créé une boucle sur les fichiers oú v_stringFileList est une variable dont la valeur correspond à la pattern de nom de fichier a parcourir (un préfixe, un joker * et un suffixe)

       

      filelist:
      FOR each File IN filelist ('$(v_stringFileList)')

      fileTable:

      LOAD FileName('$(File)') as Filename,

           FileBasename() as FileBasename,

           FileExtension() as FileExtension,

           FileDir() as FileDir,

           //FilePath() as FilePath,

           FileSize('$(File)') as FileSize,

           FileTime('$(File)') as FileTime

           FROM '$(File)';

      next File

       

      Cela me stocke les informations sur les fichier a partir de quoi je détermine le fichier qui m'interesse. En l'occurence les nom de fichiers ayant une date je me base sur le nom du fichier.

      SET v_lefichieraimporter = MaxString(Filename);

       

      En mode affichage dans un bloc texte je parviens bien a récupérer le nom de fichier voulu grace a l'expression

      = $(v_lefichieraimporter);

       

      Mais dans le script de chargement des données cela ne fonctionne pas.

      LOAD *

      FROM

      FROM [$(v_lefichieraimporter)]  // J'ai essayé pas mal de combinaisons $(=$(v_lefichieraimporter)), et d'autres plus incongrues

       

      Quelqu'un aurait-il un conseil ? c'est frustrant de parvenir a évaluer un variable via une expression et ne pas y parvenir dans le script…

      Il doit y avoir un petit truc que je n'ai pas compris...

       

      merci de votre aide