반응형
선과 작업 리스트를 확인할 수 있는 데이터 그리드 뷰를 윈폼에 띄웠다.
해당 농가의 접수 번호가 포함된 QR코드를 PDA를 통해 스캐닝하여
ERP 시스템 상에서도 작업 시작 예정인 농가가 그리드 최상단에 위치 할 수 있도록
프로그램을 개발 하였다.
이와 같은 프로그래밍을 통해 업 다운 버튼의 필요성을 없에 UI이를 더욱 깔끔하게 개선할 수 있다.
UI는 데모 버전으로 만든거라 못생겨도 이해 부탁드립니다.
중점을 둔 것은 바코드 리딩을 하면 해당 접수 번호를 가진 농가의 데이터로우가
최상단에 올라 올 수 있게 만들었다 .
예외 사항들을 조건문을 통해 리턴해주고
바코드 스캐닝을 통해 읽어들인 작업 번호와
현재 그리드에서 최상단에 위치한 작업 번호를 스트링 변수에 담아 준다.
담은 두 작업 번호를 비교하여 동일 하지 않다면
동일한 작업 번호를 가진 Column과 Row를 찾는 여정을 떠난다.
여기서는 컬럼의 인덱스도 for문과 if문을 통해 찾았지만
고정된 컬럼을 사용하면 굳이 반복문과 조건문을 사용할 필요가 없다.
그리고 해당되는 로우의 정보를 복사하여 찾아낸 기존 로우는 지우고
최 상단으로 가는 InsertAt(newrow,0)을 입력해주면 된다.
private void textBox_bar_KeyDown(object sender, KeyEventArgs e)
{
//enter값이 아니면 no / pda 스캐닝은 자동으로 enter역할 함
if (e.KeyData != Keys.Enter)
return;
string ordCD = this.textBox_bar.Text.Trim();
//작업번호가 없으면 no
if (ordCD.Equals(""))
return;
this.SetGrid();
DataTable dt = this.Grid_List.DataSource as DataTable;
//row가 하나도 없으면 작업 no
if (dt.Rows.Count < 1)
return;
string gridOrdCd = Convert.ToString(this.Grid_List[0, 1]).Trim();
//바코드 스캐닝 넘버와 최상단 작업 번호가 다르면
//해당 번호가 있는 row를 찾아내는 로직
if (ordCD != gridOrdCd)
{
int iColidx = -1;
int iRowidx = -1;
for (int i = 0; i < Grid_List.ColumnCount; i++)
{
if (Grid_List.Columns[i].Name == "접수")
{
iColidx = i;
break;
}
}
for (int i = 0; i < Grid_List.RowCount - 1; i++)
{
if (Grid_List.Rows[i].Cells[1].Value.ToString() == ordCD)
{
iRowidx = i;
break;
}
}
//찾아내서 (2,1)
//맨 위면 종료
//irowidx =3 3번째 row 를 새로운 로우에 복사
DataRow row = dt.Rows[iRowidx];
DataRow newrow = dt.NewRow();
newrow.ItemArray = row.ItemArray;
//선택된 로우의
dt.Rows.RemoveAt(iRowidx);
dt.Rows.InsertAt(newrow, 0);
dt.AcceptChanges();
this.SaveOrdNo(dt);
//this.Grid_List.CurrentCell = Grid_List[iColidx, 0];
DataTable dtsort = dt.DefaultView.ToTable();
}
this.StartOrd(ordCD);
this.SetGrid();
this.Txt_BarClear();
this.Txt_BarFocus();
}
해당 블로그를 많이 참고 하였다.
반응형
'C#' 카테고리의 다른 글
C#- ASP.NET 으로 웹 로그인 화면 만들기(MVC-모델-뷰-컨트롤러) ! (0) | 2024.01.17 |
---|---|
C# - 네트워크 , Socket , TCP소켓 대해 알아보자 (3) | 2023.10.17 |
C# 문법 - String 문자열을 Enum으로 바꾸는 방법 /Trim(Char[])로 원하는 문자 제거 /구조체의 차이점 복습 (1) | 2023.10.17 |
C# -Thread 동기화 ! (lock 키워드/Monitor 클래스 사용) (1) | 2023.06.15 |
C# 기초 문법 진법 boolen형, 형변환, .ReadLine() , .Parse ,연산자 (0) | 2023.06.13 |
C# 개발 - Devexpress Gridcontrol 사용하여 데이터 출력하기 (0) | 2023.06.12 |