public override void SetCommandStatus(HeaderSettingCommandStatus commandStatus)
        {
            base.SetCommandStatus(commandStatus);
            if (commandStatus == HeaderSettingCommandStatus.SelectCell)
            {
                CellRange cellRange       = fpSpreadForHeaderSetting.CellRange;
                int       startCellRow    = cellRange.Row + cellRange.RowCount - 1;
                int       startCellColumn = cellRange.Column;
                for (int i = 0; i < cellRange.ColumnCount; i++)
                {
                    Cell       cell       = fpSpreadForHeaderSetting.SheetMain.Cells[startCellRow, startCellColumn + i];
                    LineBorder lineBorder = cell.Border as LineBorder;
                    if (lineBorder == null)
                    {
                        goto End;
                    }
                    else if (!lineBorder.Bottom)
                    {
                        goto End;
                    }
                }
                Checked = true;
                return;

End:
                Checked = false;
            }
        }
Esempio n. 2
0
        private IBorder GetNewBorder(Cell source_cell, bool left, bool top, bool right, bool bottom)
        {
            IBorder border    = source_cell.Border;
            IBorder newBorder = source_cell.Border;

            if (border is LineBorder)
            {
                LineBorder lineBorder = border as LineBorder;
                newBorder = new LineBorder(lineBorder.Color, lineBorder.Thickness, left, top, right, bottom);
            }
            else if (border is BevelBorder)
            {
                BevelBorder bevelBorder = border as BevelBorder;
                newBorder = new BevelBorder(bevelBorder.Type, bevelBorder.Highlight, bevelBorder.Shadow, bevelBorder.Thickness, left, top, right, bottom);
            }
            else if (border is ComplexBorder)
            {
                ComplexBorder complexBorder = border as ComplexBorder;
            }
            else if (border is CompoundBorder)
            {
            }
            else if (border is DoubleLineBorder)
            {
            }
            else if (border is RoundedLineBorder)
            {
            }

            return(newBorder);
        }
 /// <summary>
 /// 根据CellInfo,绘制Cell。
 /// </summary>
 /// <param name="cellInfoList">CellInfo列表。</param>
 /// <param name="rowOffSet">起始行。</param>
 private void DrawCells(List <CellInfo> cellInfoList, int rowOffSet)
 {
     foreach (CellInfo cellInfo in cellInfoList)
     {
         int        row        = cellInfo.Row + rowOffSet;
         int        column     = cellInfo.Column;
         int        rowSpan    = cellInfo.RowSpan;
         int        columnSpan = cellInfo.ColumnSpan;
         string     text       = cellInfo.Text;
         Font       font       = cellInfo.GetFont();
         Color      color      = cellInfo.GetColor();
         LineBorder border     = cellInfo.CellBorder.GetBorder();
         FarPoint.Win.Spread.CellHorizontalAlignment hAlignment = cellInfo.HAligment;
         FarPoint.Win.Spread.CellVerticalAlignment   vAlignment = cellInfo.VAligment;
         FarPoint.Win.Spread.Cell cell = sheetMain.Cells[row, column];
         cell.RowSpan             = rowSpan;
         cell.ColumnSpan          = columnSpan;
         cell.Value               = text;
         cell.Font                = font;
         cell.ForeColor           = color;
         cell.Border              = border;
         cell.HorizontalAlignment = hAlignment;
         cell.VerticalAlignment   = vAlignment;
     }
 }
Esempio n. 4
0
 public void SetCellBorder(LineBorder lineBorder)
 {
     if (lineBorder == null)
     {
         return;
     }
     left   = lineBorder.Left;
     top    = lineBorder.Top;
     right  = lineBorder.Right;
     bottom = lineBorder.Bottom;
 }
Esempio n. 5
0
        /// <summary>
        /// 本方法给表格设边框线并同时单元格内容水平垂直均居中
        /// </summary>
        /// <param name="obj_sheet"></param>
        public void Sheet_GridandCenter(FarPoint.Win.Spread.SheetView obj_sheet)
        {
            //定义一个边框线
            LineBorder border   = new LineBorder(Color.Black);
            int        rowcount = obj_sheet.Rows.Count;
            int        colcount = obj_sheet.Columns.Count;

            for (int col = 0; col < colcount; col++)
            {
                for (int row = 0; row < rowcount; row++)
                {
                    //设表格线
                    obj_sheet.Cells[row, col].Border = border;
                }

                //水平和垂直均居中对齐
                obj_sheet.Columns[col].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
                obj_sheet.Columns[col].VerticalAlignment   = FarPoint.Win.Spread.CellVerticalAlignment.Center;
            }
        }
        protected override void OnClick(EventArgs e)
        {
            CellRange cellRange       = fpSpreadForHeaderSetting.CellRange;
            int       startCellRow    = cellRange.Row + cellRange.RowCount - 1;
            int       startCellColumn = cellRange.Column;

            if (Checked)
            {
                for (int i = 0; i < cellRange.ColumnCount; i++)
                {
                    Cell       cell       = fpSpreadForHeaderSetting.SheetMain.Cells[startCellRow, startCellColumn + i];
                    LineBorder lineBorder = cell.Border as LineBorder;
                    if (lineBorder.Bottom)
                    {
                        cell.Border = new LineBorder(Color.Black, 1, lineBorder.Left, lineBorder.Top, lineBorder.Right, false);
                    }
                }
                Checked = false;
            }
            else
            {
                for (int i = 0; i < cellRange.ColumnCount; i++)
                {
                    Cell       cell       = fpSpreadForHeaderSetting.SheetMain.Cells[startCellRow, startCellColumn + i];
                    LineBorder lineBorder = cell.Border as LineBorder;
                    if (lineBorder == null)
                    {
                        cell.Border = lineBorderBottom;
                    }
                    else if (!lineBorder.Bottom)
                    {
                        cell.Border = new LineBorder(Color.Black, 1, lineBorder.Left, lineBorder.Top, lineBorder.Right, true);
                    }
                }
                Checked = true;
            }
            base.OnClick(e);
        }
Esempio n. 7
0
        /// <summary>
        /// �������������߿��߲�ͬʱ��Ԫ������ˮƽ��ֱ������
        /// </summary>
        /// <param name="obj_sheet"></param>
        public void Sheet_GridandCenter(FarPoint.Win.Spread.SheetView obj_sheet)
        {
            //����һ���߿���
            LineBorder border = new LineBorder(Color.Black);
            int rowcount = obj_sheet.Rows.Count;
            int colcount = obj_sheet.Columns.Count;

            for (int col = 0; col < colcount; col++)
            {
                for (int row = 0; row < rowcount; row++)
                {
                    //������
                    obj_sheet.Cells[row, col].Border = border;

                }

                //ˮƽ�ʹ�ֱ�����ж���
                obj_sheet.Columns[col].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center;
                obj_sheet.Columns[col].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center;

            }
        }
        /// <summary>
        /// 绘制报表列。
        /// </summary>
        private void DrawReportColumnList()
        {
            int reportColumnRowIndex = ReportColumnRowIndex;

            if (reportColumnRowIndex < 0)
            {
                return;
            }
            LineBorder border1 = new LineBorder(Color.Black, 1, true, true, true, true);
            LineBorder border2 = new LineBorder(Color.Black, 1, false, true, true, true);

            #region 先清空报表列所在行。
            for (int i = 0; i < sheetMain.Columns.Count; i++)
            {
                FarPoint.Win.Spread.Cell cell = sheetMain.Cells[reportColumnRowIndex, i];
                cell.Value  = null;
                cell.Tag    = null;
                cell.Border = null;
                cell.Locked = true;
            }
            #endregion
            if (canEditColumn)
            {
                List <Column> columnList = sheetMain.Rows[reportColumnRowIndex].Tag as List <Column>;
                if (columnList.Count > sheetMain.Columns.Count)
                {
                    sheetMain.Columns.Count = columnList.Count;
                    FpChanged(HeaderSettingFpSpreadChangedType.ColumnCountChanged);
                }
                foreach (Column column in columnList)
                {
                    int i = column.SortID;
                    FarPoint.Win.Spread.Cell cell = sheetMain.Cells[reportColumnRowIndex, i];
                    if (i == 0)
                    {
                        cell.Border = border1;
                    }
                    else
                    {
                        cell.Border = border2;
                    }
                    cell.Value               = column.Name;
                    cell.Tag                 = column;
                    cell.CellType            = normalTextCellType;
                    cell.Font                = column.GetHeaderFont();
                    cell.ForeColor           = column.GetHeaderColor();
                    cell.HorizontalAlignment = column.HeaderHAligment;
                    cell.VerticalAlignment   = column.HeaderVAligment;
                    cell.Locked              = false;
                }
            }
            else
            {
                for (int i = 0; i < sheetMain.Columns.Count; i++)
                {
                    if (i == 0)
                    {
                        sheetMain.Cells[reportColumnRowIndex, i].Border = border1;
                    }
                    else
                    {
                        sheetMain.Cells[reportColumnRowIndex, i].Border = border2;
                    }
                    sheetMain.Cells[reportColumnRowIndex, i].CellType = normalTextCellType;
                }
            }
        }