아래 내용을 실행하니 name값은 출력이 않되네요.
뭐가 문제인지 알려주세요.]
그리고 top-of-page를 사용해 head부분을 고정시킬려고 하는데
제 생각대로 하니 실행이 않되네요. 이부분도 알려주세요.
DATA: BEGIN OF itab1 OCCURS 0,
name TYPE spfli-carrid.
INCLUDE STRUCTURE sflight.
DATA: END OF itab1.
SELECT a~connid a~fldate a~planetype b~carrid
INTO CORRESPONDING FIELDS OF TABLE itab1
FROM sflight AS a INNER JOIN spfli AS b ON a~carrid = b~carrid AND a~connid = b~connid.
WRITE / 'Inner join ??'.
ULINE AT /1(53).
WRITE: /'|' NO-GAP,
(15) '1' NO-GAP CENTERED,
'|' NO-GAP,
(15) '2' NO-GAP CENTERED,
'|' NO-GAP,
(10) '3' NO-GAP CENTERED,
'|' NO-GAP,
(08) '4' NO-GAP CENTERED,
'|' NO-GAP.
ULINE AT /1(53).
LOOP AT itab1.
WRITE: /'|' NO-GAP,
(15) itab1-connid NO-GAP CENTERED,
'|' NO-GAP,
(15) itab1-fldate NO-GAP CENTERED,
'|' NO-GAP,
(10) itab1-planetype NO-GAP CENTERED,
'|' NO-GAP,
(08) itab1-name NO-GAP CENTERED,
'|' NO-GAP.
ULINE AT /1(53).
ENDLOOP.
댓글 4
-
JiruMi
2009.01.31 05:33
-
아밥우먼
2009.01.31 07:26
말씀하신대로 하니 itab-carrid 이미 선언되었다 나오네요. name은 변수라서 선언하면 spfli-carrid값을 그대로 이어받는것으로
알고 있는데 왜 안되는지..
그리고
top-of-page를 추가해서 고정할려고 하는데 실행이 안되네요.
뭔가 잘못됀는지 알려주세요.
DATA: BEGIN OF itab1 OCCURS 0,
name TYPE spfli-carrid.
INCLUDE STRUCTURE sflight.
DATA: END OF itab1.
START-OF-SELECTION.
SELECT a~connid a~fldate a~planetype b~carrid
INTO CORRESPONDING FIELDS OF TABLE itab1
FROM sflight AS a INNER JOIN spfli AS b ON a~carrid = b~carrid AND a~connid = b~connid.
END-OF-selection.
TOP-OF-PAGE.
WRITE / 'Inner join ??'.
ULINE AT /1(53).
WRITE: /'|' NO-GAP,
(15) '1' NO-GAP CENTERED,
'|' NO-GAP,
(15) '2' NO-GAP CENTERED,
'|' NO-GAP,
(10) '3' NO-GAP CENTERED,
'|' NO-GAP,
(08) '4' NO-GAP CENTERED,
'|' NO-GAP.
ULINE AT /1(53).
END-OF-PAGE.
LOOP AT itab1.
WRITE: /'|' NO-GAP,
(15) itab1-connid NO-GAP CENTERED,
'|' NO-GAP,
(15) itab1-fldate NO-GAP CENTERED,
'|' NO-GAP,
(10) itab1-planetype NO-GAP CENTERED,
'|' NO-GAP,
(08) itab1-name NO-GAP CENTERED,
'|' NO-GAP.
ULINE AT /1(53).
ENDLOOP. -
덩콘
2009.01.31 19:51
음 저도 초보입니다만 몇줄 끄적여봅니다.
name 필드에 sflight-carrid를 넣고 싶으신거 같은데
into corresponding은 필드의 속성을 보지않고 필드의 이름으로만 비교해서 들어가는걸로 알고있습니다
그런데 select에서 carrid를 그냥 가져오셨네요
select 구문 마지막을 b~carrid as name 으로 하시면 carrid라는 필드를 가져올때 name으로 인식해서 가져와서
into corresponding할때 itab의 name으로 들어가게됩니다
또 한가지 방법은 출력할때 itab1-name을 itab1-carrid로 하시면 됩니다
지금 상황에서는 이미 같은 구조로 선언되있으니 carrid로 들어가거든요
-
NeoMotionX
2009.02.02 02:32
위에서 name 빠지는건 잘 설명하신것 같으니 pass하고,
실행이 안되는 이유는 아주 간단합니다.
START-OF-SELECTION. 구문절에 데이터 발췌하는것만 있고, 실제로 출력하는 부분이 없어서 그렇습니다.
TOP-OF-PAGE. 구문절은 화면에 write 와 같은 명령어로 화면출력이 일어날때만 수행되게 됩니다.
END-OF-PAGE. 구문절 마찬가지며, 또한 이 구문절은 처음 레포팅 부분에
RERORT report_name
LINE-COUNT page_lines[(footer_lines)]
에서 page_lines와 footer_lines를 정의하셔야 원하는 화면을 얻으실수 있을겁니다.
하지만, 전체적으로 살펴보니 아주 단순한 실수를 하셨네요.
END-OF-PAGE와 END-OF-SELECTION을 햇갈리셨나보네요..ㅎㅎ
정리해보면, 이렇게 하면 원하는 결과를 얻을수 있을겁니다.
(붉은색 부분만 수정했습니다.)
DATA: BEGIN OF itab1 OCCURS 0,
name TYPE spfli-carrid.
INCLUDE STRUCTURE sflight.
DATA: END OF itab1.
START-OF-SELECTION.
SELECT a~connid a~fldate a~planetype b~carrid AS NAME
INTO CORRESPONDING FIELDS OF TABLE itab1
FROM sflight AS a INNER JOIN spfli AS b
ON a~carrid = b~carrid
AND a~connid = b~connid.
TOP-OF-PAGE.
WRITE / 'Inner join ??'.
ULINE AT /1(53).
WRITE: /'|' NO-GAP,
(15) '1' NO-GAP CENTERED,
'|' NO-GAP,
(15) '2' NO-GAP CENTERED,
'|' NO-GAP,
(10) '3' NO-GAP CENTERED,
'|' NO-GAP,
(08) '4' NO-GAP CENTERED,
'|' NO-GAP.
ULINE AT /1(53).
END-OF-SELECTION.
LOOP AT itab1.
WRITE: /'|' NO-GAP,
(15) itab1-connid NO-GAP CENTERED,
'|' NO-GAP,
(15) itab1-fldate NO-GAP CENTERED,
'|' NO-GAP,
(10) itab1-planetype NO-GAP CENTERED,
'|' NO-GAP,
(08) itab1-name NO-GAP CENTERED,
'|' NO-GAP.
ULINE AT /1(53).
ENDLOOP.
수고하세요.
sflight 라는 구조 안에 name 이라는 항목이 없어서
INTO CORRESPONDING FIELDS OF TABLE 할때 name 에 spfli-carrid 가 안들어 갑니다.
name TYPE spfli-carrid 을
carrid TYPE spfli-carrid 로 고쳐서 출력하던가
어디선가 carrid 를 name 로 넣어주는 수작업을(?) 해 줘야 합니다.
-같이 공부하는 사람이
top-of-page 는 안쓰셨네요;