Accéder au contenu principal

Champs de saisie

SUR CETTE PAGE

Champs de saisie

QlikView prend en charge un type de champ particulier, qui peut être modifié sans nécessiter l'exécution du script : le champ de saisie.

Un champ de saisie est similaire aux autres champs existants dans QlikView, à ceci près que sa valeur, telle qu'elle est lue dans le script, peut être modifiée ultérieurement sans pour autant nécessiter l'exécution du script. Les champs de saisie peuvent être utilisés comme n'importe quel autre champ dans tous les types d'objets de feuille.

Lors de l'utilisation de champs de données, le script crée des emplacements pour chaque valeur de champ, qui pourront être édités pour contenir les nouvelles données. Vous pouvez convertir n'importe quel champ en champ de saisie en l'indiquant dans une instruction inputfield dans le script, avant qu'il figure dans une instruction LOAD ou SELECT.

Les valeurs d'un champ de saisie peuvent être modifiées dans les cellules des zones de liste, des zones table et des expressions des tableaux graphiques. Seules les colonnes des listes ou des tables qui contiennent des champs de saisie peuvent être éditées. En survolant une cellule éditable avec la souris, vous pouvez afficher une icône de saisie. En cliquant sur cette icône, la cellule bascule en mode édition. Il est possible d'utiliser les touches flèches haut/bas pour naviguer dans les cellules en mode édition. Le document QlikView entier est automatiquement recalculé dès que de nouvelles valeurs sont saisies.

Une cellule d'expression de graphique dans une table peut contenir une fonction d'agrégation de champ de saisie spéciale tout en restant disponible pour la saisie. La modification sera répercutée sur les autres valeurs du champ, par algorithme prédéfini, comme "Diffusion égale" ou "Diffusion proportionnelle".

Il est possible de spécifier un changement relatif.

Remarque: Un changement relatif fonctionne lorsque le mode de distribution fait partie de l'expression.

La syntaxe suivante s'applique (n est un nombre) :

Syntaxe de saisie
Syntaxe Description
%+n augmente la valeur actuelle de n % 
%-n réduit la valeur actuelle de n % 
+=n augmente la valeur actuelle de n 
-=n réduit la valeur actuelle de n 
*=n multiplie la valeur actuelle par n 
/=n divise la valeur actuelle par n 

Example:  

%+10 augmente la valeur actuelle de 10 %.

+=56 augmente la valeur actuelle de 56.

*=2 multiplie la valeur par 2.

/=2 divise la valeur par 2.

/=0 n'implique aucun changement.

Il existe par ailleurs des API d'automatisation permettant d'extraire et de définir des valeurs de façon automatique par programmation.

Restrictions

  • Il n'est pas possible d'utiliser un champ calculé et des champs clés comme champs de saisie. La fonctionnalité de champ de saisie est automatiquement désactivée.
  • Les champs de saisie ne sont pas destinés à contenir de grandes quantités de données, car ils stockent les données d'une manière bien moins efficace que les champs ordinaires.
  • La clé entre le champ de saisie et le champ logique doit être unique et ne peut pas contenir de valeurs dupliquées.

Exemple de champ de saisie

Cet exemple ajoute un champ de saisie aux données et vous montre comment mettre à jour les valeurs interactivement.

  1. Chargez les données suivantes dans le script de chargement.

    Inputfield Value;

     

    Table1:

    LOAD * INLINE

    [

    Key, Attribute, Value

    Bob, Jan, 100

    Bob, Feb, 200

    Bob, Mar, 300

    Kate, Jan, 400

    Kate, Feb, 500

    Kate, Mar, 600

    ];

  2. Lorsque vous avez chargé les données, créez une Zone table et ajoutez l'ensemble des trois champs.
  3. Créez un graphique Tableau simple et ajoutez Key comme dimension. Ajoutez les expressions suivantes :

    • Sum(Value)
    • InputSum(Value)

    Les deux expressions afficheront la même valeur, mais vous pouvez mettre à jour uniquement InputSum(Value) dans le tableau simple, pas Sum(Value).

Vous pouvez maintenant modifier Value interactivement dans la zone table. Les valeurs agrégées des expressions du tableau simple seront mises à jour en conséquence.

Vous pouvez également mettre à jour les valeurs de l'expression InputSum(Value) dans le tableau simple. Les valeurs sous-jacentes seront mises à jour dans la zone table. La modification est distribuée de manière égale sur toutes les valeurs, mais vous pouvez modifier le mode de distribution dans la fonction InputSum().