안녕하세요.
스마트폼으로 생산 오더 Job card를 출력해서 프린트 이용하고 있습니다.
출력되는 폼에는 Prod order 하나당 하나씩 프린트되도록 Order header , operation , component information으로 출력됩니다.
이때 두개 이상의 Prod Order를 조회할 경우 Display되는 form이 두개 이상의 Prod Order정보를 먼저 display한 후 프린트를 누르면 두개 이상의 prod Order정보를 프린트하고 싶습니다.
현재는 두개 이상의 Prod Order를 조회할 경우 하나 출력되고 back버튼 -> 하나 출력하고 있습니다.
이유는 report에서 loop at gt_order.
move-corresponding gt_order to ls_orderheader.
loop at gt_comp where aufnr = gt_order-aufnr.
move-corresponding gt_comp to lt_comp.
append lt_comp. clera lt_comp.
endloop.
loop at gt_oper where aufnr = gt_order-aufnr.
move-corresponding gt_oper to lt_oper.
append lt_oper. clera lt_oper.
endloop.
call function Smartform
exporting
zheader = ls_orderheader
tables
zoper = lt_oper
zcomp = lt_comp.
endloop.
위의 소스처럼 하다보니 당연히 Loop at gt_order. endloop을 돌면서 Order하나씩 smartform으로 프린트하게 되는 것같은데요.
Order header정보도 table로 넘겨줘서 smartform에서 condition으로 처리해야될거 같은데요.
처리방안이 딱 생각나질 않네요.
자세한 사항은 파일첨부하겠습니다.
좀 도와주십시요.
그럼 수고하세요~~
말로 설명드리기 어려워 파일 첨부합니다.ㅎㅎ
댓글 5
-
버미!
2010.03.17 20:04
-
찬호사랑
2010.03.17 20:24
Report에서 Order header를 table로 넘겨야되는건 알겠고 스마트폼에서 oper와 comp 에다가 loop문으로 돌려서 order번호로 조건을 주어야 하는것도 대략 이해하겠습니다.
현재 스마트폼에는 main form하나만 들어있고 말씀하신것처럼 main windows가 아니고 secondary windows에다가 해당 정보 그려서 출력하고 있는데요.
버미님이 말씀하신건 이해가 가는데요 . 어찌해야될지 좀 구상이 안되네요.ㅎㅎ
말씀하신대로라면
main windows하나 그리고 그안에 order header , operation , component정보를 출력하게 되면 자동으로 두개의 order정보를 넣어주면 자동으로 하나 페이지가 더 생긴다는 말씀이신가용??
-
찬호사랑
2010.03.17 20:59
대략적인 프로그램 샘플 하나 달아주실수 있습니깡??
ㅋㅋ
부탁드립니다.
-
찬호사랑
2010.03.17 21:10
결론은 Main page의 Main window에 header , component , operation정보를 그려줘야 다음 페이지로 넘어가서 두번째 Prod order정보가 그려진다는 말씀이시죠?
-
찬호사랑
2010.03.17 21:28
다시 정리하자면 smartform으로 main windown밑에 secondary window하나그리고 그 밑으로 loop으로 gt_header를 받아서 먼저 처음 loop을 돌리고 order header , component , operation을 그려줘야 하는거죠?
그럼 secondary window하나에 그려주는 거죠?
ㅋㅋ
엑셀 만드는데 시간 많이 걸렸겠네요..
님 글처럼 하게 되면 한장 출력하고 Back 누르면 다음장나오고 Back 누르고...
한방에 여러 Order건을 인쇄하고 한다면 약간 소스를 수정해야 겠는데요.
Header를 테이블로 넘기시고, 스마트폼에서 Main에 Loop문을 Header로 한다음 그 안에 Oper와 comp loop문을 돌리시면 되는데
이때 Oper와 comp loop 문 조건에 Order 번호를 조건으로 주시면 되겠습니다.
말로 설명하자니 그런데..다른 답변이 안달리면 제가 프로그램 샘플로 하나 만들어서 답변 달겠습니다.