Production Order pending status Report

3-2-2013 4-54-24 PM3-2-2013 4-55-11 PM

This is my first abap OO  alv report using  Robin Vleeschhouwer Framework.  link


report  zagri503.

tables: caufv,afpo,afru,makt.

selection-screen begin of block nanat with frame title text-003.
select-options s_bukrs for caufv-bukrs obligatory no-extension.
select-options s_aufnr for afru-aufnr.
select-options s_matnr for afpo-matnr  NO-DISPLAY.
select-options s_auart for caufv-auart NO-DISPLAY.
select-options s_werks for caufv-werks obligatory.
select-options s_gstrp for caufv-gstrp obligatory.
selection-screen end of block nanat.

selection-screen begin of block bl1 with frame title text-001.
parameter : p_agri radiobutton group gr1,
p_pp   radiobutton group gr1.
selection-screen end of block bl1.

DATA: obj_line like BSVX-STTXT.
*----------------------------------------------------------------------*
* CLASS lcl_alv_om DEFINITION
*----------------------------------------------------------------------*
class lcl_alv_om definition inheriting from zcl_alv_om.
public section.
types: begin of tdata,
werks type caufv-werks, " Plant
aufnr type caufv-aufnr, " Production  ORder
gamng type caufv-gamng, " base quantity
wemng type afpo-wemng,  " delivery quantity
objnr type caufv-objnr, " STATUS NUMBER
auart type caufv-auart, " ORDER TYPE
matnr type afpo-matnr,  " material
maktx type makt-maktx,  " material Description
stats type BSVX-STTXT,  " Status
end of tdata.

DATA: tt_data  TYPE TABLE OF tdata,
dt_data  TYPE TABLE OF tdata.

methods set_rdata_pp.

protected section.
methods set_header      redefinition.
methods set_column      redefinition.
methods on_double_click redefinition.

PRIVATE SECTION.
METHODS fix_data.

endclass.                    "lcl_alv_om DEFINITION

*----------------------------------------------------------------------*
* CLASS lcl_alv_om IMPLEMENTATION
*----------------------------------------------------------------------*
class lcl_alv_om implementation.
"Set header
method set_header.
Data: l_count TYPE i,
lr_picture type ref to cl_salv_form_picture.

DESCRIBE TABLE dt_data LINES l_count.

*   create object lr_picture
*    exporting
*      picture_id   = 'SUMILOGO'.

*    call method io_header->set_element
*      exporting
*        row       = 1
*        column    = 5
*        r_element = lr_picture.

io_header->create_label( exporting row     = 6
column  = 1
text    = 'Pending Order :' ).

io_header->create_text( exporting  row     = 6
column  = 2
text    = l_count ).

endmethod.                    "set_header

"Set column
method set_column.
data: gr_functions type ref to cl_salv_functions.

if  iv_column_name <> 'WERKS'
and iv_column_name <> 'AUFNR'
and iv_column_name <> 'GAMNG'
and iv_column_name <> 'WEMNG'
and iv_column_name <> 'AUART'
and iv_column_name <> 'MATNR'
and iv_column_name <> 'MAKTX'
and iv_column_name <> 'STATS'.
io_column->set_visible( value = abap_false ).
*      lo_column->set_technical( abap_true ).
endif.

endmethod.                    "set_column

method set_rdata_pp.
DATA: obj_line  type bsvx-sttxt,
d_auart   type C.

" Get coois data to insert in ALV
select t0~werks t0~aufnr t0~gamng t1~wemng t0~objnr t0~auart t1~matnr t3~maktx
from caufv as t0
inner join afpo as t1 on t0~aufnr = t1~aufnr
inner join makt as t3 on t1~matnr = t3~matnr
into table me->tt_data
where
t0~bukrs  in s_bukrs   and "company
t0~aufnr  in s_aufnr   and "order number
t1~matnr  in s_matnr   and "material
t0~werks  in s_werks   and "werks
t0~auart  in s_auart   and "order type
t0~gstrp  in s_gstrp.

me->deletedup( EXPORTING fname  = 'AUFNR' changing RTABLE = me->tt_data ).
me->fix_data( ).

endmethod.                    "set_rdata

METHOD fix_data.
FIELD-SYMBOLS: <f_wa> TYPE tdata,
<f_w>  TYPE tdata,
<f_it> TYPE ANY.

CLEAR: makt.

LOOP AT me->tt_data ASSIGNING <f_w>.

CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
OBJNR            = <f_w>-OBJNR
SPRAS            = SY-LANGU
IMPORTING
LINE             = obj_line
EXCEPTIONS
OBJECT_NOT_FOUND = 1
OTHERS           = 2.

IF obj_line CS 'TECO' AND <f_w>-wemng EQ '0.000'.

ELSE.
<f_w>-stats = obj_line.
ASSIGN COMPONENT sy-index OF STRUCTURE <f_w> TO <f_it>.

APPEND <f_it> TO dt_data.
ENDIF.
ENDLOOP.

ENDMETHOD.
"On double click
method on_double_click.

IF IV_COLUMN EQ 'AUFNR'.
*     IS_ROW_DATA.
*     Set parameter ID for transaction screen field
SET PARAMETER ID 'ANR' FIELD IV_FIELD_DATA.
*     Sxecute transaction CO03, and skip initial data entry screen
CALL TRANSACTION 'CO03' AND SKIP FIRST SCREEN.
ENDIF.
endmethod.                    "on_double_click
endclass.                    "lcl_alv_om IMPLEMENTATION

start-of-selection.

data: lo_alv    type ref to lcl_alv_om.

"Create and display ALV
create object lo_alv
exporting
iv_double_click = abap_true.

IF p_agri eq 'X'.
s_matnr-sign   = 'I'.
s_matnr-option = 'CP'.
s_matnr-low    = '*T*'.
append s_matnr.

s_auart-sign = 'I'.
s_auart-option = 'EQ'.
s_auart-low = 'ZG14'. append s_auart.
s_auart-low = 'ZG15'. append s_auart.
s_auart-low = 'ZG16'. append s_auart.
s_auart-low = 'ZG17'. append s_auart.
s_auart-low = 'ZG00'. append s_auart.
s_auart-low = 'ZP00'. append s_auart.
clear: s_auart, s_matnr.
else.
s_auart-sign = 'I'.
s_auart-option = 'EQ'.
s_auart-low = 'YP01'. append s_auart.
s_auart-low = 'YP03'. append s_auart.
s_auart-low = 'YP04'. append s_auart.
clear s_auart.
ENDIF.

lo_alv->set_rdata_pp( ).
lo_alv->set_data( changing ct_data = lo_alv->dt_data ).
lo_alv->display( ).

 

Comment are closed.

INFORMATION