IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

QlikView Discussion :

Utilisation de variable lors du script de chargement


Sujet :

QlikView

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 58
    Points : 27
    Points
    27
    Par défaut Utilisation de variable lors du script de chargement
    Bonjour,

    Je viens vous demander de l'aide car je ne comprends pas comment utiliser les variables lors du chargement d'une table

    Lors du chargement de mes données j'ai besoin d'effectuer des vérifications sur la qualité de mes données et d'effectuer des corrections automatiques assez basiques. Cependant j'aimerais proposer à l'utilisateur de corriger les données repérer comme erronée lors du chargement afin que celui-ci puisse les corrigés, pour cela j'utilise la fonction Input afin qu'il puisse saisir cette valeur. Cependant je n'arrive pas à stocker le résultat de l'input dans une variable à l’intérieur du LOAD.

    Je vous joins mon code qui actuellement ne fonctionne pas pour problème de syntaxe au niveau de la déclaration de variables. (Commentaire Problème ^^)

    Merci pour votre aide.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    MaterialCategory:
    LOAD
    //--------------- Material Category Code------------------------------
    	if(([Material category code] like 'M*') = 0 OR LEN([Material category code]) < 3,
    		if(MsgBox('La valeur du Material category code : ' & [Material category code] & ' semble incohérente. 
    					Voulez vous la corriger manuellement ?
    					(Non = Rejet de la valeur)', 
    			'Effectuer la correction ?', 'YESNO', 'ICONQUESTION', 'DEFBUTTON1') <> 6,
    			'',
    //----------------------------------- Probleme------------------------------------------------------------------
                            SET rep = Input('Veuillez corriger la valeur : ' & [Material category code], 'Correction de la valeur')
    			if(isNull($('rep')) = -1,
    				MsgBox('Aucune valeur saisie, la valeur est rejetée'),
    				$('rep')
    			)
    		),
    		if(LEN([Material category code]) > 3, //then
    			LEFT([Material category code], 3),
    			[Material category code]
    		)
    	) as [Material category code],
    //-----------------Description----------------------------------------
    	Description as [Material category description],
    //-----------------Safety Stocks--------------------------------------
    	IF(IsNull([Safety stock]) = -1 OR IsNum([Safety stock]) <> -1,
    		'N/A',
    		IF([Safety stock] < 0 OR Frac([Safety stock]) <> 0 ,
    			if(MsgBox('La valeur du safety stock : ' & [Safety stock] & ' est incohérente. 
    				Voulez vous la corriger par la valeur : ' & Evaluate(FABS([Safety stock]) - Frac(FABS([Safety stock]))) & ' ?
    				(Non = N/A)', 
    				'Effectuer la correction ?', 'YESNO', 'ICONQUESTION', 'DEFBUTTON1') <> 6,
    			'N/A',
    				FABS([Safety stock]) - Frac(FABS([Safety stock]))
    			),
    			[Safety stock]
    		)
    	) as [Material category safety stocks]
    FROM [LoadFolder\data.xlsx]
    (ooxml, embedded labels, table is [Material category])
    WHERE NOT Exists([Material category code]);

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour. Essayez de remplacer Set par Let !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par FORMULARY Voir le message
    Bonjour. Essayez de remplacer Set par Let !
    Bonjour,

    J'avais déjà essayer de le remplacer par Let mais même problème de syntaxe :/

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour. Ce script marche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Let Rep = Input('Question','Titre');
    If Rep = 'X' then
       Let Rep2 = 'OK';
    Else
       Let Rep2 = 'Mauvais';
    Endif
    PS : Dans votre script, il ne manquerait pas le point virgule à la fin de l'instruction Let ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 58
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Le problème que j'ai avec l'utilisation des variables c'est que je suis dans la partie de chargement des données (LOAD) et celle ci ne sont pas prise en compte et me renvoi a chaque fois des erreurs de syntaxe.

    En faite je cherche a vérifier pour chaque valeur trouvée dans mon fichier source si il possède le bon format afin de valider la qualité des données sources.
    Si le format n'est pas bon alors je veux proposer a l'utilisateur de la corriger directement avec l'input mais il faut que je stock dans une variable la réponse de l'input afin de pouvoir évaluer si la réponse est null ou non si il est null alors il y a rejet de la valeur et donc pas de chargement de la donnée sinon on charge la donnée renseignée dans l'input.

    Merci

    P.S : le point virgule ne change rien.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Houla !
    Je n'avais pas bien lu votre post. Désolé.
    Vous êtes effectivement dans une instruction load, et donc vous ne pouvez pas utiliser d'instructions Let ou Set.

    Une piste : Faites un Load mafonction(monchamp) as monchamp, et dans les macros, créez une fonction mafonction qui fait les tests nécessaires avec les éléments passés en paramètres, éventuellement demande la valeur et retourne une valeur de remplacement.

    Par contre, dans un load, je ne vois pas comment ne pas charger l'enregistrement si la valeur n'est pas bonne.
    Peut-être en retournant une valeur spéciale '**<INVALID>**' par exemple, puis en supprimant les enregistrements où le champ = la valeur spéciale.

Discussions similaires

  1. Appeler une macro VB lors du script de chargement
    Par Siefch1 dans le forum QlikView
    Réponses: 3
    Dernier message: 26/03/2013, 11h20
  2. Utilisation de variables lors d'un appel
    Par Bibipulse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/02/2008, 14h01
  3. Utiliser une variable d'un script shell
    Par GomuSan dans le forum C
    Réponses: 14
    Dernier message: 10/01/2008, 10h49
  4. Réponses: 3
    Dernier message: 08/11/2007, 15h29
  5. utiliser une variable d'environement Windows dans un script
    Par pierre.zelb dans le forum VBScript
    Réponses: 2
    Dernier message: 29/11/2006, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo