Course B-1
[공통 코드 관리] 개발
Last updated
Was this helpful?
[공통 코드 관리] 개발
Last updated
Was this helpful?
이미 등록된 데이터 컴포넌트를 이용하여 두 개의 새로운 테이블을 정의하고, 가장 많이 사용되는 list-master-detail 패턴의 화면을 구성한 다음 테이블 반환 함수를 사용한 데이터 처리 과정을 이해합니다.
학습 인정 시간: 5 시간
GPM에서 데이터 컴포넌트는 새로 등록하지 않고 테이블만 새로 정의합니다.
이전 과정에서 진행했던 내용과 중복되거나 응용하여 해결할 수 있는 부분은 생략했습니다.
신규 버튼 클릭 - 상위 메뉴 "EDU" 선택
테이블 명 : comCodeGroup_xxx
테이블 설명 : 코드 그룹 정보
신규 버튼 클릭 - 상위 메뉴 "EDU" 선택
테이블 명 : comCodeMaster_xxx
테이블 설명 : 코드 세부 정보
신규 버튼 클릭 - 상위 메뉴 "EDU" 선택
SP 명 : P_DEV002_xxx_Q
SP 설명 : 공통 코드 관리 조회
테이블 탭으로 이동하여 'comCodeGroup_xxx' 테이블만 드래그 드랍하여 Parameter 탭에만 세팅 후 "SP 편집창에 적용" → "SP 생성" 순서로 처리합니다.
SP 정보 생성 후 SSMS 도구를 이용해 아래 쿼리를 참고하여 저장 프로시저 내용을 완성합니다.
신규 버튼 클릭 - 상위 메뉴 "EDU" 선택
SP 명 : P_DEV002_xxx_S
SP 설명 : 공통 코드 관리 저장
조회용 프로시저와 마찬가지로 아래 사진과 같이 Parameter 탭에만 세팅 후 "SP 편집창에 적용" → "SP 생성" 순서로 처리합니다.
하나의 문자열로 받아온 여러 행(Row)에 대한 각 필드별 값을 파싱하여 테이블 형태로 보관하기 위해 변수를 정의합니다.
테이블 반환 함수 "SplitTableNVarchar"를 사용해 테이블 변수(@tb_comCodeMaster_xxx
)에 데이터를 삽입합니다.
신규 저장은 새로운 그룹 코드(group_code
)에 대한 세부 코드(sub_code
)들을 한 번에 입력하고 저장한다는 의미입니다.
입력된 그룹코드가 이미 등록된 코드인지 확인 후 comCodeGroup_xxx, comCodeMaster_xxx 테이블 순서로 데이터를 삽입합니다.
처리하려는 세부 코드 대상 중 신규(row_status='N')인 데이터의 중복 여부를 확인합니다.
comCodeGroup_xxx 테이블의 데이터 수정 → comCodeMaster_xxx 테이블의 데이터 삭제 → 수정 → 삽입 순서로 처리합니다.
삭제는 그룹 코드(group_code
)에 대한 삭제를 의미하므로 comCodeGroup_xxx, comCodeMaster_xxx 두 테이블에 전달받은 그룹 코드 파라미터(@p_group_code
)로 등록된 모든 데이터를 삭제합니다.
디자인 리스트를 아래 사진처럼 구성하고 "디자인 적용" 버튼을 누른 다음 [개발 화면]의 이미지를 참고하여 컨트롤을 재배치 합니다.
[개발 화면]과 같이 화면 구성과 컨트롤들을 배치합니다.
저장 프로시저를 처리하는 코드 패턴은 폼 템플릿에 미리 작성되어 있는 #region [예시 코드]
를 참고합니다.
ParameterBuilder에 대한 자세한 내용은 [기능 문서]를 확인바랍니다.
테이블의 기본키인 [기본 정보] 영역에 '그룹 코드(group_code
)'는 신규로 등록하는 상태에서만 입력이 가능하도록 합니다.
GridView를 통해 입력받는 '세부 코드(sub_code
)'는 GridColumn 속성을 통해 처리하는데, 필수로 값을 입력 받기 위해 AllowBlank 속성을 false로 설정하고, ColumnOperation 속성의 값을 ColumnLock으로 지정하여 새로 추가된 행(Row)일 때만 입력이 가능하도록 합니다.
참고) GridColumn에 설정된 AllowBlank 속성에 대하여 값 입력 확인은 BindingData 메서드에서 수행합니다.
[GPM Tools→기본값 설정]에서 조회 조건 기본값 설정 정보를 등록하고 기능을 구현합니다.
workType
) 판단 방법 수정 수정"그룹 코드" 컨트롤(txtGroup_code1
)의 ReadOnly 속성의 값이 true이면 수정 상태, false이면 신규 상태로 판단하여 신규 상태일 때 "N"
으로, 수정 상태일 때 "U"
로 전달합니다.
검색 / 신규→저장 / 수정→저장 / 삭제 기능이 올바르게 동작하는지 확인합니다.
그룹 코드는 신규 시에만 수정이 가능한지 확인합니다.
저장 시 [기본정보]영역에 필수 입력 항목 체크가 정확히 이루어지는지 확인합니다.
저장 시 [상세정보]영역에 필수 입력 항목 체크가 정확히 이루어지는지 확인합니다.
[요약정보]영역과 [상세정보]영역에 데이터 건 수 집계가 제대로 표현되는지 확인합니다.
이미 등록된 그룹 코드(group_code)와 동일한 코드를 신규로 등록했을때 설정한 SP메시지가 제대로 출력되는지 확인합니다.
이미 등록된 세부 코드(sub_code)와 동일한 코드를 신규로 등록했을때 설정한 SP메시지가 제대로 출력되는지 확인합니다.
이미 등록된 세부 코드(sub_code)에 대하여 수정이 되지 않도록 설정되었는지 확인합니다.
조회 조건 영역의 초기화 버튼 기능이 정상 동작하는지 확인합니다.
[요약정보]영역의 GridView의 행을 선택하고 Alt+F2 키를 눌러 등록 정보, 수정 정보가 정상 표현되는지 확인합니다.