Exemple #1
0
        /// <summary>
        /// 범위에 검색하는 문자가 있으면 범위에 row단위로 글자색/배경색을 변경 하여준다..
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="strInStr"></param>
        /// <param name="intChkCol"></param>
        /// <param name="intStCol"></param>
        /// <param name="intEdCol"></param>
        /// <param name="colFore">null 이면 변경 않함</param>
        /// <param name="colBack">null 이면 변경 않함</param>
        public static void Invoke_CellRange_InStr_SetRowColor(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, string strInStr,
                                                              int intChkCol, int intStCol, int intEdCol, object colFore, object colBack)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_CellRange_InStr_SetRowColor(Invoke_CellRange_InStr_SetRowColor), new object[] { fp, sv, strInStr, intChkCol, intStCol,
                                                                                                                        intEdCol, colFore, colBack });
                return;
            }

            for (int y = 0; y < sv.Rows.Count; y++)
            {
                if (sv.Cells[y, intChkCol].Text.IndexOf(strInStr) >= 0)
                {
                    if (colFore != null)
                    {
                        sv.Cells[y, intStCol, y, intEdCol].ForeColor = (Color)colFore;
                    }
                    if (colBack != null)
                    {
                        sv.Cells[y, intStCol, y, intEdCol].BackColor = (Color)colBack;
                    }
                }
            }

            fp.Refresh();
        }
Exemple #2
0
        /// <summary>
        /// 해당 컬럼에 값이 일치 하면 글자색을 바꿔준다..
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="intCols"></param>
        /// <param name="str"></param>
        /// <param name="colBackColor"></param>
        public static void Invoke_SearchThenChForecolor(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, int[] intCols, string str, Color colForecolor)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_SearchThenChForecolor(Invoke_SearchThenChForecolor), new object[] { fp, sv, intCols, str, colForecolor });
                return;
            }


            int intColCnt = sv.ColumnCount - 1;

            for (int y = 0; y < sv.Rows.Count; y++)
            {
                foreach (int intCol in intCols)
                {
                    int rst = sv.Cells[y, intCol].Text.IndexOf(str);

                    if (rst >= 0)
                    {
                        sv.Cells[y, 0, y, intColCnt].ForeColor = colForecolor;
                        break;
                    }
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// row count를 변경한다.
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="intRowCount"></param>
        public static void Invoke_RowCount(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, int intRowCount)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_RowCount(Invoke_RowCount), new object[] { fp, sv, intRowCount });
                return;
            }

            sv.RowCount = intRowCount;
        }
Exemple #4
0
        /// <summary>
        /// 셀을 스팬(머지) 한다.
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="intRow"></param>
        /// <param name="intCol"></param>
        /// <param name="intRowSpanCnt"></param>
        /// <param name="intColSpanCnt"></param>
        public static void Invoke_CellSpan(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, int intRow, int intCol, int intRowSpanCnt, int intColSpanCnt)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_CellSpan(Invoke_CellSpan), new object[] { fp, sv, intRow, intCol, intRowSpanCnt, intColSpanCnt });
                return;
            }

            sv.Cells[intRow, intCol].ColumnSpan = intColSpanCnt;
            sv.Cells[intRow, intCol].RowSpan    = intRowSpanCnt;
        }
Exemple #5
0
        /// <summary>
        /// 셀 범위에 값을 변경한다.
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="Y"></param>
        /// <param name="X"></param>
        /// <param name="Y2"></param>
        /// <param name="X2"></param>
        /// <param name="objValue"></param>
        public static void Invoke_CellRange_Value(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv,
                                                  int Y, int X, int Y2, int X2, object objValue)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_CellRange_Value(Invoke_CellRange_Value), new object[] { fp, sv, Y, X, Y2, X2, objValue });
                return;
            }

            sv.Cells[Y, X, Y2, X2].Value = objValue;
        }
Exemple #6
0
        /// <summary>
        /// fpSheet에 Row를 추가 하여준다.
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="intAddIndex">들어갈 위치 : '-1'이면 마지막에 위치 시킨다.</param>
        /// <param name="intMaxRowCount">최대 행 유지 갯수 : 0이면 무제한 증가..</param>
        public static void Invoke_AddRowData(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, int intAddIndex,
                                             int intMaxRowCount, object [] objData)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_AddRowData(Invoke_AddRowData), new object[] { fp, sv, intAddIndex, intMaxRowCount, objData });
                return;
            }

            try
            {
                if (intAddIndex < 0)
                {
                    intAddIndex = sv.Rows.Count;
                }

                sv.Rows.Add(intAddIndex, 1);


                int intCol = 0;
                foreach (object obj in objData)
                {
                    //if (sv.ColumnCount <= intCol) break;
                    sv.Cells[intAddIndex, intCol].Value = obj;
                    intCol++;
                }



                //최대행 유지를 위해 Row를 삭제 한다.
                if (intMaxRowCount > 0 && sv.Rows.Count >= intMaxRowCount)
                {
                    int intDelIndex = 0;
                    int intDelCount = 1 + intMaxRowCount - sv.Rows.Count;

                    //아래 추가 시만 위에 삭제, 그외 경우는 아래 부분 삭제..
                    if (intAddIndex < 0)
                    {
                        intDelIndex = 0;
                    }
                    else
                    {
                        intDelIndex = sv.Rows.Count - intDelCount;
                    }

                    sv.Rows.Remove(intDelIndex, 1);
                }
            }
            catch (Exception ex)
            {
                log.WLog_Exception(string.Format("Invoke_AddRowData[fp]{0}[AddIdx]{1}[MaxRow]{2}", fp.Name, intAddIndex, intMaxRowCount), ex);
            }
        }
Exemple #7
0
        /// <summary>
        /// row를 삭제 한다.
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="intDelIndex">삭제 위치 : '-1'이면 마지막부터 위로 삭제 시킨다.</param>
        /// <param name="intDelRowCount"></param>
        public static void Invoke_DeleteRow(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, int intDelIndex, int intDelRowCount)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_AddRow(Invoke_DeleteRow), new object[] { fp, sv, intDelIndex, intDelRowCount });
                return;
            }

            if (intDelIndex < 0)
            {
                intDelIndex = sv.Rows.Count - intDelRowCount;
            }


            sv.Rows.Remove(intDelIndex, intDelRowCount);
        }
Exemple #8
0
        /// <summary>
        /// 셀에 값을 변경한다.
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="Y"></param>
        /// <param name="X"></param>
        /// <param name="objValue"></param>
        public static void Invoke_Cell_Value(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, int Y, int X, object objValue)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_Cell_Value(Invoke_Cell_Value), new object[] { fp, sv, Y, X, objValue });
                return;
            }

            try
            {
                sv.Cells[Y, X].Value = objValue;
            }
            catch (Exception ex)
            {
                log.WLog_Exception(string.Format("{0}[sv]{1}[y}{2}[x]{3][obj]{4}", "Invoke_Cell_Value", fp.Name, Y, X, objValue), ex);
            }
        }
Exemple #9
0
        /// <summary>
        /// 범위에 ForeColor와 BackColor를 변경하여 준다..
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="intStRow">시작 row</param>
        /// <param name="intEdRow">종료 row</param>
        /// <param name="intStCol">시작 col</param>
        /// <param name="intEdCol">종료 col</param>
        /// <param name="colFore">object color - 변경 안할시에는 null</param>
        /// <param name="colBack">object color - 변경 안할시에는 null</param>
        public static void Invoke_CellRange_SetRowColor(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, int intStRow, int intEdRow, int intStCol, int intEdCol,
                                                        object colFore, object colBack)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_CellRange_SetRowColor(Invoke_CellRange_SetRowColor), new object[] { fp, sv, intStRow, intEdRow, intStCol, intEdCol, colFore, colBack });
                return;
            }

            if (colFore != null)
            {
                sv.Cells[intStRow, intStCol, intEdRow, intEdCol].ForeColor = (Color)colFore;
            }
            if (colBack != null)
            {
                sv.Cells[intStRow, intStCol, intEdRow, intEdCol].BackColor = (Color)colBack;
            }



            fp.Refresh();
        }
Exemple #10
0
        /// <summary>
        /// databinding with field
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="dt"></param>
        /// <param name="strField"></param>
        public static void Invoke_DataSource(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, DataView dt, string[] strField, StBindingOption bindingOption)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_DataSource2(Invoke_DataSource), new object[] { fp, sv, dt, strField, bindingOption });
                return;
            }

            try
            {
                sv.AutoGenerateColumns = bindingOption.AutoGenerateColumns;
                sv.DataAutoHeadings    = bindingOption.DataAutoHeadings;
                sv.DataAutoCellTypes   = bindingOption.DataAutoCellTypes;
                sv.DataAutoSizeColumns = bindingOption.DataAutoSizeColumns;

                sv.Rows.Count = 0;

                if (dt != null)
                {
                    sv.DataSource = dt;
                }

                if (strField == null)
                {
                    return;
                }

                for (int x = 0; x < strField.Length; x++)
                {
                    sv.Columns[x].DataField = strField[x];
                }
            }
            catch (Exception ex)
            {
                log.WLog_Exception(string.Format("{0}[fp]{1}", "Invoke_DataSource", fp.Name), ex);
            }
        }
Exemple #11
0
        /// <summary>
        /// 해당 Row의 forecolor과 backcolor을 변경한다.
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="intRow"></param>
        /// <param name="colFore">null 이면 변경 않</param>
        /// <param name="colBack">null 이면 변경 않</param>
        public static void Invoke_Row_SetColor(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, int intRow, object colFore, object colBack)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_Row_SetColor(Invoke_Row_SetColor), new object[] { fp, sv, intRow, colFore, colBack });
                return;
            }

            if (intRow >= sv.RowCount)
            {
                return;
            }

            if (colBack != null)
            {
                sv.Rows[intRow].BackColor = (Color)colBack;
            }
            if (colFore != null)
            {
                sv.Rows[intRow].ForeColor = (Color)colFore;
            }

            fp.Refresh();
        }
Exemple #12
0
        /// <summary>
        /// 시트에 datatable에 있는 데이터를 컬럼을 이용하여 넣어 준다.
        /// </summary>
        /// <param name="fp"></param>
        /// <param name="sv"></param>
        /// <param name="dt"></param>
        /// <param name="strColumn"></param>
        /// <param name="intAddIndex">들어갈 위치 : '-1'이면 마지막에 위치 시킨다</param>
        /// <param name="intMaxRowCount">최대 행 유지 갯수 : 0이면 무제한 증가..</param>
        /// <param name="isClear"></param>
        public static void Invoke_AddData(FarPoint.Win.Spread.FpSpread fp, FarPoint.Win.Spread.SheetView sv, DataTable dt, string[] strColumn,
                                          int intAddIndex, int intMaxRowCount, bool isClear)
        {
            if (fp.InvokeRequired)
            {
                fp.Invoke(new delInvoke_AddData(Invoke_AddData), new object[] { fp, sv, dt, strColumn, intAddIndex, intMaxRowCount, isClear });
                return;
            }

            if (isClear)
            {
                sv.RowCount = 0;
            }

            int intRow;



            //sv.RowCount = sv.RowCount + dt.Rows.Count;

            //string strValue;

            foreach (DataRow dr in dt.Rows)
            {
                if (intAddIndex < 0)
                {
                    intRow = sv.RowCount;
                    sv.RowCount++;
                }
                else
                {
                    intRow = 0;
                    sv.Rows.Add(0, 1);
                }

                int intCol = 0;

                foreach (string strCol in strColumn)
                {
                    if (strCol == string.Empty)
                    {
                        sv.Cells[intRow, intCol].Value = string.Empty;
                    }
                    else
                    {
                        if (sv.Columns.Get(intCol).CellType != null && sv.Columns.Get(intCol).CellType.GetType() == typeof(FarPoint.Win.Spread.CellType.CheckBoxCellType))
                        {
                            if (dr[strCol].ToString().ToUpper() == "TRUE" || dr[strCol].ToString().ToUpper() == "1")
                            {
                                sv.Cells[intRow, intCol].Value = true;
                            }
                            else
                            {
                                sv.Cells[intRow, intCol].Value = false;
                            }
                        }
                        else
                        {
                            sv.Cells[intRow, intCol].Value = dr[strCol];
                        }
                    }

                    intCol++;
                }

                intRow++;
            }


            //최대행 유지를 위해 Row를 삭제 한다.
            if (intMaxRowCount > 0 && sv.Rows.Count >= intMaxRowCount)
            {
                int intDelIndex = 0;
                int intDelCount = sv.Rows.Count - intMaxRowCount;

                //아래 추가 시만 위에 삭제, 그외 경우는 아래 부분 삭제..
                if (intAddIndex < 0)
                {
                    intDelIndex = 0;
                }
                else
                {
                    intDelIndex = intMaxRowCount;
                }

                sv.Rows.Remove(intDelIndex, intDelCount);
            }
        }