반응형

출처: http://chrisalbon.com/python/pandas_join_merge_dataframe.html

 

Pandas에서 두 Dataframe을 합치기 위해서는 

 

pd.merge(df1, df2, on="user_name", how="inner")

 

사용해보니 SQL에 inner join과 같아서 좋음 

 

반응형
반응형

참고: http://blog.naver.com/PostView.nhn?blogId=agapeuni&logNo=60114548468&parentCategoryNo=375&viewDate=&currentPage=1&listtype=0

http://stackoverflow.com/questions/11440128/jquery-check-if-checkbox-is-not-checked

 

http://lng1982.tistory.com/80

 

//전체선택

function fn_checkAll() {

if($("#psninfAgrYn").val() == "Y") {

$("input[name=psninfAgrYnSub]:checkbox").each(function(){

$(this).attr("checked", false);

});

$("#psninfAgrYn").val("");

$("#psninfAgrYn").attr("checked", false);

} else {

$("input[name=psninfAgrYnSub]:checkbox").each(function(){

$(this).attr("checked", true);

});

$("#psninfAgrYn").val("Y");

$("#psninfAgrYn").attr("checked", true);

 

}

}

 

//선택확인

function fn_checkCnt() {

var chkSubCnt = $("input[name=psninfAgrYnSub]").length;

var chkSubCntChecked = $("input[name=psninfAgrYnSub]:checked").length;

 

if(chkSubCnt == chkSubCntChecked) {

$("#psninfAgrYn").val("Y");

$("#psninfAgrYn").attr("checked", true);

} else {

$("#psninfAgrYn").val("");

$("#psninfAgrYn").attr("checked", false);

 

}

}

 

//화면구성

<form:checkbox path="psninfAgrYn" id="psninfAgrYn" value="" onclick="fn_checkAll();/>전체선택

<input type="checkbox" name="psninfAgrYnSub" onclick="fn_checkCnt(); />개인정보 항목에 동의

<input type="checkbox" name="psninfAgrYnSub" onclick="fn_checkCnt(); />이용목적 항목에 동의

<input type="checkbox" name="psninfAgrYnSub" onclick="fn_checkCnt(); />이용기간 항목에 동의

 

 

반응형
반응형

출처: http://stackoverflow.com/questions/14784705/dynamically-changing-a-jquery-validate-rule-when-a-checkbox-is-checked

http://stackoverflow.com/questions/11023499/jquery-validation-adding-removing-rules-dynamically-based-on-dropdown-selectio

 

validation 규칙을 동적으로 부여하고 싶을 때 사용

구현하고자 하는 것은 데이터베이스에 저장된 비밀번호와 같은 값이면 validation규칙을 적용하지 않고,

저장된 비밀번호와 다른 값이면 validation 규칙을 적용하는 것이다.

 

$("userPw").bind("change", function(){
  //비밀번호 변경되지 않음
  if($("#userPw").val() == $("#userDbPw").val()) {
    $("#userPw").rules('remove', {
                        ragelength:[9, 20]
                        ,checkUserPwNum:true
     });
  } else {
      //변경된 경우
      $("#userPw").rules('add', {
                      ragelength:[9, 20]
                      ,checkUserPwNum:true
      });
  }
});
반응형
반응형

출처: http://mikyung.net/31

 

DBMS별 날짜 포멧
Oracle - MS SQL - DB2 UDB 의 서로 다른 날짜 형식을 맞추기위한 SQL문

--------------------------------------------------------------------------------
DBMS 별 시간, 날짜 조회 쿼리
--------------------------------------------------------------------------------
1. Oracle
- 날짜+시분초 까지 조회가능
select sysdate from dual;

- 날짜+밀리초+시간존 까지 조회
select current_timestamp from dual;

2. MS SQL
- 날짜 + 밀리초 단위까지 조회가능
select getdate();

3. DB2 UDB
- 날짜+밀리초까지 조회 가능
select current timestamp from sysibm.sysdummy1;
- 날짜만 조회
select current date from sysibm.sysdummy1;
- 밀리초 단위의 시간만 조회
select current time from sysibm.sysdummy1;

--------------------------------------------------------------------------------
DBMS 별 default date format
--------------------------------------------------------------------------------
1. Oracle
한글 : YYYY/MM/DD                       영어 : DD-MON-YYYY

2. MS SQL
한글 :  YYYY/MM/DD HH:MI:SS      영어 : MM-DD-YYYY HH:MI:SS

3. DB2 UDB
TIMESTAMP 타입 : YYYY-MM-DD-HH:MI:SS.MMMMMM
DATE 타입 : YYYY-MM-DD

TIME 타입 : HH:MI:SS.MMMMMM

--------------------------------------------------------------------------------
날짜 포맷 변환
--------------------------------------------------------------------------------
[ 형식 : 'YYYY.MM.DD' ]
1. Oracle : TO_CHAR(date_exp, 'YYYY.MM.DD')
2. MSSQL : CONVERT(VARCHAR, date_exp, 102)
3. DB2 : REPLACE(CHAR(DATE(date_exp),ISO), '-', '.')

[ 형식 : 'HH:MI:SS' ]
1. Oracle : TO_CHAR(date_exp, 'HH:MI:SS')
2. MSSQL : CONVERT(VARCHAR, date_exp, 108)
3. DB2 : CHAR(TIME(date_exp) , JIS )

[ 형식 : 'YYYY/MM/DD' ]
1. Oracle : TO_CHAR(date_exp, 'YYYY/MM/DD')
2. MSSQL : CONVERT(VARCHAR, date_exp, 111)
3. DB2 : REPLACE(CHAR(DATE(date_exp), ISO), '-', '/')

[ 형식 : 'YYYYMMDD' ]
1. Oracle : TO_CHAR(date_exp, 'YYYYMMDD')
2. MSSQL : CONVERT(VARCHAR, date_exp, 112)
3. DB2 : CHAR(DATE(date_exp))

[ 형식 : 'HH24:MI:SS' ]
1. Oracle : TO_CHAR(date_exp, 'HH24:MI:SS')
2. MSSQL : CONVERT(VARCHAR(8), date_exp, 114)
3. DB2 : CHAR(TIME(date_exp))

[ 형식 : 'YYYY.MM.DD HH24:MI' ]
1. Oracle : TO_CHAR(date_exp, 'YYYY.MM.DD HH24:MI')
2. MSSQL : CONVERT(VARCHAR, date_exp, 102) + ' ' + CONVERT(VARCHAR(5), date_exp, 114)
3. DB2 : REPLACE(CHAR(DATE(date_exp), ISO), '-', '.') || CAST( TIME(date_exp) AS CHAR(5))

[ 형식 : 'YYYY/MM/DD HH24:MI:SS' ]
1. Oracle : TO_CHAR(date_exp, 'YYYY/MM/DD HH24:MI:SS')
2. MSSQL : CONVERT(VARCHAR, date_exp, 111) + ' ' + CONVERT(VARCHAR(8), date_exp, 114)
3. DB2 : REPLACE(CHAR(DATE(date_exp), ISO), '-', '/') || CAST( TIME(date_exp))

- http://www.dbguide.net/ 발취

반응형
반응형

참고 및 출처: http://static.springsource.org/spring/previews/validation.html

http://beyondj2ee.tumblr.com/post/14509015383/spring-3-0-validation-part1

http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:ptl:validation

http://www.roseindia.net/tutorial/spring/spring3/web/spring-3-mvc-validation-example.html

http://gyumee.egloos.com/3056225

 

기타: http://forum.springsource.org/showthread.php?100397-The-prefix-mvc-for-element-mvc-annotation-driven-is-notbound

 

 

스프링에서 validation사용하기

 

스프링에서 validation을 사용하는 경우는 값을 저장하는 경우 그값의 필수체크, 길이체크, 패턴체크를 하기위해서 사용하는 것 같다. 물론 이같은 경우는 내가 사용하기 위해서 한 것이다.

 

1.

maven을 사용한다면 maven의 pom.xml을 이용하여 validation관련 jar파일을 dependency에 추가해준다.

 

  <dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId>
   <version>1.0.0.GA</version>
  </dependency>

 

  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-validator</artifactId>
   <version>4.2.0.Final</version>
  </dependency>

 

2.

그리고WebContent/WEB-INF에 위치한 dispatcher-servlet.xml파일을 열어서

  <!-- Invokes Spring MVC @Controller methods -->
  <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
      <property name="webBindingInitializer">
          <!-- Configures Spring MVC DataBinder instances -->
          <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
              <property name="validator" ref="validator" />
          </bean>
      </property>
  </bean>

 

  <!-- Creates the JSR-303 Validator -->
  <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />

 

를 추가해준다.

 

사실 다른 곳에서는 <mvc:annotation-driven /> 한줄을 추가해 주면 된다고 하지만 그럴경우

안되는 항목들이 있어 위와같이 하였다.

 

3. Controller단에서는

public String saveUserInfo(@Valid @ModelAttribute("personVo") PersonVO personVO
        ,BindingResult bindingResult, Model model
        ,SessionStatus status) {

~~~~~~~~~~~

}

 

@Valid를 써줘서 saveUserInfo 함수의 파라미터 personVO의 validation을 체크하겠다는 것을 기술한다. 

 

4.

그다음 기존 아래와 같은 vo에서

public class PersonVO {
    private String asgmtNm;
    private int age;
}

validation체크할 것에 대한 정보를 입력한다.

public class PersonVO {

    @NotNull
    @Max(64)
    private String asgmtNm;
   
    @Min(0)
    private int age;

}
여기서 asgmtNm은 널값이면 안되고, 최대 64바이트/ age인 경우 0보다 무조건 커야된다는 조건을 입력하였다.

사실 @NotNull(message="")를 사용하여 notnull인 경우 출력될 메시지를 직접 입력해줘도 되고,

WebContent/WEB-INF에 messages.properties파일을 만들어서 사용해도 된다.

 

messgaes.properties파일에서 메시지를 기술하는 방법은 아래와 같다.

 

NotEmpty.person.asgmtNm=

asgmtNm must not be blank.

 

(validation규칙.폼이름.폼에서항목 = 메시지)

 

5. 화면단에서는

<form:form commandName="personVO" name="person" id="person" method="post">

<form:input id="asgmtNm" path="asgmtNm" /><form:errors path="asgmtNm"/>

</form:form>

 

form:form을 사용해서 vo와 input항목을 매핑해 주도록 한다.

 

 

 

결과) 그렇게 해주고 나면 나중에 @NotNull, @Max(64)에 해당하는 항목이 나오면

form:errors에 그에해당하는 메시지가 출력된다.

 

 

 

반응형
반응형

 

출처: http://www.mungchung.com/xe/index.php?mid=protip&category=4482&document_srl=5306

 

이클립스에서 실행중에 Java compiler level does not match the version of the installed Java project facet 와 같은 메시지를 만났다면

 

해당 프로젝트를 선택하고 마우스 오른쪽을 누른다음에

project facets를 선택하여

거기에 있는 java 버전을 변경하여 준다.

반응형
반응형

var dsName = ds_NewUserAccount.ID+"_Temp";
   Create("Dataset", dsName);

   var dsObj  = object(dsName);

   for (var iCol = 0; iCol < ds_NewUserAccount.colcount; iCol++) {
    dsObj.AddColumn(ds_NewUserAccount.GetColID(ds_NewUserAccount.GetColIDXbyorder(iCol)),
        ds_NewUserAccount.GetColType(ds_NewUserAccount.GetColID(ds_NewUserAccount.GetColIDXbyorder(iCol))));
   }

   var idx = dsObj.AddRow();
   dsObj.CopyRow(idx, ds_NewUserAccount, iCurrow);

반응형
반응형

1. 동적쿼리는 /rp인 경우에 가능하다. (/rv인 경우에 사용하는 방법은 안될 것 같다.. 정확치는 않음)

화면에서 보낼 파라미터를 아래와 같이 한다.
/rp [10][] /rv 사원명[박명수] 사원주소[경기도]

그럼 쿼리에서 사용할때는
WHERE 1=1
#10# AND 사원명 = ':(사원명)'
#01# AND 사원주소 =   ':(사원주소)'

여기서 ##이 동적쿼리를 의미하는 것인데,
1은 파라미터 값이 있는경우
0은 파라미터 값이 NULL(없는)경우
X는 파라미터 값에 상관없는 경우

로 ##안에 순차적으로 들어오는 /rp에 맞춰서 값이 있는경우는 1, 값이 없는 경우는 0으로
파라미터 갯수만큼 ##안에 채우면 동적 쿼리가 완성된다.

그러므로 #10#은 첫번째 파라미터값이 있고, 두번째 파라미터 값이 없는 경우를(첫번째 파라미터가 널인지만 체크)
#01#은 첫번째 파라미터 값은 없고, 두번째 파라미터 값이 있는경우(두번째 파라미터 값이 널인지만 체크)를 의미하는 것이다.




반응형
반응형



우선 레벨을 다 펼쳤다가 접는 작업이므로 redraw 해주는 작업은 필수이다.
안한다면 트리가 좌라락 움직이는 것이 보게 될것이다.

function fn_AfterSearchTreeView()
{
 tab_userInfo.tab_userAthrt.tv_userAthrt.Redraw = false;
 for (var iRow = 0; iRow < ds_userAthrt.GetRowCount(); iRow++){
  if (ds_userAthrt.GetColumn(iRow, "menuLvlSeq") == 1){
   tab_userInfo.tab_userAthrt.tv_userAthrt.ExpandItem(iRow, true);
  } else {
   tab_userInfo.tab_userAthrt.tv_userAthrt.ExpandItem(iRow, false);
  }
 }
 tab_userInfo.tab_userAthrt.tv_userAthrt.Redraw = true; 
}
반응형
반응형
출처: http://3030.tistory.com/48

-2085617663:Load Library에 실패하였습니다. 해당 dll이 존재하는지 확인하십시요.
[ExtCommonApi]

해결방법:
: 해당 키값에 설정된 ComponentPath 폴더에 ExtCommonApi.dll 파일을 복사한다. 
1) default ComponentPath 폴더에 ExtCommonApi.dll 파일을 복사
2) 해당프로젝트명의 키값에 설정된 ComponentPath에 ExtCommonApi.dll 파일을 복사
(해당 프로젝트명과 사이트 접속시 사용하는 key값이 동일한 경우는 해당 사이트에서 지정한 key값의 ComponentPath를 참조)


* PID 설치시 참조하는 default 컴포넌트 폴더(windows 7 기준)
C:\Users\사용자계정명\AppData\Local\TOBESOFT\MiPlatform320U\Component
* 레지스트리의 ComponentPath 위치 
HKEY_CURRENT_USER\Software\AppDataLow\SoftWare\TOBESOFT\Miplatform320U 
 

* PID에서 ExtApi에 등록할때는 ExtCommonApi로 이름을 등록해 야 합니다. 
ExtCommonApiU (X)
ExtCommonApi(O)
반응형

+ Recent posts