퇴근5분전

 

 지난 번에 만든 프로그램으론 1개의 쿼리뿐이 정렬을 못시키니... 사용하면서 1년 동안 sp를 직접 작업하지 않으니 크게 쓸일도 없었지만,

 

지금은 시간도 좀 여유롭고 해서 자격증이나 딸까, 프로그램을 만들까 하다가... 마음 가는데로 하다보니 프로그램을 다시 만들게 되었다.

 

처음엔 지난번에 만든 프로그램을 수정하는 것으로 시작했으나... 역시나, 지난번 프로그램 소스가 워낙 복잡하고 고정된 양식에 추가될때마다

 

하드코딩으로 예외처리를 해놓은 터라, 조금만 손대도 다른데서 터지거나 꼬여서 안돌아가서 다시 설계하여 만들기 시작했다.

 

 이틀정도 출퇴근 지하철에서 수첩에 열심히 그려서 코딩한게 성공할 것 같은 느낌이 든다.

 

여러 쿼리들을 돌려봤는데 우선 변환에 필요한 기초 자료 구성까지 원하는데로 만들어져 간다. 

 

제일 처리하기 힘들었던 case문도 쉽게 잡혔고, 코드가 보기 좋아져서 오류 잡기도 쉬워졌다.

 

 해결방법에 대한 걸 써놓을까 한다.

 

 1. 우선 이전버전 처럼 각 요소들을 모두 분리한다.

    - 1개의 단어는 1개의 요소가 된다.

    - 주석은 주석으로 묶어서 1개의 요소로 만든다.

    - 문자열은 '로 시작해서 ' 끝나는 지점을 찾아서 묶는데 중간에 '' 인것은 패스해서 마지막 ' 을 찾아 1개의 문자열 요소로 만든다.

    - 연산자도 1개의 요소가 되는데 이때 주석문에 사용되는 /, * - 는 각각 다음 또는 이전 조합에 따라서 주석문으로 판단되면 건너띈다.

 

 2. 요소들이 모두 분해가 되면 리스트로 묶어서 줄세우는데, 이때 리스트의 특정 요소들은 하위 요소목록을 가질수 있게 된다. ( 컴포짓트 패턴 )

 

 3. 요소들 줄세우기가 끝났으면 위에서부터 순차적으로 접근하여 각각 경로값을 만들어준다.

  ex)   

    select 1 from tb

--줄세우면..

  select

  1

  from

  tb

-- 여기에 각 요소의 경로값은

  select         select

  1               select.Column : 1

  from          from

  tb             from.Table : tb

 

 4. 정해놓은 규칙에 따라 정렬 시켜가면 된다. ( 지하철에서 스치듯 떠오른 아이디어를 활용한다. )

 

이제 3번을 진행중이다. 여러 쿼리로 경로값들을 확인해야 하므로... 좀더 타이핑을 해야 된다.

800라인 정도 쳤는데.. 기존 소스는 두페이지 인데 한페이지는 2500라인 정도에 또 한페이지도 900라인 정도.. 많이도 쳤네.

 

주말에 완성할것 같다. ^^;;

 

쿼리가 정렬되면 마음에 평화가 올려나???

 

 

 

 

 # 디자인은 어렵다 ㅡ.,ㅡ;;

 # 이틀내내 아이콘 찾아넣고 색 바꾸고 위치바꿨는데... 고급지게는 안보이네...

 

 # 내가 만들어보고 싶었던 프로그램은 화면설계를 PL이나 PM이 했을때 개발자가 정보를 쉽게 얻을 수 있었으면 했다.

또한 개발자의 개발 능력은 워낙 다양(?)하기 때문에 이에 대해 회사내에 개발프레임웍이 존재하더라고 그 사양에 맞춰

개발하는 개발자는 많지 않았다. SI는 만들기 바쁘니까. 흐흣! 나역시 그랬으니까.

 개발하는 시간이 항상 쫒기다보니 소스를 일일이 치는 것보다는 만들어내는 것이 좋겠다 싶었고, 다른 폼에서 가져다

쓰면 변수들이 섞이는 경우가 있어서 그것도 싫었다.

 그래서 만든 디자이너가 몇번씩이나 업그레이드되고 새로 다시 만들며 만들었네... 대략,,, 뭐, 그래도 혼자 쓸꺼다.

 

 - 왼쪽 메뉴를 편집해서 프로젝트의 메뉴들을 모두 등록가능하다.

 - 우측 디자인버튼을 클릭하면 아래 그림처럼 디자이너가 뜬다.

 - 디자인을 마치고 저장하면 디자인된 화면을 보여주고, 상세내역 처럼 1,2 ... 등 화면에 설명을 넣을수 있다.

 - Link를 클릭하면 위 버튼중 action에클릭시 다른 메뉴화면으로 바로 이동이 가능하다.  

 

 - 아래 디자이너이다.

 - 화면을 그리는데 필요한 컨트롤들도 있고, 컨트롤들 조합으로 템플릿을 지원한다.

   : 응용프로그램을 많이 검색해봤는데, 조합으로 충분히 만들수 있을 것 같더라.

 

 

 


화면정의 관리 프로그램으로 화면정의서 같은 문서 대용으로 만들었다.


메뉴는 쉽게 편집 관리할 수 있도록 마일스톤 뷰 만들때 사용했던 방법을 썼다.

#그룹1

###전표조회

###메뉴2

#그룹2

##그룹2-1

###메뉴3

을 으로 편집하면 좌측 메뉴 트리가 구성된다.


디자인 버튼 클릭하면 Mockup 프로그램이 떠서 디자인을 할 수 있다.  

물론 Mockup 프로그램으로 만들었으니 소스변환도 된다.


그리고 상세 내역에 번호를 지정해서 화면내 특이사항등 체크할 내역등등 기록해줄수 있다.

메뉴별로 번호라벨의 위치값들을 기억해서 읽어들일때 다시 읽어준다.



 

음 ERD 라고 첨 만들었는데... 굳이 다이어그램으로 표시되지 않기때문에... ERV 라고 바꿨다.

 

 

 전에 만들까 하다가...

 

이번에 뭔가 생각난게 있어서 프로세스를 만들다가 테스트 삼아 만들어봤다.

둘다 비슷한 프로세스니까 우선 만든거지만...

 

금요일 저녁부터 일요일... 지금까지 코딩해서 겨우 만들었는데.. 우선 좀 디자인이나 코드 정리해서 DB랑 붙여서 땡겨봐야지...

 

테이블에 컬럼을 추가하기 위해서 메타를 먼저 등록하고, 메타를 드랍!

다른 테이블에 연결된 컬럼과 연결( FK )해야 할때는 테이블을 드랍!

 

PK 설정할때는 컬럼을 더블클릭 하면 색이 바뀐다.

 

테이블 설정이 끝나면 추가적으로 여러 쿼리를 만들어내는 일을 추가하면 되는데... 버튼은 나중에 붙이자.

 

 

 지난 그리드폼 프로젝트를 하면서 엑셀처럼 그리드를 만들었었는데,  이번 프로젝트에서 엑셀 서식에 데이타를 바인딩 해서

리포트 대용으로 사용하고 싶어하길래 여건상 딱 2개만 해주었다. 그리고 그 대상 소스를 참고해서

 

해당 소스를 만드는 프로그램을 아래와 같이 만들었다. 생각보다 오래 걸리진 않았는데...

 

 작업을 하다보니 엑셀의 라인정보를 읽어내는 방법이 어렵더라. 모두 Object로 리턴되어서 디버깅하면서 하나 하나 타입을 보거나

구글을 통해서 타입 변환같은걸 보면서 찾아서 개발을 했다. 또 가변적으로 바인딩할때 행을 추가한다던가, 데이타를 가변적으로

바인딩 해야 할때 순서등등...

 

나중에 혹시나 또 필요할 것 같고 기능이 괜찮아서 내 프레임웍에 만들어 넣었다.

 

## 1. 엑셀 서식을 마련한다.

 

 

## 2. 해당 엑셀을 선택하면 아래처럼 화면에 엑셀을 그린다.

 

## 3. 필드 및 그룹정의 버튼을 눌러 데이타 바인딩에 필요한 테이블정의 및 테이블과 맵핑되어 엑셀을 대상으로 한 좌표값들을 가지는 그룹을 정의한다.

     그룹 종류 : 바인딩되지 않는 그룹, 바인딩된 그룹(  고정데이타[데이타 행의 갯수가 고정되어 있음.], 가변데이타 [데이타 행의 갯수가 가변적임.])                

 

## 4. 정의된 그룹 정보의 각 필드에 대한 위치값과 시작 행번호등을 지정함.

 

## 5. 소스변환을 클릭하면!

    엑셀을 열어 해당 좌표에 데이타를 바인딩처리를 하는 소스를 한페이지 만들어서 클립보드에 복사해준다.

    그러면 적용 할 소스에 붙여주고 실제 DB에서 정의한 테이블 구조에 맞춰 DataSet에 넣어주면 끝!

 

 

 

# 디자이너에 엑셀 내보내기 소스를 만들어내는 기능 추가.

디자인을 마치고 그리드를 엑셀로 내려받게 하는 소스를 만드는 기능.

 

 

 이번에 영어 공부용 프로그램 하나 만들었다.

 

영어... 원본을 가지고 구글링 번역기로 휙 돌리면 뭐 좋겠지만,,,

 

공부 자체엔 도움이 안되서리... 프로그램을 하나 만들었다.

 

하루 한 페이지 정도 공부하다보면 뭐~!!! 조금은... 아주 조금은... 괜찮아지겠지?

 

만들기전에 비슷한거 있는지 물어보니 듀링고? 학습어플이라는데 그런게 있다는데...

 

난 영어 원문은 StackOverflow, CodeProject 중심의 글들을 가지고 할 거라서 ...

 

 

 

 

 

## SQL 포맷터

 

왼쪽은 okjsp 에 질문중 한 쿼리.

오른쪽은 내가 만든 포맷터로 정렬시킨것..

키워드가 full outer join에 대해 맵핑을 안걸었더니 붙어서 나왔다.  ㅎㅎ

 

디버깅의 연속이었지만 잘 고쳐진듯 하다.  

 

## ms-sql 쿼리용 포맷터라

소스를 살펴보니 index 힌트 걸린게 주석제거 필터링에 의해 날아갔네... 크크...

 

 

 

 

 

 기능들이 거의다 구현이 되었는데...

 

UI가 맘에 안든다... 꺼림직 한?

 

내 프레임웍에 QueryFormatter도 추가해뒀다.

수정에 수정을 거쳐 잘 된다. 가끔 스페이스가 구분자 사이에 없거나 두칸정도 띄워지는데 그정도야 뭐...

 

UI가 좀 맘에 안드는데... 어떻게 개선을 하지???

 

 

++ 추가~

 음! 디자인 자체는 수정은 일단 미루고...

집에서 코딩도 많이 줄이고... 살부터 빼자. 아우 힘드네...

 

다음 플젝을 위한 내 개발 프레임웍을 좀 수정해야지...

 

 그나저나... 클라우드!

오늘 클라우드 얘기를 좀 들었는데...

말만 들었지. 저녁내내 클라우드 개발에 관련된 글을 찾아 봤는데...

쉽진 않네..

 

'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글

영어 공부 프로그램 ?  (0) 2016.02.17
JSFW] Sql Formatter  (0) 2016.01.22
디자인 아이템] 디자이너 챠트를 추가했음.  (0) 2015.11.25
디자인 아이템] 아이템  (0) 2015.11.19
디자인 아이템] 아이템  (0) 2015.11.17

 

아이템 중 챠트를 추가했다.

 

 

 

기능이 크게 바뀐건 아니나... 챠트를 추가했다.

실제 챠트컨트롤을 올린것은 아니라서 모양만 냈지만...

 

-- 내보내기

   > 현재는 WPF Xaml 소스로 변환하여 clipboard 에 저장해준다. 붙여넣기하면 끝!

 

-- 프로젝트 생성

   > 현재 진행중인 시험용 개발 프레임웍 프로젝트가 생성되며 추가로 xaml과 xaml.cs가 같이 생성된다.

 

-- 스샷

  > 현재 디자인된 폼을 스크린샷 해준다.

 

-- 템플릿

  > 현재 디자인 된 요소를 이름을 지정하여 저장이 가능하다.

    디자인 된 요소는 어디든 가져다 붙일수 있도록 도구상자의 템플릿 아래로 부착된다.

 

-- 디자인 버튼

   상태값을 바꾸면서 화면에 디자인 요소들을 제어한다.

   디자인 > 미리보기1 > 미리보기2 > 미리보기 > 디자인 .... 으로  계속 순회한다.

 

 앞으로... 추가할 요소들은... 메모장에 메모해둔 것들을 우선 추가하고

프로젝트를 다니면서 계속 컨텐츠를 모아갈 생각임...

 

 웹, 윈폼, WPF, 그리고 모바일요소들도 차례로 만들어서 추가해야지...

 

인터넷상에 나온 여러 UI들을 이걸로 그려볼 생각이다.

 

 

 

 

 

'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글

JSFW] Sql Formatter  (0) 2016.01.22
디자인 아이템] 음... UI 디자인 어렵네?  (0) 2015.12.01
디자인 아이템] 아이템  (0) 2015.11.19
디자인 아이템] 아이템  (0) 2015.11.17
마일스톤 판넬 컨트롤  (0) 2015.11.05