public CtlDocumentView(DataViewInfo dataViewInfo) { InitializeComponent(); InitToolAndMenu(); if (dataViewInfo == null) { return; } MDataViewInfo = dataViewInfo; DataShower.Add(lstData); DataShower.Add(txtData); DataShower.Add(trvData); }
/// <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); }
/// <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 ")); }
/// <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); }
/// <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 ")); }
/// <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; } }
/// <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 ")); }
/// <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">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; }
/// <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; } } }
private static bool GraphContainsViewDeclaration(PXGraphSemanticModel graphSemanticModel, DataViewInfo viewInfo) => graphSemanticModel.Symbol.OriginalDefinition?.Equals(viewInfo.Symbol.ContainingType?.OriginalDefinition) ?? false;
public FrmExport(DataViewInfo info) { InitializeComponent(); _viewinfo = info; }
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; } } }
/// <summary> /// 初始化 /// </summary> /// <param name="dataViewInfo"></param> public CtlDataView(DataViewInfo dataViewInfo) { InitializeComponent(); mDataViewInfo = dataViewInfo; }