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); } } }
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; } }
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(); }
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); }