예제 #1
0
 public CtlDocumentView(DataViewInfo dataViewInfo)
 {
     InitializeComponent();
     InitToolAndMenu();
     if (dataViewInfo == null)
     {
         return;
     }
     MDataViewInfo = dataViewInfo;
     DataShower.Add(lstData);
     DataShower.Add(txtData);
     DataShower.Add(trvData);
 }
예제 #2
0
        /// <summary>
        ///     重新加载数据
        /// </summary>
        private void ReloadData()
        {
            if (mDataViewInfo == null)
            {
                return;
            }
            Clear();
            RuntimeMongoDbContext.SelectObjectTag = mDataViewInfo.strCollectionPath;
            var datalist = DataViewInfo.GetDataList(ref mDataViewInfo, RuntimeMongoDbContext.GetCurrentServer());

            ViewHelper.FillDataToControl(datalist, DataShower, mDataViewInfo);
            SetDataNav();
            IsNeedRefresh = false;
        }
        /// <summary>
        ///     获得展示数据
        /// </summary>
        /// <param name="CurrentDataViewInfo"></param>
        public static List <BsonDocument> GetDataList(ref DataViewInfo CurrentDataViewInfo)
        {
            String collectionPath = CurrentDataViewInfo.strDBTag.Split(":".ToCharArray())[1];

            String[]        cp       = collectionPath.Split("/".ToCharArray());
            MongoServer     mServer  = SystemManager.GetCurrentServer();
            MongoCollection mongoCol =
                mServer.GetDatabase(cp[(int)PathLv.DatabaseLv]).GetCollection(cp[(int)PathLv.CollectionLv]);


            MongoCursor <BsonDocument> cursor;

            //Query condition:
            if (CurrentDataViewInfo.IsUseFilter)
            {
                cursor = mongoCol.FindAs <BsonDocument>(QueryHelper.GetQuery(CurrentDataViewInfo.mDataFilter.QueryConditionList))
                         .SetSkip(CurrentDataViewInfo.SkipCnt)
                         .SetFields(QueryHelper.GetOutputFields(CurrentDataViewInfo.mDataFilter.QueryFieldList))
                         .SetSortOrder(QueryHelper.GetSort(CurrentDataViewInfo.mDataFilter.QueryFieldList))
                         .SetLimit(CurrentDataViewInfo.LimitCnt);
            }
            else
            {
                cursor = mongoCol.FindAllAs <BsonDocument>()
                         .SetSkip(CurrentDataViewInfo.SkipCnt)
                         .SetLimit(CurrentDataViewInfo.LimitCnt);
            }
            CurrentDataViewInfo.Query = cursor.Query != null
                ? cursor.Query.ToJson(SystemManager.JsonWriterSettings)
                : String.Empty;

            CurrentDataViewInfo.Explain = cursor.Explain().ToJson(SystemManager.JsonWriterSettings);
            List <BsonDocument> dataList = cursor.ToList();

            if (CurrentDataViewInfo.SkipCnt == 0)
            {
                if (CurrentDataViewInfo.IsUseFilter)
                {
                    //感谢cnblogs.com 网友Shadower
                    CurrentDataViewInfo.CurrentCollectionTotalCnt =
                        (int)mongoCol.Count(QueryHelper.GetQuery(CurrentDataViewInfo.mDataFilter.QueryConditionList));
                }
                else
                {
                    CurrentDataViewInfo.CurrentCollectionTotalCnt = (int)mongoCol.Count();
                }
            }
            SetPageEnable(ref CurrentDataViewInfo);
            return(dataList);
        }
예제 #4
0
        /// <summary>
        ///     Create a DataView Tab
        /// </summary>
        private void ViewDataRecord()
        {
            //由于Collection 和 Document 都可以触发这个事件,所以,先把Tag以前的标题头去掉
            //Collectiong:XXXX 和 Document:XXXX 都统一成 XXXX
            var dataKey = RuntimeMongoDbContext.SelectTagData;

            if (MultiTabManger.IsExist(dataKey))
            {
                MultiTabManger.SelectTab(dataKey);
                return;
            }

            var mDataViewInfo = new DataViewInfo
            {
                strCollectionPath = RuntimeMongoDbContext.SelectObjectTag,
                IsReadOnly        = RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly,
            };

            CtlDataView dataViewctl;

            switch (RuntimeMongoDbContext.SelectTagType)
            {
            case ConstMgr.GridFileSystemTag:
                dataViewctl = new CtlGfsView(mDataViewInfo)
                {
                    AllowDrop = true
                };
                break;

            case ConstMgr.UserListTag:
                dataViewctl = new CtlUserView(mDataViewInfo);
                break;

            case ConstMgr.ViewTag:
                mDataViewInfo.IsView = true;
                dataViewctl          = new CtlDocumentView(mDataViewInfo);
                break;

            default:
                dataViewctl = new CtlDocumentView(mDataViewInfo);
                break;
            }

            dataViewctl.mDataViewInfo   = mDataViewInfo;
            dataViewctl.SelectObjectTag = RuntimeMongoDbContext.SelectObjectTag;
            dataViewctl.ParentMenu      = CollectionToolStripMenuItem;
            var TabTitle = UiHelper.GetShowName(RuntimeMongoDbContext.GetCurrentDataBaseName(), RuntimeMongoDbContext.GetCurrentCollectionName());

            MultiTabManger.AddView(dataViewctl, TabTitle, RuntimeMongoDbContext.SelectTagType);
        }
        public static void ExportToFile(DataViewInfo CurrentDataViewInfo, String ExcelFileName, ExportType exportType)
        {
            MongoCollection mongoCol;

            if (CurrentDataViewInfo == null)
            {
                mongoCol = SystemManager.GetCurrentCollection();
            }
            else
            {
                String      collectionPath = CurrentDataViewInfo.strDBTag.Split(":".ToCharArray())[1];
                String[]    cp             = collectionPath.Split("/".ToCharArray());
                MongoServer mServer        = SystemManager.GetCurrentServer();
                mongoCol = mServer.GetDatabase(cp[(int)PathLv.DatabaseLv]).GetCollection(cp[(int)PathLv.CollectionLv]);
            }
            MongoCursor <BsonDocument> cursor;

            //Query condition:
            if (CurrentDataViewInfo != null && CurrentDataViewInfo.IsUseFilter)
            {
                cursor = mongoCol.FindAs <BsonDocument>(QueryHelper.GetQuery(CurrentDataViewInfo.mDataFilter.QueryConditionList))
                         .SetFields(QueryHelper.GetOutputFields(CurrentDataViewInfo.mDataFilter.QueryFieldList))
                         .SetSortOrder(QueryHelper.GetSort(CurrentDataViewInfo.mDataFilter.QueryFieldList));
            }
            else
            {
                cursor = mongoCol.FindAllAs <BsonDocument>();
            }
            List <BsonDocument> dataList = cursor.ToList();

            switch (exportType)
            {
            case ExportType.Excel:
                //ExportToExcel(dataList, ExcelFileName);
                GC.Collect();
                break;

            case ExportType.Text:
                ExportToJson(dataList, ExcelFileName);
                break;

            case ExportType.Xml:
                break;

            default:
                break;
            }
            OnActionDone(new ActionDoneEventArgs(" Completeed "));
        }
예제 #6
0
        /// <summary>
        ///     Create a DataView Tab
        /// </summary>
        private void ViewDataRecord()
        {
            //由于Collection 和 Document 都可以触发这个事件,所以,先把Tag以前的标题头去掉
            //Collectiong:XXXX 和 Document:XXXX 都统一成 XXXX
            var dataKey = RuntimeMongoDbContext.SelectTagData;

            if (MultiTabManger.IsExist(dataKey))
            {
                MultiTabManger.SelectTab(dataKey);
                return;
            }

            var mDataViewInfo = new DataViewInfo
            {
                StrDbTag    = RuntimeMongoDbContext.SelectObjectTag,
                IsUseFilter = false,
                IsReadOnly  = RuntimeMongoDbContext.CurrentMongoConnectionconfig.IsReadOnly,
                MDataFilter = new DataFilter()
            };

            CtlDataView dataViewctl;

            switch (RuntimeMongoDbContext.SelectTagType)
            {
            case ConstMgr.GridFileSystemTag:
                dataViewctl = new CtlGfsView(mDataViewInfo);
                break;

            case ConstMgr.UserListTag:
                dataViewctl = new CtlUserView(mDataViewInfo);
                break;

            case ConstMgr.ViewTag:
                mDataViewInfo.IsView = true;
                dataViewctl          = new CtlDocumentView(mDataViewInfo);
                break;

            default:
                dataViewctl = new CtlDocumentView(mDataViewInfo);
                break;
            }

            dataViewctl.MDataViewInfo   = mDataViewInfo;
            dataViewctl.SelectObjectTag = RuntimeMongoDbContext.SelectObjectTag;
            dataViewctl.ParentMenu      = CollectionToolStripMenuItem;
            MultiTabManger.AddView(dataViewctl, RuntimeMongoDbContext.GetCurrentCollectionName());
        }
        /// <summary>
        ///     换页操作
        /// </summary>
        /// <param name="pageChangeMode"></param>
        /// <param name="mDataViewInfo"></param>
        /// <param name="dataShower"></param>
        public static void PageChanged(PageChangeOpr pageChangeMode, ref DataViewInfo mDataViewInfo,
                                       List <Control> dataShower)
        {
            switch (pageChangeMode)
            {
            case PageChangeOpr.FirstPage:
                mDataViewInfo.SkipCnt = 0;
                break;

            case PageChangeOpr.LastPage:
                if (mDataViewInfo.CurrentCollectionTotalCnt % mDataViewInfo.LimitCnt == 0)
                {
                    //没有余数的时候,600 % 100 == 0  => Skip = 600-100 = 500
                    mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - mDataViewInfo.LimitCnt;
                }
                else
                {
                    // 630 % 100 == 30  => Skip = 630-30 = 600
                    mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt -
                                            mDataViewInfo.CurrentCollectionTotalCnt % mDataViewInfo.LimitCnt;
                }
                break;

            case PageChangeOpr.NextPage:
                mDataViewInfo.SkipCnt += mDataViewInfo.LimitCnt;
                if (mDataViewInfo.SkipCnt >= mDataViewInfo.CurrentCollectionTotalCnt)
                {
                    mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - 1;
                }
                break;

            case PageChangeOpr.PrePage:
                mDataViewInfo.SkipCnt -= mDataViewInfo.LimitCnt;
                if (mDataViewInfo.SkipCnt < 0)
                {
                    mDataViewInfo.SkipCnt = 0;
                }
                break;

            default:
                break;
            }
            List <BsonDocument> datalist = GetDataList(ref mDataViewInfo);

            FillDataToControl(datalist, dataShower, mDataViewInfo);
        }
예제 #8
0
        /// <summary>
        /// </summary>
        /// <returns></returns>
        public static string GetCollectionzTreeJSON(MongoServer mServer)
        {
            //获得数据
            WebDataViewInfo.LimitCnt = 100;
            var dataList       = DataViewInfo.GetDataList(ref WebDataViewInfo, mServer);
            var collectionName =
                Utility.GetTagData(WebDataViewInfo.strDBTag).Split("/".ToCharArray())[(int)EnumMgr.PathLv.CollectionLv];
            var tree = new ctlTreeViewColumns();

            UIHelper.FillDataToTreeView(collectionName, tree, dataList, WebDataViewInfo.SkipCnt);
            var array = new BsonArray();

            foreach (TreeNode item in tree.TreeView.Nodes)
            {
                array.Add(ConvertTreeNodeTozTreeBsonDoc(item));
            }
            return(array.ToJson(MongoUtility.Basic.Utility.JsonWriterSettings));
        }
 public static void ExportToFile(DataViewInfo CurrentDataViewInfo, String ExcelFileName, ExportType exportType)
 {
     MongoCollection mongoCol;
     if (CurrentDataViewInfo == null)
     {
         mongoCol = SystemManager.GetCurrentCollection();
     }
     else
     {
         String collectionPath = CurrentDataViewInfo.strDBTag.Split(":".ToCharArray())[1];
         String[] cp = collectionPath.Split("/".ToCharArray());
         MongoServer mServer = SystemManager.GetCurrentServer();
         mongoCol = mServer.GetDatabase(cp[(int) PathLv.DatabaseLv]).GetCollection(cp[(int) PathLv.CollectionLv]);
     }
     MongoCursor<BsonDocument> cursor;
     //Query condition:
     if (CurrentDataViewInfo != null && CurrentDataViewInfo.IsUseFilter)
     {
         cursor = mongoCol.FindAs<BsonDocument>(QueryHelper.GetQuery(CurrentDataViewInfo.mDataFilter.QueryConditionList))
             .SetFields(QueryHelper.GetOutputFields(CurrentDataViewInfo.mDataFilter.QueryFieldList))
             .SetSortOrder(QueryHelper.GetSort(CurrentDataViewInfo.mDataFilter.QueryFieldList));
     }
     else
     {
         cursor = mongoCol.FindAllAs<BsonDocument>();
     }
     List<BsonDocument> dataList = cursor.ToList();
     switch (exportType)
     {
         case ExportType.Excel:
             //ExportToExcel(dataList, ExcelFileName);
             GC.Collect();
             break;
         case ExportType.Text:
             ExportToJson(dataList, ExcelFileName);
             break;
         case ExportType.Xml:
             break;
         default:
             break;
     }
     OnActionDone(new ActionDoneEventArgs(" Completeed "));
 }
예제 #10
0
 /// <summary>
 /// 设置导航状态
 /// </summary>
 /// <param name="mDataViewInfo">Data View Information(Structure,Must By Ref)</param>
 public static void SetPageEnable(ref DataViewInfo mDataViewInfo)
 {
     if (mDataViewInfo.SkipCnt == 0)
     {
         mDataViewInfo.HasPrePage = false;
     }
     else
     {
         mDataViewInfo.HasPrePage = true;
     }
     if ((mDataViewInfo.SkipCnt + mDataViewInfo.LimitCnt) >= mDataViewInfo.CurrentCollectionTotalCnt)
     {
         mDataViewInfo.HasNextPage = false;
     }
     else
     {
         mDataViewInfo.HasNextPage = true;
     }
 }
예제 #11
0
        /// <summary>
        ///     ExportToFile
        /// </summary>
        /// <param name="currentDataViewInfo"></param>
        /// <param name="excelFileName"></param>
        /// <param name="exportType"></param>
        /// <param name="mongoCol"></param>
        public static void ExportToFile(DataViewInfo currentDataViewInfo,
                                        string excelFileName,
                                        EnumMgr.ExportType exportType,
                                        MongoCollection mongoCol)
        {
            MongoCursor <BsonDocument> cursor;

            cursor = mongoCol.FindAllAs <BsonDocument>();
            var dataList = cursor.ToList();

            switch (exportType)
            {
            case EnumMgr.ExportType.Text:
                ExportToJson(dataList, excelFileName, MongoHelper.JsonWriterSettings);
                break;

            case EnumMgr.ExportType.Excel:
            case EnumMgr.ExportType.Xml:
                break;
            }
            MongoHelper.OnActionDone(new ActionDoneEventArgs(" Completed "));
        }
예제 #12
0
        /// <summary>
        ///     ExportToFile
        /// </summary>
        /// <param name="currentDataViewInfo"></param>
        /// <param name="excelFileName"></param>
        /// <param name="exportType"></param>
        /// <param name="mongoCol"></param>
        public static void ExportToFile(DataViewInfo currentDataViewInfo,
                                        string excelFileName,
                                        EnumMgr.ExportType exportType,
                                        MongoCollection mongoCol)
        {
            MongoCursor <BsonDocument> cursor;

            //Query condition:
            if (currentDataViewInfo != null && currentDataViewInfo.IsUseFilter)
            {
                cursor = mongoCol.FindAs <BsonDocument>(
                    QueryHelper.GetQuery(currentDataViewInfo.MDataFilter.QueryConditionList))
                         .SetFields(QueryHelper.GetOutputFields(currentDataViewInfo.MDataFilter.QueryFieldList))
                         .SetSortOrder(QueryHelper.GetSort(currentDataViewInfo.MDataFilter.QueryFieldList));
            }
            else
            {
                cursor = mongoCol.FindAllAs <BsonDocument>();
            }
            var dataList = cursor.ToList();

            switch (exportType)
            {
            case EnumMgr.ExportType.Excel:
                //ExportToExcel(dataList, ExcelFileName);
                GC.Collect();
                break;

            case EnumMgr.ExportType.Text:
                ExportToJson(dataList, excelFileName, MongoHelper.JsonWriterSettings);
                break;

            case EnumMgr.ExportType.Xml:
                break;
            }
            MongoHelper.OnActionDone(new ActionDoneEventArgs(" Completed "));
        }
 /// <summary>
 /// 设置导航状态
 /// </summary>
 /// <param name="mDataViewInfo">Data View Information(Structure,Must By Ref)</param>
 public static void SetPageEnable(ref DataViewInfo mDataViewInfo)
 {
     if (mDataViewInfo.SkipCnt == 0)
     {
         mDataViewInfo.HasPrePage = false;
     }
     else
     {
         mDataViewInfo.HasPrePage = true;
     }
     if ((mDataViewInfo.SkipCnt + mDataViewInfo.LimitCnt) >= mDataViewInfo.CurrentCollectionTotalCnt)
     {
         mDataViewInfo.HasNextPage = false;
     }
     else
     {
         mDataViewInfo.HasNextPage = true;
     }
 }
예제 #14
0
 /// <summary>
 ///     初始化
 /// </summary>
 /// <param name="mDataViewInfo">Filter也是DataViewInfo的一个属性,所以这里加上参数</param>
 public FrmQuery(DataViewInfo mDataViewInfo)
 {
     InitializeComponent();
     _currentDataViewInfo = mDataViewInfo;
     RuntimeMongoDbContext.SelectObjectTag = mDataViewInfo.StrDbTag;
 }
 /// <summary>
 ///     设置导航状态
 /// </summary>
 /// <param name="mDataViewInfo">Data View Information(Structure,Must By Ref)</param>
 public static void SetPageEnable(ref DataViewInfo mDataViewInfo)
 {
     mDataViewInfo.HasPrePage = mDataViewInfo.SkipCnt != 0;
     mDataViewInfo.HasNextPage = (mDataViewInfo.SkipCnt + mDataViewInfo.LimitCnt) <
                                 mDataViewInfo.CurrentCollectionTotalCnt;
 }
예제 #16
0
        /// <summary>
        /// 展示数据
        /// </summary>
        /// <param name="dataList"></param>
        /// <param name="controls"></param>
        /// <param name="CurrentDataViewInfo"></param>
        public static void FillDataToControl(List <BsonDocument> dataList, List <Control> controls, DataViewInfo CurrentDataViewInfo)
        {
            String collectionPath = CurrentDataViewInfo.strDBTag.Split(":".ToCharArray())[1];

            String[] cp = collectionPath.Split("/".ToCharArray());
            foreach (var control in controls)
            {
                switch (control.GetType().ToString())
                {
                case "System.Windows.Forms.ListView":
                    if (!(dataList.Count == 0 && CurrentDataViewInfo.strDBTag.Split(":".ToCharArray())[0] == COLLECTION_TAG))
                    {
                        ///只有在纯数据集的时候才退出,不然的话,至少需要将字段结构在ListView中显示出来。
                        FillDataToListView(cp[(int)PathLv.CollectionLV], (ListView)control, dataList);
                    }
                    break;

                case "System.Windows.Forms.TextBox":
                    FillJSONDataToTextBox((TextBox)control, dataList, CurrentDataViewInfo.SkipCnt);
                    break;

                case "TreeViewColumnsProject.TreeViewColumns":
                    FillDataToTreeView(cp[(int)PathLv.CollectionLV], (TreeViewColumns)control, dataList, CurrentDataViewInfo.SkipCnt);
                    break;

                default:
                    break;
                }
            }
        }
 /// <summary>
 ///     设置导航状态
 /// </summary>
 /// <param name="mDataViewInfo">Data View Information(Structure,Must By Ref)</param>
 public static void SetPageEnable(ref DataViewInfo mDataViewInfo)
 {
     mDataViewInfo.HasPrePage  = mDataViewInfo.SkipCnt != 0;
     mDataViewInfo.HasNextPage = (mDataViewInfo.SkipCnt + mDataViewInfo.LimitCnt) <
                                 mDataViewInfo.CurrentCollectionTotalCnt;
 }
 private static bool GraphContainsViewDeclaration(PXGraphSemanticModel graphSemanticModel, DataViewInfo viewInfo) =>
 graphSemanticModel.Symbol.OriginalDefinition?.Equals(viewInfo.Symbol.ContainingType?.OriginalDefinition) ?? false;
예제 #19
0
 public FrmExport(DataViewInfo info)
 {
     InitializeComponent();
     _viewinfo = info;
 }
예제 #20
0
 public ViewNodeViewModel(ViewCategoryNodeViewModel viewCategoryVM, DataViewInfo viewInfo, bool isExpanded = false) :
     base(viewCategoryVM, viewInfo, isExpanded)
 {
 }
 /// <summary>
 /// 换页操作
 /// </summary>
 /// <param name="IsNext"></param>
 /// <param name="strTag"></param>
 /// <param name="dataShower"></param>
 public static void PageChanged(PageChangeOpr pageChangeMode, ref DataViewInfo mDataViewInfo, List<Control> dataShower)
 {
     switch (pageChangeMode)
     {
         case PageChangeOpr.FirstPage:
             mDataViewInfo.SkipCnt = 0;
             break;
         case PageChangeOpr.LastPage:
             if (mDataViewInfo.CurrentCollectionTotalCnt % mDataViewInfo.LimitCnt == 0)
             {
                 //没有余数的时候,600 % 100 == 0  => Skip = 600-100 = 500
                 mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - mDataViewInfo.LimitCnt;
             }
             else
             {
                 // 630 % 100 == 30  => Skip = 630-30 = 600
                 mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - mDataViewInfo.CurrentCollectionTotalCnt % mDataViewInfo.LimitCnt;
             }
             break;
         case PageChangeOpr.NextPage:
             mDataViewInfo.SkipCnt += mDataViewInfo.LimitCnt;
             if (mDataViewInfo.SkipCnt >= mDataViewInfo.CurrentCollectionTotalCnt)
             {
                 mDataViewInfo.SkipCnt = mDataViewInfo.CurrentCollectionTotalCnt - 1;
             }
             break;
         case PageChangeOpr.PrePage:
             mDataViewInfo.SkipCnt -= mDataViewInfo.LimitCnt;
             if (mDataViewInfo.SkipCnt < 0)
             {
                 mDataViewInfo.SkipCnt = 0;
             }
             break;
         default:
             break;
     }
     List<BsonDocument> datalist = MongoDBHelper.GetDataList(ref mDataViewInfo);
     MongoDBHelper.FillDataToControl(datalist, dataShower, mDataViewInfo);
 }
        /// <summary>
        /// 获得展示数据
        /// </summary>
        /// <param name="CurrentDataViewInfo"></param>
        public static List<BsonDocument> GetDataList(ref DataViewInfo CurrentDataViewInfo)
        {
            String collectionPath = CurrentDataViewInfo.strDBTag.Split(":".ToCharArray())[1];
            String[] cp = collectionPath.Split("/".ToCharArray());
            MongoServer mServer = SystemManager.GetCurrentServer();
            MongoCollection mongoCol = mServer.GetDatabase(cp[(int)PathLv.DatabaseLV]).GetCollection(cp[(int)PathLv.CollectionLV]);

            MongoCursor<BsonDocument> cursor;
            //Query condition:
            if (CurrentDataViewInfo.IsUseFilter)
            {
                cursor = mongoCol.FindAs<BsonDocument>(GetQuery(CurrentDataViewInfo.mDataFilter.QueryConditionList))
                                   .SetSkip(CurrentDataViewInfo.SkipCnt)
                                   .SetFields(GetOutputFields(CurrentDataViewInfo.mDataFilter.QueryFieldList))
                                   .SetSortOrder(GetSort(CurrentDataViewInfo.mDataFilter.QueryFieldList))
                                   .SetLimit(CurrentDataViewInfo.LimitCnt);
            }
            else
            {
                cursor = mongoCol.FindAllAs<BsonDocument>()
                                   .SetSkip(CurrentDataViewInfo.SkipCnt)
                                   .SetLimit(CurrentDataViewInfo.LimitCnt);

            }
            if (cursor.Query != null)
            {
                CurrentDataViewInfo.Query = cursor.Query.ToJson(SystemManager.JsonWriterSettings);
            }
            else
            {
                CurrentDataViewInfo.Query = String.Empty;
            }
            CurrentDataViewInfo.Explain = cursor.Explain().ToJson(SystemManager.JsonWriterSettings);
            List<BsonDocument> dataList = cursor.ToList();
            if (CurrentDataViewInfo.SkipCnt == 0)
            {
                if (CurrentDataViewInfo.IsUseFilter)
                {
                    //感谢cnblogs.com 网友Shadower
                    CurrentDataViewInfo.CurrentCollectionTotalCnt = (int)mongoCol.Count(GetQuery(CurrentDataViewInfo.mDataFilter.QueryConditionList));
                }
                else
                {
                    CurrentDataViewInfo.CurrentCollectionTotalCnt = (int)mongoCol.Count();
                }
            }
            SetPageEnable(ref CurrentDataViewInfo);
            return dataList;
        }
 /// <summary>
 /// 展示数据
 /// </summary>
 /// <param name="dataList"></param>
 /// <param name="controls"></param>
 /// <param name="CurrentDataViewInfo"></param>
 public static void FillDataToControl(List<BsonDocument> dataList, List<Control> controls, DataViewInfo CurrentDataViewInfo)
 {
     String collectionPath = CurrentDataViewInfo.strDBTag.Split(":".ToCharArray())[1];
     String[] cp = collectionPath.Split("/".ToCharArray());
     foreach (var control in controls)
     {
         switch (control.GetType().ToString())
         {
             case "System.Windows.Forms.ListView":
                 if (!(dataList.Count == 0 && CurrentDataViewInfo.strDBTag.Split(":".ToCharArray())[0] == COLLECTION_TAG))
                 {
                     ///只有在纯数据集的时候才退出,不然的话,至少需要将字段结构在ListView中显示出来。
                     FillDataToListView(cp[(int)PathLv.CollectionLV], (ListView)control, dataList);
                 }
                 break;
             case "System.Windows.Forms.TextBox":
                 FillJSONDataToTextBox((TextBox)control, dataList, CurrentDataViewInfo.SkipCnt);
                 break;
             case "TreeViewColumnsProject.TreeViewColumns":
                 FillDataToTreeView(cp[(int)PathLv.CollectionLV], (TreeViewColumns)control, dataList, CurrentDataViewInfo.SkipCnt);
                 break;
             default:
                 break;
         }
     }
 }
예제 #24
0
 /// <summary>
 ///     初始化
 /// </summary>
 /// <param name="dataViewInfo"></param>
 public CtlDataView(DataViewInfo dataViewInfo)
 {
     InitializeComponent();
     mDataViewInfo = dataViewInfo;
 }