You are on page 1of 11

REPORT zmissing_invoice

MESSAGE-ID z1
NO STANDARD PAGE HEADING
LINE-SIZE 170.
************************************************************************
* Program Name : ZMISSING_INVOICE
* Creation Date : 11/25/04
* Author
: H Bauer
* Description : ID Missing Invoices
***********************************************************************
* Modification Log :
* SAP-ID
Date
Req#
Description
* BAUERH
************************************************************************
************************************************************************
*
Includes
*
************************************************************************
TYPE-POOLS: slis.
************************************************************************
*
Tables
*
************************************************************************
TABLES: nast, vbrk, tvfkt, kna1.
DATA: BEGIN OF t_doc OCCURS 0,
vbeln LIKE vbrk-vbeln,
netwr LIKE vbrk-netwr,
ekdat LIKE vbrk-erdat,

kunag LIKE vbrk-kunag,


kunrg LIKE vbrk-kunrg,
fkart LIKE tvfk-fkart,
name1 LIKE kna1-name1,
vtext LIKE tvfkt-vtext,
erdat LIKE nast-erdat,
eruhr LIKE nast-eruhr,
nacha LIKE nast-nacha,
nacha_txt(20),
vsztp LIKE nast-vsztp,
vsztp_txt(20),
manue LIKE nast-manue,
END OF t_doc.
DATA: BEGIN OF gt_outtab OCCURS 0.
INCLUDE STRUCTURE t_doc.
DATA: END OF gt_outtab.
DATA: BEGIN OF t_nast OCCURS 0,
objky LIKE nast-objky,
END OF t_nast.
************************************************************************
*
Internal Tables
*
************************************************************************
DATA: fld_catalog TYPE slis_t_fieldcat_alv, " lvc_t_fcat,
wa_fld_catalog LIKE LINE OF fld_catalog.
DATA: gs_layout
TYPE slis_layout_alv,
gt_sort
TYPE slis_t_sortinfo_alv,
gs_sort
TYPE slis_sortinfo_alv,
g_exit_caused_by_caller,
save_index
LIKE sy-tabix,
gs_exit_caused_by_user TYPE slis_exit_by_user,
g_repid
LIKE sy-repid.
DATA: gs_print
TYPE slis_print_alv.
DATA: gt_events
TYPE slis_t_event,
gt_list_top_of_page TYPE slis_t_listheader,
g_status_set TYPE slis_formname VALUE 'PF_STATUS_SET',
g_user_command TYPE slis_formname VALUE 'USER_COMMAND',
g_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
g_top_of_list TYPE slis_formname VALUE 'TOP_OF_LIST',
gv_peinh
LIKE mbew-peinh,
"matr priced by qty
gv_stpprs
LIKE mbew-stprs,
"unit price
g_end_of_list TYPE slis_formname VALUE 'END_OF_LIST'.
DATA: gs_variant LIKE disvariant,
g_save,
gv_dbcnt TYPE p,
w_callback_ucomm TYPE slis_formname,
gv_audit VALUE ' '.
DATA: gv_vtext LIKE tvfkt-vtext.
DATA: gv_save-tabix LIKE sy-tabix,
w_month2 LIKE s076-spmon,
w_month3 LIKE s076-spmon,
w_datum LIKE sy-datum,
w_periv LIKE t001-periv,
w_first LIKE sy-datum,

"MONTH
"MONTH
"DATE
"period
"FIRST DAY SELECTION

w_last

LIKE sy-datum.

"LAST DAY SELECTION

************************************************************************
*
Parameters & Select Option
*
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-005.
PARAMETERS:
pv_kappl LIKE nast-kappl DEFAULT 'V3' NO-DISPLAY,
pv_date LIKE nast-erdat DEFAULT sy-datum.
SELECT-OPTIONS : sv_vbeln FOR vbrk-vbeln,
sv_kunnr FOR kna1-kunnr.
PARAMETERS:

pv_name LIKE lfa1-name1.

SELECTION-SCREEN: ULINE.
PARAMETERS:
pv_zero AS CHECKBOX.
SELECTION-SCREEN: ULINE.
PARAMETERS:
pv_miss RADIOBUTTON GROUP r1,
pv_match RADIOBUTTON GROUP r1.
SELECTION-SCREEN: ULINE.
SELECTION-SCREEN: END OF BLOCK block1.
SELECTION-SCREEN: BEGIN OF BLOCK block3 WITH FRAME TITLE text-010.
SELECTION-SCREEN COMMENT /1(79) text-201.
SELECTION-SCREEN COMMENT /1(79) text-202.
SELECTION-SCREEN COMMENT /1(79) text-203.
SELECTION-SCREEN: END OF BLOCK block3.
************************************************************************
*
Field Symbols
*
************************************************************************
************************************************************************
*
Constants
*
************************************************************************
*----------------------------------------------------------------------*
*CONSTANTS:
************************************************************************
*
Initialization
************************************************************************
INITIALIZATION.
PERFORM s900_initialize.
************************************************************************
*
At Selection Screen
*
************************************************************************
AT SELECTION-SCREEN.
************************************************************************
*
At Selection Screen Output
*
************************************************************************
AT SELECTION-SCREEN OUTPUT.
************************************************************************
*
Start of Selection
*
************************************************************************
START-OF-SELECTION.
g_repid = sy-repid.

PERFORM
PERFORM
PERFORM
PERFORM

s100_layout_init USING gs_layout.


s120_update_field_catalog.
s130_update_layout_sub_totals.
s140_eventtab_build USING gt_events[].

gs_variant-report = g_repid.
g_save
= 'A'.
PERFORM s200_get_header_data.
************************************************************************
*
End of Selection
*
************************************************************************
END-OF-SELECTION.
PERFORM s150_comment_build USING gt_list_top_of_page[].
w_callback_ucomm = 'CALLBACK_UCOMM'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= g_repid
i_callback_user_command = w_callback_ucomm
is_layout
= gs_layout
it_fieldcat
= fld_catalog
it_sort
= gt_sort
i_save
= g_save
is_variant
= gs_variant
it_events
= gt_events[]
is_print
= gs_print
IMPORTING
e_exit_caused_by_caller = g_exit_caused_by_caller
es_exit_caused_by_user = gs_exit_caused_by_user
TABLES
t_outtab
= gt_outtab
EXCEPTIONS
program_error
=1
OTHERS
= 2.
IF sy-subrc = 0.
IF g_exit_caused_by_caller = 'X'.
ELSE.
IF gs_exit_caused_by_user-back = 'X'.
"F3
ELSE.
IF gs_exit_caused_by_user-exit = 'X'.
"F15
ELSE.
IF gs_exit_caused_by_user-cancel = 'X'. "F12
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
ENDIF.
************************************************************************
*
Forms
*
***********************************************************************
*&---------------------------------------------------------------------*
*&
Form LAYOUT_INIT
*&---------------------------------------------------------------------*
FORM s100_layout_init USING rs_layout TYPE slis_layout_alv.

*"Build layout for list display


rs_layout-detail_popup
= 'X'.
rs_layout-zebra = "X".
rs_layout-cell_merge = 'X'.
rs_layout-colwidth_optimize = ' '.
rs_layout-no_min_linesize = space. "'X'.
rs_layout-min_linesize = 120.
rs_layout-totals_text = 'Grand total'.
rs_layout-subtotals_text = 'Sub-total'.
*
gs_print-print = space.
gs_print-prnt_title = 'X'.
gs_print-prnt_info = ' '.
gs_print-no_print_selinfos = 'X '. " display no selection infos
gs_print-no_coverpage(1) = space..
gs_print-no_print_listinfos = 'X'. " display no listinfos
ENDFORM.
" LAYOUT_INIT
*---------------------------------------------------------------------*
*
FORM UPDATE_FIELD_CATALOG
*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
FORM s120_update_field_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 01.
wa_fld_catalog-fieldname = 'VBELN'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Document'.
wa_fld_catalog-outputlen = 10.
wa_fld_catalog-hotspot = 'X'.
APPEND wa_fld_catalog TO fld_catalog.
*
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 10.
wa_fld_catalog-fieldname = 'NETWR'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Amount'.
wa_fld_catalog-outputlen = 14.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 20.
wa_fld_catalog-fieldname = 'EKDAT'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Creation Date'.
wa_fld_catalog-outputlen = 12.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 30.
wa_fld_catalog-fieldname = 'KUNAG'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Partner '.
wa_fld_catalog-outputlen = 13.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 35.

wa_fld_catalog-fieldname = 'NAME1'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Name '.
wa_fld_catalog-outputlen = 30.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 40.
wa_fld_catalog-fieldname = 'KUNRG'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Payer'.
wa_fld_catalog-outputlen = 13.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 50.
wa_fld_catalog-fieldname = 'VTEXT'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Documet Type'.
wa_fld_catalog-outputlen = 20.
APPEND wa_fld_catalog TO fld_catalog.
IF pv_match = 'X'.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 100.
wa_fld_catalog-fieldname = 'ERDAT'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Sent Date'.
wa_fld_catalog-outputlen = 10.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 110.
wa_fld_catalog-fieldname = 'ERUHR'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Sent Time'.
wa_fld_catalog-outputlen = 10.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 120.
wa_fld_catalog-fieldname = 'NACHA_TXT'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Trans Type'.
wa_fld_catalog-outputlen = 10.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 130.
wa_fld_catalog-fieldname = 'VSZTP_TXT'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Trans Time'.
wa_fld_catalog-outputlen = 17.
APPEND wa_fld_catalog TO fld_catalog.
CLEAR wa_fld_catalog.
wa_fld_catalog-col_pos = 140.
wa_fld_catalog-fieldname = 'MANUE'.
wa_fld_catalog-tabname = 'GT_OUTTAB'.
wa_fld_catalog-seltext_l = 'Manual Send'.
wa_fld_catalog-outputlen = 10.

APPEND wa_fld_catalog TO fld_catalog.


ENDIF.
ENDFORM.

" UPDATE_FIELD_CATALOG

*&---------------------------------------------------------------------*
*&
Form UPDATE_LAYOUT_SUB_TOTALS
*&---------------------------------------------------------------------*
FORM s130_update_layout_sub_totals.
ENDFORM.

" UPDATE_LAYOUT_SUB_TOTALS

*&---------------------------------------------------------------------*
*&
Form EVENTTAB_BUILD
*&---------------------------------------------------------------------*
FORM s140_eventtab_build USING rt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events.
READ TABLE rt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE g_top_of_page TO ls_event-form.
APPEND ls_event TO rt_events.
ENDIF.
ENDFORM.
" EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*&
Form COMMENT_BUILD
*&---------------------------------------------------------------------*
FORM s150_comment_build USING lt_top_of_page TYPE
slis_t_listheader.
DATA: ls_line TYPE slis_listheader,
ls_info TYPE slis_entry,
com1(4),
com2(4),
lv_jobd(20),
date1(10),
lv_date1(10),
lv_date2(10).
WRITE sy-datum TO date1.
CLEAR ls_line.
ls_line-typ = 'H'.
CONCATENATE 'ZS915' text-100 date1 INTO ls_line-info
SEPARATED BY ' - '.
APPEND ls_line TO lt_top_of_page.
IF pv_miss = 'X'.
ls_line-info = 'Billing documents with no output'.
ELSE.
ls_line-info = 'Billing documents with output'.
ENDIF.
APPEND ls_line TO lt_top_of_page.

ls_line-typ = 'S'.
CONCATENATE 'System:' sy-sysid '-' sy-mandt
INTO ls_line-info.
APPEND ls_line TO lt_top_of_page.
ENDFORM.

" COMMENT_BUILD

*---------------------------------------------------------------------*
*
FORM select_gr_data
*
*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
FORM s200_get_header_data.
DATA:lv_lines(7) TYPE p.
DATA:save-tabix LIKE sy-tabix.
REFRESH t_doc.
SELECT vbeln netwr erdat kunag kunrg fkart
FROM vbrk
APPENDING TABLE t_doc
WHERE vbeln IN sv_vbeln
AND kunag IN sv_kunnr
AND erdat EQ pv_date.
IF pv_zero = 'X'.
DELETE t_doc WHERE netwr = 0.
ENDIF.
SORT t_doc BY vbeln.
LOOP AT t_doc.
CLEAR gv_vtext.
SELECT SINGLE vtext
INTO gv_vtext
FROM tvfkt
WHERE fkart = t_doc-fkart
AND spras = 'E'.
CLEAR kna1-name1.
SELECT SINGLE name1
FROM kna1
INTO t_doc-name1
WHERE kunnr = t_doc-kunag.
SELECT SINGLE *
FROM nast
WHERE kappl = pv_kappl
AND objky = t_doc-vbeln.
IF pv_miss = 'X'.
IF sy-subrc NE 0.
PERFORM s500_load_grid.
ELSE.
CONTINUE.
ENDIF.
ENDIF.

IF pv_match = 'X'.
IF sy-subrc = 0.
PERFORM s202_format_nast.
PERFORM s500_load_grid.
ELSE.
CONTINUE.
ENDIF.
ENDIF.
ENDLOOP.
SORT gt_outtab BY vbeln.
ENDFORM.
*---------------------------------------------------------------------*
*
FORM s202_format_nast
*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
FORM s202_format_nast.

t_doc-erdat = nast-erdat.
t_doc-eruhr = nast-eruhr.
t_doc-nacha = nast-nacha.
t_doc-vsztp = nast-vsztp.
t_doc-manue = nast-manue.
ENDFORM.
*---------------------------------------------------------------------*
*
FORM s205_get_data
*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
FORM s205_get_data.
ENDFORM.
*---------------------------------------------------------------------*
*
FORM s210_get_text
*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form PROCESS_DATA
*&---------------------------------------------------------------------*
FORM s500_load_grid.
gt_outtab-vbeln = t_doc-vbeln.
gt_outtab-netwr = t_doc-netwr.
gt_outtab-ekdat = t_doc-ekdat.
gt_outtab-kunag = t_doc-kunag.
gt_outtab-kunrg = t_doc-kunrg.
gt_outtab-name1 = t_doc-name1.
gt_outtab-vtext = gv_vtext.
gt_outtab-erdat = t_doc-erdat.
gt_outtab-eruhr = t_doc-eruhr.
gt_outtab-vsztp = t_doc-vsztp.
CASE gt_outtab-vsztp.

WHEN '1'.
gt_outtab-vsztp_txt
WHEN '2'.
gt_outtab-vsztp_txt
WHEN '3'.
gt_outtab-vsztp_txt
WHEN '4'.
gt_outtab-vsztp_txt
ENDCASE.

= 'Send w/sheduled'.
= 'Send w/Addl time'.
= 'Send w/own tran'.
= 'Send Immediatly'.

gt_outtab-manue = t_doc-manue.
gt_outtab-nacha = t_doc-nacha.
CASE gt_outtab-nacha.
WHEN '1'.
gt_outtab-nacha_txt =
WHEN '2'.
gt_outtab-nacha_txt =
WHEN '4'.
gt_outtab-nacha_txt =
WHEN '5'.
gt_outtab-nacha_txt =
WHEN '6'.
gt_outtab-nacha_txt =
WHEN OTHERS.
gt_outtab-nacha_txt =
ENDCASE.

'Print'.
'Fax '.
'Telex'.
'External'.
'EDI '.
'Other'.

IF NOT pv_name IS INITIAL.


IF gt_outtab-name1 CS pv_name.
APPEND gt_outtab.
ENDIF.
ENDIF.
IF pv_name IS INITIAL.
APPEND gt_outtab.
ENDIF.
*
ENDFORM.

" PROCESS_DATA

*---------------------------------------------------------------------*
*
FORM callback_ucomm
*
*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
* --> R_UCOMM
*
* --> RS_SELFIELD
*
*---------------------------------------------------------------------*
FORM callback_ucomm USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: lv_jobd(20).
CASE rs_selfield-fieldname.
WHEN 'VBELN'.
SET PARAMETER ID 'VF' FIELD rs_selfield-value.
CALL TRANSACTION 'VF02' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM.
*---------------------------------------------------------------------*
*
FORM s900_initialize
*

*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
FORM s900_initialize.
ENDFORM.
*---------------------------------------------------------------------*
*
FORM top_of_page
*
*---------------------------------------------------------------------*
*
........
*
*---------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo
= 'ENJOYSAP_LOGO'
it_list_commentary = gt_list_top_of_page.
WRITE: AT 88 'Page:', sy-pagno.
ENDFORM.
*INCLUDE zprogress_bar.

You might also like