Пример #1
0
        void LoadData()
        {
            panelDiagram.Controls.Clear();
            List <CBaseObject> lstTableInDiagram = m_Diagram.TableInDiagramMgr.GetList();

            foreach (CBaseObject obj in lstTableInDiagram)
            {
                CTableInDiagram TableInDiagram = (CTableInDiagram)obj;
                CTable          table          = (CTable)Program.Ctx.TableMgr.Find(TableInDiagram.FW_Table_id);
                if (table != null)
                {
                    TableBox tableBox = new TableBox();
                    tableBox.Name         = "TableBox";
                    tableBox.Table        = table;
                    tableBox.Moveable     = true;
                    tableBox.CaptionText  = table.Name;
                    tableBox.CaptionSize  = m_iTableBoxCaptionSize;
                    tableBox.Left         = TableInDiagram.X;
                    tableBox.Top          = TableInDiagram.Y;
                    tableBox.Width        = TableInDiagram.Width;
                    tableBox.Height       = TableInDiagram.Height;
                    tableBox.Move        += new EventHandler(tableBox_Move);
                    tableBox.SizeChanged += new EventHandler(tableBox_Move);
                    tableBox.CaptionControl.MouseClick += new MouseEventHandler(CaptionControl_MouseClick);

                    panelDiagram.Controls.Add(tableBox);
                }
            }
        }
Пример #2
0
        private void tbtSave_Click(object sender, EventArgs e)
        {
            foreach (Control ctrl in panelDiagram.Controls)
            {
                if (ctrl.Name.Equals("TableBox", StringComparison.OrdinalIgnoreCase))
                {
                    TableBox tableBox = (TableBox)ctrl;
                    CTable   table    = tableBox.Table;

                    List <CBaseObject> lstTableInDiagram = m_Diagram.TableInDiagramMgr.GetList();
                    foreach (CBaseObject obj in lstTableInDiagram)
                    {
                        CTableInDiagram tind = (CTableInDiagram)obj;
                        if (tind.FW_Table_id == table.Id)
                        {
                            tind.X      = tableBox.Left;
                            tind.Y      = tableBox.Top;
                            tind.Width  = tableBox.Width;
                            tind.Height = tableBox.Height;
                            m_Diagram.TableInDiagramMgr.Update(tind);
                        }
                    }
                }
            }
            m_Diagram.m_CmdType = CmdType.Update;
            if (!m_Diagram.Save(true))
            {
                MessageBox.Show("保存失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }
        }
Пример #3
0
        private void tbtRemoveTable_Click(object sender, EventArgs e)
        {
            if (m_CurSelTableBox == null)
            {
                return;
            }
            CTable             table             = m_CurSelTableBox.Table;
            List <CBaseObject> lstTableInDiagram = m_Diagram.TableInDiagramMgr.GetList();

            foreach (CBaseObject obj in lstTableInDiagram)
            {
                CTableInDiagram TableInDiagram = (CTableInDiagram)obj;
                if (TableInDiagram.FW_Table_id == table.Id)
                {
                    m_Diagram.TableInDiagramMgr.Delete(TableInDiagram);
                    break;
                }
            }
            panelDiagram.Controls.Remove(m_CurSelTableBox);
            panelDiagram.Invalidate();
        }
Пример #4
0
        public void AddTable(CTable table)
        {
            List <CBaseObject> lstTableInDiagram = m_Diagram.TableInDiagramMgr.GetList();

            foreach (CBaseObject obj in lstTableInDiagram)
            {
                CTableInDiagram tind = (CTableInDiagram)obj;
                if (tind.FW_Table_id == table.Id)
                {
                    return;
                }
            }
            CTableInDiagram TableInDiagram = new CTableInDiagram();

            TableInDiagram.FW_Table_id   = table.Id;
            TableInDiagram.FW_Diagram_id = m_Diagram.Id;
            TableInDiagram.IsStandard    = false;
            TableInDiagram.Width         = m_iTableBoxWidth;
            TableInDiagram.Height        = m_iTableBoxHeight;
            //计算坐标,使不与旧表重叠
            int x = m_iTableBoxDis, y = m_iTableBoxDis;//边空隙

            TableInDiagram.X = x;
            TableInDiagram.Y = y;
            while (true)
            {
                bool bInRect = false;
                foreach (PO po in lstTableInDiagram)
                {
                    CTableInDiagram tind = (CTableInDiagram)po;
                    if (CTableInDiagram.InRect(tind, TableInDiagram))
                    {
                        bInRect          = true;
                        TableInDiagram.X = tind.X + tind.Width + m_iTableBoxDis;
                        break;
                    }
                }
                if (!bInRect)
                {
                    break;
                }
            }
            //

            if (!m_Diagram.TableInDiagramMgr.AddNew(TableInDiagram))
            {
                MessageBox.Show("添加表失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }

            TableBox tableBox = new TableBox();

            tableBox.Name         = "TableBox";
            tableBox.Table        = table;
            tableBox.Moveable     = true;
            tableBox.CaptionText  = table.Name;
            tableBox.CaptionSize  = m_iTableBoxCaptionSize;
            tableBox.Left         = TableInDiagram.X;
            tableBox.Top          = TableInDiagram.Y;
            tableBox.Width        = TableInDiagram.Width;
            tableBox.Height       = TableInDiagram.Height;
            tableBox.Move        += new EventHandler(tableBox_Move);
            tableBox.SizeChanged += new EventHandler(tableBox_Move);
            tableBox.CaptionControl.MouseClick += new MouseEventHandler(CaptionControl_MouseClick);

            panelDiagram.Controls.Add(tableBox);
        }