DEAR ALL: 我依部门需求开发了一个相当于VF04的PROCESS BILL。其方法如一下, 第一:先查询出没有开立BILL的DN(存在内表ITAB1),以及这些DN的SO(存于内表JTAB1)(业务部门的需求,是为了他们在做BILL时知道哪一个SO的相关信息) REPORT。 第二:手工在REPORT上选择哪一些DN生成BILLING ,就是依据FALG的调 用VF04的SDBILLDL的程式。 但是如果DN超过一定的行数,就了出现错误题示,生成的REPORT样式及错误题示见附件。 如下为调用SDBILLDL代码。 data:begin of itab occurs 0, FLAG(1) TYPE C, KUNNR LIKE LIKP-KUNNR, "送达方 WERKS LIKE VBAP-WERKS, "PLANT VBELN LIKE LIKP-VBELN, "DN WADAT_IST LIKE LIKP-WADAT_IST, "DN DATA end of itab. data:itab1 like itab OCCURS 0 with header line. FORM EXCU_BILL. RANGES:P_VBELN FOR LIPS-VBELN. DATA:P_INDEX TYPE I. REFRESH:P_VBELN,ITAB1. CLEAR ITAB1. SORT ITAB1 BY VBELN. DO. READ LINE SY-INDEX FIELD VALUE ITAB1-FLAG. IF SY-SUBRC <> 0. EXIT. ENDIF. IF ITAB1-FLAG = 'X'. READ LINE SY-INDEX FIELD VALUE ITAB1-VBELN. P_VBELN-SIGN = 'I'. P_VBELN-OPTION = 'EQ'. P_VBELN-LOW = ITAB1-VBELN. APPEND P_VBELN. CLEAR P_VBELN. ENDIF. ENDDO. IF P_VBELN[] IS INITIAL. MESSAGE S999 WITH 'NO DATA TO SELECT,PLEASE SELECT THE DATA'. ELSEIF P_ALLEL = 'X'. SUBMIT SDBILLDL WITH S_VBELN IN P_VBELN WITH P_ALLEL EQ 'X' WITH P_ALLEA EQ 'X' AND RETURN. ENDIF. ENDFORM.
|