메뉴 건너뛰기

SAP 한국 커뮤니티

주민번호 체크

임선미 2007.10.23 10:38 조회 수 : 4795 추천:11

적당히 펑션으로 생성하셔서 사용해보세요. 기본적인 주민번호체크 루틴입니다.

*"----------------------------------------------------------------------
*"*"로컬인터페이스:
*" IMPORTING
*" VALUE(INPUT)
*" EXPORTING
*" VALUE(OUTPUT)
*"----------------------------------------------------------------------
DATA: N1 TYPE I,
N2 TYPE I,
N3 TYPE I,
N4 TYPE I,
N5 TYPE I,
N6 TYPE I,
N7 TYPE I,
N8 TYPE I,
N9 TYPE I,
N10 TYPE I,
N11 TYPE I,
N12 TYPE I,
N13 TYPE I,
LEN TYPE P,
VAL(14) TYPE C,
RESULT TYPE I.

OUTPUT = 'ERROR'.
LEN = STRLEN( INPUT ).
IF LEN <> 13 AND ( LEN <> 14 ).
EXIT.
ENDIF.
VAL = INPUT.
IF VAL+6(1) = '-'.
VAL+6 = VAL+7.
ENDIF.
IF VAL+0(1) < '0' OR ( VAL+0(1) > '9' ).
EXIT.
ENDIF.
IF VAL+1(1) < '0' OR ( VAL+1(1) > '9' ).
EXIT.
ENDIF.
IF VAL+2(1) < '0' OR ( VAL+2(1) > '9' ).
EXIT.
ENDIF.
IF VAL+3(1) < '0' OR ( VAL+3(1) > '9' ).
EXIT.
ENDIF.
IF VAL+4(1) < '0' OR ( VAL+4(1) > '9' ).
EXIT.
ENDIF.
IF VAL+5(1) < '0' OR ( VAL+5(1) > '9' ).
EXIT.
ENDIF.
IF VAL+6(1) < '0' OR ( VAL+6(1) > '9' ).
EXIT.
ENDIF.
IF VAL+7(1) < '0' OR ( VAL+7(1) > '9' ).
EXIT.
ENDIF.
IF VAL+8(1) < '0' OR ( VAL+8(1) > '9' ).
EXIT.
ENDIF.
IF VAL+9(1) < '0' OR ( VAL+9(1) > '9' ).
EXIT.
ENDIF.
IF VAL+10(1) < '0' OR ( VAL+10(1) > '9' ).
EXIT.
ENDIF.
IF VAL+11(1) < '0' OR ( VAL+11(1) > '9' ).
EXIT.
ENDIF.
IF VAL+12(1) < '0' OR ( VAL+12(1) > '9' ).
EXIT.
ENDIF.

N1 = VAL+0(1).
N2 = VAL+1(1).
N3 = VAL+2(1).
N4 = VAL+3(1).
N5 = VAL+4(1).
N6 = VAL+5(1).
N7 = VAL+6(1).
N8 = VAL+7(1).
N9 = VAL+8(1).
N10 = VAL+9(1).
N11 = VAL+10(1).
N12 = VAL+11(1).
N13 = VAL+12(1).
RESULT = N1 * 2 + N2 * 3 + N3 * 4 + N4 * 5 + N5 * 6 + N6 * 7 + N7 * 8
+ N8 * 9 + N9 * 2 + N10 * 3 + N11 * 4 + N12 * 5.
RESULT = RESULT MOD 11.
RESULT = 11 - RESULT.
RESULT = RESULT MOD 10.
IF RESULT = N13.
OUTPUT = INPUT.
ENDIF.
번호 제목 글쓴이 날짜 조회 수
327 조회조건 동적으로 보이기 [5] 신종철™ 2007.08.20 4771
326 SAP API 제공 사이트 [1] sapjoy 2021.06.08 4771
325 Five Different "User Types" D.Y.Kim 2007.07.20 4779
324 ALV 중간 집계 하기 [3] 신종철 2007.08.10 4780
323 alv 메뉴만들기.. [9] 버즈즈 2008.01.04 4780
322 4.6에서 ALV 필드 변경 안될때 버퍼 지우는 방법 신종철 2007.08.10 4781
» 주민번호 체크 [3] 임선미 2007.10.23 4795
320 ALV에서 현재 선택된 ROW 반환하기 명신용 2007.04.03 4799
319 스크린에서 리스트 박스의 값을 동적으로 생성하는 tip [1] sapjoy 2007.11.30 4805
318 프로그램 tip활용문서 [11] file 가보자 2007.04.12 4817
317 백그라운드로 프로그램 실행하기 [5] file 아밥뽀 2014.09.21 4821
316 BAPI_MESSAGE_GETDETAIL 작업결과에 대한 메세지는 이렇게도 보여줄수 있겠군요 [1] 노름마치 2007.12.10 4822
315 Implementing BADI for the transactions VL02 & MM02 [4] file 노름마치 2009.07.10 4840
314 CHECK - special for reports with logical databases [5] sapjoy 2006.12.02 4846
313 만약에 스탠다드 테이블을 update 하는 경우라면 다음과 같이... [3] sapjoy 2006.12.12 4858
312 WIN XP SP2에서 SAP SHOW NOTES 보이게 하기 [1] Wise 멘토 2008.11.25 4859
311 한방에 로그오프하기 [9] 김지성 2009.01.02 4864
310 [TIP] (기초) 화면에 Sap Key 값이 안보일때 해결방안 [3] file 촌놈악마 2010.06.01 4877
309 기안문내용 암호화되있죠?? 그거 가져오려면 "Read_Text" [2] file 양키 2009.08.14 4890
308 ABAP/4 Optimization Techniques [1] sapjoy 2007.06.30 4894