antelio
7/25/2016 - 8:38 PM

ZPRNF_REPORT

ZPRNF_REPORT

*&---------------------------------------------------------------------*
*& Report  ZPRNF_REPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zprnf_report.


TYPE-POOLS: slis.
TABLES: j_1bnfdoc, j_1binlin, j_1bnflin, j_1bnfstx.


SELECTION-SCREEN BEGIN OF BLOCK j5_tech  WITH FRAME TITLE text-100.
SELECT-OPTIONS: j5_docnr FOR j_1bnfdoc-docnum.
SELECTION-SCREEN END   OF BLOCK j5_tech.

* selection via CGC (Company and Branch) and external NF number

SELECTION-SCREEN BEGIN OF BLOCK j5_sel1 WITH FRAME TITLE text-101.
PARAMETERS:     j5_bukrs LIKE j_1bnfdoc-bukrs " FOR TABLE j_1bnfdoc
                              OBLIGATORY MEMORY ID buk,
                j5_brnch LIKE j_1bnfdoc-branch " FOR TABLE j_1bnfdoc
                                               OBLIGATORY.
SELECT-OPTIONS: j5_pdate FOR  j_1bnfdoc-pstdat NO-EXTENSION
                              OBLIGATORY DEFAULT sy-datum.
SELECTION-SCREEN END   OF BLOCK j5_sel1.

SELECTION-SCREEN BEGIN OF BLOCK j5_sel2 WITH FRAME TITLE text-102.
SELECT-OPTIONS: j5_serie FOR j_1bnfdoc-series,
                j5_nfnum FOR j_1bnfdoc-nfnum,
                j5_nfeno FOR j_1bnfdoc-nfenum,
                j5_statu FOR j_1bnfdoc-docstat.
SELECTION-SCREEN END   OF BLOCK j5_sel2.


* Additional Seleciton Screen Elements
SELECTION-SCREEN BEGIN OF BLOCK zlw_gia WITH FRAME TITLE text-z01.
PARAMETERS: p_direct TYPE j_1bdirect.
SELECTION-SCREEN END   OF BLOCK zlw_gia.



DATA: "ALV Data
  t_fcat    TYPE lvc_t_fcat,
  t_filters TYPE lvc_t_filt,
  w_layout  TYPE lvc_s_layo.

DATA: BEGIN OF t_output OCCURS 0,
    mark TYPE flag,
    bukrs LIKE j_1bnfdoc-bukrs,
    branch LIKE j_1bnfdoc-branch,
    docnum LIKE j_1bnfdoc-docnum,
    nftype LIKE j_1bnfdoc-nftype,
    direct LIKE j_1bnfdoc-direct,
    nfnum LIKE j_1bnfdoc-nfnum,
    nfenum LIKE j_1bnfdoc-nfenum,
    series LIKE j_1bnfdoc-series,
    manual LIKE j_1bnfdoc-manual,
    cancel LIKE j_1bnfdoc-cancel,
    parvw LIKE j_1bnfdoc-parvw,
    parid LIKE j_1bnfdoc-parid,
    partyp LIKE j_1bnfdoc-partyp,
    name1 LIKE kna1-name1,
    land1 LIKE j_1bnfdoc-land1,
    regio LIKE j_1bnfdoc-regio,
    stcd1 LIKE kna1-stcd1,
    stcd2 LIKE kna1-stcd2,
    ort01 LIKE kna1-ort01,
    stras LIKE kna1-stras,
    docdat LIKE j_1bnfdoc-docdat,
    pstdat LIKE j_1bnfdoc-pstdat,
    itmnum LIKE j_1bnflin-itmnum,
    matnr LIKE j_1bnflin-matnr,
    maktx LIKE j_1bnflin-maktx,
    cfop LIKE j_1bnflin-cfop,
    mwskz LIKE j_1bnflin-mwskz,
    taxlw4 LIKE j_1bnflin-taxlw4,
    taxsi4 LIKE j_1bnflin-taxsi4,
    taxlw5 LIKE j_1bnflin-taxlw5,
    taxsi5 LIKE j_1bnflin-taxsi5,
    nftot LIKE j_1binlin-nftot,
    icmsrate LIKE j_1binlin-icmsrate,
    icmsval LIKE j_1binlin-icmsval,
    taxtyp LIKE j_1bnfstx-taxtyp,
    base LIKE j_1bnfstx-base,
    excbas LIKE j_1bnfstx-excbas,
    othbas LIKE j_1bnfstx-othbas,
    color(4) TYPE c,
  END OF t_output.
DATA: w_output LIKE LINE OF t_output.

DATA: t_j_1baj TYPE TABLE OF j_1baj,
      w_j1baj LIKE LINE OF t_j_1baj.

INITIALIZATION.
  SELECT * FROM j_1baj INTO TABLE t_j_1baj.

START-OF-SELECTION.
  PERFORM read_data.
  PERFORM process_data.

END-OF-SELECTION.
  PERFORM display_data.

*&---------------------------------------------------------------------*
*&      Form  read_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM read_data.

  DATA: t_ldbcb TYPE TABLE OF ldbcb,
        w_ldbcb LIKE LINE OF t_ldbcb,
        t_rsparams TYPE TABLE OF rsparams,
        w_rsparams LIKE LINE OF t_rsparams.

  REFRESH: t_ldbcb, t_rsparams, t_output.
  PERFORM prepare_ldb_process TABLES t_ldbcb t_rsparams.

  CALL FUNCTION 'LDB_PROCESS'
    EXPORTING
      ldbname                           = 'J5F'
*     VARIANT                           =
*     EXPRESSIONS                       =
*     FIELD_SELECTION                   =
*     DYN_NODE_TYPES                    =
    TABLES
      callback                          = t_ldbcb
      selections                        = t_rsparams
    EXCEPTIONS
      ldb_not_reentrant                 = 1
      ldb_incorrect                     = 2
      ldb_already_running               = 3
      ldb_error                         = 4
      ldb_selections_error              = 5
      ldb_selections_not_accepted       = 6
      variant_not_existent              = 7
      variant_obsolete                  = 8
      variant_error                     = 9
      free_selections_error             = 10
      callback_no_event                 = 11
      callback_node_duplicate           = 12
      callback_no_program               = 13
      callback_no_cbform                = 14
      dyn_node_no_type                  = 15
      dyn_node_invalid_type             = 16
      OTHERS                            = 17
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    "read_data

*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_data.
ENDFORM.                    "display_data

*&---------------------------------------------------------------------*
*&      Form  process_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM process_data.
ENDFORM.                    "process_data
*&---------------------------------------------------------------------*
*&      Form  PREPARE_LDB_PROCESS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_T_LDBCB  text
*      -->P_T_RSPARAMS  text
*----------------------------------------------------------------------*
FORM prepare_ldb_process  TABLES   p_t_ldbcb STRUCTURE ldbcb
                                   p_t_rsparams STRUCTURE rsparams.

  DATA: w_ldbcb LIKE LINE OF p_t_ldbcb,
        w_rsparams LIKE LINE OF p_t_rsparams.

  CLEAR: w_ldbcb, p_t_ldbcb[].
  w_ldbcb-ldbnode     = 'J_1BNFDOC'.
  w_ldbcb-get         = 'X'.
  w_ldbcb-get_late    = 'X'.
  w_ldbcb-cb_prog     = sy-repid.
  w_ldbcb-cb_form     = 'CALLBACK_J_1BNFDOC'.
  APPEND w_ldbcb TO p_t_ldbcb.

  CLEAR w_ldbcb.
  w_ldbcb-ldbnode     = 'J_1BNFLIN'.
  w_ldbcb-get         = 'X'.
  w_ldbcb-get_late    = 'X'.
  w_ldbcb-cb_prog     = sy-repid.
  w_ldbcb-cb_form     = 'CALLBACK_J_1BNFLIN'.
  APPEND w_ldbcb TO p_t_ldbcb.

  CLEAR w_ldbcb.
  w_ldbcb-ldbnode     = 'J_1BNFSTX'.
  w_ldbcb-get         = 'X'.
  w_ldbcb-cb_prog     = sy-repid.
  w_ldbcb-cb_form     = 'CALLBACK_J_1BNFSTX'.
  APPEND w_ldbcb TO p_t_ldbcb.

  CLEAR w_ldbcb.
  w_ldbcb-ldbnode     = 'J_1BINLIN'.
  w_ldbcb-get         = 'X'.
  w_ldbcb-cb_prog     = sy-repid.
  w_ldbcb-cb_form     = 'CALLBACK_J_1BINLIN'.
  APPEND w_ldbcb TO p_t_ldbcb.

  CLEAR: w_rsparams, p_t_rsparams.
  w_rsparams-kind = 'S'.
  w_rsparams-selname = 'J5_DOCNR'.
  LOOP AT j5_docnr.
    MOVE-CORRESPONDING j5_docnr TO w_rsparams.
    APPEND w_rsparams TO p_t_rsparams.
  ENDLOOP.

  CLEAR: w_rsparams.
  w_rsparams-kind = 'P'.
  w_rsparams-selname = 'J5_BUKRS'.
  w_rsparams-sign = 'I'.
  w_rsparams-option = 'EQ'.
  w_rsparams-low = j5_bukrs.
  APPEND w_rsparams TO p_t_rsparams.

  CLEAR: w_rsparams.
  w_rsparams-kind = 'P'.
  w_rsparams-selname = 'J5_BRNCHS'.
  w_rsparams-sign = 'I'.
  w_rsparams-option = 'EQ'.
  w_rsparams-low = j5_brnch.
  APPEND w_rsparams TO p_t_rsparams.

  CLEAR: w_rsparams.
  w_rsparams-kind = 'S'.
  w_rsparams-selname = 'J5_PDATE'.
  LOOP AT j5_pdate.
    MOVE-CORRESPONDING j5_pdate TO w_rsparams.
    APPEND w_rsparams TO p_t_rsparams.
  ENDLOOP.


  CLEAR: w_rsparams.
  w_rsparams-kind = 'S'.
  w_rsparams-selname = 'J5_SERIE'.
  LOOP AT j5_serie.
    MOVE-CORRESPONDING j5_serie TO w_rsparams.
    APPEND w_rsparams TO p_t_rsparams.
  ENDLOOP.

  CLEAR: w_rsparams.
  w_rsparams-kind = 'S'.
  w_rsparams-selname = 'J5_NFNUM'.
  LOOP AT j5_nfnum.
    MOVE-CORRESPONDING j5_nfnum TO w_rsparams.
    APPEND w_rsparams TO p_t_rsparams.
  ENDLOOP.

  CLEAR: w_rsparams.
  w_rsparams-kind = 'S'.
  w_rsparams-selname = 'J5_NFENO'.
  LOOP AT j5_nfeno.
    MOVE-CORRESPONDING j5_nfeno TO w_rsparams.
    APPEND w_rsparams TO p_t_rsparams.
  ENDLOOP.

  CLEAR: w_rsparams.
  w_rsparams-kind = 'S'.
  w_rsparams-selname = 'J5_STATU'.
  LOOP AT j5_statu.
    MOVE-CORRESPONDING j5_statu TO w_rsparams.
    APPEND w_rsparams TO p_t_rsparams.
  ENDLOOP.


*seltab_wa-kind = 'S'.
*seltab_wa-selname = 'CARRID'.
*
*LOOP AT s_carr.
*  MOVE-CORRESPONDING s_carr TO seltab_wa.
*  APPEND seltab_wa TO seltab.
*ENDLOOP.


ENDFORM.                    " PREPARE_LDB_PROCESS



*&---------------------------------------------------------------------*
*&      Form  callback_J_1bnfdoc
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->NAME       text
*      -->WA         text
*      -->EVT        text
*      -->CHECK      text
*----------------------------------------------------------------------*
FORM callback_j_1bnfdoc  USING name  TYPE ldbn-ldbnode
                          wa    TYPE j_1bnfdoc
                          evt   TYPE c
                          check TYPE c.
  CASE evt.
    WHEN 'G'.
    WHEN 'L'.
  ENDCASE.
ENDFORM.                    "callback_J_1bnfdoc


*&---------------------------------------------------------------------*
*&      Form  callback_J_1bnflin
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->NAME       text
*      -->WA         text
*      -->EVT        text
*      -->CHECK      text
*----------------------------------------------------------------------*
FORM callback_j_1bnflin  USING name  TYPE ldbn-ldbnode
                          wa    TYPE j_1bnflin
                          evt   TYPE c
                          check TYPE c.
  CASE evt.
    WHEN 'G'. "GET
      IF p_direct IS NOT INITIAL.
        CHECK wa-direct EQ p_direct.
      ENDIF.
      j_1bnflin = wa.
      MOVE-CORRESPONDING wa TO w_output.
      w_output-direct = j_1bnfdoc-direct.
    WHEN 'L'. "GET LATE
      APPEND w_output TO t_output.
  ENDCASE.
ENDFORM.                    "callback_J_1bnflin


*&---------------------------------------------------------------------*
*&      Form  callback_J_1bnfstx
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->NAME       text
*      -->WA         text
*      -->EVT        text
*      -->CHECK      text
*----------------------------------------------------------------------*
FORM callback_j_1bnfstx  USING name  TYPE ldbn-ldbnode
                          wa    TYPE j_1bnfstx
                          evt   TYPE c
                          check TYPE c.
  CASE evt.
    WHEN 'G'.
    WHEN 'L'.
  ENDCASE.
ENDFORM.                    "callback_J_1bnfstx



*&---------------------------------------------------------------------*
*&      Form  callback_j_1binlin
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->NAME       text
*      -->WA         text
*      -->EVT        text
*      -->CHECK      text
*----------------------------------------------------------------------*
FORM callback_j_1binlin  USING name  TYPE ldbn-ldbnode
                          wa    TYPE j_1binlin
                          evt   TYPE c
                          check TYPE c.
  CASE evt.
    WHEN 'G'.
    WHEN 'L'.
  ENDCASE.
ENDFORM.                    "callback_J_1bnfstx