Ejemplo n.º 1
0
        public override void TextAndBotton_Click(object sender, EventArgs e)
        {
            base.TextAndBotton_Click(sender, e);
            Control ctl   = sender as Control;
            string  ctrNm = ctl.Name.Replace(SysConstManage.BtnCtrlNmPrefix, "");

            if (_Node != null)
            {
                var            pnode       = _Node.Parent as TreeNode;
                LibTransSource transSource = pnode.Tag as LibTransSource;
                if (string.Compare(ctrNm, "tranfld_TargetFieldNm") == 0)
                {
                    if (string.IsNullOrEmpty(transSource.TargetProgId))
                    {
                        ExceptionManager.ThrowError("目标单progid 必填");
                        //MessageHandle.ShowMessage("来源单progid 必填",false);
                    }
                    var           formpage = ModelDesignProject.GetFormSourceByFormId(transSource.TargetProgId);
                    LibDataSource ds       = ModelDesignProject.GetDataSourceById(formpage.DSID);
                    Panel         p        = new Panel();
                    p.Dock       = DockStyle.Fill;
                    p.Name       = "pfieldcollection";
                    p.AutoScroll = true;
                    TreeView tree = new TreeView();
                    tree.AfterCheck += new TreeViewEventHandler(tree_AfterCheck);
                    tree.CheckBoxes  = true;
                    tree.Dock        = DockStyle.Fill;
                    p.Controls.Add(tree);
                    //LibTreeNode _node;
                    if (ds.DefTables != null)
                    {
                        List <ExistField> exists = new List <ExistField>();
                        exists.Add(new ExistField {
                            Name = this.entity.TargetFieldNm, FromTableNm = this.entity.TargetTableNm
                        });
                        DSUtiles.GetAllFieldsByDS(ds, tree, exists);
                    }

                    FieldCollectionForm fielsform = new FieldCollectionForm(p);
                    DialogResult        dialog    = fielsform.ShowDialog(this);
                    if (dialog == DialogResult.OK)
                    {
                        foreach (LibTreeNode deftb in tree.Nodes)
                        {
                            foreach (LibTreeNode tbstruct in deftb.Nodes)
                            {
                                foreach (LibTreeNode f in tbstruct.Nodes)
                                {
                                    if (!f.Checked)
                                    {
                                        continue;
                                    }
                                    this.entity.TargetFieldNm      = f.Name;
                                    this.entity.TargetFieldDisplay = f.Text;
                                    this.entity.TargetTableNm      = (bool)f.Tag ? tbstruct.Name : string.Empty;
                                    this.entity.TargetTableIndex   = Convert.ToInt32(tbstruct.NodeId);
                                    break;
                                }
                            }
                        }
                        this.SetPropertyValue(this.entity, _Node);
                        UpdateTabPageText();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            LibTreeNode curentNode = (LibTreeNode)this.treeView1.SelectedNode;

            switch (e.ClickedItem.Name)
            {
            case "andTransField":     //添加转单字段
                if (this._Trans.TransFields == null)
                {
                    _Trans.TransFields = new LibCollection <LibTransFieldMap>();
                }
                var existfields = _Trans.TransFields.Tolist();
                if (string.IsNullOrEmpty(_Trans.SrcProgId))
                {
                    ExceptionManager.ThrowError("来源单progid 必填");
                    //MessageHandle.ShowMessage("来源单progid 必填",false);
                }
                var           formpage = ModelDesignProject.GetFormSourceByFormId(_Trans.SrcProgId);
                LibDataSource ds       = ModelDesignProject.GetDataSourceById(formpage.DSID);
                Panel         p        = new Panel();
                p.Dock       = DockStyle.Fill;
                p.Name       = "pfieldcollection";
                p.AutoScroll = true;
                TreeView tree = new TreeView();
                //tree.AfterCheck += new TreeViewEventHandler(Gridtree_AfterCheck);
                tree.CheckBoxes = true;
                tree.Dock       = DockStyle.Fill;
                p.Controls.Add(tree);
                LibTreeNode _node;
                if (ds.DefTables != null)
                {
                    List <ExistField> exists = new List <ExistField>();
                    foreach (var item in existfields)
                    {
                        exists.Add(new ExistField {
                            Name = item.SrcFieldNm, FromTableNm = item.SrcTableNm
                        });
                    }
                    DSUtiles.GetAllFieldsByDS(ds, tree, exists);
                }
                FieldCollectionForm fielsform = new FieldCollectionForm(p);
                DialogResult        dialog    = fielsform.ShowDialog(this);
                if (dialog == DialogResult.OK)
                {
                    curentNode.Nodes.Clear();
                    if (_Trans.TransFields != null && _Trans.TransFields.Count > 0)
                    {
                        _Trans.TransFields.RemoveAll();
                    }
                    foreach (LibTreeNode deftb in tree.Nodes)
                    {
                        foreach (LibTreeNode tbstruct in deftb.Nodes)
                        {
                            foreach (LibTreeNode f in tbstruct.Nodes)
                            {
                                if (!f.Checked)
                                {
                                    continue;
                                }
                                #region 添加节点
                                //树节点

                                LibTreeNode fieldNode = new LibTreeNode();
                                fieldNode.NodeId   = Guid.NewGuid().ToString();
                                fieldNode.NodeType = NodeType.TransField;
                                fieldNode.Name     = f.Name;
                                fieldNode.Text     = fieldNode.Name;
                                curentNode.Nodes.Add(fieldNode);

                                //控件属性
                                TransFieldProperty fieldProperty = new TransFieldProperty(fieldNode.NodeId);
                                _transFieldlst.Add(fieldProperty);
                                fieldProperty.Dock = DockStyle.Fill;
                                this.splitContainer1.Panel2.Controls.Add(fieldProperty);

                                //对应实体
                                LibTransFieldMap libtransfield = new LibTransFieldMap();
                                libtransfield.ID         = fieldNode.NodeId;
                                libtransfield.SrcFieldNm = f.Name;
                                libtransfield.SrcTableNm = (bool)f.Tag ? tbstruct.Name : string.Empty;
                                //libtransfield.FromDefTableNm = (bool)f.Tag ? deftb.Name : string.Empty;
                                libtransfield.SrcTableIndex   = Convert.ToInt32(tbstruct.NodeId);
                                libtransfield.SrcFieldDisplay = f.Text;
                                //libtransfield.Isdefine = !(bool)f.Tag;

                                _Trans.TransFields.Add(libtransfield);

                                fieldProperty.SetPropertyValue(libtransfield, fieldNode);

                                #endregion
                            }
                        }
                    }
                    UpdateTabPageText();
                }
                break;
            }
        }
Ejemplo n.º 3
0
        private void contextMenuStrip2_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            LibTreeNode   curentNode        = (LibTreeNode)this.treeView1.SelectedNode;
            LibReportGrid currentlibrptgrid = _rpt.GridGroups.FindFirst("GridGroupID", curentNode.NodeId);

            switch (e.ClickedItem.Name)
            {
            case "AddFromDSField":     //添加数据源字段
                if (currentlibrptgrid.ReportFields == null)
                {
                    currentlibrptgrid.ReportFields = new LibCollection <LibReportField>();
                }
                var           existfields = currentlibrptgrid.ReportFields.Tolist();
                LibDataSource ds          = ModelDesignProject.GetDataSourceById(currentlibrptgrid.DSID);
                Panel         p           = new Panel();
                p.Dock       = DockStyle.Fill;
                p.Name       = "pfieldcollection";
                p.AutoScroll = true;
                TreeView tree = new TreeView();
                tree.AfterCheck += new TreeViewEventHandler(Gridtree_AfterCheck);
                tree.CheckBoxes  = true;
                tree.Dock        = DockStyle.Fill;
                p.Controls.Add(tree);
                LibTreeNode _node;
                if (ds.DefTables != null)
                {
                    List <ExistField> exists = new List <ExistField>();
                    foreach (var item in existfields)
                    {
                        exists.Add(new ExistField {
                            Name = item.Name, FromTableNm = item.FromTableNm
                        });
                    }
                    DSUtiles.GetAllFieldsByDS(ds, tree, exists);
                    #region 收集数据源字段
                    //foreach (LibDefineTable deftb in ds.DefTables)
                    //{
                    //    LibTreeNode deftbnode = new LibTreeNode();
                    //    deftbnode.Name = deftb.TableName;
                    //    deftbnode.Text = string.Format("{0}({1})", deftb.DisplayName, deftb.TableName);
                    //    tree.Nodes.Add(deftbnode);
                    //    if (deftb.TableStruct != null)
                    //    {
                    //        foreach (LibDataTableStruct dtstruct in deftb.TableStruct)
                    //        {
                    //            LibTreeNode dtstructnode = new LibTreeNode();
                    //            dtstructnode.Name = dtstruct.Name;
                    //            dtstructnode.Text = string.Format("{0}({1})", dtstruct.DisplayName, dtstruct.Name);
                    //            dtstructnode.NodeId = dtstruct.TableIndex.ToString();
                    //            deftbnode.Nodes.Add(dtstructnode);
                    //            if (dtstruct.Fields != null)
                    //            {
                    //                foreach (LibField fld in dtstruct.Fields)
                    //                {
                    //                    if (!fld.IsActive) continue;
                    //                    _node = new LibTreeNode();
                    //                    _node.Name = fld.Name;
                    //                    _node.Text = fld.DisplayName;
                    //                    _node.Tag = true;
                    //                    _node.Checked = existfields.FirstOrDefault(i => i.Name == fld.Name && i.FromTableNm == dtstruct.Name) != null;
                    //                    dtstructnode.Nodes.Add(_node);
                    //                    if (fld.SourceField != null && fld.SourceField.Count > 0)
                    //                    {
                    //                        foreach (LibFromSourceField fromfld in fld.SourceField)
                    //                        {
                    //                            if (fromfld.RelateFieldNm != null && fromfld.RelateFieldNm.Count > 0)
                    //                            {
                    //                                foreach (LibRelateField relateField in fromfld.RelateFieldNm)
                    //                                {
                    //                                    if (relateField != null)
                    //                                    {
                    //                                        _node = new LibTreeNode();
                    //                                        _node.Name = string.IsNullOrEmpty(relateField.AliasName) ? relateField.FieldNm : relateField.AliasName;
                    //                                        _node.Text = relateField.DisplayNm;
                    //                                        _node.Tag = false;
                    //                                        _node.Checked = existfields.FirstOrDefault(i => i.Name == _node.Name && i.FromTableNm == dtstruct.Name) != null;
                    //                                        dtstructnode.Nodes.Add(_node);
                    //                                    }
                    //                                }
                    //                            }
                    //                        }
                    //                    }
                    //                }
                    //            }
                    //        }
                    //    }
                    //}
                    #endregion
                }
                FieldCollectionForm fielsform = new FieldCollectionForm(p);
                DialogResult        dialog    = fielsform.ShowDialog(this);

                if (dialog == DialogResult.OK)
                {
                    curentNode.Nodes.Clear();
                    if (currentlibrptgrid.ReportFields != null && currentlibrptgrid.ReportFields.Count > 0)
                    {
                        currentlibrptgrid.ReportFields.RemoveAll();
                    }
                    foreach (LibTreeNode deftb in tree.Nodes)
                    {
                        foreach (LibTreeNode tbstruct in deftb.Nodes)
                        {
                            foreach (LibTreeNode f in tbstruct.Nodes)
                            {
                                if (!f.Checked)
                                {
                                    continue;
                                }
                                #region 添加节点
                                //树节点

                                LibTreeNode fieldNode = new LibTreeNode();
                                fieldNode.NodeId   = Guid.NewGuid().ToString();
                                fieldNode.NodeType = NodeType.GridGroup_Field;
                                fieldNode.Name     = f.Name;
                                fieldNode.Text     = fieldNode.Name;
                                curentNode.Nodes.Add(fieldNode);

                                //控件属性
                                ReportFieldProperty rptfieldProperty = new ReportFieldProperty(fieldNode.NodeId);
                                _reportFieldlst.Add(rptfieldProperty);
                                rptfieldProperty.Dock = DockStyle.Fill;
                                this.splitContainer1.Panel2.Controls.Add(rptfieldProperty);

                                //对应实体
                                LibReportField librptfield = new LibReportField();
                                librptfield.ID             = fieldNode.NodeId;
                                librptfield.Name           = f.Name;
                                librptfield.FromTableNm    = (bool)f.Tag? tbstruct.Name:string.Empty;
                                librptfield.FromDefTableNm = (bool)f.Tag ? deftb.Name:string.Empty;
                                librptfield.FromTableIndex = Convert.ToInt32(tbstruct.NodeId);
                                librptfield.DisplayName    = f.Text;
                                librptfield.Isdefine       = !(bool)f.Tag;

                                currentlibrptgrid.ReportFields.Add(librptfield);

                                rptfieldProperty.SetPropertyValue(librptfield, fieldNode);

                                #endregion
                            }
                        }
                    }
                    UpdateTabPageText();
                }
                break;

            case "AddDefineField":    //添加自定义字段
                break;
            }
        }