메뉴 건너뛰기

SAP 한국 커뮤니티

필드심볼 공부하면서 알수 없는 부분...

들아쿠라 2007.07.24 12:47 조회 수 : 2101 추천:59




REPORT  YZTEST_DYN_ITAB2.

TYPE-POOLS : ABAP.
FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,
               <DYN_WA>,
               <DYN_FIELD>.
DATA: DY_TABLE TYPE REF TO DATA,
      DY_LINE  TYPE REF TO DATA,
    XFC TYPE LVC_S_FCAT,
    IFC TYPE LVC_T_FCAT.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS: P_TABLE(30TYPE C DEFAULT 'T002'.
SELECTION-SCREEN END OF BLOCK B1.

START-OF-SELECTION.
  PERFORM GET_STRUCTURE.
  PERFORM CREATE_DYNAMIC_ITAB.
**********creates a dyanamic internal table**********
  PERFORM GET_DATA.
  PERFORM WRITE_OUT.
*&---------------------------------------------------------------------*
*&      Form  get_structure
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM GET_STRUCTURE.


 


*//////////////////////////////////////////////////


* 아래부분에서 값을 배수로 가져옴


*/////////////////////////////////////////////////
  DATA : IDETAILS TYPE ABAP_COMPDESCR_TAB,
       XDETAILS TYPE ABAP_COMPDESCR.
  DATA : REF_TABLE_DES TYPE REF TO CL_ABAP_STRUCTDESCR.
  DATA : SPTXT(20TYPE C.
* get the structure of the table.
  REF_TABLE_DES ?=
      CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( P_TABLE ).
  IDETAILS[] = REF_TABLE_DES->COMPONENTS[].
  LOOP AT IDETAILS INTO XDETAILS.
    CLEAR XFC.
    XFC-FIELDNAME = XDETAILS-NAME .
    XFC-DATATYPE  = XDETAILS-TYPE_KIND.
    XFC-INTTYPE   = XDETAILS-TYPE_KIND.
    XFC-INTLEN    = XDETAILS-LENGTH.
    XFC-DECIMALS  = XDETAILS-DECIMALS.
    APPEND XFC TO IFC.
  ENDLOOP.

ENDFORM.                    "get_structure
*&---------------------------------------------------------------------*
*&      Form  create_dynamic_itab
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM CREATE_DYNAMIC_ITAB.

* create dynamic internal table and assign to fs
  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
    EXPORTING
      IT_FIELDCATALOG = IFC
    IMPORTING
      EP_TABLE        = DY_TABLE.
  ASSIGN DY_TABLE->* TO <DYN_TABLE>.
* create dynamic work area and assign to fs
  CREATE DATA DY_LINE LIKE LINE OF <DYN_TABLE>.
  ASSIGN DY_LINE->* TO <DYN_WA>.

ENDFORM.                    "create_dynamic_itab

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM GET_DATA.
* select data from table.
  SELECT * INTO TABLE <DYN_TABLE>
             FROM (P_TABLE) UP TO 100 ROWS.


ENDFORM.                    "get_data


*&---------------------------------------------------------------------*
*&      Form  write_out
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM WRITE_OUT .

* WRITE out data from table.
  LOOP AT <DYN_TABLE> INTO <DYN_WA>.
    DO.
      ASSIGN COMPONENT  SY-INDEX
         OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
      IF SY-INDEX = 1.
        WRITE:/ <DYN_FIELD>.
      ELSE.
        WRITE: <DYN_FIELD>.
      ENDIF.
    ENDDO.
  ENDLOOP.

ENDFORM.                    " write_out


 


 


 


전체 소스입니다. 문제가 되는 부분은 GET_STRUCTURE form 부분인데요.


값이 이상하게 나와서 디버깅 해본결과 값을 두배로 튀겨 나옵니다.


테이블의 길이는 1인데 가져오는것은 2 로 가져 옵니다. 왜 이러는 건가요?


 


또, 어떤 방법으로 해결할수 있는지요.


고수님들의 의견 부탁드립니다.

번호 제목 글쓴이 날짜 조회 수
506 뷰필드를 추가 하는 방법 좀 알려주세요. ccc 2007.07.31 1765
505 BDC에서 입력필드에 DATA 입력시 ERROR [2] file 하늘만 2007.07.31 1662
504 Table Control의 내용을 엑셀로 다운로드? [3] 김지성 2007.07.31 2610
503 형 변환에 대한 질문입니다. [1] 나도아밥퍼 2007.07.30 1637
502 read_text 펑션에 대해 질문 [2] 댕댕 2007.07.30 1893
501 테이블 유지보수 생성기로 alv선택화면같은 검색화면을 적용시킬수있나요? [1] 노력&성장 2007.07.30 1858
500 WRITE 프로그램 디버깅에 대해서 [3] 하늘만 2007.07.30 1815
499 MESSAGE에 나타난 DATA를 사용에 대해서. [7] file 하늘만 2007.07.30 1768
498 혹시 4.6b 까지 사용된 j_1k* 테이블을 대체 할만한 table을 아시는분 없으신가요?? [3] bd 2007.07.27 1737
497 소스 설명 좀 부탁드립니다. [2] 나도아밥퍼 2007.07.27 1693
496 [ 공식 ] 상위 %인지 구하는 공식을 짜야합니다. 도와주십시오. [3] 나도아밥퍼 2007.07.26 1779
495 여러분의 조언을 부탁드립니다. (필드설정 ) [1] 나도아밥퍼 2007.07.26 1848
494 TABLE CONTROL 에 대한 질문입니다. (mark 체크 ) [6] 하늘만 2007.07.26 2839
493 Jco sun 2.1.6 버젼 가지고 계신분 있으신가요? [1] jgh 2007.07.26 1695
492 해당 소스 분석 좀 부탁드려요..^^ [1] 나도아밥퍼 2007.07.26 1943
491 해당 그림에 대한 여러분의 도움을 희망합니다. [5] file 나도아밥퍼 2007.07.25 1821
490 [질문] sap에서 웹팝업화면을 띄울려고 하는데요... [3] 나도아밥퍼 2007.07.25 2001
489 [MM Table Join] 문의 드립니다. [1] 김지성 2007.07.25 1744
488 엑셀파일 업로드 샘플 소스 좀 부탁드립니다. [5] 나도아밥퍼 2007.07.25 3005
487 sap script 관련 질문입니다. [1] bd 2007.07.25 1743