Topic: RANGES的问题

ERP俱乐部

第 1 页 总共 1 页 [共有 1 条记录]


Posted by cwen on 2008-07-29 10:56 上午

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.