.NET 中的 QlikView OCX 设置字段值会删除先前的选择

QlikView OCX in .NET setting a field value removes previous selection

我已将 QlikView OCX 设置为在我的 C# winforms 应用程序中工作。我已经为我要定位的特定字段收集了所有可能的字段值。我已经创建了在 .NET 控件中保存该数据的选择器。用户将在 .NET 控件中进行选择,然后单击按钮来设置字段值。

我可以轻松地为其中一个字段设置字段值。例如,我在设置日期时没有问题,因为这是唯一选择的选项。但是,如果用户随后在选择日期的同时进行 "company" 选择,则只会设置公司选择。我可以在我当前的选择对象中看到,日期最初是非常简短地设置的,然后当公司被设置时,它会覆盖之前的日期选择。我只剩下公司选择,没有日期。

这是我的代码:

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);
}

当 运行 使用该方法时,我希望看到我当前的选择设置了日期和公司。只有公司正在设置中。我错过了什么?为什么这会删除我之前的选择?

发生这种情况的原因是可能存在 select 离子。对于我的示例,我使用日期和公司的可能值预填充了数据源,但未生成 selections。当我 select 交易日期时,没有对公司可能的 select 离子进行重新评估。因此,如果我 selected 的交易日期当天没有为特定公司保留任何记录,selecting 公司会删除交易日期过滤器,因为它不可能 selection .

我通过检查每个数据源可能的 selection 解决了这个问题,当任一数据源都有 selection 时。