메뉴 건너뛰기

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


 


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


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

번호 제목 글쓴이 날짜 조회 수
489 <img src=3.gif>Include문에서 싱크체크할때 아래 오류가 나는 이유와 해결방법은 무엇일까요?^^ [3] file 노아 2011.03.31 4237
488 <img src=2.gif>screen structure 에서 group1 ~ group4 사용방법 [5] copine 2011.03.31 4906
487 URL 에서 파라메터를 받아오려고 하는데 감이 안잡힙니다.. [4] 갱즈 2011.04.01 3639
486 <img src=1.gif>bsp PCUI 상에서의 디버깅 질문드려요 슈릉 2011.04.01 3757
485 PS모듈 예산 관련 function 이 있나요? [4] 한마크 2011.04.01 3726
484 특정 필드에 최대값만 골라서 다른 인터널테이블에 넣을려고 합니다.. [4] 푸른물고기 2011.04.04 3638
483 RFC에 대하여 질문드립니다. [1] Mike 2011.04.04 3356
482 Table 생성시 나오는 Warning좀 알려주세요~^^ [1] Abap 2011.04.04 3672
481 GOS_ATTACHMENT_LIST_POPUP 펑션 질문좀요..^^ 숟가락맨 2011.04.04 4289
480 사용자 접속 Menu Path Log 저장 관련 문의 건 일일신 2011.07.18 2910
479 ALV 가로 출력에 대해서 질문드립니다 엑셀로 희망 화면 그려노았습니다 [1] file 뿌이이잉 2011.12.12 4955
478 스크린 페인터 아이콘이 X 로 표시가 되네염..;;; file 피튀긴남 2012.07.06 3452
477 [질문] possible entry 관련 문의 드립니다. [1] file oracleuser 2013.06.02 2672
476 [초급]perform연속으로 실행하려고 합니다. [1] Elijah Paul 2013.09.09 2930
475 SAP ABAP에 엑셀 파일 업로드시 글자 수가 잘려서 나오네요 [2] 렌메이이이 2013.12.31 2294
474 아밥 공부중인 비기너 변수선언 질문 [1] ID시크 2014.06.19 1345
473 smartforms 에서 템플릿으로 그리고 난 후에 두개의 공간을 병합시키지는 못하나여? [2] JinSAP 2015.02.24 1747
472 bsp 문의 無念군 2015.11.02 918
471 시놀로지서버로 저장 하고 난후 내문서 말고 네트워크서버파일열리게 하려면 어떻게 해야 하나여? qazw20 2016.07.21 1132
470 GUI_DOWNLOAD 두번째 헤더이후 데이터 누락 [2] kesng 2018.12.24 429