コード例 #1
0
        /// <summary>
        /// 构建日期型字段条件的表达式
        /// </summary>
        /// <param name="_cItem"></param>
        /// <returns></returns>
        private static string BuildDateFieldConditon(MDCompare_ConditionItem _cItem)
        {
            string _fieldStr = "";

            switch (_cItem.Column.ColumnType)
            {
            case QueryColumnType.TableColumn:
                _fieldStr = string.Format("{0}.{1} ", _cItem.Column.TableName, _cItem.Column.ColumnName);
                break;
                //case QueryColumnType.CalculationColumn:
                //case QueryColumnType.StatisticsColumn:
                //        _fieldStr = string.Format("({0}) ", _cItem.Column.ColumnAlgorithm);
                //        break;
            }
            string _targetField = string.Format("TEMP_IMPDATA.{0}", _cItem.CompareTagetField);

            string DateFirst = string.Format("to_date('{0}','YYYY-MM-DD')", _targetField);
            string DateEnd   = string.Format("to_date('{0}235959','YYYY-MM-DDhh24miss')", _targetField);

            switch (_cItem.Operator)
            {
            case "等于":
                return(string.Format("{0} between {1} and {2} ", _fieldStr, DateFirst, DateEnd));
            }
            return("");
        }
コード例 #2
0
        private static string BuildCharFieldCondition_Table(MDCompare_ConditionItem _cItem, MDModel_QueryModel _qv, string _fieldStr)
        {
            MDModel_Table _table;
            string        _targetField = string.Format("TEMP_IMPDATA.{0}", _cItem.CompareTagetField);
            string        _tname       = _cItem.Column.TableName;

            if (_qv.MainTable.TableName == _tname)
            {
                _table = _qv.MainTable;
            }
            else
            {
                _table = _qv.ChildTableDict[_tname];
            }

            MDModel_Table_Column _tc = _table.GetColumnByName(_cItem.Column.ColumnName);

            //普通字符型

            switch (_cItem.Operator)
            {
            case "等于":
                return(string.Format("{0} ={1}", _fieldStr, _targetField));


            case "近似":
                return(string.Format("{0} = {1} ", _fieldStr, _targetField));
            }

            return("");
        }
コード例 #3
0
        private static string BuildConditionItemByTableColumn(MDCompare_ConditionItem _cItem, MDModel_QueryModel _qv)
        {
            switch (_cItem.Column.ColumnDataType.ToUpper())
            {
            case "DATE":         //日期型
                return(BuildDateFieldConditon(_cItem));

                break;

            case "NUMBER":     //数值型
                return(BuildNumberFieldCondition(_cItem, _qv));

                break;

            case "CHAR":
            case "VACHAR":
            case "NVARCHAR":
            case "NVARCHAR2":
            case "VARCHAR2":
                return(BuildCharFieldCondition(_cItem, _qv));

                break;

            default:
                throw new Exception(string.Format("以{0}类型字段做条件的查询功能尚未实现.", _cItem.Column.ColumnDataType));
                break;
            }
            return("");
        }
コード例 #4
0
 private static string GetCompareConditionStr(MDModel_QueryModel _qv, MDCompare_Request compareRequest, string _itemIndex)
 {
     if (!compareRequest.CompareItems.ContainsKey(_itemIndex))
     {
         throw new Exception(string.Format("缺少编号为{0}的条件项!", _itemIndex));
     }
     else
     {
         MDCompare_ConditionItem _cItem = compareRequest.CompareItems[_itemIndex];
         return(OraConditionItemBuilder.BuildCompareConditionItemString(_cItem, _qv));
     }
 }
コード例 #5
0
        private static string BuildCharFieldCondition(MDCompare_ConditionItem _cItem, MDModel_QueryModel _qv)
        {
            string _fieldStr;

            switch (_cItem.Column.ColumnType)
            {
            case QueryColumnType.TableColumn:
                _fieldStr = string.Format("{0}.{1} ", _cItem.Column.TableName, _cItem.Column.ColumnName);
                return(BuildCharFieldCondition_Table(_cItem, _qv, _fieldStr));
            }
            return("");
        }
コード例 #6
0
        public static string BuildCompareConditionItemString(MDCompare_ConditionItem _cItem, MDModel_QueryModel _qv)
        {
            switch (_cItem.Column.ColumnType)
            {
            case QueryColumnType.TableColumn:
                return(BuildConditionItemByTableColumn(_cItem, _qv));

                //case QueryColumnType.CalculationColumn:
                //        return BuildConditionItemByCalculationColumn(_cItem, _qv);
                //        break;

                //case QueryColumnType.StatisticsColumn:
                //        return BuildConditionItemByStatisticsColumn(_cItem, _qv);
                //        break;
            }
            return("");
        }
コード例 #7
0
        public MDCompare_ConditionItem GetCompareConditionItem()
        {
            string _emsg = "";

            if (CheckInput(ref _emsg))
            {
                MDCompare_ConditionItem _ret = new MDCompare_ConditionItem();
                _ret.ColumnIndex = this.te_xh.Text;
                _ret.Column      = new MDQuery_TableColumn(ColumnDefine);
                _ret.Operator    = GetOperator();
                ExcelColumnAlias _selectItem = this.excelSelectBox.EditValue as ExcelColumnAlias;
                _ret.CompareTagetField = _selectItem.Alias;

                return(_ret);
            }
            else
            {
                return(null);
            }
        }
コード例 #8
0
        public void InsertConditions2QueryRequest(MC_CompareRequsetFactory _compareRequestFactory)
        {
            string _filterExp = (this.textEdit1.EditValue == null) ? "" : this.textEdit1.EditValue.ToString();

            _compareRequestFactory.AddExpression(_filterExp);
            foreach (SinoSZUC_ConditionItem _c in this.xtraScrollableControl1.Controls)
            {
                MDQuery_ConditionItem _cItem = _c.GetConditionItem();
                _compareRequestFactory.AddConditonItem(_cItem);
            }

            string _compareExp = (this.textEdit2.EditValue == null) ? "" : this.textEdit2.EditValue.ToString();

            _compareRequestFactory.AddCompareExpression(_compareExp);
            foreach (SinoSZUC_CompareConditionItem _c in this.xtraScrollableControl2.Controls)
            {
                MDCompare_ConditionItem _cItem = _c.GetCompareConditionItem();
                _compareRequestFactory.AddCompareConditonItem(_cItem);
            }
        }
コード例 #9
0
        /// <summary>
        /// 构建数值型字段条件的表达式
        /// </summary>
        /// <param name="_cItem"></param>
        /// <returns></returns>
        private static string BuildNumberFieldCondition(MDCompare_ConditionItem _cItem, MDModel_QueryModel _qv)
        {
            MDModel_Table _table;
            string        _targetField = string.Format("TEMP_IMPDATA.{0}", _cItem.CompareTagetField);
            string        _fieldStr    = "";

            switch (_cItem.Column.ColumnType)
            {
            case QueryColumnType.TableColumn:
                _fieldStr = string.Format("{0}.{1} ", _cItem.Column.TableName, _cItem.Column.ColumnName);
                break;
            }

            string _tname = _cItem.Column.TableName;

            if (_qv.MainTable.TableName == _tname)
            {
                _table = _qv.MainTable;
            }
            else
            {
                _table = _qv.ChildTableDict[_tname];
            }

            MDModel_Table_Column _tc = _table.GetColumnByName(_cItem.Column.ColumnName);

            #region 普通数值型
            switch (_cItem.Operator)
            {
            case "等于":
                return(string.Format("to_char({0}) = {1} ", _fieldStr, _targetField));
            }


            #endregion

            return("");
        }
コード例 #10
0
 public void AddCompareConditonItem(MDCompare_ConditionItem _cItem)
 {
     this.compareRequest.CompareItems.Add(_cItem.ColumnIndex, _cItem);
 }