안녕하세요.
1. ALV 에 금액 필드가 있습니다. ( BSEG-WRBTR ) 그리고 입력모드이구요..
근데 양수는 잘 입력해서 사용하고 있는데 - 값을 입력하면 입력을 못하게 되어 있더라구요.
양수도 입력해야 하고 음수도 입력해야 하는데 좋은 방법 없을까요?
2. 항상 프로그램 개발시 좋은 방법이 없나 해서 문의 드리는데요
인터널 테이블에 필드 두개에 대해 또는 세개의 대해 조건에 맞는 행을 가져와야 합니다.
근데 read table with key는 f01 ne 'X' and f02 = 'S' NE 같은게 먹지를 않더라구요
그래서 READ TABLE을 계속 여러번 사용합니다.
인터널 테이블에 몇몇 필드의 조건에 맞는 행을 가져오는 단순한 문장의 방법이 없는지
SELECT 할수도 없고 ... LOOP를 돌리면서 IF로 체크하는 방법은 제외하구요...
댓글 8
-
MadMax
2010.02.19 18:05
-
테라스
2010.02.19 18:43
1번 경우에는
저도 bseg-wrbtr 에 음수 금액을 입력가능하게 해달라는 요청을 받았는데
bseg 테이블을 보시면 wrbtr 필드 자체가 음수 입력이 불가능하게 되어 있어서 안된다고 했습니다.
bseg 테이블에 음수금액을 입력해야 하는것이라면 불가능 할 것으로 보이고
인터널 테이블에서 데이터 처리하는것이라면 필드카탈로그의 속성을 바꾸면 될듯 합니다
-
파파
2010.02.19 19:48
필드카탈로그 속성 을 보아도 없던데요, 어떤 건지 궁금합니다.
또는 음수되는 WRBTR 같은 다른거는 없는지?
-
두목
2010.02.19 20:50
1. 정확하게 Sign을 부여한 이후 어떤처리를 하시는지에 대해 언급이 되어 있지 않아 댓글을 달기가 애매합니다만,
가져온값을 핸들링하는 경우라면 변수선언시 도메인을 만들어 사용하시는것도 방법이 될 듯 합니다.
(도메인 WRBTR 정의에 보시면 Sign 이 체크되어 있지 않아서 사용할 수 없는 경우입니다.)
2. Loop문을 제외하고라고 하셨는데.. 정확한 의도를 적어주시면 댓글을 달 수 있을듯 합니다만...
-
kan145
2010.02.19 20:58
1.번같은경우 음수로 표시된걸 저장하신다면 문제가 되겠지만, 차대변지시자에 따라 부호표시를 하시는 것이라면
인터널테이블에 필드선언시 참조를 BSEG를 하시지 마시고 TYPE P에 소수점 2자리로 하셔서, 통화적용을 하신다던지
DATA ELEMENT를 부호가능하게 찍으시고 13.2자리로 만드신후에 표시하는 식으로 하시면 될 것같습니다.
2.LOOP WHERE구문을 사용하셔도 되고 READ라면 AND를 사용하실 필요없구요, NE, EQ같은 문법은 사용이 불가능합니다.
예를 들어주신 read table with key는 f01 ne 'X' and f02 = 'S' 이라면 쿼리를 조금 손봐서
READ TABLE ITAB WITH KEY F01 = SPACE F02 = 'S'. 이렇게 해보세요.
-
kan145
2010.02.19 21:02
1번같은경우 이렇게 해서 바피태우신다던지 BDC태우실떄 금액이 0보다 크냐 작냐를 가지고
차대변지시자를 S냐 H냐를 정해주실 수 있을실꺼예요.
-
w
2010.02.20 11:43
SAP에서는 일반적으로 금액필드에 마이너스를 넣지 않습니다.아니 넣지 못합니다.마이너스 전기를 하던지, 차대를 바꿔서 처리합니다.BSEG-WRBTR은 그러니 당연히 마이너스로 넣을 수 없습니다.BSEG에 반영할것이 아닌 itab에 사용할것이면 마이너스 가능한 필드를 참조하시면 됩니다.se11에서 찾아보시면 많이 있습니다.
-
im 해성
2010.02.22 20:26
1. -입력하고 저장하려는 테이블이 부수를 허용하는지 체크하시고 입력할수 있다면 다시 윗분들의 말처럼 필드 속성 변경ㅎㅏ세요.
SAP에 금액필드 부수 허용하는필드가 많습니다. HR쪽에 필드 보시면 PA0008-BET01 element 가 PAD_AMT7S 로 된것을 참조하세요.
2번은..
loop 문에 where 조건을 줄 수 있습니다....
loop at itab where 조건
exit.
endloop.
을 사용 하시면 됩니다.