private void comBoxAttrName_SelectedIndexChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.comBoxAttrName.Text)) { string text = this.comBoxAttrName.Text; this.pnlValue.Controls.Clear(); ComboBoxEditPLM tplm = new ComboBoxEditPLM(); DEMetaAttribute metaAttr = this.GetMetaAttr(text); if (metaAttr != null) { DEMetaClass myCls = ModelContext.MetaModel.GetClass(metaAttr.LinkedResClass); if (myCls != null) { ResFunc func = new ResFunc(); foreach (DEMetaAttribute attribute2 in func.GetResAttrs(myCls)) { if ((!attribute2.IsSystem && (attribute2.DataType2 == PLMDataType.String)) && (attribute2.Name != "OID")) { tplm.Properties.Items.Add(attribute2.Label); } } if (tplm.Properties.Items.Count > 0) { this.pnlValue.Controls.Add(tplm); tplm.Dock = DockStyle.Fill; } } } } }
private void FilterData() { int num3 = 0; StringBuilder builder = new StringBuilder(); StringBuilder builder2 = new StringBuilder(); if (this.myView != null) { for (int i = 0; i < this.txtBoxList.Count; i++) { TextEditPLM txtBox = (TextEditPLM)this.txtBoxList[i]; if (txtBox.Text != "") { ComboBoxEditPLM cob = (ComboBoxEditPLM)this.cobList[i]; if ((cob.Text == "在..之间") || (cob.Text == "不在..之间")) { DEMetaAttribute tag = (DEMetaAttribute)txtBox.Tag; for (int j = 0; j < this.txtList.Count; j++) { TextEditPLM tplm2 = (TextEditPLM)this.txtList[j]; DEMetaAttribute attribute2 = (DEMetaAttribute)tplm2.Tag; if ((tag.Oid == attribute2.Oid) && (tplm2.Text != "")) { num3++; if (num3 > 1) { builder.Append(" AND "); } builder2 = this.CreateCondition(cob, txtBox); builder.Append(builder2.ToString()); } } } else { num3++; if (num3 > 1) { builder.Append(" AND "); } builder.Append(this.CreateCondition(cob, txtBox).ToString()); } } } try { this.myView.RowFilter = builder.ToString(); this.DisplayData(this.myView); } catch (PLMException exception) { PrintException.Print(exception); } catch { MessageBoxPLM.Show("过滤数据发生错误:请检查输入的数据类型是否正确", "筛选数据集", MessageBoxButtons.OK, MessageBoxIcon.Hand); } } }
private void ClearConditon() { for (int i = 0; i < this.txtBoxList.Count; i++) { TextEditPLM tplm = (TextEditPLM)this.txtBoxList[i]; tplm.Text = ""; ComboBoxEditPLM tplm2 = (ComboBoxEditPLM)this.cobList[i]; if ((tplm2.Text == "在..之间") || (tplm2.Text == "不在..之间")) { tplm.Anchor = AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top; tplm.Width = (base.Width - tplm.Left) - 5; tplm2.Tag = 0; for (int j = 0; j < this.lblList.Count; j++) { LabelPLM lplm = (LabelPLM)this.lblList[j]; TextEditPLM tplm3 = (TextEditPLM)this.txtList[j]; if (lplm.Tag == tplm.Tag) { this.gbFilter.Controls.Remove(lplm); this.lblList.Remove(lplm); } if (tplm3.Tag == tplm.Tag) { this.gbFilter.Controls.Remove(tplm3); this.txtList.Remove(tplm3); } } } tplm2.Text = "等于"; } try { this.myView.RowFilter = ""; this.DisplayData(this.myView); } catch (PLMException exception) { PrintException.Print(exception); } catch (Exception exception2) { MessageBoxPLM.Show("过滤数据发生错误" + exception2.ToString(), "筛选数据集", MessageBoxButtons.OK, MessageBoxIcon.Hand); } }
private DECodeAttribute GetCodeAttrValue() { string text = this.comBoxAttrName.Text; DEMetaAttribute metaAttr = this.GetMetaAttr(text); if (metaAttr != null) { if (this.pnlValue.Controls.Count == 0) { this.ca_input.ClassOid = this.ClassOid; this.ca_input.ClassAttrOid = metaAttr.Oid; this.ca_input.ResAttrOid = Guid.Empty; this.ca_input.ResClsOid = Guid.Empty; return(this.ca_input); } ComboBoxEditPLM tplm = this.pnlValue.Controls[0] as ComboBoxEditPLM; string str2 = tplm.Text; DEMetaClass myCls = ModelContext.MetaModel.GetClass(metaAttr.LinkedResClass); ArrayList resAttrs = new ResFunc().GetResAttrs(myCls); if (resAttrs == null) { return(null); } if (resAttrs.Count == 0) { return(null); } foreach (DEMetaAttribute attribute2 in resAttrs) { if (attribute2.Label == str2) { this.ca_input.ClassOid = this.ClassOid; this.ca_input.ClassAttrOid = metaAttr.Oid; this.ca_input.ResAttrOid = attribute2.Oid; this.ca_input.ResClsOid = myCls.Oid; return(this.ca_input); } } } return(null); }
private void SetCodeAttrValue(DECodeAttribute ca_def) { if ((ca_def != null) && (ca_def.ResClsOid != Guid.Empty)) { DEMetaClass myCls = ModelContext.MetaModel.GetClass(ca_def.ResClsOid); if (myCls != null) { ArrayList resAttrs = new ResFunc().GetResAttrs(myCls); if (((resAttrs != null) && (resAttrs.Count != 0)) && (this.pnlValue.Controls.Count != 0)) { ComboBoxEditPLM tplm = this.pnlValue.Controls[0] as ComboBoxEditPLM; foreach (DEMetaAttribute attribute in resAttrs) { if (attribute.Oid == ca_def.ResAttrOid) { tplm.Text = attribute.Label; break; } } } } } }
private void AddFilter(ArrayList attrList) { DEMetaAttribute attribute; ArrayList list = new ArrayList(); for (int i = 0; i < attrList.Count; i++) { attribute = (DEMetaAttribute)attrList[i]; if (attribute.IsViewable && attribute.IsFilterable) { list.Add(attribute); } } if (list.Count <= 0) { this.pnlFilter.Visible = false; } else { this.pnlFilter.Visible = true; this.pnlFilter.Size = new Size(base.Width, 0x12 + (list.Count * 0x19)); int width = 0; int num = 0; while (num < list.Count) { attribute = (DEMetaAttribute)list[num]; LabelPLM lplm = new LabelPLM { Top = 0x10 + (num * 0x19), Left = 5, Name = "lbl_" + attribute.Name, Text = attribute.Label, AutoSize = true, Anchor = AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top }; if (width < lplm.Width) { width = lplm.Width; } ComboBoxEditPLM tplm2 = new ComboBoxEditPLM { DropDownStyle = ComboBoxStyle.DropDownList, Left = lplm.Right + 5, BackColor = SystemColors.Control, Top = 0x10 + (num * 0x19), Height = 20, Width = 80 }; if (((attribute.DataType == 0) || (attribute.DataType == 1)) || ((attribute.DataType == 2) || (attribute.DataType == 6))) { tplm2.Properties.Items.AddRange(new object[] { "等于", "大于", "小于", "大于等于", "小于等于", "不等于", "在..之间", "不在..之间" }); } else if (((attribute.DataType == 4) || (attribute.DataType == 7)) || ((attribute.DataType == 3) || (attribute.DataType == 5))) { tplm2.Properties.Items.AddRange(new object[] { "等于", "不等于", "前几字符是", "后几字符是", "包含" }); tplm2.Text = "等于"; } else { tplm2.Properties.Items.AddRange(new object[] { "等于", "大于", "小于", "大于等于", "小于等于", "不等于", "在..之间", "不在..之间", "前几字符是", "后几字符是", "包含" }); } tplm2.Name = "comb_" + attribute.Name; if (tplm2.Text == "") { tplm2.Text = "等于"; } tplm2.Tag = 0; tplm2.SelectedIndexChanged += new EventHandler(this.comb_SelectedIndexChanged); TextEditPLM tplm = new TextEditPLM { Left = tplm2.Right + 5, BackColor = SystemColors.Control, Top = 0x10 + (num * 0x19), Name = "txtValue_" + attribute.Name, Size = new Size(80, 0x15), Text = "", Tag = attribute, Anchor = AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top }; tplm.TextChanged += new EventHandler(this.txtValue_TextChanged); this.gbFilter.Controls.Add(lplm); this.gbFilter.Controls.Add(tplm2); this.gbFilter.Controls.Add(tplm); this.txtBoxList.Add(tplm); this.cobList.Add(tplm2); num++; } for (num = 0; num < this.cobList.Count; num++) { ComboBoxEditPLM tplm3 = (ComboBoxEditPLM)this.cobList[num]; tplm3.Left = (5 + width) + 5; tplm3.Width = 0x58; TextEditPLM tplm4 = (TextEditPLM)this.txtBoxList[num]; tplm4.Left = tplm3.Right + 5; tplm4.Width = (base.Width - tplm4.Left) - 5; } } }
private StringBuilder CreateCondition(ComboBoxEditPLM cob, TextEditPLM txtBox) { DEMetaAttribute attribute2; TextEditPLM tplm; DEMetaAttribute tag = (DEMetaAttribute)txtBox.Tag; StringBuilder builder = new StringBuilder(); if (cob.Text == "不在..之间") { builder.Append("("); } builder.Append("PLM_"); builder.Append(tag.Name); switch (cob.Text) { case "前几字符是": builder.Append(" LIKE "); builder.Append(" '"); builder.Append(txtBox.Text); builder.Append("*' "); return(builder); case "后几字符是": builder.Append(" LIKE "); builder.Append("'*"); builder.Append(txtBox.Text); builder.Append("' "); return(builder); case "包含": builder.Append(" LIKE "); builder.Append("'*"); builder.Append(txtBox.Text); builder.Append("*' "); return(builder); case "大于": builder.Append(" > "); builder.Append(txtBox.Text); return(builder); case "小于": builder.Append(" < "); builder.Append(txtBox.Text); return(builder); case "等于": if (((tag.DataType != 0) && (tag.DataType != 1)) && ((tag.DataType != 2) && (tag.DataType != 6))) { builder.Append(" = "); builder.Append(" '"); builder.Append(txtBox.Text); builder.Append("' "); return(builder); } builder.Append(" = "); builder.Append(txtBox.Text); return(builder); case "小于等于": builder.Append(" <= "); builder.Append(txtBox.Text); return(builder); case "大于等于": builder.Append(" >= "); builder.Append(txtBox.Text); return(builder); case "不等于": if (((tag.DataType != 0) && (tag.DataType != 1)) && ((tag.DataType != 2) && (tag.DataType != 6))) { builder.Append(" <> "); builder.Append(" '"); builder.Append(txtBox.Text); builder.Append("' "); return(builder); } builder.Append(" <> "); builder.Append(txtBox.Text); return(builder); case "在..之间": builder.Append(" >= "); builder.Append(txtBox.Text); builder.Append(" AND "); builder.Append("PLM_"); builder.Append(tag.Name); builder.Append(" <= "); for (int i = 0; i < this.txtList.Count; i++) { tplm = (TextEditPLM)this.txtList[i]; attribute2 = (DEMetaAttribute)tplm.Tag; if (attribute2.Oid == tag.Oid) { builder.Append(tplm.Text); return(builder); } } return(builder); case "不在..之间": builder.Append(" < "); builder.Append(txtBox.Text); builder.Append(" OR "); builder.Append("PLM_"); builder.Append(tag.Name); builder.Append(" > "); for (int j = 0; j < this.txtList.Count; j++) { tplm = (TextEditPLM)this.txtList[j]; attribute2 = (DEMetaAttribute)tplm.Tag; if (attribute2.Oid == tag.Oid) { builder.Append(tplm.Text); builder.Append(")"); return(builder); } } return(builder); } return(builder); }
private void comb_SelectedIndexChanged(object sender, EventArgs e) { TextEditPLM tplm2; int num = -1; this.FilterData(); for (int i = 0; i < this.cobList.Count; i++) { ComboBoxEditPLM tplm = (ComboBoxEditPLM)this.cobList[i]; if (tplm.ContainsFocus) { int tag = (int)tplm.Tag; if ((tplm.Text == "在..之间") || (tplm.Text == "不在..之间")) { if (tag == 1) { return; } num = i; tplm.Tag = 1; } else { switch (tag) { case 0: return; case 1: for (int j = 0; j < this.lblList.Count; j++) { tplm2 = (TextEditPLM)this.txtBoxList[i]; tplm2.Anchor = AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top; tplm2.Width = (base.Width - tplm2.Left) - 5; tplm.Tag = 0; LabelPLM lplm = (LabelPLM)this.lblList[j]; TextEditPLM tplm3 = (TextEditPLM)this.txtList[j]; if (lplm.Tag == tplm2.Tag) { this.gbFilter.Controls.Remove(lplm); this.lblList.Remove(lplm); } if (tplm3.Tag == tplm2.Tag) { this.gbFilter.Controls.Remove(tplm3); this.txtList.Remove(tplm3); } } break; } } } } if (num >= 0) { tplm2 = (TextEditPLM)this.txtBoxList[num]; tplm2.Anchor = AnchorStyles.Left | AnchorStyles.Top; tplm2.Width = ((base.Width - tplm2.Left) - 50) / 2; LabelPLM lplm2 = new LabelPLM { Top = tplm2.Top, Left = tplm2.Right + 5, Text = " AND ", Width = 0x23, Tag = tplm2.Tag }; this.lblList.Add(lplm2); TextEditPLM tplm4 = new TextEditPLM { Top = tplm2.Top, Left = lplm2.Right + 5, Text = "" }; tplm4.Width = (base.Width - 5) - tplm4.Left; tplm4.Tag = tplm2.Tag; tplm4.BackColor = SystemColors.Control; tplm4.Anchor = AnchorStyles.Left | AnchorStyles.Top; tplm4.TextChanged += new EventHandler(this.txtValue_TextChanged); this.txtList.Add(tplm4); this.gbFilter.Controls.Add(lplm2); this.gbFilter.Controls.Add(tplm4); } }
private StringBuilder CreateCondition(ComboBoxEditPLM cob, TextEditPLM txtBox) { StringBuilder builder = new StringBuilder(); builder.Append("PLM_ID"); string text = cob.Text; if (text != null) { if (text == "前几字符是") { builder.Append(" LIKE "); if ((txtBox.Text == null) || (txtBox.Text == "")) { builder.Append(" '"); builder.Append("*' "); return(builder); } builder.Append(" '"); builder.Append(txtBox.Text); builder.Append("*' "); return(builder); } if (text == "后几字符是") { builder.Append(" LIKE "); if ((txtBox.Text == null) || (txtBox.Text == "")) { builder.Append("'*"); builder.Append("' "); return(builder); } builder.Append("'*"); builder.Append(txtBox.Text); builder.Append("' "); return(builder); } if (text == "包含") { builder.Append(" LIKE "); if ((txtBox.Text == null) || (txtBox.Text == "")) { builder.Append("'*"); builder.Append("' "); return(builder); } builder.Append("'*"); builder.Append(txtBox.Text); builder.Append("*' "); return(builder); } if (text == "等于") { if (txtBox.Text == null) { builder.Append(" LIKE "); builder.Append("'*"); builder.Append("' "); return(builder); } builder.Append(" = "); builder.Append("'"); builder.Append(txtBox.Text); builder.Append("' "); return(builder); } if (text != "不等于") { return(builder); } if (txtBox.Text == null) { builder.Append(" LIKE "); builder.Append("'*'"); return(builder); } builder.Append(" <> "); builder.Append("'"); builder.Append(txtBox.Text); builder.Append("' "); } return(builder); }