Monday, 19 December 2011

Transaction level trigerring driver program

************************************************************************
* SGL Group - The Carbon Company                                       *
*----------------------------------------------------------------------*
* Type:         Report         Name: ZPPPSERNR01                       *
* Application:  PP                                                     *
* Date:         2011-11-14                                             *
* Last Update:  N/A                                                    *
*----------------------------------------------------------------------*
* Author:       POSNIAN                                                *
* Requester:    Paul Harper                                            *
* Ticket No:                                                           *
*----------------------------------------------------------------------*
* Description:  This Report is used to display the serial numbers based*
*               on related production order and corresponding values   *
*               of material number ,basic material number and          *
*               serial number using the Script                         *
*                                                                      *
*----------------------------------------------------------------------*
* Change Log                                                           *
*                                                                      *
* YYYY-MM-DD  Ini  Description / Reason of Change (incl. ticket no.)   *
* ---------- ----- --------------------------------------------------- *
* 2011-11-14  POSNIAN Initial Development-Transport Request# S1DK992981*
*                                                                      *
************************************************************************

REPORT  zpppsernr01.
INCLUDE ppcoincl.

*TABLES:caufvd,TDUMMY, PRINT_CO.
DATA caufvd_p_tab LIKE SORTED TABLE OF caufvd_p WITH UNIQUE KEY
                  aufnr                         WITH HEADER LINE.
DATA afpod_p_tab  LIKE SORTED TABLE OF afpod_p WITH UNIQUE KEY
                  aufnr posnr                  WITH HEADER LINE.
DATA affld_p_tab  LIKE SORTED TABLE OF affld_p WITH UNIQUE KEY
                  aufnr plnfl                  WITH HEADER LINE.
DATA afvgd_p_tab  LIKE SORTED TABLE OF afvgd_p WITH UNIQUE KEY
                  aufnrd aplfl vornr           WITH HEADER LINE.
DATA safvgd_p_tab LIKE SORTED TABLE OF afvgd_p WITH UNIQUE KEY
                  aufnrd aplfl vornr uvorn     WITH HEADER LINE.
DATA resbd_p_tab  LIKE SORTED TABLE OF resbd_p WITH UNIQUE KEY
                  posnr matnr rspos rsart      WITH HEADER LINE.
DATA affhd_p_tab  LIKE SORTED TABLE OF affhd_p WITH UNIQUE KEY
                  aufpl psnfh pzlfh            WITH HEADER LINE.
DATA rserob_tab LIKE rserob OCCURS 0 WITH HEADER LINE.
TYPES: BEGIN OF t_ser05,
        obknr TYPE objknr,
        ppaufnr TYPE aufnr,
       END OF t_ser05.
 DATA: subrc LIKE sy-subrc.
DATA:it_objk TYPE TABLE OF zls_lstsernr,
     wa_objk TYPE zls_lstsernr,
     it_objk2 TYPE TABLE OF objk,
     wa_objk2 TYPE objk,
     wa_mara TYPE mara,
     lv_wrkst type wrkst,
     wa_ser05 TYPE t_ser05,
     it TYPE TABLE OF zls_lstsernr.

* DATA: PRLST_TMP LIKE PRINT_CO.
* DATA  PRINT_OPTS LIKE ITCPO.

DATA:   lv_rowcnt     TYPE i,
        lv_colcnt     TYPE i,
        lv_rlno(3)    TYPE n,
        lv_cnt        TYPE i,
        lv_cnt1       TYPE i,
        lv_left       TYPE i,
        lv_rem        TYPE i,
        sno(2)        TYPE n ,
        empty         TYPE c VALUE ' ',
        var1(18)      TYPE c VALUE '__________________',
        var2(30)      TYPE c VALUE '______________________________'.
PERFORM import_data CHANGING subrc.

PERFORM get_info_list.

  CLEAR subrc.
  CALL FUNCTION 'CO_PRINT_GET_ORD'
    EXPORTING
      aufnr_imp        = print_co-aufnr
      flg_prtbl_opr    = on
      flg_prtbl_sop    = on
      flg_prtbl_cmp    = on
      flg_prtbl_prt    = on
    CHANGING
      caufvd_p_tab_exp = caufvd_p_tab[]
    EXCEPTIONS
      entry_not_found  = 1
      OTHERS           = 2.
 LOOP AT caufvd_p_tab.
     caufvd_p = caufvd_p_tab.
         CLEAR wa_mara.
    SELECT SINGLE * FROM mara INTO wa_mara

WHERE matnr = caufvd_p-matnr.
endloop.
perform zwe_sernr.
*PARAMETERS: p_aufnr TYPE ser05-ppaufnr.
FORM zwe_sernr.
  SELECT SINGLE obknr ppaufnr FROM ser05
         INTO wa_ser05 WHERE ppaufnr = print_co-aufnr.

  SELECT obknr matnr sernr FROM objk
           INTO  CORRESPONDING FIELDS OF TABLE it_objk2
           WHERE obknr = wa_ser05-obknr.

  LOOP AT it_objk2 INTO wa_objk2.
    wa_objk-obknr = wa_objk2-obknr.
    wa_objk-matnr = wa_objk2-matnr.
    wa_objk-sernr = wa_objk2-sernr.

    SELECT SINGLE wrkst FROM mara
           INTO lv_wrkst
           WHERE matnr = wa_objk2-matnr.

    wa_objk-wrkst = wa_mara-wrkst.
    wa_objk-sno   = sno.
    wa_objk-null = empty.
    APPEND wa_objk TO it.

  ENDLOOP.

*     open and start form
    PERFORM open_form USING 'OBJLST'.

*    CALL FUNCTION 'OPEN_FORM'
*      EXPORTING
*        form = 'ZPP_LSTSERNR01'.
*
*    CALL FUNCTION 'START_FORM'
*      EXPORTING
*        form = 'ZPP_LSTSERNR01'.

    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'LOGO'
        window  = 'LOGO'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'SAP'
        window  = 'PLANNED'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'PO WINDOW'
        window  = 'POWINDOW'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'SAP INTERNALLY'
        window  = 'SAPIN'.
    CALL FUNCTION 'WRITE_FORM'
      EXPORTING
        element = 'SERIAL'
        window  = 'SERIAL'.


    LOOP AT it_objk2 INTO wa_objk2.

      sno = sno + 1.
      lv_colcnt = lv_colcnt + 1.
      lv_rlno = lv_rlno + 1.
      wa_objk-row1 = lv_rowcnt.
      wa_objk-column1 = lv_colcnt.
      wa_objk-obknr = wa_objk2-obknr.
      wa_objk-matnr = wa_objk2-matnr.
      wa_objk-sno   = sno.
      wa_objk-sernr = wa_objk2-sernr.
      wa_objk-null = empty.

      CALL FUNCTION 'WRITE_FORM'
        EXPORTING
          element = 'MAIN'
          window  = 'MAIN'.
      APPEND wa_objk TO it_objk.
      CLEAR wa_objk.

    ENDLOOP.

    DESCRIBE TABLE it_objk LINES lv_cnt1.
    lv_rem = lv_cnt1 MOD 22.
    lv_left = 22 - lv_rem.

    DO  lv_left TIMES.
      sno = sno + 1.
      lv_rowcnt = lv_rowcnt + 1.
      wa_objk-sno   = sno.
      wa_objk-row1 = lv_rowcnt.
      wa_objk-column1 = 1.





          CALL FUNCTION 'WRITE_FORM'
            EXPORTING
              element = 'MAIN'
              window  = 'MAIN'.
ENDDO.



          CALL FUNCTION 'END_FORM'.

          CALL FUNCTION 'CLOSE_FORM'.

*    ENDDO.
*  ENDDO.
ENDFORM.    "zwe_sernr.




*&---------------------------------------------------------------------*
*&      Form  open_form
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->STARTPAGE  text
*----------------------------------------------------------------------*
FORM open_form USING startpage.

  CALL FUNCTION 'OPEN_FORM'
    EXPORTING
      device   = 'PRINTER'
      dialog   = space
      form     = print_co-forml
      language = print_co-spras
      OPTIONS  = print_opts
    EXCEPTIONS
      canceled = 01
      device   = 02
      form     = 03
      OPTIONS  = 04
      unclosed = 05.
  CALL FUNCTION 'START_FORM'
    EXPORTING
      startpage = startpage.

* reset counter for page numbers
  print_co-actpage = 1.

ENDFORM.                    "open_form
*&---------------------------------------------------------------------*
*&      Form  IMPORT_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_SUBRC  text
*----------------------------------------------------------------------*
form IMPORT_DATA  changing subrc LIKE sy-subrc.

    CALL FUNCTION 'CO_PRINT_IMPORT_DATA'
    EXCEPTIONS
      memory_id_ppt_not_exist = 1
      memory_id_ppi_not_exist = 2
      memory_id_pps_not_exist = 3
      OTHERS                  = 4.
  subrc = sy-subrc.

endform.                    " IMPORT_DATA
*&---------------------------------------------------------------------*
*&      Form  GET_INFO_LIST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form GET_INFO_LIST .

  CALL FUNCTION 'CO_PRINT_GET_INFO_LIST'
    IMPORTING
      print_co_exp   = print_co
      print_opts_exp = print_opts
    EXCEPTIONS
      OTHERS         = 0.

* print-type
  CASE print_co-drart.
    WHEN reprint.
      MOVE text-dup TO print_co-drtxt.
    WHEN OTHERS.
      MOVE text-org TO print_co-drtxt.
  ENDCASE.

endform.                    " GET_INFO_LIST

No comments:

Post a Comment