565 lines
27 KiB
C#
565 lines
27 KiB
C#
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
|
|
}
|
|
}
|