1) 첫번째 프로그램에서 PA_CHK = 'X' 일때 두번째 프로그램으로 서브밋될때 구분해놓았습니다.
PARAMETERS pa_chk AS CHECKBOX DEFAULT 'X' .
IF PA_CHK = 'X'.
SUBMIT zmmr0562 AND RETURN
WITH s_ebeln IN s_ebeln2
WITH s_lifnr IN s_lifnr2
WITH s_mblnr IN s_mblnr2
WITH s_mjahr IN s_mjahr2
WITH s_budat IN s_budat2
WITH s_ekgrp IN s_ekgrp2
WITH s_relnm IN s_relnm2
WITH pa_st0 EQ 'X'
WITH pa_stp EQ ' '
WITH pa_check EQ 'X'.
ELSE.
SUBMIT zmmr0562 AND RETURN
WITH s_ebeln IN s_ebeln2
WITH s_lifnr IN s_lifnr2
WITH s_mblnr IN s_mblnr2
WITH s_mjahr IN s_mjahr2
WITH s_budat IN s_budat2
WITH s_ekgrp IN s_ekgrp2
WITH s_relnm IN s_relnm2
WITH pa_st0 EQ 'X'
WITH pa_stp EQ ' '
WITH pa_check EQ ' '.
ENDIF.
2)두번째 프로그램으로 서브밋해서 들어오면 (zmmr0562 )
첫번째 프로그램의 체크박스를 받는 pa_check는 디스플레이 하지 않게 하였습니다.
그러나 같은조건으로 두번쨰 프로그램에서도 개별적으로 조회할수 있게 pa_chk 가 디폴트로 설정되어 있습니다.
PARAMETERS pa_chk AS CHECKBOX DEFAULT 'X'.
PARAMETERS pa_check NO-DISPLAY.
3) 이런상황에서 서브밋되서 온 pa_check 와 pa_chk가 구분되어서 사용되었으면 하는데요
문제는 pa_check 가 체크되지 않아도 pa_chk가 디폴트이기 때문에 그것을 지워주지 않는이상
데이터를 지워버리는게 문제입니다.
그래서 이런식으로 써보려곤 했지만 체크박스는 case문이 안먹나보네요? ㅋㅋ
머리가 더이상 돌아가지 않아서 마구 써보긴 했습니다만..
when 'PA_CHECK'.
IF PA_CHECK = 'X'.
LOOP AT GT_TAB.
SELECT SINGLE *
FROM zmm0021t
WHERE rivno EQ gt_tab-dreno
AND zconfirm EQ 'S0'.
IF SY-SUBRC = 0.
DELETE GT_TAB.
ENDIF.
ENDLOOP.
ELSE.
PA_CHK = ' '.
ENDIF.
when 'PA_CHK'.
IF PA_CHK = 'X'.
LOOP AT GT_TAB.
SELECT SINGLE *
FROM zmm0021t
WHERE rivno EQ gt_tab-dreno
AND zconfirm EQ 'S0'.
IF SY-SUBRC = 0.
DELETE GT_TAB.
ENDIF.
ENDLOOP.
ENDIF.
제가 주저리주저리 썼는데 이해가 가실진 모르겠네요 ㅠㅠ
혹 아시는 분들 도와주시면 감사하겠습니다.