Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Photo
- Lotus Script
- 커피
- 신혼여행
- 에쿠스 콘솔박스
- DICTIONARY
- linkhard
- 사진
- minipresso
- SQL
- ODBC
- JavaScript
- 노출
- 로터스 노츠
- 용어정리
- Lotus Notes
- 사진용어
- 자작 콘솔
- Nas
- 자바스크립트
- 뉴칼레도니아
- Attribute
- 링크하드
- 사진강좌
- glossary
- AS
- ASP.NET
- domino
- C#
- generic
Archives
- Today
- Total
바라기의 이야기
선택목록 필드를 읽기모드에서 깔끔하게 보이도록 하는 코드 본문
다 알지도 모르겠지만...
라디오버튼, 확인란 등...
CS에서 저장을해서 읽기 모드로 볼 경우, 선택되어진 값만 보이도록 처리하기 위해서 어떻게 표현을 하시는지요.( 물론 있는 그대로를 보여줄 경우는 해당 필드만 놔두면 되겠지만요... ^^ )
가정1. 라디오버튼을 사용.
전제1. 읽기 모드시엔 사용자가 선택한 값만 보이도록 함.
전제2. 내부코드에서 필드값을 코드화하여 사용함.
전제3. 해당 값이 추가 변경될 수 있으므로 한곳에서 관리를 해야함.
--------------------------------------------------------------------------
물론 방법은 여러가지 입니다.... 그중 한가지에 대해서 기록을 합니다.
목록 선택 필드(Options 필드)에 사용자는 기아, 현대, 삼성, 대우, 쌍용, 기타 중 하나를 선택할 수 있다고 생각을 해보죠.
그럼 Options 필드의 종류를 "라디오 단추"로 선택하고, 선택목록값에 "기아", "현대", "삼성", "대우", "쌍용", "기타"를 입력해 놓으실 겁니다.[가정1]
그러나 만약 내부 프로그램에서 해당 값을 사용하여 먼가를 처리하는 코드가 있다라고 하면??[전제2]
한글을 사용하는 것보다는 특정 코드값으로 처리를 해야할 경우가 발생됩니다.
이런경우 Options 필드의 선택목록값을 파이프(|)를 이용하여 Alias를 지정하죠~ "기아|0", "현대|1", "삼성|2", "대우|3", "쌍용|4", "기타|etc" 처럼요.
물론 Options 필드를 읽기모드에서 보이도록 처리하면 될 수도 있으나, [전제1]의 목적과 [전제3]의 목적을 달성하기 위해 닥질이 필요합니다.
1. Options 필드는 읽기모드시 숨김처리를 합니다.
2. 그 바로 위나 아래에 <계산된 문자열>을 삽입합니다. 코드는 이후에.
3. OptionsList 필드를 양식 맨 상단에 추가합니다.(맨 아래도 상관없구요... ^^)
4. OptionsList 필드는 종류 : 문자열, 표시할때 계산, 다중값 허용, 읽기/편집모드 모두 숨김으로 설정하고 값으로 "기아|0" : "현대|1" : "삼성|2" : "대우|3" : "쌍용|4" : "기타|etc"로 설정합니다.
5. Options 필드의 선택목록값을 수식으로 변경하여 OptionsList를 입력합니다.
자 그럼 마지막으로 2번 항목에서 삽입한 <계산된 문자열>의 수식을 지정해야 합니다.
어떻게 하시겠습니까?
그냥 Options라고 하시면 어떻게 표현되는지 아시죠?
만약 기아를 선택하셨다면?? 0이라 표현이 될겁니다.
[전제1]에 위배되죠...
자~ 그럼...
이 부분의 코드를 기록하기 위해 장황하게... ㅠㅠ
첫번째 단순 무식(?)한 방법
=========================================================================================
result := "";
@For( i := 1 ; i <= @Elements(OptionsList) ; i := i + 1 ;
@If( @Right( @Subset( @Subset( OptionsList ; i ) ; -1 ) ; "|" ) = Options ;
@Set( "result" ; @Left( @Subset( @Subset( OptionsList ; i ) ; -1 ) ; "|" ) ) ;
"" )
);
result
=========================================================================================
R6 부터 수식에도 반복문이 생긴건 아시죠?? ^^
위와 같은 방법으로 할 수 있습니다.
코드는 간단하죠? OptionsList 값을 하나씩 반복하면서 파이프(|)뒤에 값과 Options 값과 일치하는 부분을 찾아서 보여주는 거죰...
확실한 방법일 수 있으나 항목 수 만큼 반복해야 하니깐 왠지 모르게 다른 방법이 없을까 찾아보게 됩니다....
두번째 조금은 무모할지 모르나 간단하고 빠르게 목적을 달성할 수 있는 방법입니다.
=========================================================================================
res := @Implode( OptionsList ; "^^^" );
result := @Explode( @Word( res ; "|" + Options + "^^^" ; 1 ) ; "^^^" );
@Subset( result ; -1 )
=========================================================================================
코드 줄이 짧아졌죠...
간단하게 설명하자면. OptionsList 값을 "^^^"로 합칩니다.
그리고 "|" + Options + "^^^"값으로 @Word 함수를 호출하면... 맨끝에 원하는 값이 위치하게 됩니다.
다시 "^^^"로 Explode 처리하면~~~ 배열로 잡히면서 맨 끝에 값이 원하는 값...
루프 돌리는 것보다 속도가 훨씬 빠를것이라 예상이 되네요...
이 한 코드로 속도 향상을 기대하는건 쩜 힘들지만... 이런 코드덜이 쌓이면?? ^^
'Develop > Domino' 카테고리의 다른 글
ODBC를 이용한 Select 쿼리 에이전트 원형 I (1) | 2010.03.19 |
---|---|
다중 웹서버 구성시 리프레쉬 문제 (0) | 2010.03.16 |
에이전트 개발 표준 (0) | 2010.03.16 |
Back-End로 문서 삭제를... (0) | 2010.03.16 |
웹 개발시 오류처리 (0) | 2010.03.16 |