ALV를 클래스를 이용하여 만들고 있습니다.
지금 제가 툴바로 생성 버튼(Create icon)을 따로 만들어놓은 상태입니다.
CLEAR ls_toolbar.
MOVE 'Create' TO ls_toolbar-function.
MOVE icon_create TO ls_toolbar-icon.
MOVE '신규생성' TO ls_toolbar-quickinfo.
MOVE '신규' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO p_object->mt_toolbar.
여기서 신규생성버튼을 누르면 화면 맨 밑에 아무것도 입력되지 않은 신규 라인이 추가되면서
유저가 직접 필드에 작성할 수 있도록 모든 필드값들이 활성화가 되야되는데
키값으로 잡혀져 있는 필드값들은 활성화가 되지 않습니다.
어떻게 해야 모든 필드들이 활성화가 될까요....??
고수님들의 가르침 부탁드립니다.
댓글 15
-
activeman
2008.03.26 23:59
-
ABAP짱!
2008.03.27 00:13
신규라인을 추가하여 신규입력을 하는것입니다.
근데 버튼을 누르면 키값이 있는 필드는 활성화가 안됩니다.
-
비안개
2008.03.27 00:14
라인 추가시 그 라인에 대한 필드들이 수정이가능해야한다는 질문인가요?
-
ABAP짱!
2008.03.27 00:23
네 라인 추가시 라인에 대한 필드들이 모두 활성화 되어 추가되어야 합니다. -
초보아밥퍼
2008.03.27 00:35
인터널 테이블의 키값을 잡으신거 같은데 그냥 안잡으면 안될까요?
^^;;
-
ABAP짱!
2008.03.27 00:40
화면에서 그냥 조회시에는 키값들을 유저가 고칠수 없도록 키값은 테이블과 fieldcatalog 작성시 잡았습니다 -
초보아밥퍼
2008.03.27 00:59
조회시에도 전부 활성화를 시키셨나보네요. 굳이 조회하는데 활성화를 하실이유는 없을듯한데
키값으로 다 잡아 놓으셨다면 키를 풀수있는 방법이 있긴한데.
제가 찾아보고 올리도록 할께요. ^^
-
초보아밥퍼
2008.03.27 01:08
ENQUEUE_EZLOCK
DEQUEUE_EZLOCK
펑션을 이용하심 될것 같은데요..
-
ABAP짱!
2008.03.27 01:08
처음 조회할때는 키값은 비활성화 되어있습니다.
문제는 신규생성버튼을 누르면 맨밑에 새로운 라인이 생성되는데 키값들이 비활성화 되어서 생성되는것입니다.
초보아밥퍼님 말씀대로 키를 풀수 있는 방법이 있다면 꼭 알려주셨으면 합니다.
-
ABAP짱!
2008.03.27 01:24
아밥퍼님
ENQUEUE_EZLOCK
DEQUEUE_EZLOCK
이 펑션 쓰는 방법을 몰라 se37에서 찾아봐도 안나오네요..
사용방법 알려주시면 안될까요^^?
-
비안개
2008.03.27 01:40
제목: [요청][ALV] ALV에서 한개의 필드에 한 row만 활성화 하고 싶습니다. 라는 문의랑 동일한 문의입니다.
답변 중에 박근형님이 주신 답변을 응용하면 될 듯 싶습니다.
선언한 인터널 테이블에 LVC_T_STYL 타입으로 선언하셔서 레이아웃 타입 중 STYLEFNAME에 선언한 필드명을 넣은 후
기존에 있던 필드는 속성을 그대로 유지하니깐 열고자하는 celltab에 필드명과 cl_gui_alv_grid=>MC_STYLE_ENABLED 값을
넣어주시면 해결 됩니다. 반대는 필드명에 대해서 cl_gui_alv_grid=>MC_STYLE_DISABLED를 추가하시면됩니다.
잘 모르겠다면 Package SLIS 에서 BCALV_EDIT_02 프로그램 실행한 후 디버깅을 걸어보면 됩니다.^^
-
초보아밥퍼
2008.03.27 01:41
요건 전체를 하는거라 요거 하심 안되겠네여 제가 잘못 이해를 한듯
그래서 SET_CELL_ATTRIBUTE (셀속성에서)
IF ST_FCAT-FIELDNAME = '해당필드'.
IF ST_FCAT-FIX_COLUMN = 'X'. "KEY필드(KEY는 칼럼고정 했음)
LS_STYL-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
ELSE.
LS_STYL-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
ENDIF.
ENDFI.
하심 되겠는데 우선 참고 하고 계세여 제가 구현좀 해보게 ^^
-
초보아밥퍼
2008.03.27 02:44
광역변수
DATA: GS_FIELDCAT TYPE LVC_S_FCAT, "필드 속성 Set<- HEAD
GT_FIELDCAT TYPE LVC_T_FCAT, "필드 속성 저장<- 필드카타로그 BODY
DATA : BEGIN OF GT_MAIN OCCURS 0. <-- 표현할 인터널 테이블
INCLUDE STRUCTURE MARA.
DATA : STYL TYPE LVC_T_STYL, "셀단위 수정 스타일
SCOL TYPE LVC_T_SCOL, "셀색깔
END OF GT_MAIN.
***************************************************************************
FORM SET_CELL_ATTRIBUTE
DATA : LS_STYL TYPE LVC_S_STYL,
LS_SCOL TYPE LVC_S_SCOL,
LT_STYL TYPE LVC_T_STYL,
LT_SCOL TYPE LVC_T_SCOL.
LOOP AT GT_MAIN.
LOOP AT GT_FIELDCAT INTO GS_FIELDCAT.
CLEAR: LS_STYL, LS_SCOL, LT_STYL[], LT_SCOL[].
IF GS_FIELDCAT-FIELDNAME = 'KEY 필드이름'.
IF GS_FIELDCAT-FIX_COLUMN = 'X'.
LS_STYL-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
ELSE.
LS_STYL-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
ENDIF.
ENDIF.
LS_STYL-FIELDNAME = GS_FIELDCAT-FIELDNAME.
INSERT LS_STYL INTO TABLE LT_STYL.
INSERT LINES OF LT_STYL INTO TABLE GT_MAIN-STYL.
ENDLOOP.
MODIFY GT_MAIN. CLEAR GT_MAIN.
ENDLOOP.
ENDFORM. " SET_CELL_ATTRIBUTE
이정도면 될거 같은데.... 냠냠
-
초보아밥퍼
2008.03.27 03:01
요기다가 입맛에 맞게 조건문만 넣어주시면 오케이될듯 냠냠 -
ABAP짱!
2008.03.27 03:03
모두 감사드립니다. STYL은 첨보는 부분이네요.. 역시 아밥의 세계는 넓고도 넓은거 같습니다..
키값이 활성화 되어야 한다는 말씀이십니까?...
조금 이상한게요...내용을 변경하실려고 하면 키값을 변경시키면 안되겠죠..(키값이 변경되면 신규입력이 되겠죠..)
차라리 삭제하고 새로 생성하는게 맞을 것 같습니다.
아니면 생성버튼을 누르면 신규라인을 추가 하는 로직을 구사하는게 좋을 듯 합니다만..
즐밥하세요..