using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Cosmos.UserFrame;
using Cosmos.BaseFrame;
using Cosmos.CommonManager;
using Cosmos.ServiceProvider;
using Cosmos.Common;

//************************************************************************************************
// 변경  이력 : 간이영수증 발행 시 제품 추가 후 삭제 기능 추가
//------------------------------------------------------------------------------------------------
// - 작 업 자 : 서광원B
// - 작업일자 : 2017.11.06
// - 작업분류 : 2017-10-20 CS팀 판매 간이영수증
// - 요청사항 : 간이영수증 발행 시 제품 추가 후 삭제 기능 추가
//              -[X]버튼 추가
// - 작업내용 : 기존의 그리드(UI.CsmGrid)는 셀 단위 클릭 이벤트를 발생시키지 않으므로
//              [X]버튼 추가 작업은 그리드 컨트롤을 변경해야 함.
//              그래서, 쉽게 개발할 수 있는 삭제 버튼을 추가하여 동일 기능을 구현함.
//************************************************************************************************
namespace Cosmos.Win
{
    public partial class frmEtcReceipt : Form
    {
        #region 변수 선언
        private SManager sManager = new SManager();                                 // 이 객체를 통해 업무 Service 호출
        private StateServer StateObject = (StateServer)StateServer.GetInstance();   // StateObject : StateServer Object (객체)
        private PosStatus m_cPosStatus = new PosStatus();                           // 기본정보 참조
        private IDataServiceUs m_cEtcReceipt = null;                                // 거래완료처리
        private DataTable m_dtItemInit;                                             // 조회 데이터 리스트
        private int nNO = 0;

        #region (2017.11.06) 간이영수증 삭제 기능 추가을 위한 변수 선언
        private int intSelectRow = -1;      // 사용자가 선택한 그리드 행번호(초기값: -1)
        #endregion

        #endregion 변수 선언

        #region 생성자 & 소멸자
        public frmEtcReceipt()
        {
            InitializeComponent();

            base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
            //this.UpdateStyles();

            m_cPosStatus = (PosStatus)StateObject.POS;      // POS 기본정보
            m_cEtcReceipt = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_ADMIN.DLL, ServiceLists.BSV_ADMIN.ETC_RECEIPT);
        }

        private void frmEtcReceipt_Load(object sender, EventArgs e)
        {
            UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
            // 컨트롤 초기화 처리
            InitControl();
        }

        private void frmEtcReceipt_FormClosing(object sender, FormClosingEventArgs e)
        {
            UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", lblTitle.Text);
        }
        #endregion 생성자 & 소멸자

        #region 폼 컨트롤 초기화
        /// <summary>
        /// 폼 컨트롤 초기화
        /// </summary>
        private void InitControl()
        {
            FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
            FormManager.SetTextBoxGlobalInfo(this, m_cPosStatus.Global.m_stCultureMaster.nGroupingDigits, m_cPosStatus.Global.m_stCultureMaster.strGroupingSymbol
                    , m_cPosStatus.Global.m_stCultureMaster.nDecimalDigits, m_cPosStatus.Global.m_stCultureMaster.strDecimalSymbol);

            picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_S);

            //테마색상 적용!
            //btnPrint.BackColor = CmUtil.GetColorToString(m_cPosStatus.ScnMst.ThemeColor);
            padInPut.ThemeColor = m_cPosStatus.ScnMst.ThemeColor;
            padInPut.ClearBtnText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0817);
            padInPut.SearchBtnText = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1018);

            btnExit.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_CLOSE);
            if (btnExit.Image != null) btnExit.Text = "";
            btnDate.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.ICON_DATE_BASIC);
            if (btnDate.Image != null) btnDate.Text = "";

            btnUp.Image = CmUtil.LoadImage(BaseCom.NxImgPath + ImageManager.NAVIBTN_14X9_UP1_BASIC);
            btnDw.Image = CmUtil.LoadImage(BaseCom.NxImgPath + ImageManager.NAVIBTN_14X9_DOWN1_BASIC);

            if (btnUp.Image != null) btnUp.Text = "";
            if (btnDw.Image != null) btnDw.Text = "";

            // 라벨 이름 설정
            lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0344);
            lblSaleDate.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0242);
            lblPluName.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0015);
            lblAmount.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019);

            // 버튼 이름 설정
            
            btnPluChoice.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0224);
            btnPrint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0257);

            //=======================================================================
            // (2017.11.06) 간이영수증 삭제 기능 추가을 위한 삭제 버튼 추가
            //-----------------------------------------------------------------------
            // - 삭제 기능을 위해 삭제 버튼을 추가하였고,
            //   사용자들은 삭제 가능한 경우에만 버튼을 클릭할 수 있도록 비표시하였음
            //=======================================================================
            #region (2017.11.06) 간이영수증 삭제 기능 추가을 위한 삭제 버튼 추가
            btnDelete.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0021);
            SubDeleteButtonSetting("비표시");      // 삭제버튼 비표시(초기값)
            #endregion

            txtDate.InputTypeFormat = m_cPosStatus.Global.m_stCultureMaster.strDatePattern;
            txtDate.Text = m_cPosStatus.Global.DateToCulture(m_cPosStatus.Base.SaleDate);

            if (btnDelete.Text.Length == 0) btnDelete.Visible = false;
            if (btnMenu4.Text.Length == 0) btnMenu4.Visible = false;

            nNO = 0;
            txtAmount.Text = "0";
            txtPluName.Text = "";
            SetListColumn();
            // 간이영수증 화면 TOPMOST 처리 삭제(2017.07.18)
            //this.TopMost = true;
            txtAmount.Select();
            txtPluName.Select();
        }

        /// <summary>
        /// 간이영수증 품목 추가 정보에 대한 DataGridView 초기화
        /// </summary>
        private void SetListColumn()
        {
            try
            {
                // 간이영수증 정보
                dgvData.CsmGridColumnHeadersVisible = true;                                   //DataGridView 자체의 컬럼 헤더 Visible 여부
                dgvData.CsmGridColumnHeadersHeight = 37;                                      //DataGridView 자체의 컬럼 헤더 높이
                dgvData.CsmGridColumnHeadersFont = new Font(m_cPosStatus.Base.FONT, 12, FontStyle.Bold);  //DataGridView 자체의 컬럼 헤더 폰트
                dgvData.CsmGridRowsHeight = 35;
                dgvData.CsmGridColumnCount = 3;                                               //그리드의 컬럼수
                dgvData.CsmGridShowPageRowsCount = 4;                                         //그리드의 한 화면에 보이는 로우수
                dgvData.CsmGridSetHeaderBackColor(236, 238, 239);                             //그리드 헤더 배경색
                dgvData.CsmGridDefaultRowBackColor = Color.FromArgb(255, 255, 255);           //그리드 홀수(Default)행의 배경색 지정
                dgvData.CsmGridAlternateRowBackColor = Color.FromArgb(251, 253, 255);         //그리드 짝수(Alternate)행의 배경색 지정
                dgvData.CsmGridBackGroundColor = Color.FromArgb(251, 253, 255);               //기본 백그라운드 컬러
                dgvData.CsmGridHighlightColor = Color.FromArgb(255, 251, 211);                //그리드 선택 백 컬러
                dgvData.CsmGridHighlightTextColor = Color.Black;                              //그리드 선택 글자 컬러
                dgvData.CsmGridSetColumnWidth(new int[] { 30, 210, 140 });                    //컬럼넓이 지정(380)
                dgvData.CsmGridAlignment(new int[] { 1, 0, 2 });                              //컬럼 정렬 0:왼쪽, 1:가운데, 2:오른쪽

                //각 컬럼별 이름 지정
                dgvData.CsmGridColumnName(0, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0014));
                dgvData.CsmGridColumnName(1, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0015));
                dgvData.CsmGridColumnName(2, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0019));

                //그리드 초기화 테이블
                m_dtItemInit = new DataTable("INIT");
                m_dtItemInit.Columns.Add(new DataColumn("No", typeof(string)));
                m_dtItemInit.Columns.Add(new DataColumn("Plu", typeof(string)));
                m_dtItemInit.Columns.Add(new DataColumn("Amount", typeof(string)));

                m_dtItemInit.Clear();

            }
            catch (Exception ex)
            {
                UserLog.WriteLogFile(UserCom.LOG_ERROR,
                                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,      // Project Name (프로젝트명)
                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +  // Class Name (Class Name (클래스명))
                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",                // Function Name (Function Name (함수명))
                                     ex.Message);
            }
        }

        #endregion 폼 컨트롤 초기화

        #region Control Event
        #region 텍스트박스 키 입력 이벤트 처리
        /// <summary>
        /// 텍스트박스 키 입력 이벤트 처리
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="sFuncValue"></param>
        private void txtEditBox_EditBoxKeyDownEvent(object sender, string sFuncValue)
        {
            try
            {
                string sTxtBoxName = ((Cosmos.UI.CsmPosEditBox)sender).Name;

                if (sFuncValue == PosKey.MENU_KEY.ENTER)
                {
                    if (sTxtBoxName == "txtPluName")
                    {
                        txtAmount.Focus();
                    }
                }
                else if (sFuncValue == PosKey.MENU_KEY.CLEAR)
                {
                    // CLEAR 눌렀을 경우 뭘 해줘야 할까...
                }
                else if (sFuncValue == PosKey.MENU_KEY.ESC_PREVIOUS)
                {
                    this.DialogResult = DialogResult.Cancel;
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }

        /// <summary>
        /// 텍스트박스 활성화 처리
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void txtEditBox_EnterEvent(object sender, EventArgs e)
        {
            try
            {
                padInPut.SetActiveControl = (Control)sender;
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }
        #endregion 텍스트박스 키 입력 이벤트 처리

        #region 업/다운 클릭 이벤트
        /// <summary>
        /// 조회 그리드 업/다운 클릭 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSelProc_Click(object sender, EventArgs e)
        {
            if ((UI.CsmButton)sender == btnUp)
            {
                dgvData.CsmGridScroll("UP");

                #region (2017.11.06) 간이영수증 삭제 기능 추가을 위한 업(UP) 처리
                intSelectRow -= 1;      // 행값(intSelectRow) 증가
                if (intSelectRow < 0) { intSelectRow = 0; }
                if (intSelectRow > -1)
                {
                    // 그리드 클릭 이벤트 호출 -----
                    dgvData_GridClickEvent(sender, intSelectRow.ToString());
                }
                #endregion
            }
            else if ((UI.CsmButton)sender == btnDw)
            {
                dgvData.CsmGridScroll("DOWN");

                #region (2017.11.06) 간이영수증 삭제 기능 추가을 위한 다운(DOWN) 처리
                intSelectRow += 1;      // 행값(intSelectRow) 증가
                if (intSelectRow > 4) { intSelectRow = 4; }
                if (intSelectRow > -1)
                {
                    // 그리드 클릭 이벤트 호출 -----
                    dgvData_GridClickEvent(sender, intSelectRow.ToString());
                }
                #endregion
            }
        }
        
        #endregion 업/다운 클릭 이벤트

        /// <summary>
        /// Form Close
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #region 버튼 입력 처리
        /// <summary>
        /// 상품 등록
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnPluChoice_Click(object sender, EventArgs e)
        {
            try
            {
                //금액이 입력되지 않은 경우 처리하지 못함
                if (txtAmount.Text == "" || txtAmount.Text == "0")
                {
                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0175));
                    return;
                }

                //-------------------------------------------------------------------------------------
                // (2017.11.06) 간이영수증 삭제 기능 추가을 위한 번호 설정
                //-------------------------------------------------------------------------------------
                // - 기존의 폼 변수에 +1 하는 처리 대신에 데이터 테이블 갯수에 +1 하는 처리로 변경한다.
                //-------------------------------------------------------------------------------------
                // nNO = nNO + 1;
                nNO = m_dtItemInit.Rows.Count + 1;
                //-------------------------------------------------------------------------------------
                DataRow dr = m_dtItemInit.NewRow();

                dr["No"] = nNO;
                if (txtPluName.Text.Trim() == "")
                {
                    txtPluName.Text = "기타제품";
                }
                dr["Plu"] = txtPluName.Text;
                dr["Amount"] = CmUtil.GetToMoney(txtAmount.Text);
                m_dtItemInit.Rows.Add(dr);

                dgvData.CsmGridDataSource = m_dtItemInit;

                //금액
                txtPluName.Text = "";
                txtAmount.Text = "0";

                //--------------------------------------------------------------------------------
                // (2017.11.06) 간이영수증 삭제 기능 추가을 위한 그리드 클릭 이벤트 및 포커스 설정
                //--------------------------------------------------------------------------------
                // - 입력시 그리드 포커스는 맨위로
                // - 포커스는 상품명으로
                //--------------------------------------------------------------------------------
                #region 그리드 클릭 이벤트 및 포커스 설정
                dgvData_GridClickEvent(sender, "0");
                txtPluName.Focus();
                #endregion
            }
            catch (Exception ex)
            {
                UserLog.WriteLogFile(UserCom.LOG_ERROR,
                                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,      // Project Name (프로젝트명)
                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +  // Class Name (Class Name (클래스명))
                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",                // Function Name (Function Name (함수명))
                                     ex.Message);
            }
        }

        /// <summary>
        /// 영수증 출력
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnPrint_Click(object sender, EventArgs e)
        {
            string sRet = UserCom.RST_ERR;
            double dTotAmount = 0;
            try
            {
                DataTable dtData = new DataTable();

                dtData.Columns.Add(new DataColumn("NO", typeof(int)));
                dtData.Columns.Add(new DataColumn("SALEDT", typeof(string)));
                dtData.Columns.Add(new DataColumn("PLU", typeof(string)));
                dtData.Columns.Add(new DataColumn("AMOUNT", typeof(string)));

                if (dgvData.CsmGridRowsCount <= 0)
                {
                    if (txtAmount.Text != "" && txtAmount.Text != "0")
                    {
                        DataRow dr = dtData.NewRow();
                        dr["NO"] = 1;
                        dr["SALEDT"] = m_cPosStatus.Global.CultureToDate(txtDate.Text);
                        dr["PLU"] = "기타제품";
                        dr["AMOUNT"] = txtAmount.Text;
                        dtData.Rows.Add(dr);
                    }
                    else
                    {
                        WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0003));
                        return;
                    }
                }

                for (int i = 0; i < dgvData.CsmGridRowsCount; i++)
                {
                    string sAmount = (dgvData.CsmGridGetCell(i, 2)).Replace(m_cPosStatus.Global.m_stCultureMaster.strGroupingSymbol, "");

                    dTotAmount = dTotAmount + CmUtil.GetValueToLong(sAmount);

                    DataRow dr = dtData.NewRow();
                    dr["NO"] = CmUtil.GetValueToInt(dgvData.CsmGridGetCell(i, 0));
                    dr["SALEDT"] = m_cPosStatus.Global.CultureToDate(txtDate.Text);
                    dr["PLU"] = dgvData.CsmGridGetCell(i, 1);
                    dr["AMOUNT"] = sAmount;
                    dtData.Rows.Add(dr);
                }

                // 출력 버튼을 눌렀을 경우 저장 되는것 없이 출력만 가능해야 한다.
                sRet = m_cEtcReceipt.SetData(dtData);
                if (sRet == UserCom.RST_OK)
                {
                    WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0179);
                }
                else
                {
                    WinManager.ErrorMessage(sRet);
                }
            }
            catch (Exception ex)
            {
                UserLog.WriteLogFile(UserCom.LOG_ERROR,
                                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,      // Project Name (프로젝트명)
                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +  // Class Name (Class Name (클래스명))
                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",                // Function Name (Function Name (함수명))
                                     ex.Message);
            }
        }

        #endregion 버튼 입력 처리

        private void btnDate_Click(object sender, EventArgs e)
        {
            try
            {
                string sDate = WinBasic.ShowForm(new string[] { FormManager.FORM_CALENDAR });
                if (sDate != "") txtDate.Text = m_cPosStatus.Global.DateToCulture(sDate);
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }

        #endregion Control Event

        //**************************************************
        // (2017.11.06) 간이영수증 삭제 기능 추가을 위한
        //              삭제버튼(btnDelete) 클릭 이벤트 함수
        //**************************************************
        #region 삭제버튼(btnDelete) 클릭 이벤트 함수
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (intSelectRow > -1)
            {
                //---------------------------------------------
                // 데이터 테이블에서 선택한 행을 우선 삭제하고,
                // 일련번호 재설정 후
                // 데이터 테이블을 그리드에 표시한다.
                //---------------------------------------------
                #region 데이터 테이블에서 선택행 삭제 -> 일련번호 재설정 -> 그리드에 표시한다.
                m_dtItemInit.Rows.RemoveAt(intSelectRow);   // 선택한 행을 삭제한다.
                for (int i = 0; i < m_dtItemInit.Rows.Count; i++)
                {
                    m_dtItemInit.Rows[i]["No"] = i + 1;     // 일련번호 재설정
                }
                dgvData.CsmGridDataSource = m_dtItemInit;   // 그리드에 표시한다.
                #endregion

                //-----------------------------------------------------------
                // 마지막 행까지 삭제했을 경우 '삭제' 버튼을 비활성화 시킨다.
                //-----------------------------------------------------------
                #region 마지막 행까지 삭제했을 경우 '삭제' 버튼을 비활성화 시킨다.
                if (m_dtItemInit != null && m_dtItemInit.Rows.Count == 0)
                {
                    // 삭제버튼 비표시 -----
                    SubDeleteButtonSetting("비표시");

                    // 포커스 설정 -----
                    txtPluName.Focus();
                }
                #endregion

                //-----------------------------------------------------------
                // 삭제후 마지막 행이 아니면서 
                // 기존 소스가 디폴트로 맨처음 행으로 포커스를 이동하므로
                // 행위치 값을 맞춰주기 위하여 그리드 클릭 이벤트를 호출한다.
                //-----------------------------------------------------------
                #region 행위치 값을 맞춰주기 위하여 그리드 클릭 이벤트를 호출한다.
                else
                {
                    if (dgvData.CsmGridRowsCount <= intSelectRow)
                    {
                        intSelectRow = intSelectRow - 1;
                    }                    
                    dgvData_GridClickEvent(sender, intSelectRow.ToString());
                    dgvData.CsmGridSelectRow(intSelectRow);
                }                
                #endregion
            }
        }
        #endregion

        //**********************************************
        // (2017.11.06) 간이영수증 삭제 기능 추가을 위한
        //              그리드 클릭 이벤트 함수
        //**********************************************
        #region 그리드 클릭 이벤트 함수
        private void dgvData_GridClickEvent(object sender, string rowIndex)
        {
            // 사용자가 선택한 행 값(intSelectRow)을 저장한다. -----
            if (dgvData.CsmGridRowsCount == 0) return;
            intSelectRow = Convert.ToInt16(rowIndex);       // 행 값(intSelectRow) 저장

            //-------------------------------------------------------------------
            // 만약 사용자가 선택한 행이 존재할 경우 '삭제' 버튼을 활성화 시킨다.
            //-------------------------------------------------------------------
            #region 만약 사용자가 선택한 행이 존재할 경우 '삭제' 버튼을 활성화 시킨다.
            if (intSelectRow > -1)
            {
                // 삭제버튼 표시 -----
                SubDeleteButtonSetting("표시");
            }
            else { return; }
            #endregion
        }
        #endregion

        //************************************************
        // (2017.11.06) 간이영수증 삭제 기능 추가을 위한
        //              삭제버튼(btnDelete) 상태 설정 함수
        //************************************************
        #region 삭제버튼(btnDelete) 상태 설정 함수
        private void SubDeleteButtonSetting(string _strDiv)
        {
            //--------------------------------------------
            // 만약 구분값이 '표시'일 경우
            // 삭제 버튼을 출력 버튼 앞에 표시되도록 한다.
            //--------------------------------------------
            #region 만약 구분값이 '표시'일 경우
            if (_strDiv == "표시")
            {
                btnDelete.Visible = true;   // 삭제버튼 표시
                btnDelete.Left = 524;   
                btnPrint.Left = 605;
            }
            #endregion

            //---------------------------------------------------------
            // 만약 구분값이 '비표시'일 경우
            // 삭제 버튼을 비표시하고 출력 버튼이 공백을 채우도록 한다.
            //---------------------------------------------------------
            #region 만약 구분값이 '비표시'일 경우
            else if (_strDiv == "비표시")
            {
                btnDelete.Visible = false;  // 삭제버튼 비표시
                btnDelete.Left = 605;
                btnPrint.Left = 524;
            }
            #endregion
        }
        #endregion
    }
}
