2016-09-29 2 views
0

Je travaille sur Extesion pour l'application Qlik Sense 3.0.Comment recevoir des données d'un champ dans Qlik Sense 3.0?

J'ai fait le même sujet sur la communauté qlik, mais je n'ai pas reçu de réponse.

https://community.qlik.com/thread/231938

J'espère que quelqu'un ici peut me aider.

Ok. J'ai une fonction:

function whenMonthsSelected(fieldName){ 

    var field = app.field(fieldName); 

    var fieldData = field.getData(); 

    console.log("fieldData"); 
    console.log(fieldData); 

    console.log(fieldData.rows.length); 
} 

Et quand je l'exécute, je reçois dans le navigateur:

enter image description here

Dans le résultat que j'ai tableau avec 0 éléments.

Et ma question est ...
Que dois-je faire pour recevoir un tableau avec 12 lignes?

Ce tableau contient 12 lignes (Informations sur les mois). Et je peux recevoir des données en cliquant sur l'arbre. Mais dans la console je reçois toujours un tableau avec 0 élément.

Merci.

+0

Avez-vous essayé de fermer et de rouvrir QS? –

+0

On dirait que les lignes ne sont pas chargées au moment où vous conservez console.log. Vous devez y accéder plus tard. –

+0

Comme Roland suggéré essayer et récupérer les données avec promesse. Quelque chose comme: 'field.getData(). Then (function (fieldData) { console.log (fieldData.rows.length) });' –

Répondre

0

Vous devez vous connecter à l'événement OnData. Les données sont chargées de manière asynchrone dans la collection de lignes. L'exemple dactylographié suivant montre l'idée.

getField(field: string): Promise<any> { 
     let self = this.app; 
     return new Promise(function (resolve, reject) { 
      try {      
       let reply: any; 

       let listener = function() { 
        self.field(field).OnData.unbind(listener); 
        resolve(reply.rows); 
       } 

       self.field(field).OnData.bind(listener); 
       reply = self.field(field).getData(); 
      } catch (ex) { 
       reject(ex); 
      } 
     }); 
    } 
+0

Notez que vous serez limité aux 200 premières lignes par défaut. Il existe un paramètre pour le nombre de lignes à retourner. Voir la documentation. J'essaie toujours de comprendre comment faire la page. La fonction getMoreData() ne fonctionne pas pour moi à ce stade. – maxim1500

0

On dirait que ce code va faire ce que vous avez besoin:

var fieldValues = app.field("SomeFieldName").getData(); 
fieldValues.OnData.bind(function() { 
    console.info("waitedForData>>>",fieldValues.rows); 
}); 
+0

Essayez d'expliquer pourquoi c'est la solution appropriée – Mawcel