PROGRAMMING WORKSHOP

자재관리 | DashBoard

STEP_8 ---------------------------------

UserForm을 사용하여 분석하는 작업을 한다고 해 놓고 몇페이지
다른 이야기로 진행했다
이제 UserForm을 활용해 보도록 하자
실은 DashBoard는 대개가 수식으로 연결하여 간단하게 하지만..
욕심을 부려 좀더 확장해 나가도록 하는 것이다
여러분들은 현장상황에 맞추어 어느 정보의 수준까지 만들면 되겠는지
정하고 처리하면 될것이다..꼭 이렇게 만들라는 법은 없는 것이니까
학습차원에서 확장하는 것이다
처음에 만든다고 하였던 UserForm을 너무 딴일을 하다가 다시 잡으니
우노도 헷갈린다..
지금 다시 딜다 보니 허접하다



이럴 때는 다시 만드는 것이 더 빠르다
사람의 생각은 항상 발전지향적으로 가야 하는 것이니까..
다른 방법으로 해 보자..
학습을 위하여 Treeview의 활용으로 하려고 하였으나..데이타가 너무 많다
아무리 콘트롤이 기능이 좋아도 데이타를 소화하지 못하면 허당이다
위의 UserForm을 좀 다르게 구성하였다 아래와 같이



기간을 좀더 융통성있게 하고,
담당자는 현장목록에서 추가적으로 선택을 하도록 하고
UserForm의 콘트롤을 구성할때 항상 주의하여야 하는 것은
어떤 콘트롤의 이벤트가 다른 콘트롤에 어떤 의도적인 영향을
주게 설계를 한다고 했는데..
의도하지 않은 이벤트프로시져가 실행되는 경우가 많고
이것은 초보님들의 골에 지진이 나게 하는 상황이 된다
이럴때는 항상 변수를 사용하여..
어떤 컨트롤에서 어떤 다른 컨트롤에 영향을 주게 되는 경우를
감안하여..현재 하는 작업은 다른 컨트롤에 영향을 주지 마라!!!라는
표시를 변수에 해주면 되는 것이다
결국은 변수를 얼마나 잘 활용하느냐의 문제 인 것이다
위의 경우 목록상자와 바로 밑에 체크박스가 있다
체크박스를 체크하면 해당 목록상자의 전체목록이 선택되게 한다
그런데..전체가 선택된 상태에서 목록중 하나는 선택하지 않게 할때
체크박스의 전체선택상태를 해주어야 논리적으로 맞는 경우가 될 것이다
그러려면 목록상자의 목록을 선택할때 마다 목록이 전체가 선택이 되었는지
확인하는 절차가 필요할 것이고, 하나의 목록이 선택에서
해제되면 체크박스를 체크가 되지 않은 상태로 돌려 주게 된다
이때 그냥 체크박스의 체크를 해제한다면...어떻게 될까???
체크박스의 이벤트가 발생하여 체크가 지워지면 목록의 선택을
모두 해제하게 되었었던 것이다..
그럼 상호 서로 관계를 유지하고 있어서 싸움이 벌어지게 되는 셈이다
돌고, 돌고, 정신없이 쓸데없는 공회전에..엉뚱한 모습으로 표현될 것이다
그래서 목록상자에서 체크박스의 체크상태를 결정할때는..
체크박스의 이벤트가 발생하지 않게 제어하여야 하는 것이다

***[LOG-IN]***

이제 사용자가 분석하고 싶은데로 선택을 하게 한후 보고서 버튼을 크릭하면
보고서가 만들어지게 하면 되겠다
만들기전에 아차..아쉬운 것이 있다
현장목록을 선택할때, 여러 현장을 선택하면 담당자 목록은
필요없겠지만, 하나의 현장만 선택하였을때는
해당 현장의 담당자를 선택하게 해주는 것이 좋겠다
아래의 그림과 같이 수정하고..수정한 화일을 다운 받아서



해당 콘트롤의 코드를 살펴 보시는 것이
차근,차근 하나씩 해보는 기회가 될 것 같다

***[LOG-IN]***