블로그 이미지
숏퐁숑

카테고리

분류 전체보기 (70)
게임기획자 준비 (18)
게임기획 참고자료 (7)
프로그램 (33)
WAS (5)
ORACLE (19)
엑스플랫폼 (5)
JAVA (1)
Spring (1)
Lua (2)
Android (0)
숨쉬기 활동 (10)
Total
Today
Yesterday

달력

« » 2024.10
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 31

공지사항

태그목록

최근에 올라온 글

현업으로 시스템 관련 변경 요청사항들이 계속 들어온다.  패스워드 변경 관련 처리를 해주다가 다음에 또 쓰게 될 것같아 정리 해보려 한다.

 

요청 1 :  패스워드 표시할 때 앞의 두자리는 보이고 나머지는 보안을 위해 *로 표시해달라고 한다. 어떻게 처리하면 될까? 단 12자리 이상 넘어가지 않도록 하고 싶다.

 

mask를 사용해서 간단하게  처리할 수 있다.

입력된 문자 일부를 Password로 처리하여 '*'의 형태로 출력하고자 할때에는 Password로 출력하고자 하는 영역을 { } 로

지정하면 된다.

mask="@@{@@@@@@@@@} 요렇게 처리해주면 {} 안에 들어가는  password는 '*'로 표시되게 된다.

 

소스 코드

  <Form id="test" classname="test" inheritanceid="" position="absolute 0 0 667 364" titletext="New Form">
    <Layouts>
      <Layout>
        <MaskEdit id="MaskEdit01" taborder="0" position2="absolute l:60 w:230 t:50 h:24" positiontype="position2"

                 mask="@@{@@@@@@@@@}" type="string" maskchar=" "/>
      </Layout>
    </Layouts>
  </Form>

 

요청 2 :  보안을 위해 패스워드 저장시 특수문자를 꼭 넣도록 하고 싶을때 어떻게 처리해주면 될까?


 var strVal = Edit00.text; // abc12345입력시
 //특수문자 정의_간단히 10가지만 정의해 봄.  
 var rtn1 = strVal.indexOf("!");//rtn  값은 !가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn2 = strVal.indexOf("@");//rtn 값은 @가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn3 = strVal.indexOf("#");//rtn 값은 #가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn4 = strVal.indexOf("$");//rtn 값은$가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn5 = strVal.indexOf("%");//rtn 값은 %가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn6 = strVal.indexOf("^");//rtn 값은 ^가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn7 = strVal.indexOf("&");//rtn 값은 &가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn8 = strVal.indexOf("*");//rtn 값은 *가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn9= strVal.indexOf("(");//rtn 값은 (가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 var rtn10 = strVal.indexOf(")");//rtn 값은 )가 존재하지 않으면 -1 존재하면 4 값을 리턴한다.
 

var check =  rtn1 + rtn2 + rtn3 + rtn4 + rtn5 + rtn6 + rtn7 + rtn8 + rtn9 + rtn10;
  if(check  == -10)
 {
    alert("패스워드에 특수 문자를 넣어주세요.");

    return;
 }

Posted by 숏퐁숑
, |

알면 간단하게 해결 되는 TextArea에 대한 설정 방법중,

textArea에서 스크롤바를 최상단, 최하단으로 보내는 방법이다.

var maxVal= TextArea00.vscrollbar.max;
TextArea00.vscrollbar.pos = maxVal;

var minVal= TextArea00.vscrollbar.min;
TextArea00.vscrollbar.pos = minVal;

 

간단하게 설정이 가능하지만 모르면 모르는 기능이다.

Posted by 숏퐁숑
, |

엑스플랫폼... 모든 프로퍼티와 기능을 다 알면 무지 좋은 툴이지만 모르고 사용하면 시간만 잡아 먹을 수 있다는 단점을 같이 가지고 있다. 소계를 구하는거.. 물론 쿼리에서 해결해서 결과를 뿌려 줄수도 있지만 그리드에서 간단하게 해결할 수 있을 것 같아서 해보았다가 잘 몰라서 시간을 많이 빼았겼기에.. 이렇게 정리하고 넘어가려 한다.

 

아주 간단하다.

 

1. 담아온 데이터 셋(DS_XXXX)의 PROPERIES 속성중에 keystring이라는 속성이 있는데 거기에 그룹으로 묶을  컬럼명을 넣어준다.

이때 중요한 것은 데이터 셋을 작성할 때 해당 소계할 컬럼의 TYPE은 INT 형으로 되어 있어야 한다.?

 

2. 그리드를 더블 클릭해서 속성을 보면 Binding에 subsumtext 라는 속성이 있는데 그룹 컬럼을 선택한 후 속성안에 소계라고 적어주고 해당 더할 속성의 subsumtext 에는 다음과 같이 적어주면 된다.?

getSum('toNumber(더해줄 컬럼명)',getGroupRangeStart(currow), getGroupRangeStart(currow)+getGroupRangeCount(currow))

 

그럼 그룹별로 소계를 구하는 그리드 작업은 끝!!

Posted by 숏퐁숑
, |

UI/UX...  이제 프로그래밍만 잘한다고 사용자가 원하는 시스템을 만들 수 있는 것이 아니다. 당연한 애기 이겠지만 이젠 디자인 적인 부분을 간과 할 수 없게 되었다. 사용자가 원하는 화면, 사용자 정의 화면을 개발하기 위해 우리 회사는 2012년 엑스플랫폼이란 것을 도입하였다. 물론 개발자 편의성도 고려해서다.

(예전에 HTML, JSP로 코딩 할때보다 생산성이 2배 향상되어진 것 같다).

여튼 엑스플렛폼은 개발 편의성이 좋아진 것은 분명하지만 여러 기능들을 숙지 하고 있을때나 가능한 애기이다. 정말 다양한 기능들을 제공하기 때문에 가능한 많은 기능과 프로퍼티들을 알고 있으면 좋을 것 같다.

 

간단한 기능 하나!

 

어떻게 입력되어지는 텍스트의 값을 모두 대문자로 입력되도록 할 수 있을까?

 

방법은 간단하다. editfilter 라는 프로퍼티만 알면 해결 끝!!

 

Grid Contents Editor에서 해당 셀을 클릭한 후 프로퍼티 중

editfilter를 upper로 선택하면 대문자로만 입력되어지도록 할 수있다!!

Posted by 숏퐁숑
, |

엑스플랫폼으로 PC의 시간을 보여달라는 요청을 처리해 준 후 년/월/일/시/분/초를 자바 스크립트로 구현하는 방법을 정리해 보았다.

 

/*******************************************************************************
 ★ 설명
    해당 PC의 오늘 날짜 + 시간을 가져온다.
 ★ parameter
 ★ return
    - 성공 = yyyyMMddhhmiss형태의 오늘 날짜 ( 예 : "20121122223010" )
    - 실패 = 없음
******************************************************************************/
function TodayTime()
{
 var strToday = "";
 var objDate = new Date();
 var sToday  = objDate.getFullYear().toString();
 sToday += Right("0" + (objDate.getMonth() + 1), 2);
 sToday += Right("0" + objDate.getDate(), 2);
 sToday += Right("0" + objDate.getHours(), 2);
 sToday += Right("0" + objDate.getMinutes(), 2);
 sToday += Right("0" + objDate.getSeconds(), 2);
 //strToday += objDate.getMilliseconds();
 return sToday;

 

/*******************************************************************************
 ★ 설명
    문자열의 오른쪽에서 nSize만큼의 문자열을 가져온다.
 ★ Parameter
    1. sOrg   : 원래 문자열( 예 : "aaBBbbcc" )
    2. nSize  : 가져올문자열 길이 ( 예 : 2 )
 ★ return
    - 성공 = 오른쪽에서 nSize만큼의 문자열 ( 예 : "cc" )
    - 실패 = ""
 ★ 주의사항
    sOrg의 길이가 nSize보다 작은경우는 sOrg가 Return된다.
    ( 예 : sOrg="a", nSize=2 ==> return = "a" )
 ******************************************************************************/
function Right(sOrg, nSize)
{
 if( IsNull(sOrg) || IsNull(nSize) )  return "";
 
 if( sOrg.length < nSize )
  return sOrg;
 else
  return sOrg.substr(sOrg.length-nSize, nSize);
}

////////////////////////////////////////////////////////////////////////////////
// String & Number Start
////////////////////////////////////////////////////////////////////////////////
/*******************************************************************************
 ★ 설명
    입력값이 null에 해당하는 경우 모두를 한번에 체크한다.
 ★ Parameter
    1. sValue : 체크할 문자열( 예 : null 또는 undefined 또는 "" 또는 "abc" )
 ★ return
    - sValue가 undefined, null, NaN, "", Array.length = 0인 경우 = true
    - 이외의 경우 = false
******************************************************************************/
function IsNull(sValue)
{
 if( new String(sValue).valueOf() == "undefined")
  return true;
 if( sValue == null )
  return true;
 if( ("x"+sValue == "xNaN") && ( new String(sValue.length).valueOf() == "undefined" ) )
  return true;
 if( sValue.length == 0 )
  return true;
 return false;
}

 

// 시계처리 함수
function Clock()
{
 date_str = TodayTime();
 yy = date_str.substr(0,4);  //년
 mm = date_str.substr(4,2);  //월
 dd = date_str.substr(6,2);  //요일
 hh = date_str.substr(8,2);  //시간
 mi = date_str.substr(10,2); //분
 ss = date_str.substr(12,2); //초
 return hh + " : " + mi + " : " + ss;
}

 

function comp_timer_ontimer(obj:Form, e:TimerEventInfo)
{
 Static_clock.text = Clock();   //한국 시간
}

 

요렇게 추가해 놓으면 일단 작업은 끝!!

그리고 중요한 부분은 엑스플랫폼의 Source 부분을 열어서 밑에 빨간부분처럼 수정해주어야 한다.

<Form id="work" classname="main" inheritanceid="" position="absolute 0 0 1012 617" titletext="Work Frame" scrollbars="none" onload="work_onload" onsize="work_onsize" ontimer="comp_timer_ontimer" visible="true" style="background:darkgray;">

 

마지막으로 화면이 실행되자마자 실행되게 하기위해 onload 부분에

Static_clock.text = Clock(); // 시계표시용 Static Component에 시간표시
this.setTimer(1,1000);  // Timer구동 <= 타이머를 1초간격으로 설정해주면 위에 ontimer에 설정되어있는 함수를 호출해준다. 그럼 실제 시간이 초당 흘러가는 효과를 나타낼 수 있다!

 

한국 시간은 이렇게 구해왔는데... 워싱턴의 시간과 베이징의 시간도 표현하고 싶어서~~

 

function Clock() {
  var arg = arguments;
  var time = new Date();
 
 if(arg[1])
 time.setHours(time.getHours()+arg[1]);
 
 var yy = time.getFullYear();
  var mm = time.getMonth() + 1;
  var dd = time.getDate();
 
 var minute = time.getMinutes();
  var second = time.getSeconds();
  var hour = time.getHours();
 
 if(hour<=12) {
   if(hour<10) hour = "AM 0" + hour;
   else hour = "AM " + hour;
  }
  else hour = "PM " + (hour-12);
  if(mm<10) mm = "0" + mm;
  if(dd<10) dd = "0" + dd;
  if(minute<10) minute = "0" + minute;
  if(second<10) second = "0" + second;
 
  return yy +"년 "+ mm +"월 "+ dd +"일 "+ hour +":"+ minute +":"+ second;
 }

 

요렇게 만들면 모든 나라의 날짜와 시차를 구할 수 있다.

 

호출 할때는  clock('usa',-14) 요렇게 호출하면 미국과 14시간 차이남으로 미국의 현재 시간을 불러올 수 있다. clock('bejing',1) 요렇게 하면 베이징과의 시차가 1시간 이니까 베이징의 현재시간을 나타낼 수 있다.

Posted by 숏퐁숑
, |

최근에 달린 댓글

글 보관함