예제 #1
0
        /// <summary>
        /// 增加条件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Add_Click(object sender, EventArgs e)
        {
            TableData        Source    = cBoxKeyColumn.Tag as TableData;
            BooleanOperation Operation = (rButton_And.Checked ? BooleanOperation.And : BooleanOperation.Or);

            ReportParameter Parameter = comboBox_Parameters.SelectedItem as ReportParameter;

            FilterCondition filter = new FilterCondition();

            filter.Operation = Operation;
            filter.IsFormula = rButton_Formula.Checked;
            if (rButton_Normal.Checked)
            {
                filter.LeftItem.TableName = Source.GetTableName();
                filter.LeftItem.FieldName = (cBoxKeyColumn.SelectedItem as FieldInfo).FieldName;

                filter.CompareOperation = cBoxOperation.SelectedItem as CompareOperation;

                if (cBoxValueStyle.SelectedIndex == 0)
                {
                    filter.RightItem.Style     = FilterStyle.DataColumn;
                    filter.RightItem.TableName = (cBoxValueDataset.SelectedItem as TableData).GetTableName();
                    filter.RightItem.FieldName = (cBoxValueColumn.SelectedItem as FieldInfo).FieldName;
                }
                else if (cBoxValueStyle.SelectedIndex == 1)
                {
                    filter.RightItem.Style  = FilterStyle.Value;
                    filter.RightItem.IsNull = cBoxIsNULL.Checked;
                    filter.RightItem.Value  = tBoxValue.Text;
                }
                else if (cBoxValueStyle.SelectedIndex == 2)
                {
                    filter.RightItem.Style         = FilterStyle.Parameter;
                    filter.RightItem.ParameterName = comboBox_Parameters.SelectedItem.ToString();
                }
            }
            else if (rButton_Formula.Checked)
            {
                filter.Formula = tBoxFormula.Text;
            }

            String Text = filter.ToString();

            Text = Text.Replace(filter.Operation.ToString(), "");

            TreeNode[] Nodes = tViewFilters.Nodes.Find(filter.ToString(), false);
            if (Nodes.Length == 0)
            {
                TreeNode Node = new TreeNode();
                Node.Name = filter.ToString();
                Node.Text = tViewFilters.Nodes.Count == 0 ? Text : filter.ToString();
                Node.Tag  = filter;
                tViewFilters.Nodes.Add(Node);
                tViewFilters.SelectedNode = Node;
            }
            else
            {
                MessageBox.Show("条件已经存在。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #2
0
        /// <summary>
        /// 上移条件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Up_Click(object sender, EventArgs e)
        {
            TreeNode Node = tViewFilters.SelectedNode;

            if (Node.PrevNode != null)
            {
                tViewFilters.BeginUpdate();

                TreeNode tmpNode = Node.Clone() as TreeNode;
                tViewFilters.Nodes.Insert(Node.PrevNode.Index, tmpNode);
                Node.Remove();
                tViewFilters.SelectedNode = tmpNode;

                FilterCondition filter = tmpNode.NextNode.Tag as FilterCondition;
                tmpNode.NextNode.Text = filter.Operation + " " + filter.ToString();

                if (tmpNode.Index == 0)
                {
                    filter       = tmpNode.Tag as FilterCondition;
                    tmpNode.Text = filter.ToString();
                }
                else
                {
                    filter       = tmpNode.Tag as FilterCondition;
                    tmpNode.Text = filter.Operation + " " + filter.ToString();
                }

                tViewFilters.EndUpdate();
            }
        }
예제 #3
0
        void Button_Add_Click(object sender, EventArgs e)
        {
            TreeView FilterView = filterControl.tViewFilters;

            FilterCondition filter = new FilterCondition();

            filter.Operation          = (filterControl.rButton_And.Checked? BooleanOperation.And : BooleanOperation.Or);
            filter.LeftItem.FieldName = filterControl.cBoxValueColumn.SelectedItem.ToString();
            filter.CompareOperation   = filterControl.cBoxOperation.SelectedItem as CompareOperation;
            if (filterControl.cBoxValueStyle.SelectedIndex == 0)
            {
                filter.RightItem.Style = FilterStyle.Value;
                filter.RightItem.Value = filterControl.cBoxValueDataset.SelectedItem.ToString();
            }
            else if (filterControl.cBoxValueStyle.SelectedIndex == 1)
            {
                filter.RightItem.Style         = FilterStyle.Parameter;
                filter.RightItem.ParameterName = filterControl.cBox_Parameters.SelectedItem.ToString();
            }

            Source.DataFilter.FilterConditions.Add(filter);

            String Text = filter.ToString();

            Text = Text.Replace(filter.Operation.ToString(), "");

            TreeNode[] Nodes = FilterView.Nodes.Find(filter.ToString(), false);
            if (Nodes.Length == 0)
            {
                TreeNode Node = new TreeNode();
                Node.Name = filter.ToString();
                Node.Text = FilterView.Nodes.Count == 0 ? Text : filter.ToString();
                Node.Tag  = filter;
                FilterView.Nodes.Add(Node);
                FilterView.SelectedNode = Node;
            }
            else
            {
                MessageBox.Show("条件已经存在。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #4
0
 public void SaveFilterCondition(int moduleId, FilterCondition filterCondition)
 {
     ModuleController.Instance.UpdateModuleSetting(moduleId, FilterConditionSetting, filterCondition.ToString());
 }
예제 #5
0
 /// <summary>
 /// Returns the string representation of filtering a property.
 /// </summary>
 /// <param name="propertyName">Name of the property.</param>
 /// <param name="filterCondition">The filter condition.</param>
 /// <returns></returns>
 public static string GetFilterCondition(string propertyName, FilterCondition filterCondition)
 {
     return($"{propertyName}__{filterCondition.ToString().ToUpperInvariant()}");
 }
 public void SaveFilterCondition(int moduleId, FilterCondition filterCondition)
 {
     ModuleController.Instance.UpdateModuleSetting(moduleId, FilterConditionSetting, filterCondition.ToString());
 }