메뉴 건너뛰기

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 로 가져 옵니다. 왜 이러는 건가요?


 


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


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

번호 제목 글쓴이 날짜 조회 수
487 <img src=2.gif>GUI_DOWNLOAD 로 다운받은 파일에서 한글이 [4] 아밥고지를 찾아서 2010.01.05 974
486 <img src=2.gif>GUI_DOWNLOAD 로 다운받은 파일에서 한글이 초밥 2009.12.29 974
485 <img src=2.gif>GUI_DOWNLOAD 로 다운받은 파일에서 한글이 [1] prt 2009.12.24 974
484 <img src=3.gif border=0>function에서 tables 질문드립니다. [2] GoodAbap 2009.04.09 974
483 [요청][요청]위치값 읽어서 조회화면에서 위치부분에서부터 조회되기 드라곤 2009.03.04 974
482 <b>[완료]</b>단위에 관한 질문하나만 할께요~ [3] Gerrard 2008.11.28 974
481 <img src=2.gif>코멘트가 있어 삭제가 안되네.. [1] 버미! 2009.11.09 972
480 <img src=2.gif>GUI_DOWNLOAD 로 다운받은 파일에서 한글이 [3] 처음처럼 2009.12.29 971
479 <b>[완료]</b>RFC펑션에 관해서 질문좀 하겠습니다. 답변좀 부탁 급해서요 [4] 쭈니 2008.12.17 971
478 <img src=3.gif border=0>class로 Grid 생성시 문제점입니다. [2] 아밥돌이 2009.09.08 970
477 <img src=2.gif>GUI_DOWNLOAD 로 다운받은 파일에서 한글이 [4] youn 2009.12.29 969
476 <img src=2.gif>GUI_DOWNLOAD 로 다운받은 파일에서 한글이 [3] cskang 2009.12.21 968
475 <img src=2.gif>GUI_DOWNLOAD 로 다운받은 파일에서 한글이 [3] im 해성 2010.01.02 968
474 <img src=1.gif border=0>img 메세지 제어 변경 처리 질문입니다. 아밥돌이 2009.06.08 968
473 [요청]write 에서 입력필드 고수님들 부탁~~~~~~~~~~~ Zking 2009.02.12 968
472 <b>[완료]</b>[CHECKBOX]문의좀 하겠습니다. 에러가 나는데.. 무슨말인지 몰라서요. [5] 쭈니 2009.01.14 967
471 [re] [요청]CUSTOMER-EXIT 문의입니다 (PP 예약생성-MB21) file 띵호아빠 2008.11.14 965
470 <img src=2.gif border=0>MESSAGE 명령어에 나오는 TEXT에 색상이나 두께를 진하게 하고자 합니다. [1] 대지꿀꾸링 2009.08.04 964
469 <img src=2.gif>GUI_DOWNLOAD 로 다운받은 파일에서 한글이 [5] 블랙아이즈 2009.12.23 963
468 <img src=3.gif border=0>함수를 호출하여 팝업창이 뜨면 각항목을 체크해야 하는데.. [3] 노아 2009.09.22 963