Beispiel #1
0
        /// <summary>
        /// 输出配置字典
        /// </summary>
        private void frmQuery_Load(object sender, EventArgs e)
        {
            this.Icon = GetSystemIcon.ConvertImgToIcon(GetResource.GetImage(ImageType.Query));
            List <DataFilter.QueryFieldItem> FieldList = new List <DataFilter.QueryFieldItem>();

            FieldList = CurrentDataViewInfo.mDataFilter.QueryFieldList;
            //增加第一个条件
            ConditionPan.AddCondition();
            if (CurrentDataViewInfo.IsUseFilter)
            {
                //使用过滤:字段和条件的设定
                QueryFieldPicker.setQueryFieldList(FieldList);
                if (CurrentDataViewInfo.mDataFilter.QueryConditionList.Count > 0)
                {
                    ConditionPan.PutQueryToUI(CurrentDataViewInfo.mDataFilter);
                }
            }
            else
            {
                //不使用过滤:字段初始化
                QueryFieldPicker.InitByCurrentCollection(true);
            }
            if (!SystemManager.IsUseDefaultLanguage)
            {
                this.Text            = SystemManager.mStringResource.GetText(MagicMongoDBTool.Module.StringResource.TextType.Query_Title);
                tabFieldInfo.Text    = SystemManager.mStringResource.GetText(MagicMongoDBTool.Module.StringResource.TextType.Query_FieldInfo);
                tabCondition.Text    = SystemManager.mStringResource.GetText(MagicMongoDBTool.Module.StringResource.TextType.Query_Filter);
                tabSql.Text          = SystemManager.mStringResource.GetText(MagicMongoDBTool.Module.StringResource.TextType.ConvertSql_Title);
                cmdAddCondition.Text = SystemManager.mStringResource.GetText(MagicMongoDBTool.Module.StringResource.TextType.Query_Filter_AddCondition);
                cmdLoad.Text         = SystemManager.mStringResource.GetText(MagicMongoDBTool.Module.StringResource.TextType.Query_Action_Load);
                cmdSave.Text         = SystemManager.mStringResource.GetText(MagicMongoDBTool.Module.StringResource.TextType.Common_Save);
                cmdOK.Text           = SystemManager.mStringResource.GetText(MagicMongoDBTool.Module.StringResource.TextType.Common_OK);
                cmdCancel.Text       = SystemManager.mStringResource.GetText(StringResource.TextType.Common_Cancel);
            }
        }
Beispiel #2
0
        /// <summary>
        ///     输出配置字典
        /// </summary>
        private void frmQuery_Load(object sender, EventArgs e)
        {
            if (!GuiConfig.IsMono)
            {
                Icon = GetSystemIcon.ConvertImgToIcon(GetResource.GetImage(ImageType.Query));
            }
            var fieldList = new List <DataFilter.QueryFieldItem>();

            fieldList = _currentDataViewInfo.MDataFilter.QueryFieldList;
            //增加第一个条件
            ConditionPan.AddCondition();
            if (_currentDataViewInfo.IsUseFilter)
            {
                //使用过滤:字段和条件的设定
                QueryFieldPicker.SetQueryFieldList(fieldList);
                if (_currentDataViewInfo.MDataFilter.QueryConditionList.Count > 0)
                {
                    ConditionPan.PutQueryToUi(_currentDataViewInfo.MDataFilter);
                }
            }
            else
            {
                //不使用过滤:字段初始化
                QueryFieldPicker.InitByCurrentCollection(true);
            }
            //多国语言
            GuiConfig.Translateform(this);
        }
Beispiel #3
0
 /// <summary>
 ///     设置DataFilter
 /// </summary>
 private void SetCurrDataFilter()
 {
     //清除以前的结果和内部变量,重要!
     _currentDataViewInfo.MDataFilter.Clear();
     _currentDataViewInfo.MDataFilter.DbName         = RuntimeMongoDbContext.GetCurrentDataBase().Name;
     _currentDataViewInfo.MDataFilter.CollectionName = RuntimeMongoDbContext.GetCurrentCollection().Name;
     _currentDataViewInfo.MDataFilter.QueryFieldList = QueryFieldPicker.GetQueryFieldList();
     ConditionPan.SetCurrDataFilter(_currentDataViewInfo);
 }
Beispiel #4
0
 /// <summary>
 ///     设置DataFilter
 /// </summary>
 private void SetCurrDataFilter()
 {
     //清除以前的结果和内部变量,重要!
     CurrentDataViewInfo.mDataFilter.Clear();
     CurrentDataViewInfo.mDataFilter.DBName         = SystemManager.GetCurrentDataBase().Name;
     CurrentDataViewInfo.mDataFilter.CollectionName = SystemManager.GetCurrentCollection().Name;
     CurrentDataViewInfo.mDataFilter.QueryFieldList = QueryFieldPicker.getQueryFieldList();
     ConditionPan.SetCurrDataFilter(CurrentDataViewInfo);
 }
Beispiel #5
0
 /// <summary>
 ///     设置DataFilter
 /// </summary>
 private void SetCurrentDataFilter()
 {
     //清除以前的结果和内部变量,重要!
     //FieldList 和 FieldPicker 是引用关系,所以这里Clear掉之后FieldPicker也会被清除掉。GetQueryFieldList就会始终为空!
     _currentDataViewInfo.MDataFilter.QueryConditionList.Clear();
     _currentDataViewInfo.MDataFilter.DbName         = RuntimeMongoDbContext.GetCurrentDataBaseName();
     _currentDataViewInfo.MDataFilter.CollectionName = RuntimeMongoDbContext.GetCurrentCollectionName();
     _currentDataViewInfo.MDataFilter.QueryFieldList = QueryFieldPicker.GetQueryFieldList();
     ConditionPan.SetCurrDataFilter(_currentDataViewInfo);
     if (RuntimeMongoDbContext.CollectionFilter.ContainsKey(RuntimeMongoDbContext.GetCurrentCollectionName()))
     {
         RuntimeMongoDbContext.CollectionFilter[RuntimeMongoDbContext.GetCurrentCollectionName()] = _currentDataViewInfo.MDataFilter;
     }
     else
     {
         RuntimeMongoDbContext.CollectionFilter.Add(RuntimeMongoDbContext.GetCurrentCollectionName(), _currentDataViewInfo.MDataFilter);
     }
 }
Beispiel #6
0
        /// <summary>
        ///     输出配置字典
        /// </summary>
        private void frmQuery_Load(object sender, EventArgs e)
        {
            Icon = GetSystemIcon.ConvertImgToIcon(GetResource.GetImage(ImageType.Query));
            var fieldList = new List <DataFilter.QueryFieldItem>();

            fieldList = _currentDataViewInfo.MDataFilter.QueryFieldList;
            //增加第一个条件
            ConditionPan.AddCondition();
            if (_currentDataViewInfo.IsUseFilter)
            {
                //使用过滤:字段和条件的设定
                QueryFieldPicker.SetQueryFieldList(fieldList);
                if (_currentDataViewInfo.MDataFilter.QueryConditionList.Count > 0)
                {
                    ConditionPan.PutQueryToUi(_currentDataViewInfo.MDataFilter);
                }
            }
            else
            {
                //不使用过滤:字段初始化
                QueryFieldPicker.InitByCurrentCollection(true);
            }
            if (GuiConfig.IsUseDefaultLanguage)
            {
                return;
            }
            Text = GuiConfig.GetText(TextType.QueryTitle);
            tabFieldInfo.Text    = GuiConfig.GetText(TextType.QueryFieldInfo);
            tabCondition.Text    = GuiConfig.GetText(TextType.QueryFilter);
            tabSql.Text          = GuiConfig.GetText(TextType.ConvertSqlTitle);
            cmdAddCondition.Text =
                GuiConfig.GetText(TextType.QueryFilterAddCondition);
            cmdLoad.Text   = GuiConfig.GetText(TextType.QueryActionLoad);
            cmdSave.Text   = GuiConfig.GetText(TextType.CommonSave);
            cmdOK.Text     = GuiConfig.GetText(TextType.CommonOk);
            cmdCancel.Text = GuiConfig.GetText(TextType.CommonCancel);
        }
Beispiel #7
0
 /// <summary>
 ///     清空条件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnClear_Click(object sender, EventArgs e)
 {
     ConditionPan.ClearCondition();
 }
Beispiel #8
0
 /// <summary>
 ///     添加条件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void cmdAddCondition_Click(object sender, EventArgs e)
 {
     ConditionPan.AddCondition();
 }
Beispiel #9
0
        /// <summary>
        ///     OK
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOK_Click(object sender, EventArgs e)
        {
            //Project
            var project     = QueryFieldPicker.GetAggregation();
            var supressAggr = project[0];
            var projectAggr = project[1];

            if (supressAggr[0].AsBsonDocument.ElementCount > 0)
            {
                Aggregation.Add(supressAggr);
            }
            //TODO:需要优化,全项目的时候,不用输出
            if (projectAggr[0].AsBsonDocument.ElementCount > 0)
            {
                Aggregation.Add(projectAggr);
            }

            //match
            var match = ConditionPan.GetMatchDocument();

            if (match != null)
            {
                Aggregation.Add(match);
            }

            //Sort
            var sort = SortPanel.GetSortDocument();

            if (sort != null)
            {
                Aggregation.Add(sort);
            }

            //Group
            if (chkIdNull.Checked)
            {
                var id = new BsonDocument();
                id.Add(new BsonElement("_id", BsonNull.Value));
                id.AddRange(FieldsElement.Value.AsBsonDocument.Elements);
                var group = new BsonDocument("$group", id);
                Aggregation.Add(group);
            }
            else
            {
                if (!string.IsNullOrEmpty(GroupIdElement.Name))
                {
                    var id = new BsonDocument();
                    id.Add(new BsonElement("_id", GroupIdElement.Value));
                    id.AddRange(FieldsElement.Value.AsBsonDocument.Elements);
                    var group = new BsonDocument("$group", id);
                    Aggregation.Add(group);
                }
            }


            //Skip
            if (chkSkip.Checked && int.Parse(txtSkip.Text) > 0)
            {
                Aggregation.Add(new BsonDocument("$skip", int.Parse(txtSkip.Text)));
            }
            //Limit
            if (chkLimit.Checked && int.Parse(txtLimit.Text) > 0)
            {
                Aggregation.Add(new BsonDocument("$limit", int.Parse(txtLimit.Text)));
            }
            //IndexStats
            if (chkIndexStats.Checked)
            {
                Aggregation.Add(new BsonDocument("$indexStats", new BsonDocument()));
            }
            //sortByCount
            if (chkSortByCount.Checked)
            {
                Aggregation.Add(new BsonDocument("$sortByCount", cmbSortByCount.Text));
            }
            //Sample
            if (chkSample.Checked)
            {
                var size = new BsonDocument("size", (int.Parse(txtSample.Text)));
                Aggregation.Add(new BsonDocument("$sample", size));
            }
            //unwind
            if (chkUnwind.Checked)
            {
                if (!chkPreserveNullAndEmptyArrays.Checked && string.IsNullOrEmpty(txtincludeArrayIndex.Text))
                {
                    Aggregation.Add(new BsonDocument("$unwind", cmbUnwind.Text));
                }
                else
                {
                    var UnwindDoc = new BsonDocument();
                    var field     = new BsonElement("path", cmbUnwind.Text);
                    UnwindDoc.Add(field);
                    if (chkPreserveNullAndEmptyArrays.Checked)
                    {
                        var preserveNullAndEmptyArrays = new BsonElement("preserveNullAndEmptyArrays", BsonBoolean.True);
                        UnwindDoc.Add(preserveNullAndEmptyArrays);
                    }
                    if (!string.IsNullOrEmpty(txtincludeArrayIndex.Text))
                    {
                        var includeArrayIndex = new BsonElement("includeArrayIndex", txtincludeArrayIndex.Text);
                        UnwindDoc.Add(includeArrayIndex);
                    }
                    Aggregation.Add(new BsonDocument("$unwind", UnwindDoc));
                }
            }
            Close();
        }