Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Construire une date à partir d'un nom de Fichier source

Bonjour,

Je me permet de vous solliciter une nouvelle fois...sans doute par incompétence ????. Ma question fait suite à la réponse à une question précédente concernant l'exclusion de champs au chargement

Il s'agirait cette fois de paramétrer la date de début et la date de fin en fonction du nom du fichier. En effet le nom de fichier contient le n° de mois étudié donc je pensais pouvoir le récupérer pour paramétrer la Date_jour_deb et Date_jour_fin comme présenter ci-dessous. Mais ce que j'ai écrit ne fonctionne pas !! Sauriez vous me dire où est mon erreur ?

Encore merci

let MoisFichier = Left(Subfield(Filebasename(),'_',4),2);

let VAR01='01/' & (MoisFichier) & '/2016';

let VAR02='31/' & (MoisFichier) & '/2016';

let Date_jour_deb = date#(VAR01,'DD/MM/YYYY');

let Date_jour_fin = date#(VAR02,'DD/MM/YYYY');

set  Errormode=0;

For Date_jour= '$(Date_jour_deb)' to '$(Date_jour_fin)'

let Jour= left(date('$(Date_jour)'),5);        

[Feuil1]:      

  LOAD

    [Mesure],       

    [Départ.],           

    [Code],            

    [Forme],        

    [Capit],        

   [$(Jour)] as AUTRESEM,          

    '$(Jour)' as Jour          

  FROM [lib://Desktop/Reprise_Qlik_121_06.xlsx]

  (ooxml, embedded labels, table is Feuil1);

Next

1 Solution

Accepted Solutions
almamy_diaby
Creator
Creator

Je pense que qu'on peut trouver une manière de récupérer  le Mois de ton fichier.

FICHIER:

LOAD distinct

     FileBaseName() as Nom_Fichier

FROM [lib://b/Reprise_Qlik_121_06.xlsx]

(ooxml, embedded labels, table is Feuil1);

let MoisFichier =  Left(Subfield(Peek('Nom_Fichier', 0,'FICHIER'),'_',4),2);

DROP Table FICHIER;

let VAR01='01/' & (MoisFichier) & '/2016';

let VAR02='31/' & (MoisFichier) & '/2016';

let Date_jour_deb = date#(VAR01,'DD/MM/YYYY');

let Date_jour_fin = date#(VAR02,'DD/MM/YYYY');

View solution in original post

3 Replies
almamy_diaby
Creator
Creator

Bonjour,

Je pense que la fonction file Filebasename() renvoie une chaîne contenant le nom du fichier de tables en cours de lecture, sans chemin ni extension. Alors, cette fonction est logiquement utilisé à l’intérieur d'un LOAD  comme l'indique

l'exemple ci dessous:

Load *, filebasename( ) as X from

C:\UserFiles\abc.txt

on aura 'abc' dans le champ X à chaque enregistrement lu.


Vous n'utilisez donc pas  filebasename( ) convenablement.

almamy_diaby
Creator
Creator

Je pense que qu'on peut trouver une manière de récupérer  le Mois de ton fichier.

FICHIER:

LOAD distinct

     FileBaseName() as Nom_Fichier

FROM [lib://b/Reprise_Qlik_121_06.xlsx]

(ooxml, embedded labels, table is Feuil1);

let MoisFichier =  Left(Subfield(Peek('Nom_Fichier', 0,'FICHIER'),'_',4),2);

DROP Table FICHIER;

let VAR01='01/' & (MoisFichier) & '/2016';

let VAR02='31/' & (MoisFichier) & '/2016';

let Date_jour_deb = date#(VAR01,'DD/MM/YYYY');

let Date_jour_fin = date#(VAR02,'DD/MM/YYYY');

Not applicable
Author

Bonjour,

Merci beaucoup, j'avais essayer avec une table intermédiaire mais je n'avais pas la fonction 'Peek' donc cela ne marchait pas.

Merci Merci, ça marche très bien

Très bonne journée