본문 바로가기

C# 개인 공부 기록용/Memo

fpSpread (SpreadSheet) 개인 정리

// 스프레드시트 하나의 행 전체 선택 모드
fpSpread1.Sheets[0].OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect;

fpSpread1.Sheets[0].OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect;는
위 그림처럼 셀 선택이 아닌

이처럼 하나의 행이 선택되게 만든다

 

// 수평 정렬 & 수직 정렬
for (int i = 0; i < fpSpread1.ActiveSheet.ColumnCount; i++)
{
	fpSpread1.ActiveSheet.Columns[i].HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center; // 수평 정렬
	fpSpread1.ActiveSheet.Columns[i].VerticalAlignment = FarPoint.Win.Spread.CellVerticalAlignment.Center; // 수직 정렬
}

셀 안의 내용들이 가운데 정렬이 되었다

 

private void btn_update_Click(object sender, EventArgs e)
    {
        int row_idx = fpSpread1.ActiveSheet.ActiveRowIndex; // 선택된 RowIndex 값
        string selected_idx_value = fpSpread1.ActiveSheet.Cells[row_idx, 0].Value.ToString(); // 해당 Row의 0번째 Column값

        UPDATE_FORM frm = new UPDATE_FORM(); // 업데이트폼 생성
        frm.pass_idx = selected_idx_value; // 찾은 idx값 UPDATE FORM의 pass_idx로값 넘기기
        frm.Owner = this; // 부모폼과 자식폼 연결
        frm.ShowDialog(); // 모달로 새 창 생성 
    }
        
// 업데이트 폼의 시작
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.DataAccess.Client;

namespace TEST
{
    public partial class UPDATE_FORM : Form
    {

        protected internal string pass_idx;

        Oracle_conn oc = new Oracle_conn();
        OracleCommand cmd;
        OracleDataReader reader;
        string sqlstr;

        string name;
        string line;

        string ll;
        string rl;

        // Start
        string lsh;
        string lsm;

        string rsh;
        string rsm;

        // End
        string leh;
        string lem;

        string reh;
        string rem;

        public UPDATE_FORM()
        {
            InitializeComponent();
        }

        private void UPDATE_FORM_Load(object sender, EventArgs e)
        {
            try
            {
                oc.Oracle_Conn_Fn();
                sqlstr = "SELECT * FROM TEST_SUBWAY WHERE SUBWAY_IDX =" + pass_idx + "";

                cmd = new OracleCommand(sqlstr, oc.get_conn);
                reader = cmd.ExecuteReader();

                if (reader.Read())
                {
                    TB_SUBSAY_NAME.Text = reader.GetString(1);

                    LB_LINE.SelectedItem = reader.GetString(2);

                    string[] lt_info1 = reader.GetString(3).Split(' ');
                    TB_LEFT_LOCATION.Text = lt_info1[0];
                    TB_RIGHT_LOCATION.Text = lt_info1[7];

                    CB_LEFT_START_H.Text = lt_info1[3];
                    CB_LEFT_START_M.Text = lt_info1[5];

                    CB_RIGHT_START_H.Text = lt_info1[10];
                    CB_RIGHT_START_M.Text = lt_info1[12];

                    string[] lt_info2 = reader.GetString(4).Split(' ');
                    CB_LEFT_END_H.Text = lt_info2[3];
                    CB_LEFT_END_M.Text = lt_info2[5];

                    CB_RIGHT_END_H.Text = lt_info2[10];
                    CB_RIGHT_END_M.Text = lt_info2[12];
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("update load error");
            }
        }

        private void BTN_UPDATE_Click(object sender, EventArgs e)
        {
            try
            {
                name = TB_SUBSAY_NAME.Text;
                line = LB_LINE.Text;

                ll = TB_LEFT_LOCATION.Text;
                rl = TB_RIGHT_LOCATION.Text;

                lsh = CB_LEFT_START_H.Text;
                lsm = CB_LEFT_START_M.Text;
                rsh = CB_RIGHT_START_H.Text;
                rsm = CB_RIGHT_START_M.Text;

                leh = CB_LEFT_END_H.Text;
                lem = CB_LEFT_END_M.Text;
                reh = CB_RIGHT_END_H.Text;
                rem = CB_RIGHT_END_M.Text;

                oc.Oracle_Conn_Fn();
                sqlstr = "UPDATE TEST_SUBWAY SET " +
                    "SUBWAY_NAME = '" + name + "', SUBWAY_LINE = '" + line + "', " +
                    "SUBWAY_START_TIME = '" + ll + " 방향 = " + lsh + " : " + lsm + " | " + rl + " 방향 = " + rsh + " : " + rsm + "', " +
                    "SUBWAY_END_TIME = '" + ll + " 방향 = " + leh + " : " + lem + " | " + rl + " 방향 = " + reh + " : " + rem + "' " +
                    "WHERE SUBWAY_IDX =" + pass_idx + "";

                cmd = new OracleCommand(sqlstr, oc.get_conn);
                cmd.ExecuteNonQuery();

                MessageBox.Show("수정되었습니다");

                ((BASIC_FORM)this.Owner).fnSearch(); // 부모폼.메소드

                oc.get_conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("update error");
            }
        }
    }
}

행을 선택 하고 [수 정] 버튼을 누르면 해당 행의 IDX값을 UPDATE FORM에 전달해서 해당 정보를 받을 수가 있다