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