Exemple #1
0
        public ReportItemDictionary <QVField> GetCurrentSelection()
        {
            ReportItemDictionary <QVField> qc = new ReportItemDictionary <QVField>();
            var selections = this._doc.GetCurrentSelections();

            for (int i = 0; i < selections.Selections.Length; i++)
            {
                string fieldName = selections.VarId[i];
                var    field     = this._doc.Fields(fieldName);

                QlikView.Common.QVField qvField = new QlikView.Common.QVField();
                qvField.Name = field.Name();
                var values = field.GetSelectedValues();
                for (int j = 0; j < values.Count; j++)
                {
                    qvField.Values.Add(new QlikView.Common.FieldValue()
                    {
                        Value     = values[j].Text,
                        IsNumeric = values[j].IsNumeric,
                        Number    = values[j].Number
                    });
                }

                qc.Add(qvField.Name, qvField);
            }

            return(qc);
        }
Exemple #2
0
        protected override Filter CreateItemFromXmlNode(System.Xml.XmlNode xmlNode)
        {
            Filter filter = new Filter();

            filter.Name        = xmlNode.GetAttributeValueIf("Name");
            filter.Description = xmlNode.GetAttributeValueIf("Description");
            string connection = xmlNode.GetNodeValueIf("Connection");

            if (ReportConfig.ConnectionManager.ItemCollection.ContainsKey(connection))
            {
                filter.Connection = ReportConfig.ConnectionManager.ItemCollection[connection];
            }

            XmlNodeList list = xmlNode.SelectNodes("Fields/Field");

            for (int i = 0; i < list.Count; i++)
            {
                QVField field = new QVField();
                field.Name       = list[i].GetAttributeValueIf("Name");
                field.Expression = list[i].GetAttributeValueIf("Expression");
                XmlNodeList valueList = list[i].SelectNodes("Value");
                for (int j = 0; j < valueList.Count; j++)
                {
                    FieldValue value = new FieldValue();
                    value.Value     = valueList[j].GetNodeValueIf();
                    value.Number    = double.Parse(valueList[j].GetAttributeValueIf("Number"));
                    value.IsNumeric = bool.Parse(valueList[j].GetAttributeValueIf("IsNumeric"));
                    field.Values.Add(value);
                }

                filter.Fields.Add(field.Name, field);
            }

            list = xmlNode.SelectNodes("Variables/Variable");
            for (int i = 0; i < list.Count; i++)
            {
                QvVariable variable = new QvVariable();
                variable.Name       = list[i].GetAttributeValueIf("Name");
                variable.Expression = list[i].GetAttributeValueIf("Expression");
                variable.Value      = list[i].GetNodeValueIf();

                filter.Variables.Add(variable.Name, variable);
            }

            return(filter);
        }
Exemple #3
0
        public QlikView.Common.QVField GetQVFieldByName(string name)
        {
            QlikView.Common.QVField qvField = new QlikView.Common.QVField();
            qvField.Name = name;
            var field  = this._doc.Fields(name);
            var values = field.GetPossibleValues(2000);

            for (int i = 0; i < values.Count; i++)
            {
                qvField.Values.Add(new QlikView.Common.FieldValue()
                {
                    Value     = values[i].Text,
                    IsNumeric = values[i].IsNumeric,
                    Number    = values[i].Number
                });
            }

            return(qvField);
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            QVField field = new QVField();
            field.Name = this.comboBoxFields.SelectedValue.ToString();

            if (string.IsNullOrWhiteSpace(this.txtExpression.Text))
            {
                for (int i = 0; i < this.dataGridView1.SelectedRows.Count; i++)
                {
                    FieldValue value = this.dataGridView1.SelectedRows[i].DataBoundItem as FieldValue;
                    field.Values.Add(value);
                }
            }
            else
            {
                field.Expression = this.txtExpression.Text.Trim();
            }

            if (this.FieldAdded != null)
                this.FieldAdded(field);

            this.Close();
        }
        private ObservableCollection<FieldValue> GetValuesFromExpression(QVField item)
        {
            ObservableCollection<FieldValue> values = new ObservableCollection<FieldValue>();

            if (item.Name == "TheYear" || item.Name == "MonthOfYear" || item.Name == "DayOfMonth")
            {
                var valuelist = Functions.GetDateValueFromExpression(item.Expression);

                foreach (var value in valuelist)
                {
                    values.Add(new FieldValue()
                    {
                        IsNumeric = true,
                        Number = value,
                        Value = value.ToString()
                    });
                }
            }
            else if (item.Name == "YearMonth" && item.Expression.Contains("CurrentFiscalYearMonthEx"))
            {
                values = Functions.GetValuesFromCurrentFiscalYearMonthEx();
            }
            else if (item.Name == "YearMonth" && item.Expression.Contains("CurrentFiscalYearMonth"))
            {
                values = Functions.GetValuesFromCurrentFiscalYearMonth();
            }
            else if (item.Name == "YearMonth" && item.Expression.Contains("LatestTwoFiscalYearMonth"))
            {
                values = Functions.GetValuesFromLatestTwoFiscalYearMonth();
            }
            else if (item.Name == "YearMonth" && item.Expression.Contains("CurrentYearMonthNumeric"))
            {
                values = Functions.GetValuesFromCurrentYearMonthNumeric();
            }
            else if (item.Name == "YearMonth" && item.Expression.Contains("CurrentYearMonth"))
            {
                values = Functions.GetValuesFromCurrentYearMonth();
            }
            else if (item.Name == "FiscalYearName" && item.Expression == "CurrentFiscalYearName")
            {
                values = Functions.GetCurrentFiscalYearName();
            }
            else if (item.Name == "FiscalYearName" && item.Expression == "PreviousFiscalYearName")
            {
                values = Functions.GetPreviousFiscalYearName();
            }
            else if (item.Name == "UsageYearMonth" && item.Expression.Contains("LastMonthFiscalYearMonth"))
            {
                values = Functions.GetValuesFromLastMonthFiscalYearMonth();

                var field = this.GetQVFieldByName(item.Name);

                foreach (var value in values)
                {
                    value.IsNumeric = field.Values.First(x => x.Value == value.Value).IsNumeric;
                    value.Number = field.Values.First(x => x.Value == value.Value).Number;
                }
            }
            else
            {
                var field = this.GetQVFieldByName(item.Name);
                List<ExpressionCondition> conditions = DateFunctions.CalculateExpression(item.Expression);

                foreach (var value in field.Values)
                {
                    DateTime date = DateTime.Parse(value.Value).Date;

                    bool isChecked = true;
                    foreach (var condition in conditions)
                    {
                        if (!condition.IsChecked(date))
                        {
                            isChecked = false;
                            break;
                        }
                    }

                    if (isChecked)
                        values.Add(value);
                }
            }
            return values;
        }
        public QlikView.Common.QVField GetQVFieldByName(string name)
        {
            QlikView.Common.QVField qvField = new QlikView.Common.QVField();
            qvField.Name = name;
            var field = this._doc.Fields(name);
            var values = field.GetPossibleValues(2000);
            for (int i = 0; i < values.Count; i++)
            {
                qvField.Values.Add(new QlikView.Common.FieldValue()
                {
                    Value = values[i].Text,
                    IsNumeric = values[i].IsNumeric,
                    Number = values[i].Number
                });
            }

            return qvField;
        }
        public ReportItemDictionary<QVField> GetCurrentSelection()
        {
            ReportItemDictionary<QVField> qc = new ReportItemDictionary<QVField>();
            var selections = this._doc.GetCurrentSelections();
            for (int i = 0; i < selections.Selections.Length; i++)
            {
                string fieldName = selections.VarId[i];
                var field = this._doc.Fields(fieldName);

                QlikView.Common.QVField qvField = new QlikView.Common.QVField();
                qvField.Name = field.Name();
                var values = field.GetSelectedValues();
                for (int j = 0; j < values.Count; j++)
                {
                    qvField.Values.Add(new QlikView.Common.FieldValue()
                    {
                        Value = values[j].Text,
                        IsNumeric = values[j].IsNumeric,
                        Number = values[j].Number
                    });
                }

                qc.Add(qvField.Name, qvField);
            }

            return qc;
        }
 protected void FieldDelete(QVField field)
 {
     if (field == null)
     {
         MessageBox.Show("Please select an field.");
         return;
     }
     if (MessageBox.Show("Do you want to delete the field " + field.Name, "Delete", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
     {
         Filter filter = this.ReportItem as Filter;
         filter.Fields.Remove(field.Name);
     }
 }
        void selection_FieldAdded(QVField obj)
        {
            Filter filter = this.ReportItem as Filter;

            if (filter.Fields.ContainsKey(obj.Name))
            {
                MessageBox.Show("The same name field exists, cannot add.");
                return;
            }

            filter.Fields.Add(obj.Name, obj);
        }