bool SavePage4() { for (int i = 0; i < dataGridView4.Rows.Count; i++) { CViewFilter vf = (CViewFilter)dataGridView4.Rows[i].Tag; vf.Idx = i; m_View.ViewFilterMgr.Update(vf); } return(true); }
private void btDel4_Click(object sender, EventArgs e) { if (dataGridView4.SelectedRows.Count == 0) { MessageBox.Show("请选择行!"); return; } CViewFilter vf = (CViewFilter)dataGridView4.SelectedRows[0].Tag; m_ViewFilterMgr.Delete(vf); dataGridView4.Rows.Remove(dataGridView4.SelectedRows[0]); }
private void btOk_Click(object sender, EventArgs e) { for (int i = 0; i < dataGridView4.Rows.Count; i++) { CViewFilter vf = (CViewFilter)dataGridView4.Rows[i].Tag; vf.Idx = i; m_ViewFilterMgr.Update(vf); } this.DialogResult = DialogResult.OK; this.Close(); }
private void btAdd4_Click(object sender, EventArgs e) { if (cbMasterTable.SelectedIndex == -1) { return; } DataItem item = (DataItem)cbMasterTable.SelectedItem; CTable tb = (CTable)item.Data; if (cbMasterColumn4.SelectedIndex == -1) { MessageBox.Show("请选择字段!"); return; } if (cbSign4.SelectedIndex == -1) { MessageBox.Show("请选择比较符号!"); return; } if (txtVal4.Text.Trim() == "") { MessageBox.Show("请输入字段值!"); return; } DataItem item2 = (DataItem)cbMasterColumn4.SelectedItem; CColumn col = (CColumn)item2.Data; CViewFilter vf = new CViewFilter(); vf.Ctx = Program.Ctx; vf.UI_View_id = m_View.Id; vf.AndOr = (cbAndOr.SelectedIndex == 0) ? "and" : "or"; vf.FW_Table_id = tb.Id; vf.FW_Column_id = col.Id; vf.Sign = (CompareSign)cbSign4.SelectedIndex; vf.Val = txtVal4.Text.Trim(); m_View.ViewFilterMgr.AddNew(vf); dataGridView4.Rows.Add(1); DataGridViewRow rowNew = dataGridView4.Rows[dataGridView4.Rows.Count - 1]; rowNew.Cells[0].Value = vf.AndOr; rowNew.Cells[1].Value = col.Name; rowNew.Cells[2].Value = vf.GetSignName(); rowNew.Cells[3].Value = vf.Val; rowNew.Tag = vf; txtVal4.Text = ""; }
protected void btAdd_Click(object sender, EventArgs e) { CViewFilter Filter = new CViewFilter(); Filter.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); Filter.UI_View_id = m_View.Id; Filter.AndOr = cbAndOr.SelectedItem.Value; Filter.FW_Table_id = m_MTable.Id; Filter.FW_Column_id = new Guid(cbColumn.SelectedItem.Value); Filter.Sign = (CompareSign)cbSign.SelectedIndex; Filter.Val = txtVal.Text.Trim(); Filter.Idx = m_View.ViewFilterMgr.GetList().Count; m_View.ViewFilterMgr.AddNew(Filter); txtVal.Text = ""; }
void GetData() { string sData = ""; int iCount = 0; if (Session["ViewFilterMgr"] != null) { SortedList <Guid, CViewFilterMgr> sortObj = (SortedList <Guid, CViewFilterMgr>)Session["ViewFilterMgr"]; if (sortObj.ContainsKey(m_View.Id)) { CViewFilterMgr ViewFilterMgr = sortObj[m_View.Id]; ViewFilterMgr.IsLoad = true; //避免从数据库装载 List <CBaseObject> lstObj = ViewFilterMgr.GetList(); foreach (CBaseObject obj in lstObj) { CViewFilter ViewFilter = (CViewFilter)obj; CColumn col = (CColumn)m_Table.ColumnMgr.Find(ViewFilter.FW_Column_id); if (col == null) { continue; } sData += string.Format("{{ \"id\": \"{0}\",\"AndOr\":\"{1}\",\"Column\":\"{2}\",\"Sign\":\"{3}\", \"Val\":\"{4}\" }}," , ViewFilter.Id , ViewFilter.AndOr.Equals("and", StringComparison.OrdinalIgnoreCase) ? "与" : "或" , col.Name , ViewFilter.GetSignName() , ViewFilter.Val); iCount++; } } } sData = sData.TrimEnd(",".ToCharArray()); sData = "[" + sData + "]"; string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}" , sData, iCount); Response.Write(sJson); }
void GetData() { string sData = ""; int iCount = 0; List <CBaseObject> lstObj = m_View.ViewFilterMgr.GetList(); List <CViewFilter> sortObj = new List <CViewFilter>(); foreach (CBaseObject obj in lstObj) { CViewFilter ViewFilter = (CViewFilter)obj; sortObj.Add(ViewFilter); } sortObj.Sort(); foreach (CViewFilter ViewFilter in sortObj) { CColumn col = (CColumn)m_MTable.ColumnMgr.Find(ViewFilter.FW_Column_id); if (col == null) { continue; } sData += string.Format("{{ \"id\": \"{0}\",\"AndOr\":\"{1}\",\"Column\":\"{2}\",\"Sign\":\"{3}\", \"Val\":\"{4}\" }}," , ViewFilter.Id , ViewFilter.AndOr.Equals("and", StringComparison.OrdinalIgnoreCase)?"与":"或" , col.Name , ViewFilter.GetSignName() , ViewFilter.Val); iCount++; } sData = sData.TrimEnd(",".ToCharArray()); sData = "[" + sData + "]"; string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}" , sData, iCount); Response.Write(sJson); }
void LoadGridView4() { if (cbMasterTable.SelectedIndex == -1) { return; } DataItem item = (DataItem)cbMasterTable.SelectedItem; CTable tb = (CTable)item.Data; txtMasterTable4.Text = tb.Name; List <CBaseObject> lstObj = m_View.ViewFilterMgr.GetList(); List <CViewFilter> sortObj = new List <CViewFilter>(); foreach (CBaseObject obj in lstObj) { CViewFilter vf = (CViewFilter)obj; sortObj.Add(vf); } sortObj.Sort(); dataGridView4.Rows.Clear(); foreach (CViewFilter vf in sortObj) { CColumn column = (CColumn)tb.ColumnMgr.Find(vf.FW_Column_id); if (column == null) { continue; } dataGridView4.Rows.Add(1); DataGridViewRow rowNew = dataGridView4.Rows[dataGridView4.Rows.Count - 1]; rowNew.Cells[0].Value = vf.AndOr; rowNew.Cells[1].Value = column.Name; rowNew.Cells[2].Value = vf.GetSignName(); rowNew.Cells[3].Value = vf.Val; rowNew.Tag = vf; } }
protected void btAdd_Click(object sender, EventArgs e) { if (Session["ViewFilterMgr"] == null) { SortedList <Guid, CViewFilterMgr> sortObj0 = new SortedList <Guid, CViewFilterMgr>(); CViewFilterMgr ViewFilterMgr0 = new CViewFilterMgr(); ViewFilterMgr0.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); sortObj0.Add(m_View.Id, ViewFilterMgr0); Session["ViewFilterMgr"] = sortObj0; } SortedList <Guid, CViewFilterMgr> sortObj = (SortedList <Guid, CViewFilterMgr>)Session["ViewFilterMgr"]; if (!sortObj.ContainsKey(m_View.Id)) { CViewFilterMgr ViewFilterMgr0 = new CViewFilterMgr(); ViewFilterMgr0.Ctx = Global.GetCtx(Session["TopCompany"].ToString()); sortObj.Add(m_View.Id, ViewFilterMgr0); } CViewFilterMgr ViewFilterMgr = sortObj[m_View.Id]; CViewFilter Filter = new CViewFilter(); Filter.Ctx = ViewFilterMgr.Ctx; Filter.UI_View_id = m_View.Id; Filter.AndOr = cbAndOr.SelectedItem.Value; Filter.FW_Table_id = m_Table.Id; Filter.FW_Column_id = new Guid(cbColumn.SelectedItem.Value); Filter.Sign = (CompareSign)cbSign.SelectedIndex; Filter.Val = txtVal.Text.Trim(); Filter.Idx = m_View.ViewFilterMgr.GetList().Count; ViewFilterMgr.AddNew(Filter); txtVal.Text = ""; }
//带临时过滤条件的过滤 public List <CBaseObject> FilterByView(CView view, CViewFilterMgr ViewFilterMgr) { List <CViewFilter> sortFilter = new List <CViewFilter>(); List <CBaseObject> lstFilter = ViewFilterMgr.GetList(); foreach (CBaseObject objF in lstFilter) { CViewFilter vf = (CViewFilter)objF; sortFilter.Add(vf); } sortFilter.Sort();//按索引idx排序 List <CBaseObject> lstRet = new List <CBaseObject>(); List <CBaseObject> lstObj = FilterByView(view); if (sortFilter.Count == 0) { return(lstObj); } foreach (CBaseObject obj in lstObj) { bool bPass = false; //所有通过 bool bPassAnd = true; //上一个and通过 if (sortFilter.Count == 0) { bPass = true; } else { for (int i = 0; i < sortFilter.Count; i++) { CViewFilter vf = (CViewFilter)sortFilter[i]; if (i == 0)//第一个忽略and or { if (!obj.FilterByView(vf)) { bPassAnd = false; } } else { if (vf.AndOr.Equals("and", StringComparison.OrdinalIgnoreCase)) { if (!bPassAnd) //本段落不通过,转向下一个段落 { continue; } if (!obj.FilterByView(vf)) { bPassAnd = false; } } else // or { if (bPassAnd) //本段落全部通过,则无需检验其他段落 { bPass = true; break; } bPassAnd = true;//一个段落开始 if (!obj.FilterByView(vf)) { bPassAnd = false; } } } if (i == sortFilter.Count - 1) //最后一个 { if (bPassAnd) { bPass = true; } break; } } } if (bPass) { lstRet.Add(obj); } } return(lstRet); }
//检验单条记录过滤条件 public virtual bool FilterByView(CViewFilter vf) { CColumn col = (CColumn)Table.ColumnMgr.Find(vf.FW_Column_id); if (col == null) { return(false); } switch (col.ColType) { case ColumnType.string_type: case ColumnType.text_type: { return(CompareStr(vf.Sign, m_arrOldVal[col.Code.ToLower()].StrVal, vf.Val)); break; } case ColumnType.int_type: case ColumnType.enum_type: { return(CompareInt(vf.Sign, m_arrOldVal[col.Code.ToLower()].IntVal, vf.Val)); break; } case ColumnType.long_type: { return(CompareLong(vf.Sign, m_arrOldVal[col.Code.ToLower()].LongVal, vf.Val)); break; } case ColumnType.numeric_type: { return(CompareDouble(vf.Sign, m_arrOldVal[col.Code.ToLower()].DoubleVal, vf.Val)); break; } case ColumnType.bool_type: { return(CompareBool(vf.Sign, m_arrOldVal[col.Code.ToLower()].BoolVal, vf.Val)); break; } case ColumnType.datetime_type: { return(CompareDateTime(vf.Sign, m_arrOldVal[col.Code.ToLower()].DatetimeVal, vf.Val)); break; } case ColumnType.guid_type: case ColumnType.ref_type: { object objVal = GetRefShowColVal(col); return(CompareStr(vf.Sign, objVal != null?objVal.ToString():"", vf.Val)); break; } case ColumnType.object_type: { return(CompareObject(vf.Sign, m_arrOldVal[col.Code.ToLower()].ObjectVal, vf.Val)); break; } case ColumnType.path_type: { return(ComparePath(vf.Sign, m_arrOldVal[col.Code.ToLower()].StrVal, vf.Val)); break; } default: break; } return(false); }