메뉴 건너뛰기

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 4776
326 Five Different "User Types" D.Y.Kim 2007.07.20 4779
325 alv 메뉴만들기.. [9] 버즈즈 2008.01.04 4780
324 ALV 중간 집계 하기 [3] 신종철 2007.08.10 4782
323 4.6에서 ALV 필드 변경 안될때 버퍼 지우는 방법 신종철 2007.08.10 4783
322 SAP API 제공 사이트 [1] sapjoy 2021.06.08 4785
» 주민번호 체크 [3] 임선미 2007.10.23 4795
320 ALV에서 현재 선택된 ROW 반환하기 명신용 2007.04.03 4799
319 스크린에서 리스트 박스의 값을 동적으로 생성하는 tip [1] sapjoy 2007.11.30 4806
318 프로그램 tip활용문서 [11] file 가보자 2007.04.12 4820
317 BAPI_MESSAGE_GETDETAIL 작업결과에 대한 메세지는 이렇게도 보여줄수 있겠군요 [1] 노름마치 2007.12.10 4832
316 Implementing BADI for the transactions VL02 & MM02 [4] file 노름마치 2009.07.10 4841
315 백그라운드로 프로그램 실행하기 [5] file 아밥뽀 2014.09.21 4845
314 CHECK - special for reports with logical databases [5] sapjoy 2006.12.02 4846
313 WIN XP SP2에서 SAP SHOW NOTES 보이게 하기 [1] Wise 멘토 2008.11.25 4860
312 만약에 스탠다드 테이블을 update 하는 경우라면 다음과 같이... [3] sapjoy 2006.12.12 4861
311 한방에 로그오프하기 [9] 김지성 2009.01.02 4864
310 [TIP] (기초) 화면에 Sap Key 값이 안보일때 해결방안 [3] file 촌놈악마 2010.06.01 4878
309 기안문내용 암호화되있죠?? 그거 가져오려면 "Read_Text" [2] file 양키 2009.08.14 4891
308 ABAP/4 Optimization Techniques [1] sapjoy 2007.06.30 4894