Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Variables créées via le script

Bonjour,

Je crée les variables dont j'ai besoin à partir du chargement d'un fichier qvd (lui-même chargé depuis un fichier Excel où sont définies les variables). Or j'ai des variables qui sont mal créées et pour lesquelles QlikView génère une erreur interne (voir dans l'exemple joint la variable V_Taux_conso_CRR_année_préc_même_mois). Or si je crée la variable en allant dans le menu Paramètres, celle-ci se crée correctement (cf. V_Taux_conso_CRR_vérification.

Avez-vous une idée sur la cause du problème ?

Merci

Thierry

1 Solution

Accepted Solutions
martin59
Specialist II
Specialist II

Bonjour Thierry,

Votre erreur lors de la création des variables est due à la syntaxe $(=...).

Si vous souhaitez stocker ce genre de formules en variables et créer cette variable à chaque execution de script (ce qui est une très bonne habitude), vous devez contourner ce problème en utilisant plusieurs chaînes de texte concaténées.

Pour la formule de votre exemple, voici comment la déclarer dans le script :

LET V_Taux_conso_CRR_année_préc_même_mois = '$(V_Coût_total_CRR_mois( ={"$' & '(=A0_ANNEE_COURANTE-1)"}, ={"<$' & '(M0_MOIS_COURANT_NUM)"}, ={'Réel'}, -={'Emploi Financé'}))

/ $(V_Coût_total_CRR( ={"$' & '(=A0_ANNEE_COURANTE-1)"}, ={'Réel'}, -={'Emploi Financé'}))';

Pour faire plus simple, si votre formule doit donner :

vSetAnalysis : {<Année={$(=Year(Today()))}>}

Vous devez le déclarer dans le script de cette manière :

LET vSetAnalysis = '{<Année={$' & '(=Year(Today()))}>}';

J'espère avoir été clair,

Martin Favier

View solution in original post

9 Replies
Not applicable
Author

Je suis absent(e) du bureau jusqu'au 16/11/2012

I am out of the office and get back to you when I return.

Remarque : ceci est une réponse automatique à votre message "[Groupe des

Utilisateurs Francophones] - Variables créées via le script" envoyé le

15/11/12 12:09:46.

C'est la seule notification que vous recevrez pendant l'absence de cette

personne.

This message and any attachments (the "message") is

intended solely for the intended addressees and is confidential.

If you receive this message in error,or are not the intended recipient(s),

please delete it and any copies from your systems and immediately notify

the sender. Any unauthorized view, use that does not comply with its purpose,

dissemination or disclosure, either whole or partial, is prohibited. Since the internet

cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

(and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

Do not print this message unless it is necessary,consider the environment.

rfe
Employee
Employee

bonjour,

pouvez vous joindre votre fichier excel avec les formules que j'essaie de le charger

Merci

Not applicable
Author

Je suis absent(e) du bureau jusqu'au 16/11/2012

I am out of the office and get back to you when I return.

Remarque : ceci est une réponse automatique à votre message "[Groupe des

Utilisateurs Francophones] - Re: Variables créées via le script" envoyé le

15/11/12 13:33:30.

C'est la seule notification que vous recevrez pendant l'absence de cette

personne.

This message and any attachments (the "message") is

intended solely for the intended addressees and is confidential.

If you receive this message in error,or are not the intended recipient(s),

please delete it and any copies from your systems and immediately notify

the sender. Any unauthorized view, use that does not comply with its purpose,

dissemination or disclosure, either whole or partial, is prohibited. Since the internet

cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

(and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

Do not print this message unless it is necessary,consider the environment.

martin59
Specialist II
Specialist II

Bonjour Thierry,

Votre erreur lors de la création des variables est due à la syntaxe $(=...).

Si vous souhaitez stocker ce genre de formules en variables et créer cette variable à chaque execution de script (ce qui est une très bonne habitude), vous devez contourner ce problème en utilisant plusieurs chaînes de texte concaténées.

Pour la formule de votre exemple, voici comment la déclarer dans le script :

LET V_Taux_conso_CRR_année_préc_même_mois = '$(V_Coût_total_CRR_mois( ={"$' & '(=A0_ANNEE_COURANTE-1)"}, ={"<$' & '(M0_MOIS_COURANT_NUM)"}, ={'Réel'}, -={'Emploi Financé'}))

/ $(V_Coût_total_CRR( ={"$' & '(=A0_ANNEE_COURANTE-1)"}, ={'Réel'}, -={'Emploi Financé'}))';

Pour faire plus simple, si votre formule doit donner :

vSetAnalysis : {<Année={$(=Year(Today()))}>}

Vous devez le déclarer dans le script de cette manière :

LET vSetAnalysis = '{<Année={$' & '(=Year(Today()))}>}';

J'espère avoir été clair,

Martin Favier

Anonymous
Not applicable
Author

Bonjour Martin,

Merci pour la solution, ça marche. Il faut juste faire attention aux ' et les remplacer par " dans mon passage de valeur de paramètre pour le set analysis, comme par exemple

={'Réel'}

que j'ai remplacé par
={"Réel"}

Salutations

Thierry

Not applicable
Author

Je suis absent(e) du bureau jusqu'au 16/11/2012

I am out of the office and get back to you when I return.

Remarque : ceci est une réponse automatique à votre message "[Groupe des

Utilisateurs Francophones] - Re: Variables créées via le script" envoyé le

15/11/12 14:53:19.

C'est la seule notification que vous recevrez pendant l'absence de cette

personne.

This message and any attachments (the "message") is

intended solely for the intended addressees and is confidential.

If you receive this message in error,or are not the intended recipient(s),

please delete it and any copies from your systems and immediately notify

the sender. Any unauthorized view, use that does not comply with its purpose,

dissemination or disclosure, either whole or partial, is prohibited. Since the internet

cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

(and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

Do not print this message unless it is necessary,consider the environment.

Not applicable
Author

Je suis absent(e) du bureau jusqu'au 16/11/2012

I am out of the office and get back to you when I return.

Remarque : ceci est une réponse automatique à votre message "[Groupe des

Utilisateurs Francophones] - Re: Variables créées via le script" envoyé le

15/11/12 15:13:58.

C'est la seule notification que vous recevrez pendant l'absence de cette

personne.

This message and any attachments (the "message") is

intended solely for the intended addressees and is confidential.

If you receive this message in error,or are not the intended recipient(s),

please delete it and any copies from your systems and immediately notify

the sender. Any unauthorized view, use that does not comply with its purpose,

dissemination or disclosure, either whole or partial, is prohibited. Since the internet

cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

(and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

Do not print this message unless it is necessary,consider the environment.

martin59
Specialist II
Specialist II

Oui c'est vrai pardon, je n'avais pas fait attention à celà.

Sinon, lorsqu'il n'y a qu'un seul mot sans caractère spécial (espace, tiret...), les apostrophes ou guillemets sont facultatifs.

Dans votre cas,

={'Réel'}

aurait aussi pu être remplacé par

={Réel}

Tout simplement

Martin FAVIER

Not applicable
Author

Je suis absent(e) du bureau jusqu'au 16/11/2012

I am out of the office and get back to you when I return.

Remarque : ceci est une réponse automatique à votre message "[Groupe des

Utilisateurs Francophones] - Re: Variables créées via le script" envoyé le

15/11/12 15:35:42.

C'est la seule notification que vous recevrez pendant l'absence de cette

personne.

This message and any attachments (the "message") is

intended solely for the intended addressees and is confidential.

If you receive this message in error,or are not the intended recipient(s),

please delete it and any copies from your systems and immediately notify

the sender. Any unauthorized view, use that does not comply with its purpose,

dissemination or disclosure, either whole or partial, is prohibited. Since the internet

cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

(and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

Do not print this message unless it is necessary,consider the environment.