Esempio n. 1
0
        private void DrawJoin(Graphics g, QueryDesignJoinControl join)
        {
            Pen pen   = Pens.Gray;
            int extwi = 40;

            if (join.LeftTable.Left < join.RightTable.Left)
            {
                Point src = new Point(join.LeftTable.Right, join.LeftTable.Top + join.LeftTable.GetColY(join.LeftCol));
                Point dst = new Point(join.RightTable.Left, join.RightTable.Top + join.RightTable.GetColY(join.RightCol));
                g.DrawLine(pen, src.X, src.Y, src.X + extwi, src.Y);
                g.DrawLine(pen, src.X + extwi, src.Y, dst.X - extwi, dst.Y);
                g.DrawLine(pen, dst.X - extwi, dst.Y, dst.X, dst.Y);

                PlaceJoin(join, src, dst);
            }
            else
            {
                Point src = new Point(join.LeftTable.Left, join.LeftTable.Top + join.LeftTable.GetColY(join.LeftCol));
                Point dst = new Point(join.RightTable.Right, join.RightTable.Top + join.RightTable.GetColY(join.RightCol));
                g.DrawLine(pen, src.X, src.Y, src.X - extwi, src.Y);
                g.DrawLine(pen, src.X - extwi, src.Y, dst.X + extwi, dst.Y);
                g.DrawLine(pen, dst.X + extwi, dst.Y, dst.X, dst.Y);

                PlaceJoin(join, src, dst);
            }
        }
Esempio n. 2
0
        private void PlaceJoin(QueryDesignJoinControl join, Point a, Point b)
        {
            int x = (a.X + b.X) / 2 - join.Width / 2;
            int y = (a.Y + b.Y) / 2 - join.Height / 2;

            if (x != join.Left || y != join.Top)
            {
                join.Left = x;
                join.Top  = y;
            }
        }
Esempio n. 3
0
        public void AddJoin(QueryDesignTableFrame tbl1, string col1, QueryDesignTableFrame tbl2, string col2, bool refresh)
        {
            QueryDesignJoinControl join = new QueryDesignJoinControl(this, tbl1, col1, tbl2, col2);

            m_joins.Add(join);
            panel1.Controls.Add(join);
            if (refresh)
            {
                Redraw();
                ReflectChanges();
            }
        }
Esempio n. 4
0
        public new void Load(XmlElement xml)
        {
            m_loading = true;
            this.LoadPropertiesCore(xml);
            foreach (XmlElement xtbl in xml.SelectNodes("Table"))
            {
                var tbl = new QueryDesignTableFrame(xtbl, this);
                m_tables.Add(tbl);
                panel1.Controls.Add(tbl);
            }
            foreach (XmlElement xjoin in xml.SelectNodes("Join"))
            {
                var join = new QueryDesignJoinControl(xjoin, this);
                m_joins.Add(join);
                panel1.Controls.Add(join);
            }
            foreach (XmlElement xcol in xml.SelectNodes("Column"))
            {
                int newrow = dataGridColumns.Rows.Add();
                var col    = new DesignedColumn(this, dataGridColumns.Rows[newrow], xcol);
                col.Table.m_table.CheckColumn(col.ColumnName);
            }
            foreach (XmlElement xord in xml.SelectNodes("OrderBy"))
            {
                var ord = new DesignedOrder(xord, this);
                lbxSortedColumns.Items.Add(ord);
            }
            var cx = xml.FindElement("Filter");

            if (cx != null)
            {
                m_condDesign.LoadFromXml(cx);
            }
            m_loading = false;
            ReloadAll();
            Redraw();
        }
Esempio n. 5
0
 public void RemoveJoin(QueryDesignJoinControl join)
 {
     m_joins.Remove(join);
     join.Dispose();
     ReloadAll();
 }
Esempio n. 6
0
 public DesignedJoin(QueryDesignFrame frame, QueryDesignJoinControl join)
 {
     m_join  = join;
     m_frame = frame;
 }