/// <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(""); }
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(""); }
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(""); }
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)); } }
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(""); }
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(""); }
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); } }
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); } }
/// <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(""); }
public void AddCompareConditonItem(MDCompare_ConditionItem _cItem) { this.compareRequest.CompareItems.Add(_cItem.ColumnIndex, _cItem); }