메뉴 건너뛰기

SAP 한국 커뮤니티

주민번호 체크

임선미 2007.10.23 10:38 조회 수 : 4798 추천: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.
번호 제목 글쓴이 날짜 조회 수
187 프로그램 내에서 문자열 찾기 [3] sapjoy 2007.03.06 6242
186 NATIVE SQL의 INSERT 문 [4] sapjoy 2007.11.13 6261
185 Access predicates and Filter predicates sapjoy 2012.03.14 6291
184 SAP 테이블 구조도 [8] file 죽돌이 2009.01.28 6306
183 BAPI_MATERIAL_AVAILABILITY 가용성체크시에 사용하세요. [1] 노름마치 2007.12.10 6321
182 Automated Note Search & Customer Code Detection 소주와 막걸리 2011.04.27 6352
181 TRANSPORTING [9] ecbase 2006.12.02 6377
180 업로드할 엑셀 파일을 TXT 파일(탭으로 분리된)로 내리지 않고 엑셀파일로 꿀단지 2011.10.11 6381
179 Internal Table Read performance [4] file sapjoy 2012.03.12 6433
178 add 구문 [3] sapjoy 2006.12.02 6436
177 특정프로그램 내에서 프린터로 직접 프린트하는 함수 [8] 미쓰조 2010.03.17 6453
176 SAP의 On-line Program에서 Double Click Event 잡는 법 [8] Delight 2008.04.30 6473
175 (-) 부호 값 앞에 붙이기 [6] 권장원 2009.11.06 6476
174 Nested loops Tunning [3] sapjoy 2012.03.13 6517
173 [Function]금액(숫자)를 영문철자로 바꿔보자 [3] file 양키 2010.09.28 6551
172 테이블 구조 다운로드 DD03L 테이블 조회 [1] sapjoy 2006.12.12 6557
171 SAP Icon 출력 [3] 홍성현 2007.08.09 6587
170 [Tip] Explorer 8.0 & SAP GUI 7.2 fancky 2011.05.19 6603
169 <img src=d.gif>[Function]Edit 팝업창을 뛰워보자[추천:e-abap] [19] file 양키 2010.09.28 6607
168 Buffer Bypass 방법 [4] sapjoy 2010.05.20 6628