Exemple #1
0
        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);
        }
Exemple #4
0
        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;
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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);
     }
 }
Exemple #8
0
 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]);
 }
Exemple #9
0
 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();
 }
Exemple #11
0
        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);
        }
Exemple #15
0
        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());
        }