2015-08-25 1 views
0

J'ai configuré le QlikView OCX pour fonctionner dans mon application Winforms C#. J'ai rassemblé toutes les valeurs de champs possibles pour les champs spécifiques que je cherche à cibler. J'ai créé des sélecteurs qui contiennent ces données dans les contrôles .NET. L'utilisateur effectue des sélections dans les contrôles .NET et clique sur un bouton pour définir les valeurs de champ.QlikView OCX dans .NET définition d'une valeur de champ supprime la sélection précédente

Je peux facilement définir une valeur de champ pour l'un des champs. Par exemple, je n'ai aucun problème à régler la date quand c'est la seule option sélectionnée. Cependant, si l'utilisateur effectue une sélection "entreprise" avec la sélection de la date, seule la sélection de la société est définie. Je peux voir dans mon objet de sélection actuel que la date a été initialement définie, très brièvement, puis lorsque la société est définie, elle remplace la sélection de date précédente. Il ne me reste plus que la sélection de l'entreprise, pas de date.

Voici le code que j'ai:

private void SetValues() 
{ 
    Field dateField = qvDoc.GetField("Date"); 
    dateField.Clear(); 
    IArrayOfFieldValue selectedDateFields = tradeDateField.GetNoValues(); 
    selectedDateFields.Add(); 
    selectedDateFields[0].Number = Convert.ToDouble(qvDoc.Evalueate("=num('" + (DateTime)ddlDate.EditValue _ "')")); 
    selectedDateFields[0].IsNumeric = true; 
    dateField.SelectValues(selectedDateFields); 

    Field companyField = qvDoc.GetField("Company"); 
    companyField.Clear(); 
    IArrayOfFieldValue selectedCompanyFields = companyField.GetNoValues(); 
    for (int i = 0; i < selectedCompanies.Count; i++) 
    { 
     selectedCompanyFields.Add(); 
     selectedCompanyFields[i].Text = selectedCompanies[i]; 
    } 
    companyField.SelectValues(selectedCompanyFields); 
} 

Lors de l'exécution de cette méthode, je compterais voir mes sélections actuelles fixées à une date et de l'entreprise. Seule l'entreprise est en train d'être établie. Qu'est-ce que je rate? Pourquoi cela supprime-t-il ma sélection précédente?

Répondre

0

La raison pour laquelle cela se produisait est due aux sélections possibles. Pour mon exemple, je préremplis les datasources avec les valeurs possibles pour la date et la société sans sélection. Lorsque je sélectionne une date de transaction, il n'y a pas eu de réévaluation des sélections possibles pour la société. Donc, si j'ai sélectionné une date de transaction qui ne contient aucun enregistrement pour une société donnée ce jour-là, la sélection de la société supprime le filtre de date de transaction car ce n'est pas une sélection possible.

J'ai corrigé ce problème en recherchant les sélections possibles pour chaque source de données lorsque l'une des sources de données a été sélectionnée.