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

时间:2015-08-25 19:10:42

标签: c# winforms qlikview ocx

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

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

这是我的代码:

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

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

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是可能的选择。对于我的示例,我使用日期和公司的可能值预先填充数据源,而不进行选择。当我选择交易日期时,没有对公司可能的选择进行重新评估。因此,如果我选择的交易日期当天没有为特定公司保留任何记录,那么选择该公司将删除交易日期过滤器,因为它不是可能的选择。

我通过在任一数据源进行选择时检查每个数据源的可能选择来修复此问题。