문제

나는 어떻게 얻을 줄 수의 내부 테이블?내가 추측할 수 있는 루프에 있습니다.지가 있어야겠군요 방법입니다.

내가 알지 못하는 경우 그것은 차이가 있지만 코드에서 실행해야 합 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.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top