private static MDModel_Table_Column GetColumn(string _fieldStr, MDModel_QueryModel _queryModel) { MDModel_Table_Column _ret; string _tableName = StrUtils.GetMetaByName("QCF_TABLE", _fieldStr); string _columnName = StrUtils.GetMetaByName("QCF_COL", _fieldStr); string _columType = StrUtils.GetMetaByName("QCF_TYPE", _fieldStr); string _columTitle = StrUtils.GetMetaByName("QCF_TITLE", _fieldStr); if (_columType.Substring(0, 1) == "#") { _ret = new MDModel_Table_Column(); _ret.ColumnDefine = new MD_ViewTableColumn(Guid.NewGuid().ToString(), "", "", true, true, true, true, false, "", 0, 0); _ret.ColumnDataType = _columType.Substring(1); _ret.ColumnName = _columnName; _ret.ColumnAlgorithm = _columnName; _ret.ColumnType = QueryColumnType.CalculationColumn; _ret.TableName = _tableName; _ret.ColumnTitle = _columTitle; _ret.ColumnRefDMB = ""; } else { _ret = MC_QueryModel.GetColumnDefineByName(_queryModel, _tableName, _columnName); } #if DEBUG //if (_ret == null) //{ // Console.WriteLine(string.Format("未找到字段{0}.{1}", _tableName, _columnName)); //} #endif return(_ret); }
//子记录表注册显示 private void gridControl2_ViewRegistered(object sender, ViewOperationEventArgs e) { GridView _gv = e.View as GridView; _gv.ViewCaption = "详细信息"; _gv.CustomDrawRowIndicator += new RowIndicatorCustomDrawEventHandler(_gv_CustomDrawRowIndicator); GridColumn _gcm = _gv.Columns.ColumnByFieldName("MAINID"); if (_gcm != null) { _gv.Columns.Remove(_gcm); } DataView _source = _gv.DataSource as DataView; string _tName = _source.Table.TableName; foreach (GridColumn _gc in _gv.Columns) { //待改进 MDQuery_TableColumn _tc = MC_QueryModel.GetColumnDefineByAlias(this.QueryRequest, _tName, _gc.FieldName); if (_tc != null) { _gc.Caption = _tc.ColumnTitle; _gc.Width = _tc.DisplayLength; } else { _gc.Caption = _source.Table.Columns[_gc.FieldName].Caption; } _gc.BestFit(); _gc.OptionsColumn.ReadOnly = true; } _gv.IndicatorWidth = _gv.RowCount.ToString().Length * 10 + 20; this.RaiseViewRegistered(e); }
private void gridControl1_ViewRegistered(object sender, DevExpress.XtraGrid.ViewOperationEventArgs e) { GridView _gv = (GridView)e.View; _gv.CustomDrawRowIndicator += new RowIndicatorCustomDrawEventHandler(_gv_CustomDrawRowIndicator); GridColumn _gcm = _gv.Columns.ColumnByFieldName("MAINID"); if (_gcm != null) { _gv.Columns.Remove(_gcm); } DataView _source = _gv.DataSource as DataView; string _tName = _source.Table.TableName; foreach (GridColumn _gc in _gv.Columns) { //待改进 MDQuery_TableColumn _tc = MC_QueryModel.GetColumnDefineByAlias(this.QueryRequest, _tName, _gc.FieldName); if (_tc != null) { _gc.Caption = _tc.ColumnTitle; _gc.Width = _tc.DisplayLength; } } this.RaiseViewRegistered(e); }
public void RefreshBySaveRequest(MDModel_QueryModel _qv, MDQuery_Request _request) { this.xtraScrollableControl1.Controls.Clear(); foreach (MDQuery_ConditionItem _item in _request.ConditionItems) { switch (_item.Column.ColumnType) { case QueryColumnType.TableColumn: MDModel_Table_Column _cdefine = MC_QueryModel.GetColumnDefineByAlias(_qv, _item.Column.TableName, _item.Column.ColumnAlias); AddSavedCondition(_cdefine, _item); break; case QueryColumnType.CalculationColumn: case QueryColumnType.StatisticsColumn: MDModel_Table_Column _ccdefine = new MDModel_Table_Column(); _ccdefine.ColumnDataType = _item.Column.ColumnDataType; _ccdefine.ColumnTitle = _item.Column.ColumnTitle; _ccdefine.ColumnAlgorithm = _item.Column.ColumnAlgorithm; _ccdefine.ColumnName = ""; _ccdefine.ColumnType = _item.Column.ColumnType; _ccdefine.TableName = _item.Column.TableName; _ccdefine.DisplayLength = _item.Column.DisplayLength; _ccdefine.DisplayFormat = _item.Column.DisplayFormat; AddSavedCondition(_ccdefine, _item); break; } } this.textEdit1.EditValue = _request.ConditionExpressions; }
private static string BuildTableColumnResult(MDQuery_TableColumn _rColumn, MDModel_QueryModel _qv) { MDModel_Table_Column _mcolumn = MC_QueryModel.GetColumnDefineByName(_qv, _rColumn.TableName, _rColumn.ColumnName); if (_mcolumn == null) { return(""); } return("," + BuildItem(_mcolumn)); }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { string _fname = ""; QueryModel = MetaDataCache.GetQueryModelDefine(compareRequest.QueryModelName); //处理比对数据表 srcData = new DataTable(); foreach (DataColumn _dc in compareRequest.ExcelData.Columns) { if (_dc.ColumnName == "XH") { _fname = "XH"; } else { ExcelColumnAlias _alias = ExcelColumns[_dc.ColumnName]; _fname = _alias.Alias; } srcData.Columns.Add(_fname, _dc.DataType); } foreach (DataRow _dr in compareRequest.ExcelData.Rows) { DataRow _newrow = srcData.NewRow(); foreach (DataColumn _dc in compareRequest.ExcelData.Columns) { if (_dc.ColumnName == "XH") { _fname = "XH"; } else { ExcelColumnAlias _alias = ExcelColumns[_dc.ColumnName]; _fname = _alias.Alias; } _newrow[_fname] = _dr[_dc.ColumnName]; } srcData.Rows.Add(_newrow); } //调用比对服务 using (MetaDataQueryServiceClient _msc = new MetaDataQueryServiceClient()) { CompareResult = _msc.CompareData(compareRequest, srcData); } //建立关系 MC_QueryModel.CreateDataRelation(this.QueryModel, CompareResult); DataTable _mtable = CompareResult.Tables[QueryModel.MainTable.TableName]; DataTable _ctable = CompareResult.Tables["EXCELRESULTDATA"]; CompareResult.Relations.Add("比对的EXCEL文件", _mtable.Columns["MAINID"], _ctable.Columns["MAINID"]); }
private void QueryByModel() { if (this.QueryRequest != null) { using (MetaDataQueryServiceClient _msc = new MetaDataQueryServiceClient()) { QueryResultData = _msc.QueryData(this.QueryRequest); } //多表关联处理 MC_QueryModel.CreateDataRelation(this.QueryModel, QueryResultData); } }
public static MDModel_QueryModel GetQueryModelDefine(string QueryModelName) { if (!QueryModelLib.ContainsKey(QueryModelName)) { using (MetaDataQueryServiceClient _sc = new MetaDataQueryServiceClient()) { MD_QueryModel _qv = _sc.GetMDQueryModelDefine(QueryModelName); QueryModelLib.Add(QueryModelName, MC_QueryModel.CreateQuery_ModelDefine(_qv)); } } return(QueryModelLib[QueryModelName]); }
private void ShowFull() { if (this.sinoSZUC_GridControlEx_FullRelation1.DataSource == null) { DataTable _fullComboData = MC_QueryModel.CreateFullComboData(this.compareRequest, this.QueryModel, this.CompareResult); this.sinoSZUC_GridControlEx_FullRelation1.ShowQueryResult(this.compareRequest, this.QueryModel, this.CompareResult.Tables["EXCELRESULTDATA"]); this.sinoSZUC_GridControlEx_FullRelation1.DataSource = _fullComboData; } this.tableLayoutPanel1.RowStyles[1].Height = 0; this.tableLayoutPanel1.RowStyles[2].Height = 100; _currentGrid = this.sinoSZUC_GridControlEx_FullRelation1.CurrentView; RaiseMenuChanged(); }
/// <summary> /// 全部平铺展示 /// </summary> private void ShowFull() { if (this.sinoSZUC_GridControlEx3.DataSource == null) { this.sinoSZUC_GridControlEx3.ShowQueryResult(this.QueryRequest, this.QueryModel, QueryResultData); DataTable _fullComboData = MC_QueryModel.CreateFullComboData(this.QueryRequest, this.QueryModel, QueryResultData); this.sinoSZUC_GridControlEx3.DataSource = _fullComboData; } this.sinoSZUC_GridControlEx1.Visible = false; this.sinoSZUC_GridControlEx2.Visible = false; this.sinoSZUC_GridControlEx3.Visible = true; _currentGrid = this.sinoSZUC_GridControlEx3; RaiseMenuChanged(); }
protected override IList <FrmMenuGroup> GetMenuGroups(string _pagename) { FrmMenuItem _item; IList <FrmMenuGroup> _ret = new List <FrmMenuGroup>(); FrmMenuGroup _thisGroup = new FrmMenuGroup("数据比对结果"); _thisGroup.MenuItems = new List <FrmMenuItem>(); bool _canUse = !this.backgroundWorker1.IsBusy; if (compareRequest != null && this.QueryModel != null && this.radioGroup1.SelectedIndex == 0 && this.CompareResult != null) { _item = new FrmMenuItem("展示方式", "展示方式", global::SinoSZMetaDataQuery.Properties.Resources.b11, _canUse); _thisGroup.MenuItems.Add(_item); FrmMenuItem _citem = new FrmMenuItem("常规展示", "常规展示", global::SinoSZMetaDataQuery.Properties.Resources.b12, _canUse); _item.ChildMenus.Add(_citem); foreach (DataTable _dt in this.CompareResult.Tables) { if (_dt.TableName != this.QueryModel.MainTable.TableName) { MDModel_Table _mt = MC_QueryModel.GetTableDefine(this.QueryModel, _dt.TableName); if (_mt != null) { _citem = new FrmMenuItem(string.Format("关联展示[{0}]", _mt.TableDefine.DisplayTitle), string.Format("关联展示,{0}", _dt.TableName), global::SinoSZMetaDataQuery.Properties.Resources.b13, _canUse); _item.ChildMenus.Add(_citem); } } } _citem = new FrmMenuItem(string.Format("关联展示[{0}]", "EXCEL文件"), string.Format("关联展示,{0}", "EXCELRESULTDATA"), global::SinoSZMetaDataQuery.Properties.Resources.b13, _canUse); _item.ChildMenus.Add(_citem); _citem = new FrmMenuItem("关联展示[全部]", "全部平铺展示", global::SinoSZMetaDataQuery.Properties.Resources.b14, true); _item.ChildMenus.Add(_citem); } _item = new FrmMenuItem("导出", "导出", global::SinoSZMetaDataQuery.Properties.Resources.x3, _canUse); _thisGroup.MenuItems.Add(_item); _ret.Add(_thisGroup); return(_ret); }
/// <summary> /// 通过元数据添加Band /// </summary> /// <param name="_mtable"></param> private void CreateBandColumn(MDQuery_ResultTable _resultTable, DefaultBoolean _canSort) { Font UseFont = null; GridBand _band = null; try { _band = this.bandedGridView1.Bands.Add(); UseFont = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold); _band.AppearanceHeader.Font = UseFont; MDModel_Table _tableDefine = MC_QueryModel.GetTableDefine(QueryModel, _resultTable.TableName); _band.Caption = _tableDefine.TableDefine.DisplayTitle; int i = 1; foreach (MDQuery_TableColumn _rc in _resultTable.Columns) { BandedGridColumn _col = this.bandedGridView1.Columns.Add(); _col.OptionsColumn.ReadOnly = this.ReadOnly; _col.OptionsColumn.AllowSort = _canSort; _col.Caption = _rc.ColumnTitle; _col.FieldName = _rc.TableName + "_" + _rc.ColumnName; _col.Visible = true; _col.VisibleIndex = i++; _col.Width = 150; FieldsDictionary.Add(_col.FieldName, new RealColumnDefine(_rc.TableName, _rc.ColumnAlias)); this.bandedGridView1.Columns.Add(_col); _band.Columns.Add(_col); } _band = null; UseFont = null; } finally { if (_band != null) { _band.Dispose(); } if (UseFont != null) { UseFont.Dispose(); } } }
private void QueryTaskID() { if (this._queryTask != null) { using (MetaDataQueryServiceClient _msc = new MetaDataQueryServiceClient()) { QueryRequest = _msc.GetQueryTaskRequestContext(this._queryTask.TaskID); QueryModel = MetaDataCache.GetQueryModelDefine(QueryRequest.QueryModelName); switch (this._queryTask.TaskType) { case "HGSQL": QueryResultData = _msc.GetTaskQueryResult_DataSet(this._queryTask.TaskID); MC_QueryModel.CreateDataRelation(this.QueryModel, QueryResultData); break; case "LOCALORA": QueryResultData = _msc.GetTaskQueryResult_ORA(this._queryTask.TaskID); MC_QueryModel.CreateDataRelation(this.QueryModel, QueryResultData); break; } } } }
/// <summary> /// 取菜单组 /// </summary> /// <param name="_pagename"></param> /// <returns></returns> private IList <FrmMenuGroup> GetMenuGroups(string _pagename) { IList <FrmMenuGroup> _ret = new List <FrmMenuGroup>(); if (this.backgroundWorker1.IsBusy && !this.backgroundWorker1.CancellationPending) { FrmMenuGroup _thisGroup = new FrmMenuGroup("查询处理"); _thisGroup.MenuItems = new List <FrmMenuItem>(); FrmMenuItem _item = new FrmMenuItem("取消", "取消", global::SinoSZMetaDataQuery.Properties.Resources.x1, true); _thisGroup.MenuItems.Add(_item); _ret.Add(_thisGroup); } else { FrmMenuGroup _thisGroup = new FrmMenuGroup("数据分析"); _thisGroup.MenuItems = new List <FrmMenuItem>(); FrmMenuItem _item; if (QueryResultData != null) { _item = new FrmMenuItem("展示方式", "展示方式", global::SinoSZMetaDataQuery.Properties.Resources.b11, true); _thisGroup.MenuItems.Add(_item); FrmMenuItem _citem = new FrmMenuItem("常规展示", "常规展示", global::SinoSZMetaDataQuery.Properties.Resources.b12, true); _item.ChildMenus.Add(_citem); foreach (DataTable _dt in QueryResultData.Tables) { if (_dt.TableName != this.QueryModel.MainTable.TableName) { MDModel_Table _mt = MC_QueryModel.GetTableDefine(this.QueryModel, _dt.TableName); _citem = new FrmMenuItem(string.Format("关联展示[{0}]", _mt.TableDefine.DisplayTitle), string.Format("关联展示,{0}", _dt.TableName), global::SinoSZMetaDataQuery.Properties.Resources.b13, true); _item.ChildMenus.Add(_citem); } } _citem = new FrmMenuItem("关联展示[全部]", "全部平铺展示", global::SinoSZMetaDataQuery.Properties.Resources.b14, true); _item.ChildMenus.Add(_citem); } bool _canGroupSort = false; bool _canShowAsChart = true; bool _canShowDetail = true; string _GSbuttonCaption = "分组排序"; if (CurrentGrid is SinoSZUC_GridControlEx) { SinoSZUC_GridControlEx _grid = (SinoSZUC_GridControlEx)CurrentGrid; if (_grid.ShowAsGroupSorting) { _GSbuttonCaption = "取消分组"; _canShowDetail = false; _canGroupSort = true; } else { if (_grid.Grouped) { _canGroupSort = true; } } } else { _canShowAsChart = false; } if (_GSbuttonCaption == "分组排序") { _item = new FrmMenuItem(_GSbuttonCaption, "分组排序", global::SinoSZMetaDataQuery.Properties.Resources.b15, _canGroupSort); _thisGroup.MenuItems.Add(_item); } else { _item = new FrmMenuItem(_GSbuttonCaption, "分组排序", global::SinoSZMetaDataQuery.Properties.Resources.b16, _canGroupSort); _thisGroup.MenuItems.Add(_item); } //_item = new FrmMenuItem("数据透视", "数据透视", global::SinoSZMetaDataQuery.Properties.Resources.b17, _canShowAsChart); //_thisGroup.MenuItems.Add(_item); _item = new FrmMenuItem("图表展示", "图表展示", global::SinoSZMetaDataQuery.Properties.Resources.b18, _canShowAsChart); _thisGroup.MenuItems.Add(_item); //_item = new FrmMenuItem("数据筛选", "数据筛选", global::SinoSZMetaDataQuery.Properties.Resources.DataFilter2, true); //_thisGroup.MenuItems.Add(_item); _ret.Add(_thisGroup); _thisGroup = new FrmMenuGroup("数据处理"); _thisGroup.MenuItems = new List <FrmMenuItem>(); if (!frmSinoSZ_QueryResult.DisableUsePAnalize) { _item = new FrmMenuItem("数据转存", "数据转存", global::SinoSZMetaDataQuery.Properties.Resources.b26, true); _thisGroup.MenuItems.Add(_item); } _item = new FrmMenuItem("导出", "导出", global::SinoSZMetaDataQuery.Properties.Resources.x3, true); _thisGroup.MenuItems.Add(_item); //_item = new FrmMenuItem("添加字段", "添加字段", global::SinoSZMetaDataQuery.Properties.Resources.b27, _canShowAsChart); //_thisGroup.MenuItems.Add(_item); _item = new FrmMenuItem("详细信息", "详细信息", global::SinoSZMetaDataQuery.Properties.Resources.x2, _canShowDetail && CanShowDetailButton); _thisGroup.MenuItems.Add(_item); _ret.Add(_thisGroup); foreach (FrmMenuGroup _extg in this.ExtendMenuGroups) { _ret.Add(_extg); } } return(_ret); }
public static string QueryRequestToRule(MDQuery_Request _Request, MDModel_QueryModel _queryModel) { MDModel_Table_Column _columnDefine; StringBuilder _ret = new StringBuilder(); _ret.Append(string.Format("<C_BDS>{0}</C_BDS>", _Request.ConditionExpressions)); foreach (MDQuery_ConditionItem _citem in _Request.ConditionItems) { _ret.Append("<C_FIELD>"); #region 加条件序号 _ret.Append(string.Format("<MII_INDEX>{0}</MII_INDEX>", _citem.ColumnIndex)); _ret.Append(string.Format("<MII_OPER>{0}</MII_OPER>", _citem.Operator)); #endregion #region 加字段定义 _ret.Append("<MII_FIELD>"); _ret.Append(string.Format("<QCF_TABLE>{0}</QCF_TABLE>", _citem.Column.TableName)); _ret.Append(string.Format("<QCF_TITLE>{0}</QCF_TITLE>", _citem.Column.ColumnTitle)); switch (_citem.Column.ColumnType) { case QueryColumnType.TableColumn: _ret.Append(string.Format("<QCF_COL>{0}</QCF_COL>", _citem.Column.ColumnName)); _ret.Append(string.Format("<QCF_TYPE>{0}</QCF_TYPE>", _citem.Column.ColumnDataType)); break; case QueryColumnType.CalculationColumn: case QueryColumnType.StatisticsColumn: _ret.Append(string.Format("<QCF_COL>{0}</QCF_COL>", _citem.Column.ColumnAlgorithm)); _ret.Append(string.Format("<QCF_TYPE>#{0}</QCF_TYPE>", _citem.Column.ColumnDataType)); break; } _ret.Append(string.Format("<QCF_REF></QCF_REF>")); _ret.Append(string.Format("<QCF_VALUE></QCF_VALUE>")); _ret.Append(string.Format("<QCF_OPER></QCF_OPER>")); _ret.Append(string.Format("<QCF_SEC>0</QCF_SEC>")); _ret.Append(string.Format("<QCF_INDEX>0</QCF_INDEX>")); _ret.Append(string.Format("<QCF_CON></QCF_CON>")); _ret.Append("</MII_FIELD>"); #endregion #region 加条件值 _ret.Append("<MII_VALUE>"); if (_citem.Column.ColumnType == QueryColumnType.TableColumn) { _columnDefine = MC_QueryModel.GetColumnDefineByName(_queryModel, _citem.Column.TableName, _citem.Column.ColumnName); } else { _columnDefine = new MDModel_Table_Column("", "", "", true, _citem.Column.ColumnDataType, 0, 0, 0, "", "", 0, _citem.Column.ColumnTitle, "", 0, 0, 0, true, 80, "", "", "", "", true, true, true, true, true, 0, _citem.Column.ColumnDataType); _columnDefine.ColumnType = _citem.Column.ColumnType; } if (_columnDefine.ColumnRefDMB != "") { //代码表式 if (_citem.Values.Count > 1) { _ret.Append("<REF_MUTI>TRUE</REF_MUTI>"); } else { _ret.Append("<REF_MUTI>FALSE</REF_MUTI>"); } foreach (string _s in _citem.Values) { _ret.Append("<REF_DATA>"); _ret.Append(string.Format("<REF_CODE>{0}</REF_CODE>", _s)); _ret.Append("</REF_DATA>"); } } else { //普通 string _fg = ""; foreach (string _s in _citem.Values) { _ret.Append(_fg); _ret.Append(_s); _fg = ","; } } _ret.Append("</MII_VALUE>"); #endregion //加条件类型 _ret.Append(string.Format("<MII_TYPE>{0}</MII_TYPE>", _citem.Column.ColumnDataType)); _ret.Append("</C_FIELD>"); } return(_ret.ToString()); }