메뉴 건너뛰기

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