'DesignSurface' 태그의 글 목록 :: iopeni - Think of C#

'DesignSurface'에 해당되는 글 1건

  1. 2017.01.13 호기심 해결

병원에서 사용하는 시스템 중 EMR이라는 시스템의 중요기능 중 하나는 동적 서식 생성이라는 주제 이다.

 

몇년전 EMR이 뭔지도 모를 때 모 대학 병원에서 엉겁결에 동적 서식 생성기라는 프로그램을 만들었고.. 지금은 확실하게 서식생성기가 가져야 하는 기능들에 대해서 남들보다 잘 알고 있다고 자신 한다.

 

전에 근무하던 회사도 의료정보쪽 일을 하고 있는 회사 였고, 동적 서식 생성기라는 프로그램이 몇종류 있었다. 물론 지금도 팔고 있는 제품이고 나름 경쟁력 있는 제품들이라 생각 한다.

 

그러나 나의 입장에서 보면 뭔가 좀 어색하고 대단히 이상했다. 왜냐하면 서식 생성시 서식의 모양을 지정하고 모양의 위치를 지정하고 하는 것들을 전부 이미지로 처리하고 있었기 때문이다.

 

정확한건 아니지만 타회사(후지쯔코리아, 큐브플랙스)의 제품들을 봐도 서식을 생성하기 위해 처리 하고 있는 생성기는 이미지 처리 기반인 것으로 추측된다.

 

왜 일까? 왜 이미지로 했을까? 난 잘 모르겠다. 일부러 이미지로 처리한다는 것 자체만 보더라도 공수는 훨씬 많이 들어갈것 처럼 보인다.

 

생각을 살짝만 바꿔서 생각 하면 그냥 패널이나. 이미지박스에 동적으로 컨트롤을 들어 올리고 그걸 가지고 선택 하면 개발자가 Hit Testing 은 신경 쓰지 않아도 되며, 드래그는 Left와 Top 값만을 변경 하는 것으로 원하는 기능을 구현 할 수 있다.

 

물론 Copy & Paste 의 구현도 이미지 기반 처리에 비해 쉽게 할 수 있다.

 

국가연구사업으로 완성된 CCM(임상 컨텐츠 모델) 이라는 것을 보면 서식 생성시 중요하게 생각 하여야 하는 것은 어트리뷰트와 엔티티, 컴포넌트이다.

 

그래서 생각 하게 된거다... 만약 말이다. 우리가 동적 서식 생성이라는 문제를 가지고 Visual Studio의 폼 디자이너 처럼 할 수 있다면? 그럼 어떻게 될까?

 

폼 디자이너에는 어트리뷰트, 엔티티, 컴포넌트 따위 그냥 기본 개념일 뿐이다. 얼마든지 확장할 수 있고 사용자가 화면을 그리기도 이미지 에디터에 비해서 훨씬 쉽다.

 

더불어~~~~~~~~~ CodeDom으로 코드 까지 생성해 준다.......  뭐 자동생성하는 코드가 맘에 들지 않는 다면 나만의 규약으로 코드를 생성해도 된다.

 

예상컨데... 이거 서식 생성기 끝판왕을 만들 수 있겠구나??? 라는 생각을 함 해봤다.

 

그런데??????? 폼 디자이너는 어떻게 만들었을까?... 이라는 호기심이 문득 들었고 저를 아는 분들은?? 아시겠지만..... 한번 호기심이 생기면 끝까지 물고 늘어져서 ㅎㅎㅎ 알아내고야 마는 묘한 습성이 있다.

 

이번에도 그랬다.... 폼디자이너 어떻게 만들었는지 알고 싶었다. 몇일간의 구글링과 .... MSDN 검색질을 통해서 알아내고야 말았다......

 

일단 샘플로 만들어 놓은 화면이다. ㅎㅎㅎㅎ

 

 

드래그... 및 Anchor 기능이 기본으로 동작 된다. 이 코드..... 코드량 얼마나 많을까???? 많지 않다.

 

깜놀 했다.. ㅎㅎㅎ 이걸 알고 나서 어찌나 자랑질을 하고 싶었는지 아마 여러분은 모를 꺼다..

 

역시 고마운건 Microsoft 였다...

 

System.Design 어셈블리를 참조 하고 System.ComponentModel.Design 네임 스페이스에 존재 하는 DesignSurface가 답이었다.

 

대충 만든 C# 코드를 소개 한다.

 

내가 또 서식생성기를 만들게 될 일은 없겠지만.. 만약 또 만들게 된다면... 이번엔 이렇게 할 것이다. 만약 WPF디자이너에 CodeDom을 활용하게 될 지도 모르겠지만 말이다.

 

이렇게 만들어 놓은 서식으로 사용자가 리포트를 작성하게 하고 .. 이후 출력을 하게 될 경우에 대한 좋은 방법은 OpenXML SDK 인듯 하다.

 

아마 docx, xlsx, pptx 와 같은 문서들의 확장자를 Zip으로 바꾸고 압축을 풀어 보면 압축이 풀리는 신기한 경험을 하게 될지도 모른다.

 

미국 정부는 Microsoft에게 오피스 없이도 오피스 문서를 읽을 수 있도록 해달라는 요청을 하였고, 마이크로소프트는 그 의견에 수렴하여 OpenXML 이라는 문서 포맷을 표준으로 하였다.

 

ECMA와 ISO공히 표준 문서가 등재 되어 있고 이곳에 백업한다. EMR을 새로 만들거나 서식 생성기를 새로 만드는 분들에겐 아마도 도움이 될 것이다.

 

http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=51463

http://www.ecma-international.org/publications/standards/Ecma-376.htm

 

그런데 말이다... 지금 나에게 중요한건 이런 블로그질이 아니라... 취업이다... ㅎㅎ

에혀.. 지방에는 튼실한 IT 기업이 없다.. 있어도 나 같은 허접한 개발자는 취급하고 싶지 않은 걸까???? 백수 생활이 점점 길어진다... 아혀~~

 

 

 

 

 

'Functional World > .Net Framework' 카테고리의 다른 글

Microsoft .Net Framework 4.5? 에 추가된 것들...  (0) 2013.11.01
Ms Chart Control Sample  (0) 2013.08.26
Posted by 프로그래머란 카페인을 코드로 변환하는 기계다
,