internal void Remove(IMultiHeader c) { if (!Contains(c)) { return; } InnerList.Remove(c); }
public int IndexOf(IMultiHeader c) { if (!Contains(c)) { return(-1); } else { return(InnerList.IndexOf(c)); } }
public void Add(int level, IMultiHeader mh) { if (_innerhash.Contains(level)) { _innerhash[level] = mh; } else { _innerhash.Add(level, mh); } }
internal void AddAt(IMultiHeader c, IMultiHeader beforeMultiHeader) { if (!Contains(beforeMultiHeader)) { return; } if (Contains(c)) { return; } AddAt(c, IndexOf(beforeMultiHeader)); }
internal void AddAt(IMultiHeader c, int index) { if (index < 0 || index > InnerList.Count - 1) { return; } if (Contains(c)) { return; } InnerList.Insert(index, c); }
public override void UpdateView(ExControlView i_View) { if (i_View == null) { return; } IMultiHeader mainView = i_View as IMultiHeader; if (this.Headers != null) { mainView.HeadersData = this.Headers.Copy(); } }
private void IMultiHeaderFrom(XmlElement xe, IMultiHeader receiver) { if (xe.HasAttribute("SortSource")) { DataSource ds = _report.DataSources[xe.GetAttribute("SortSource")]; if (ds != null) { receiver.SortSource = ds; } else { receiver.SortSource = new DataSource("EmptyColumn"); } } }
internal int Add(IMultiHeader c) { if (Contains(c)) { return(IndexOf(c)); } for (int i = 0; i < Count; i++) { if ((c as Cell).Y < (this[i] as Cell).Y) { AddAt(c, i); return(i); } } return(InnerList.Add(c)); }
private void BtnCopy_Click(object sender, System.EventArgs e) { if (this.Headers.SelCount <= 0) { MessageBox.Show("Please select the cell in the table below"); return; } ArrayList formats = new ArrayList(); IMultiHeader mainView = _ExControlView as IMultiHeader; ArrayList prnHeaders = mainView.GetPrnHeader(out formats); this.Headers.CopyHeaderFromField(prnHeaders); paintAllCells(); }
public override void SetView(ExControlView i_View) { this.Headers.txtEdit = this.txtCell; if (i_View == null || !(i_View is IMultiHeader)) { return; } _ExControlView = i_View; IMultiHeader mainView = i_View as IMultiHeader; if (i_View.PrintingTable == null) { return; } int colcount = i_View.PrintingTable.GetColumns(); colcount = colcount <= 0?0:colcount; if (mainView.HeadersData == null) { this.Headers = new HeadersData(0, colcount); } else { this.Headers = mainView.HeadersData.Copy(); int count = colcount - this.Headers.ColCount; for (int i = 0; i < count; i++) { this.Headers.AddCol(); } for (int i = count; i < 0; i++) { this.Headers.RemoveCol(); } } this.LayoutHeaders(); }
private void paintAllCells() { int BoundHeight = this.palpaint.Height; int MaxSelAreaHeight = (BoundHeight - 30) / 2; Rectangle gridlineArea = new Rectangle(15, 15, 0, 0); int rectWidth = this.palpaint.Width - 30; Rectangle rect = new Rectangle(15, 15, rectWidth, BoundHeight - 30); int SelAreaHeight = this.Headers.RowCount * lblHeight; SelAreaHeight = SelAreaHeight <= MaxSelAreaHeight?SelAreaHeight:MaxSelAreaHeight; palpaint.Controls.Clear(); if (Headers != null && Headers.RowCount > 0 && Headers.ColCount > 0) { lblHeight = SelAreaHeight / this.Headers.RowCount; Rectangle SelArea = new Rectangle(rect.X, rect.Y, rect.Width, SelAreaHeight); #region Modify codes at 2008-11-6 9:22:26@Simon IMultiHeader mainView = _ExControlView as IMultiHeader; Headers.PaintCells(palpaint, SelArea, mainView); #endregion //End Modify rect.Y = rect.Y + SelAreaHeight; rect.Height = rect.Height - SelAreaHeight; int SelAreaWidth = (int)(rect.Width / this.Headers.ColCount) * this.Headers.ColCount; rect.Width = SelAreaWidth; gridlineArea = new Rectangle(15, 15, SelAreaWidth, SelAreaHeight); } this.PaintTable(palpaint, rect, gridlineArea); }
public bool Contains(IMultiHeader c) { return(InnerList.Contains(c)); }
public void PaintCells(Control Ctrl, Rectangle rect, IMultiHeader HeaderView) { ArrayList formats = new ArrayList(); HeaderView.GetPrnHeader(out formats); this._HeaderContainer = Ctrl; if (this.ColCount <= 0) { return; } int lblWidth = rect.Width / this.ColCount; int lblHeight = rect.Height / this.RowCount; this._SelCells.Clear(); this._CurCell = null; #region add Controls for (int i = 0; i < this.RowCount; i++) { int lblLocX = rect.X; int lblLocY = rect.Y + i * lblHeight; for (int j = 0; j < GetRow(i).ColCount; j++) { HeaderCell hc = GetCell(i, j); Rectangle LabelRect = new Rectangle(lblLocX, lblLocY, lblWidth, lblHeight); LabelInfo info = new LabelInfo(); info.RowIndex = i; string Lbltext = hc.Text; info.MergedColMax = info.MergedColMin = j; string LblName = string.Format("{0}", i * ColCount + j); if (hc.MergerdCount > 0) { LabelRect.Width = hc.MergerdCount * lblWidth; j += hc.MergerdCount - 1; info.MergedColMax = j; } #region Modify codes at 2008-11-5 15:16:51@Simon if (this.ColsToMerge.Contains(j) && (HeaderView.HaveHeader || i > 0)) { lblLocX += LabelRect.Width; continue; } #endregion //End Modify info.LblLoc = LabelRect.Location; info.LblSize = LabelRect.Size; Label lblcell = new Label(); lblcell.Name = LblName; lblcell.Text = Lbltext; lblcell.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; lblcell.BackColor = Control.DefaultBackColor; if (i == 0 && !HeaderView.HaveHeader && j < formats.Count) { StringFormatFlags strflags = (StringFormatFlags)formats[j]; //Added this code at 2008-11-5 8:53:15@Simon if ((strflags & StringFormatFlags.DirectionVertical) == StringFormatFlags.DirectionVertical) { lblcell.Paint += new PaintEventHandler(DrawLabelVertical); } } info.DefaultBackColor = lblcell.BackColor; lblcell.Tag = info; if (this.GridLine) { lblcell.BorderStyle = BorderStyle.FixedSingle; lblcell.Location = LabelRect.Location; if (this.ColsToMerge.Contains(j)) { lblcell.Size = new Size(lblWidth, rect.Height); Ctrl.Controls.Add(lblcell); lblLocX += LabelRect.Width; continue; } else { lblcell.Size = LabelRect.Size; } } else { lblcell.BorderStyle = BorderStyle.None; lblcell.Location = new Point(LabelRect.X + 1, LabelRect.Y + 1); if (this.ColsToMerge.Contains(j)) { lblcell.Size = new Size(LabelRect.Width - 2, rect.Height - 2); lblLocX += LabelRect.Width; Ctrl.Controls.Add(lblcell); continue; } else { lblcell.Size = new Size(LabelRect.Width - 2, LabelRect.Height - 2); } } lblLocX += LabelRect.Width; lblcell.Click += new System.EventHandler(MyClick); Ctrl.Controls.Add(lblcell); } } #endregion }
public SuperLabel(IMultiHeader mh) : base(mh as Rect) { _keeppos = true; }
private void PaintTable(Panel paintControl, Rectangle rect, Rectangle gridlineArea) { Label drawlabel; if (_ExControlView == null || _ExControlView.PrintingTable == null) { drawlabel = new Label(); drawlabel.Bounds = rect; drawlabel.Text = "There isn't any report data here!"; drawlabel.BorderStyle = BorderStyle.FixedSingle; drawlabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; drawlabel.Name = "cell"; paintControl.Controls.Add(drawlabel); lblHeight = 30; return; } WebbTable table = _ExControlView.PrintingTable; if (table == null || table.GetColumns() <= 0 || table.GetRows() <= 0) { drawlabel = new Label(); drawlabel.Bounds = rect; drawlabel.Text = "No Data!"; drawlabel.BorderStyle = BorderStyle.FixedSingle; drawlabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; drawlabel.Name = "cell"; paintControl.Controls.Add(drawlabel); lblHeight = 30; return; } ArrayList prnHeaders = new ArrayList(); ArrayList formats = new ArrayList(); IMultiHeader mainView = _ExControlView as IMultiHeader; prnHeaders = mainView.GetPrnHeader(out formats); int tempHeight = 0; if (mainView.HaveHeader) //Modified at 2008-10-20 11:24:01@Simon { int lblWidth = rect.Width / prnHeaders.Count; ArrayList lblhigharr = new ArrayList(); //Added this code at 2008-11-5 9:33:39@Simon bool b_ver = false; Bitmap bmpmemory = new Bitmap(rect.Width, rect.Height); //Added this code at 2008-11-7 17:23:35@Simon Graphics g0 = Graphics.FromImage(bmpmemory); //Added this code at 2008-11-7 17:23:31@Simon drawlabel = new Label(); MergedHeader = false; for (int i = 0; i < prnHeaders.Count; i++) { string text = (string)prnHeaders[i]; tempHeight = lblHeight; Rectangle lblrect = new Rectangle(rect.X + i * lblWidth, rect.Y, lblWidth, tempHeight); if (text == "\n") { drawlabel.Width += lblrect.Width; MergedHeader = true; continue; } StringFormatFlags strflags = (StringFormatFlags)formats[i]; //Added this code at 2008-11-5 8:53:15@Simon drawlabel = new Label(); if (Headers.ColsToMerge.Contains(i)) { drawlabel.Name = "cell0|" + text; } else { drawlabel.Name = "cell1|" + text; } drawlabel.Tag = strflags; #region Modify codes at 2008-11-5 16:02:24@Simon if (this.Headers.GridLine) { drawlabel.BorderStyle = BorderStyle.FixedSingle; if (Headers.ColsToMerge.Contains(i)) { drawlabel.Location = new Point(lblrect.X, gridlineArea.Y); drawlabel.Size = new Size(lblrect.Width, lblrect.Height + gridlineArea.Height); } else { drawlabel.Bounds = lblrect; } } else { drawlabel.BorderStyle = BorderStyle.None; if (Headers.ColsToMerge.Contains(i)) { drawlabel.Location = new Point(lblrect.X + 1, gridlineArea.Y + 1); drawlabel.Size = new Size(lblrect.Width - 2, lblrect.Height + gridlineArea.Height - 2); } else { drawlabel.Location = new Point(lblrect.X + 1, lblrect.Y + 1); drawlabel.Size = new Size(lblrect.Width - 2, lblrect.Height - 2); } } #endregion //End Modify drawlabel.Paint += new PaintEventHandler(DrawLabelPaint); drawlabel.BackColor = Control.DefaultBackColor; drawlabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; paintControl.Controls.Add(drawlabel); #region add codes at 2008-11-5 9:44:30@Simon lblhigharr.Add(drawlabel); if (strflags == StringFormatFlags.DirectionVertical) { this.TestMaxlblheight(g0, drawlabel.Font, text); if (!Headers.ColsToMerge.Contains(i) || Headers.RowCount == 0) { b_ver = true; } } #endregion //End Modify } #region Modify codes at 2008-11-5 9:54:22@Simon MaxlblHeight = Math.Min(rect.Height - 10, MaxlblHeight); if (b_ver && MaxlblHeight > 0) { tempHeight = MaxlblHeight; foreach (object objtext in lblhigharr) { if ((objtext as Label).Name.Substring(4, 1) == "0") { (objtext as Label).Height = this.Headers.GridLine?gridlineArea.Height + MaxlblHeight:gridlineArea.Height + MaxlblHeight - 2; } else { (objtext as Label).Height = this.Headers.GridLine?MaxlblHeight:MaxlblHeight - 2; } } } MaxlblHeight = 0; g0.Dispose(); bmpmemory.Dispose(); #endregion //End Modify rect.Y += tempHeight; rect.Width = lblWidth * prnHeaders.Count; rect.Height -= tempHeight; gridlineArea.Height += tempHeight; if (gridlineArea.Width <= 0) { gridlineArea.X = rect.X; gridlineArea.Width = rect.Width; } } if (!this.Headers.GridLine) { drawlabel = new Label(); drawlabel.Bounds = gridlineArea; drawlabel.Text = ""; drawlabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; drawlabel.BorderStyle = BorderStyle.FixedSingle; drawlabel.BackColor = Control.DefaultBackColor; drawlabel.Name = "cell"; paintControl.Controls.Add(drawlabel); drawlabel.SendToBack(); } drawlabel = new Label(); drawlabel.Bounds = rect; drawlabel.Text = "Table Data"; drawlabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; drawlabel.BorderStyle = BorderStyle.FixedSingle; drawlabel.Name = "cell"; paintControl.Controls.Add(drawlabel); lblHeight = 30; }