コード例 #1
0
ファイル: UCCodeAttrPicker.cs プロジェクト: funtomi/MyNewCode
 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;
                 }
             }
         }
     }
 }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
ファイル: UCCodeAttrPicker.cs プロジェクト: funtomi/MyNewCode
        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);
        }
コード例 #5
0
ファイル: UCCodeAttrPicker.cs プロジェクト: funtomi/MyNewCode
 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;
                     }
                 }
             }
         }
     }
 }
コード例 #6
0
        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;
                }
            }
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
ファイル: UCCusSPL.cs プロジェクト: funtomi/MyNewCode
        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);
        }