*&---------------------------------------------------------------------*
*& Form DISPLAT_DATA2
*&---------------------------------------------------------------------*
FORM DISPLAT_DATA2 .
CLEAR: G_STATUS, G_LAYOUT_S .
CLEAR: G_EVENTS_T[], G_FIELDCAT_T[].
G_REPID = SY-REPID.
G_STATUS = 'PF_STATUS_SET'.
* ALV BUFFER Init
SET PARAMETER ID 'ALVBUFFER' FIELD SY-UZEIT.
* Field Catalog
PERFORM FIELDCAT_INIT USING G_FIELDCAT_T[].
* Event 정보
PERFORM EVENTTAB_BUILD USING G_EVENTS_T[].
* Layout 정보
* PERFORM LAYOUT_BUILD USING G_LAYOUT_S.
* Sort 정보
* PERFORM SORT_BUILD USING G_SORT_T.
* COMMENT 정보
* PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
** Color Setting
* PERFORM SET_COLOR.
* ALV Call
SET PARAMETER ID 'ALVBUFFER' FIELD SY-UZEIT.
* DISPLAY
PERFORM ALV_GRID_DISPLAY.
ENDFORM. " DISPLAT_DATA2
=======================================================================
alv소스를 맨날 copy 하다보니 이유도 모르고 사용을 해서 하나하나 의미파악을 하려고합니다.
위에 보면 * ALV BUFFER Init 부분과 * ALV Call 하는 부분이 있는데 어떤 의미인가요?
그리고 ALV CALL부분에서 SET이 아니라 GET으로 써야하는거 아닌지??
저 구문을 사용하고 안하고의 차이점은 있는지 궁금합니다.
아..그리구 추가 질문 2개가 있는데요.
보통 프로그램 짤때보면 type-pools : SLIS , CXTAB 이런식으로 type group을 사용하는데..
혹시 sap에서 제공하는 type group의 이름과 용도(?)가 따로 나와있는 자료가 있나요??
테이블만들때 기술적세팅에서 데이타클래스나 크기범주는 컨설분들이 정해주시나요?
아니면 개발자 임의로 설정을 하는건가요?
답변 부탁드리겠습니다~
댓글 3
-
아밥퍼
2009.02.04 17:14
-
낭랑18세
2009.02.04 23:45
버퍼의 의미를 다시 한번 생각해 보시면 좋습니다.
alv 는 화면에 뿌릴때마다 버퍼에서 읽어 오게 되어 있는 구조입니다.
그래서 alv 화면에서 스크롤을 내리면 껌벅이는 것이 버퍼에서 읽어 오기 때문이기도 하지요~
테이블의 기술적 셋팅을 컨설이 알려주진 않습니다. 보통 데이터 형태에 따른 테이블 타입을 지정 하야 합니다.
트랜잭션용 인지 마스터성인지 점검 하시고 셋팅 해 주시면 될 듯 합니다. ~
size는 대략 잡아 주는 겁니다 실제로 db size 를 지정 하지는 않습니다. size 를 지정 했더라고
db 데이터는 늘어 나거든요~
-
GoodAbap
2009.02.05 00:07
두분 답변감사합니다~~^^Buffer 사용하는 이유 감이 와영 ㅎㅎ 남은 하루도 수고하세요.
ALV BUFFER 를 초기화 하는 이유는 예를 들면 프로그램 처음 개발시 필드가 5개 였는데...
사용자가 다른 필드도 추가해 달라고 요청을 했을때 필드카탈로그 설정에서 보통 추가를 하죠.
하지만 ALV BUFFER 초기화를 하지 않으면 추가한 필드가 보이지 않는 경우가 있습니다.
BUFFER 초기화를 하던지 BUFFER를 사용하지 않게끔 설정을 해야 추가한 필드들이 보입니다.
영어 그대로 SET 은 설정을 할때...GET 은 값을 읽어올때 사용을 하겠죠
초기화를 할려면 값을 읽어오는게 아니라 설정을 해야겠죠.
기술적셋팅은 개발자가 직접 할 수도 있지만 그럴려면 테이블의 용도가 어떻게 되는지 레코드는
얼마나 생성이 되는지를 알아야 겠죠.
이런 부분은 컨설분들이 잘 알고 있겠죠.