문제
나는 어떻게 얻을 줄 수의 내부 테이블?내가 추측할 수 있는 루프에 있습니다.지가 있어야겠군요 방법입니다.
내가 알지 못하는 경우 그것은 차이가 있지만 코드에서 실행해야 합 4.6c 버전입니다.
해결책
다음을 사용할 수 있습니다 기능:
DESCRIBE TABLE <itab-Name> LINES <variable>
호출 한 후에는 변수의 번호가 포함 행의 내부 테이블.
다른 팁
도 내에서 기능이 작업:
variable = lines( itab_name ).
처럼"pure"ABAP 구문 설명 IronGoofy, 함수는"선()"씁니다 숫자의 테이블 itab_name 로 변수입니다.
옆에 추천
DESCRIBE TABLE <itab-Name> LINES <variable>
또한 변수를 시스템 SY-TFILL
.
에서 문서:
후 문을 설명하는 테이블,루프에서 읽고 표의 행의 수 액세스 내부 테이블.
예제 스크립트:
REPORT ytest.
DATA pf_exclude TYPE TABLE OF sy-ucomm WITH HEADER LINE.
START-OF-SELECTION.
APPEND '1' TO pf_exclude.
APPEND '2' TO pf_exclude.
APPEND '3' TO pf_exclude.
APPEND '4' TO pf_exclude.
WRITE: / 'sy-tfill = ', sy-tfill.
DESCRIBE TABLE pf_exclude.
WRITE: / 'sy-tfill = ', sy-tfill, 'after describe table'.
sy-tfill = 0. "Reset
READ TABLE pf_exclude INDEX 1 TRANSPORTING NO FIELDS.
WRITE: / 'sy-tfill = ', sy-tfill, 'after read table'.
sy-tfill = 0. "Reset
LOOP AT pf_exclude.
WRITE: / 'sy-tfill = ', sy-tfill, 'in loop with', pf_exclude.
sy-tfill = 0. "Reset
ENDLOOP.
결과:
sy-tfill = 0
sy-tfill = 4 after describe tabl
sy-tfill = 4 after read table
sy-tfill = 4 in loop with 1
sy-tfill = 0 in loop with 2
sy-tfill = 0 in loop with 3
sy-tfill = 0 in loop with 4
을 주시기 바랍주의의 값은 0 제 2 항목: SY-TFILL
지 않으로 업데이트 각 단계에 한 후,첫 번째 루프입니다.
나는 사용을 추천합니 SY-TFILL 만,당신이 그것을 필요로하는 경우에 후 직접 READ
(1)...이 있는 경우 다른 명령을 사 READ
의 사용 SY-TFILL,항상 위험의 변경의 시스템 변수가 있습니다.
(1)또는 설명이다.
DATA : V_LINES TYPE I. "declare variable
DESCRIBE TABLE <ITAB> LINES V_LINES. "get no of rows
WRITE:/ V_LINES. "display no of rows
Refreance:http://www.sapnuts.com/courses/core-abap/internal-table-work-area.html
기능 모듈 EM_GET_NUMBER_OF_ENTRIES 또한 제공 행 계산합니다.그것은 1 매개 변수 테이블 이름입니다.
data: vcnt(4).
clear vcnt.
LOOP at itab WHERE value = '1'.
add 1 to vcnt.
ENDLOOP.
응답 3. (vcnt = 3).
수도 있습 열기를 사용하여 Sql 을 찾을 수 행을 사용하여 카운트 그룹화 절도 있는 시스템 분야 SY-LINCT 을 계산하는 라인(행)이 있습니다.
는 경우로,당신이 알고 싶 행 번호를 조건 반복을 통해 내부 테이블.할 수 있는 시스템을 사용하여 변수 sy-tabix 과 함께 작업하는 경우 내부 테이블이 있습니다.를 참조하시기 바랍 ABAP 문서 자세한 정보가 필요한 경우(특히 이 장에 내부 테이블 처리).
예제:
LOOP AT itab INTO workarea
WHERE tablefield = value.
WRITE: 'This is row number ', sy-tabix.
ENDLOOP.
지가 있다고 생각하지 않는 SAP 에 대한 매개 변수는 종류의 결과입니다.하지만 아래 코드를 제공할 것입니다.
LOOP AT intTab.
AT END OF value.
result = sy-tabix.
write result.
ENDAT.
ENDLOOP.