PRJMNG] 비전공인 내가 SI를 진행하는 법(3)
http://aseuka.tistory.com/entry/PRJMNG-비전공인-내가-SI를-진행하는-법1
http://aseuka.tistory.com/entry/PRJMNG-비전공자가-SI를-하는-방법2
http://aseuka.tistory.com/entry/PRJMNG-비전공인-내가-SI를-진행하는-법3
프로젝트에 참여하면 보통 PL이 요구사항들을 정리해서 작업을 하나씩 요청해온다.
어떤때는 쿼리를 직접 작성하게 되는 경우도 있기도 있고, 작성해준 것으로 작업을 시작하기도 한다.
아래 내용은 sp작성 완료 후 과정을 적어본다. 화면 정의서가 엑셀로 오는 경우도 있고, ppt도 있고, 말로만 설명하기도 한다.
그러면 우선 화면 디자이너를 이용해서 화면을 그리게 된다.
#### 요구사항을 하나 예를 들고 만드는 순서를 적어본다.
- Col1 이 조회조건이다.
- 그리드에 Col1, Col2, Col3 를 보여줘야 하는 단순 조회용 화면이다.
프로시져는 PL이 만들어 준다는 가정하에 내 프로그램들을 이용해서 화면을 구성해보자.
※ SSMS 추가된 기능
<추가된 메뉴>
※VS 추가된 기능
<솔루션 목록접기>
<프로젝트 셋팅>
<추가된 메뉴>
0. 작업내용을 일정관리 프로그램에 등록한다.
1. 프로시져를 실행하여 SSMS의 SQL결과 그리드에서 Header와 데이타를 뽑아내어 Header만 남기고 지운다.
# sql object 검색
- Control + Q, Control + F
# sql query formatter
-쿼리 정렬전
-쿼리 정렬 후 ( Control + Q, Control + Q )
# 데이타가 없을때도 복사가능
※ 아직 데이타가 조회되지 않는 경우 기본적으로 SSMS에서는 Header를 뽑아낼 수 없다.
- SSMS의 AddIn 을 이용하여 SQL결과 그리드에서 컬럼을 뽑아낼수 있다.
- SP_HelpTxt( Ctrl + 0 )를 이용하여 쿼리문을 편집기로 올려두고 컬럼들을 AddIn의 정렬( Sql_Formatter )기능으로 정렬시킨 후
이 쿼리에서 Header 목록을 얻어낸다.
# 쿼리에서 컬럼정보 얻어내기 ( 쿼리 정렬 후에 뽑아낼 수 있다. )
2. 뽑아낸 Header를 AddIn 기능 중 특정 포맷형태로 바꿔주는 기능을 사용하여 변환 시킨다.
Col1:컬럼1
Col2:컬럼2
Col3:컬럼3
Control + Q, Control + R 단축키를 누르면
{컬럼ID:컬럼명} 으로 정렬시켜준다. ( 추후 그리드 및 상세화면 디자이너 속성으로 사용된다. )
3. 디자이너를 띄워 화면을 디자인하고 소스생성 한다.
#디자인을 한다.
@UI기능
- 도구상자 : 디자인에 사용되는 컨트롤들을 배치되었다. 굿센에 맞춰진 특정 컨트롤, 컨트롤들을로 디자인 한 템플릿컨트롤들이 배치되었다.
동일한 형태의 컨트롤 배치를 계속 사용하게 되는 경우 템플릿으로 저장해두면 매번 재배치 하지 않고 사용가능하다.
- 디자이너
- 속성 : 컨트롤들의 속성값들을 편집 할 수 있다.
- 스크린샷 : 디자인된 소스를 스크린샷으로 찍어 클립보드에 복사해준다.
- Xaml내보내기 : Xaml로 변환하여 클립보드에 복사해준다.
- 프로젝트 생성하기 : 정해진 규칙대로 폴더를 생성하여 프로젝트(폴더,파일포함)를 만들어준다.
#디자이너에서 그리드를 설정한다. ( 그리드 속성창 > 편집 : Editor 버튼 클릭 )
@그리드 편집 기능
- Source Formatted : 이미 만들어진 화면의 소스에서 그리드 설정부분으로 그리드 설정값들을 복원하여 값들을 지정할 수 있다.
기존 화면을 수정해야 할 경우에 그리드를 일일이 다시 그리지 않고 한번에 읽어들일 수 있다.
- 컬럼추가 : 그리드에 컬럼을 추가해야 되는 경우 <, >버튼(오른쪽 아래버튼)으로 컬럼위치를 옮길 수 있다.
- Header + 1, Header - 1 : 그리드의 멀티컬럼을 설정할때 사용한다.
- 병합 : header 병합
- 병합해제 : 병합된 header 병합해제
- Custom Merge : 병합된 Header 정보를 이용하여 구현소스로 변환시켜 클립보드에 복사해준다..
- Const_GridCols_String : 그리드의 컬럼 Index를 상수형으로 설정하는 소스를 만들어 클립보드에 복사해준다..
- InitGridSettings : 그리드를 초기화 하는 소스를 만들어준다. ([Source Formatted]기능으로 읽어들이는 소스와 같은 형태로 생성.)
- DynamicGridInitEvent : 화면 UI에 title 컨트롤 Click이벤트 발생 시 실행되는 소스를 만들어주는데, 이 기능은 실행중에 컬럼Width 값을
데이타를 보면서 적절한 폭으로 조정한 후 Click하면 [InitGridSettings]에서 구현되는 소스와 동일한 형태의 소스를 만들어
클립보드에 복사해준다.
- Export To OpenXML : 그리드 내용을 Excel로 내보내기 기능을 OPEN XML을 이용하여 구현하는 소스를 만들어 클립보드에 복사해준다.
- Export To Excel : 그리드 내용을 Excel로 내보내기 기능을 Microsoft.Excel.Interop을 이용하여 구현하는 소스를 만들어 클립보드에 복사해준다.
- Import From Excel : 엑셀내용을 그리드로 업로드 기능을 구현하는 소스를 만들어 클립보드에 복사해준다.
4. 생성된 소스를 svn관리 폴더에 복사한 후 프로젝트를 visual Studio로 연다.
- 화면 UI에서 우측위쪽에 배치된 프로젝트 생성하기 버튼으로 프로젝트를 생성한다.
5. .xaml을 살짝 조정해준다. Grid의 마지막행, 마지막열의 height, width 값을 적절하고 바꾸고, 컨트롤들의 width값을 조정하여 보기 좋게 만든다.
6. .xaml.cs 에서 쿼리와 관련된 작업을 진행한다.
- 컨트롤에 Event처리
- 프로시져와 관련된 작업을 진행한다.
. sp설정 관련 코드라인 포커스를 두고 마우스 우측버튼 클릭 > MBaseClass Gen 클릭
. 프로시져 검색하고 변환하여 소스생성 > 원하는 위치에 [보내기] 클릭
7. 테스트를 진행하고 배포한 후 PL에게 완료여부를 알린다.
8. svn을 commit ( + add )한다.
9. 일정관리 프로그램에서 완료처리 한다.
#### 요구사항을 하나 예를 들고 만들어보았다.
이렇게 내가 일하는 작업들은 직접 구현하는 일은 많지 않다. 소스구현 툴에서 생성하며 붙여넣기를 반복적으로 하게 된다.
일반 조회는 30분~1시간, CRUD의 경우 그리드일 때 1~2시간 반, 상세화면 일때는 3시간 정도 잡고 일을 할수 있다. 난이도나 복잡도에 따라서 차이가 있다.
첫 언어로 C#닷넷을 선택하게 된 것이 나에겐 운이 좋았던것 같다. 비전공자인 나에게 프로그래밍에 집중 할 수 있게 해준 최고의 도구 Visual Studio와 구현이 너무
쉽게 가능한 C#을 이용해 지금까지 프로그래밍을 해왔다. 자바도 물론 경험 했으나, 알아야 할 것이 너무 많았다.
나에겐 절실함이 있었고, 닷넷 프로그램을 이용해서 풀어낸듯하다. 공부는 계속 하고 있지만...
다음 글은 ...
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
화면정리프로그램? 으로 이름을 바꾸자. (0) | 2016.12.04 |
---|---|
SSMS AddIn 기능중 Results Grid 접근! (0) | 2016.10.20 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(2) (0) | 2016.10.15 |
PRJMNG] 비전공인 내가 SI를 진행하는 법(1) (0) | 2016.10.15 |
JSFW.PROJECT.REF] 프로젝트 모듈 - SP검색 (0) | 2016.09.26 |