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 :

Opération sur des colonnes dynamiques dans une pivot table


Sujet :

QlikView

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Opération sur des colonnes dynamiques dans une pivot table
    Bonjour à tous,

    Voila, je débute avec QV et j'ai ma boite qui me fou la pression pour que je sorte des objets complexes très rapidement sans réelle formation avant

    Dans une pivot table, j'ai les expressions des formules assez complexes, si j'ai un label de colonne statique (ex col1, col2), je peu facilement faire col 3 = [col1]+[col2] dans l'expression sans devoir retaper toute la formule de col1 et col2.
    Par contre ou ça coince, c'est lorsque mes labels de colonne deviennent dynamique (elles contiennent également une expression), je n'arrive plus à faire le genre d'opération col1+col2.
    Est ce possible de le faire? et si oui quelqu'un aurait il la syntaxe?

    D'avance merci de votre aide

    Vincent

  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
    Si c'est un tableau simple, tu peux créer une colonne X qui contiendra ta formule et que tu pourras ne pas afficher (onglet présentation).
    Il te suffira d'utiliser une autre colonne avec étiquette dynamique et formule =X

    Si c'est un tableau croisé dynamique, tu peux utiliser la fonction before() pour récupérer la valeur calculée avec la dimension précédente (on peut aussi définir un offset).

    Sinon, tu dois y arriver en remettant la formule du label mais entre crochets [ et ]

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    J'ai essayé ta technique en utilisant une colonne temporaire et en la désactivant mais à ce moment la QV ne me calcule plus la colonne dynamique si la colonne temporaire n'est pas active.

    Pour l'autre technique en mettant entre [] c'est ce que je fais mais on dirait que QV m'évalue la variable et que du coups il ne retrouve pas la colonne.
    si j'ai comme labelle de ma colonne1 = 'Qtt P' & Right($(Px),3) et la variable Px = 201205, et qu'après dans ma colonne2 je mets =[= 'Qtt P' & Right($(Px),3)] j'ai rien comme résultat si ce n'est que j'ai le label de la colonne comme étant =[= 'Qtt P' & Right('201205',3)]

    Vincent

  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
    Si j'utilise ='Qtt P' & $(Px) comme label avec =[Qtt P $(Px)] ça marche
    Il faut quand même faire attention à l'orthographe (Case sensitive) !
    Si j'indique right($(Px),3) alors ça ne marche plus

    Si je crée une expression avec un calcul et TRUC comme label, que je la cache,
    Je peux utiliser une expression avec TRUC comme formule et ='Test' & $(Px) comme label
    Mes autres expressions n'auront plus qu'à utiliser TRUC pour utiliser la valeur de la colonne.

  5. #5
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par buvi0505 Voir le message
    J'ai essayé ta technique en utilisant une colonne temporaire et en la désactivant
    tu peux créer une colonne X qui contiendra ta formule et que tu pourras ne pas afficher (onglet présentation).
    Attention : cocher une expression "inactif" (onglet "Expression") et la rendre invisible (onglet "Présentation") sont 2 choses différentes.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    @FORMULARY:
    Oui effectivement, j'ai le même soucis, dès que je mets le = devant et le rigth() il foire. C'est comme si le système était capable d'évaluer une variable mais pas une expression. Pourtant quand je met dans ma 2e colonne =[ ] le programme me montre un choix de colonne disponible et elle est bien dedans.
    Au pire ce que je peux faire, c'est refaire une variable avec le right($(Px),3) et l'utiliser dans mon label. C'est un peu bête mais bon ça devrait marcher ça.

    @ tous les 2:
    Effectivement, j'ai désactivé la colonne dans l'onglet "expression" mais c'est parce que j'ai rien vu qui me permettait de masquer la colonne dans l'onglet "présentation". Soit j'ai besoin de repasser chez mon opticien soit ça ne se trouve pas dans la version que j'utilise (version 10 de QV). Vous pouvez m'éclairer plus précisément, ça peut toujours servir.

    En tout cas merci pour votre aide.

    Vincent

  7. #7
    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
    La case à cocher pour masquer la zone dans l'onglet présentation n'apparaît que pour les tableaux simples. Pas pour les tableaux croisés ou les graphiques en lignes. Quel est le type de ton graphique ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Ah ok, voila pourquoi je la trouvais pas, c'est un tableau croisé.

    Entre temps, en écrémant encore le forum pour trouver de l'inspiration, et en faisant des recoupement de script que j'ai vu, j'ai fini par trouvé la solution à mon problème. Je vous la poste au cas ou d'autre voudrais s'en servir ...

    Il faut en fait écrire dans le label l'expression de la manière suivante: "Qtt $(Right($(Px),3))" et ça fonctionne nickel

    Voila, merci bien

    Vincent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. LINQ et opération sur des colonnes de Datarow
    Par ManuSG dans le forum Linq
    Réponses: 2
    Dernier message: 02/03/2010, 09h56
  2. Réponses: 1
    Dernier message: 08/12/2009, 22h35
  3. nombre des variables dynamique dans une fonction
    Par Abdelkaoui dans le forum C
    Réponses: 10
    Dernier message: 29/02/2008, 15h37
  4. inserer une colonne dynamique dans une table
    Par natacha5 dans le forum Access
    Réponses: 12
    Dernier message: 04/07/2007, 16h47
  5. nombre de colonnes dynamiques dans une Datagrid
    Par khayri dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/06/2007, 21h14

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