메뉴 건너뛰기

SAP 한국 커뮤니티

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

들아쿠라 2007.07.24 21:47 조회 수 : 2107 추천: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 로 가져 옵니다. 왜 이러는 건가요?


 


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


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

번호 제목 글쓴이 날짜 조회 수
493 Jco sun 2.1.6 버젼 가지고 계신분 있으신가요? [1] jgh 2007.07.26 1700
492 해당 소스 분석 좀 부탁드려요..^^ [1] 나도아밥퍼 2007.07.26 1968
491 해당 그림에 대한 여러분의 도움을 희망합니다. [5] file 나도아밥퍼 2007.07.26 1840
490 [질문] sap에서 웹팝업화면을 띄울려고 하는데요... [3] 나도아밥퍼 2007.07.26 2010
489 [MM Table Join] 문의 드립니다. [1] 김지성 2007.07.26 1756
488 엑셀파일 업로드 샘플 소스 좀 부탁드립니다. [5] 나도아밥퍼 2007.07.25 3024
487 sap script 관련 질문입니다. [1] bd 2007.07.25 1747
486 [SD] 해당 데이블의 대한 정보를 알고 싶습니다. [3] 나도아밥퍼 2007.07.25 2016
485 ALV 프로그램에서 어플리케이션 툴바에 행추가 버튼을 추가하고자 합니다. [2] 초보생 2007.07.25 5419
484 <b>[완료]</b>ecc 6.0에서 스마트폼 수행시 에디터화면이 뜨질 않아여.. [9] 이두연 2007.07.24 1807
483 4.6B 에는 존재 하는 table 이지만 ECC 6.0 으로 넘어 오면서 사라진 TABLE 입니다. bd 2007.07.24 2047
» 필드심볼 공부하면서 알수 없는 부분... [1] 들아쿠라 2007.07.24 2107
481 [re] 필드심볼 공부하면서 알수 없는 부분... [5] file sapjoy 2007.07.24 1744
480 Query Tunning에 대해서 문의드립니다.(자주 문의를 하네 휴) [4] 김지성 2007.07.24 1732
479 [ERROR] READ_REPORT_LINE_TOO_LONG 해결 방법좀 알려주세요. [7] file D.Y.Kim 2007.07.24 5459
478 아주 간단한 질문인데.. 좀 알려주세요 ㅎㅎ [2] 아밥초보^^ 2007.07.24 1927
477 bapi_po-create 써보신분, 잘 생성이 되나요? [1] 노력&성장 2007.07.24 1709
476 ALV 헤더에 대해서 고수님들께 문의 드립니다.~!!! [4] 백승민 2007.07.23 1712
475 REPORT ALV에 대해서 문의드립니다. [5] file 김지성 2007.07.23 1833
474 [re] REPORT ALV에 대해서 문의드립니다. file sapjoy 2007.07.23 1758