2007 Jun 13 11:32 AM
hi to all abap gurus
my querry is as follows what is use of parameter I_save in the fun module reuse alvgrid_ddisplay . pls give sample coding .
2. pls tell how to give each color to each record in alv . is it possible ? pls give sample coding.
hi to all abap gurus
my querry is as follows what is use of parameter I_save in the fun module reuse alvgrid_ddisplay . pls give sample coding .
2. pls tell how to give each color to each record in alv . is it possible ? pls give sample coding.
2007 Jun 13 11:36 AM
Hi
For field coloring
1. add one more field to ur final internal table say COLOR(4)
2. in layout wa_layout-style_fname = 'COLOR'. " if its grid
wa_layout-style_fieldname = 'COLOR'. "if its list
3. read table itab index 3.
itab-color = 'C410'.
modify itab index 3
4. see program SHOWCOLO for all color codes
1. Add a field of data type CHAR(3) to the internal output table.
2. Enter the color code in the appropriate field of the row to be colored in the internal
output table:
Code: 'Cxy'
C = Color (all codes begin with 'C')
x = color number ('1' - '9')
y = highlight ('0' = off, '1' = on)
3. Assign the internal output table color code field name to the IS_LAYOUT importing
structure IS_LAYOUT-INFO_FIELDNAME field and pass this structure in the ALV call
interface.
To enable row coloring, you should add an additional field to your list data table. It should be of character type and length at least 4. This field will contain the color code for the row. So, lets modify declaration of our list data table gt_list.
you should fill the color code to this field. Its format will be the same as explained before at section C.6.3. But how will ALV Grid know that you have loaded the color data for the row to this field. So, you make it know this by passing the name of the field containing color codes to the field INFO_FNAME of the layout structure.
e.g.
ps_layout-info_fname = <field_name_containing_color_codes>. e.g. ROWCOLOR
You can fill that field anytime during execution. But, of course, due to the flow logic of screens, it will be reflected to your list display as soon as an ALV refresh occurs.
You can color an entire row as described in the next section. However, this method is less time consuming.
Coloring Individual Cells
This is the last point about coloring procedures for the ALV Grid. The procedure is similar to coloring an entire row. However, since an individual cell can be addressed with two parameters we will need something more. What is meant by more is a table type structure to be included into the structure of the list data table. It seems strange, because including it will make our list data structure deep. But anyhow ALV Grid control handles this.
The structure that should be included must be of type LVC_T_SCOL. If you want to color the entire row, this inner table should contain only one row with field fname is set to space, some color value at field col, 0 or 1 at fields int (intensified) and inv (inverse).
If you want to color individual cells, then for each cell column, append a line to this inner table which also contains the column name at field fname. It is obvious that you can color an entire column by filling this inner table with a row for that column for each row in the list data table.
Reward points for useful Answers
Regards
Anji
2007 Jun 13 11:38 AM
Hi,
<b>1.I_SAVE :</b>
In I_SAVE,Variants can be saved. It Controls the save mode
<b>2.Coloring Cells:</b>
Example on ALV with line color
http://www.geocities.com/mpioud/Z_ALV_LINE_COLOR.html
Example on ALV with cell color
http://www.geocities.com/mpioud/Z_ALV_CELL_COLOR.html
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_color.htm
Regards,
Padmam.
2007 Jun 13 11:41 AM
REPORT zv30_wm_stock_overview MESSAGE-ID zv30_sd
NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE zv30_wm_stock_overview_top. " Include for Variable Declarations and Section Secreens
INCLUDE zv30_wm_stock_overview_data. " Include for ALV Processing
&----
*& INITIALIZATION
&----
INITIALIZATION.
PERFORM f_initialize. " Perform to Initialize the Selection Parameters
&----
*& AT SELECTION-SCREEN
&----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_werks-low.
PERFORM search_help_werks. " Search Help for WERKS(PLANT)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgort-low.
PERFORM search_help_lgort . " Search Help for LGORT(STORAGE LOCATION)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgtyp-low.
PERFORM search_help_lgtyp . " Search Help for LGTYP(STORAGE TYPE)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgtkz-low.
PERFORM search_help_lgtkz . " Search Help for LGTKZ(STORAGE TYPE INDICATOR FOR STOCK PLACEMENT)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgtkz1-low.
PERFORM search_help_lgtkz1. " Search Help for LGTKZ1(STORAGE TYPE INDICATOR FOR STOCK REMOVAL)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgbkz-low.
PERFORM search_help_lgbkz . " Search Help for LGBKZ(STORAGE SECTION INDICATOR)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_letyp-low.
PERFORM search_help_letyp . " Search Help for LETYP(STORAGE UNIT TYPE)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_spgru-low.
PERFORM search_help_spgru . " Search Help for SPGRU(BLOCKING REASON)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lgpla-low.
PERFORM search_help_lgpla . " Search Help for LGPLA(STORAGE BIN)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_charg-low.
PERFORM search_help_charg . " Search Help for CHARG(BATCH)
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout. " CHECK FOR VARIANT
PERFORM alv_f4.
PERFORM top_of_page. " Perform for Header information of the ALV Report.
&----
*& START-OF-SELECTION.
&----
START-OF-SELECTION.
PERFORM data_retrieval. " Perform to fetch the data from database tables to Internal Tab
PERFORM build_table. " Perform to build the final Internal Table
PERFORM f_layout_display. " Perform to fill the FieldCatalog
PERFORM alv_event. " Perform for ALV Events
PERFORM fill_listheader. " Perform to fill the ALV List Header
PERFORM sort_alv. " Perform to sort the ALV Report
&----
*& END-OF-SELECTION.
&----
END-OF-SELECTION.
PERFORM alv_display. " Perform to display the data in ALV form
&----
*& Include ZV30_WM_STOCK_OVERVIEW_TOP
&----
Type pools
TYPE-POOLS: slis. " Global types for generic cunning components
Database tables
TABLES: lqua, " Quants
mcha, " Batch Data
lagp, " Storage bins
t300, " WM Warehouse Numbers
t001w, " Plants/Branches
t001l, " Storage Locations
t301, " WM Storage Types
mara, " General Material Data
t134, " Material Types
t305, " Storage Type Indicators
t304, " Storage Section Indicators
t330, " Blocking Reasons
t307, " Storage Unit Types
vtbbewe, " Flow Records in Cash Flow Calculator
mmim_rep_print. " Print Settings, Reporting MM-IM
&----
*& Types Declarations
&----
TYPES: BEGIN OF type_stock,
lgnum TYPE lqua-lgnum, " Warehouse Number
werks TYPE lqua-werks, " Plant
lgort TYPE lqua-lgort, " Storage Location
lgtyp TYPE lqua-lgtyp, " Storage Type
lgpla TYPE lqua-lgpla, " Storage Bin
matnr TYPE lqua-matnr, " Material number
maktx TYPE makt-maktx, " Material name
mtart TYPE mara-mtart, " Material Type
ltkze TYPE mlgn-ltkze, " Storage Type Indicator for Stock Placement
ltkza TYPE mlgn-ltkza, " Storage Type Indicator for Stock Removal
lgbkz TYPE mlgn-lgbkz, " Storage section Indicator
charg TYPE lqua-charg, " Batch
zustd TYPE mcha-zustd, " Batch Status
atwrt TYPE ausp-atwrt, " Batch Status Characteristic
hsdat TYPE mcha-hsdat, " Date of Manufacture
vfdat TYPE lqua-vfdat, " Expiry Date
bestq TYPE lqua-bestq, " Stock Type
bdatu TYPE lqua-bdatu, " Last Movement Date
date1 TYPE vtbbewe-atage, " Number of days since last goods receipt
wdatu TYPE lqua-wdatu, " Goods Receipt Date
date2 TYPE vtbbewe-atage, " Number of days since no movement
letyp TYPE lqua-letyp, " Storage Unit Type
lenum TYPE lqua-lenum, " Storage Unit Number
skzue TYPE lqua-skzue, " Put Away Block for Quant
skzua TYPE lqua-skzua, " Stock Removal Block for Quant
spgru TYPE lqua-spgru, " Blocking reason for Quant
skzue1 TYPE lagp-skzue, " Put Away Block
skzua1 TYPE lagp-skzua, " Stock Removal Block
spgru1 TYPE lagp-spgru, " Blocking reason
qplos TYPE lqua-qplos, " Inspection lot number
verme TYPE lqua-verme, " Quantity
meins TYPE lqua-meins, " Unit of measure
quan TYPE lqua-verme, " Value of stock
waers TYPE t001-waers, " Currency
END OF type_stock.
TYPES: BEGIN OF type_lqua,
lgnum TYPE lqua-lgnum, " Warehouse Number
werks TYPE lqua-werks, " Plant
matnr TYPE lqua-matnr, " Material number
lgtyp TYPE lqua-lgtyp, " Storage Type
lgpla TYPE lqua-lgpla, " Storage Bin
lgort TYPE lqua-lgort, " Storage Location
lenum TYPE lqua-lenum, " Storage Unit Number
letyp TYPE lqua-letyp, " Storage Unit Type
charg TYPE lqua-charg, " Batch
vfdat TYPE lqua-vfdat, " Expiry Date
bestq TYPE lqua-bestq, " Stock Type
verme TYPE lqua-verme, " Quantity
meins TYPE lqua-meins, " Unit of measure
bdatu TYPE lqua-bdatu, " Last Movement Date
wdatu TYPE lqua-wdatu, " Goods Receipt Date
skzue TYPE lqua-skzue, " Put Away Block for Quant
skzua TYPE lqua-skzua, " Stock Removal Block for Quant
spgru TYPE lqua-spgru, " Blocking reason
qplos TYPE lqua-qplos, " Inspection Lot Number
END OF type_lqua.
TYPES: BEGIN OF type_mara,
matnr TYPE mara-matnr, " Material number
mtart TYPE mara-mtart, " Material Type
END OF type_mara.
TYPES: BEGIN OF type_mcha,
matnr TYPE mcha-matnr, " Material number
werks TYPE mcha-werks, " Plant
charg TYPE mcha-charg, " Batch
zustd TYPE mcha-zustd, " Batch Status
hsdat TYPE mcha-hsdat, " Date of Manufacture
END OF type_mcha.
TYPES: BEGIN OF type_mlgn,
matnr TYPE mlgn-matnr, " matnr
lgnum TYPE mlgn-lgnum, " Warehouse Number
lgbkz TYPE mlgn-lgbkz, " Storage section Indicator
ltkze TYPE mlgn-ltkze, " Storage Type Indicator for Stock Placement
ltkza TYPE mlgn-ltkza, " Storage Type Indicator for Stock Removal
END OF type_mlgn.
TYPES: BEGIN OF type_lagp,
lgnum TYPE lagp-lgnum, " Warehouse Number
lgtyp TYPE lagp-lgtyp, " Storage Type
lgpla TYPE lagp-lgpla, " Storage Bin
skzua TYPE lagp-skzua, " Stock Removal Block
skzue TYPE lagp-skzue, " Put Away Block
spgru TYPE lagp-spgru, " Blocking reason
END OF type_lagp.
TYPES: BEGIN OF type_mbew,
matnr TYPE mbew-matnr, " Material Number
bwkey TYPE mbew-bwkey, " Valuation area
stprs TYPE mbew-stprs, " Standard price
END OF type_mbew.
TYPES: BEGIN OF type_t001k,
bwkey TYPE t001k-bwkey, " Valuation area
bukrs TYPE t001k-bukrs, " Company Code
END OF type_t001k.
TYPES: BEGIN OF type_t001,
bukrs TYPE t001-bukrs, " Company Code
waers TYPE t001-waers, " Currency Key
END OF type_t001.
TYPES: BEGIN OF type_makt,
matnr TYPE makt-matnr, " Material Number
spras TYPE makt-spras, " Language Key
maktx TYPE makt-maktx, " Material name
END OF type_makt.
TYPES: BEGIN OF type_ausp,
objek TYPE ausp-objek, " Key of object to be classified
atinn TYPE ausp-atinn, " Internal characteristic
klart TYPE ausp-klart, " Class Type
atwrt TYPE ausp-atwrt, " Characteristic Value
END OF type_ausp.
TYPES: BEGIN OF type_inob,
cuobj TYPE inob-cuobj, " Configuration (internal object number)
objek TYPE inob-objek, " Key of Object to be Classified
END OF type_inob.
RANGES: r_cuobj FOR inob-cuobj. " To filter the INOB Table
RANGES: r_wdatu FOR lqua-wdatu. " To Filter the No.of Days Since last Goods Receipt
DATA : t_return TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE. " Retun Parameter of Searc Helps
&----
*& Internal tables and work area declarations
&----
DATA: itab_stock TYPE STANDARD TABLE OF type_stock, " Internal Table for final Output
wa_stock TYPE type_stock, " Workarea for Internal Table Stock
itab_lqua TYPE STANDARD TABLE OF type_lqua, " Internal Table for LQUA
wa_lqua TYPE type_lqua, " Workarea for Internal Table LQUA
itab_mara TYPE STANDARD TABLE OF type_mara, " Internal Table for MARA
wa_mara TYPE type_mara, " Workarea for Internal Table MARA
itab_mcha TYPE STANDARD TABLE OF type_mcha, " Internal Table for MCHA
wa_mcha TYPE type_mcha, " Workarea for Internal Table MCHA
itab_mlgn TYPE STANDARD TABLE OF type_mlgn, " Internal Table for MLGN
wa_mlgn TYPE type_mlgn, " Workarea for Internal Table MLGN
itab_lagp TYPE STANDARD TABLE OF type_lagp, " Internal Table for LAGP
wa_lagp TYPE type_lagp, " Workarea for Internal Table LAGP
itab_mbew TYPE STANDARD TABLE OF type_mbew, " Internal Table for MBEW
wa_mbew TYPE type_mbew, " Workarea for Internal Table MBEW
itab_t001k TYPE STANDARD TABLE OF type_t001k, " Internal Table for T001K
wa_t001k TYPE type_t001k, " Workarea for Internal Table T001K
itab_t001 TYPE STANDARD TABLE OF type_t001, " Internal Table for T001
wa_t001 TYPE type_t001, " Workarea for Internal Table T001
itab_makt TYPE STANDARD TABLE OF type_makt, " Internal Table for LQUA
wa_makt TYPE type_makt, " Workarea for Internal Table LQUA
itab_ausp TYPE STANDARD TABLE OF type_ausp, " Internal Table for AUSP
wa_ausp TYPE type_ausp, " Workarea for Internal table AUSP
itab_inob TYPE STANDARD TABLE OF type_inob, " Internal Table for INOB
wa_inob TYPE type_inob. " Workarea for Internal Table INOB
&----
*& Variable declarations
&----
DATA: g_pos TYPE i, " Column position in Fieldcatalog
g_repid TYPE sy-repid, " Program Name
g_date(10) TYPE c, " Processing date of Report
g_time(10) TYPE c. " Processing time of Report
DATA: v_temp1(50) TYPE c, " Variable for INOB-OBJEK
v_bdatu-low(10) TYPE c, " Variable for Last Movement Date
v_bdatu-high(10) TYPE c, " Variable for Last Movement Date
v_date-low(5) TYPE c, " variable for No.of days since last goods receipt
v_date-high(5) TYPE c, " variable for No.of days since last goods receipt
v_datet TYPE sy-datum, " Variable for Goods Receipt Date
v_wdatu-low(10) TYPE c, " Variable for Last Movement Date
v_datelow TYPE sy-datum, " Variable for Number of Days Since Last Goods Receipt
v_datehigh TYPE sy-datum, " Variable for Number of Days Since Last Goods Receipt
v_atinn(20) TYPE c. " Variable for Batch Status Characteristic
Variables to calcualte No.of Days Since last goods receipt & since no movement
DATA: v_days1 TYPE vtbbewe-atage,
v_days2 TYPE vtbbewe-atage,
v_date_from1 TYPE vtbbewe-dbervon,
v_date_to1 TYPE vtbbewe-dberbis,
v_date_from2 TYPE vtbbewe-dbervon,
v_date_to2 TYPE vtbbewe-dberbis.
&----
*& ALV data declarations
&----
DATA : itab_fcat TYPE slis_t_fieldcat_alv, " ALV Fieldcatalog
itab_layout TYPE slis_layout_alv, " ALV Layout
itab_listheader TYPE slis_t_listheader, " ListHeader
itab_event TYPE slis_t_event, " ALV Events
itab_sort TYPE slis_t_sortinfo_alv , " ALV Sort
wa_fcat TYPE slis_fieldcat_alv , " Workarea for Fieldcatalog
wa_listheader TYPE slis_listheader, " Workarea for Listheader
wa_event TYPE slis_alv_event, " Workarea for ALV Events
wa_sort TYPE slis_sortinfo_alv, " Workarea for ALV Sort
alv_keyinfo TYPE slis_keyinfo_alv, " ALV Key Info
alv_variant TYPE disvariant, " ALV Variant
alv_layout TYPE slis_layout_alv, " ALV Layout
alv_repid TYPE sy-repid, " ALV Program Name
alv_print TYPE slis_print_alv, " ALV Printing Parameters
alv_detail_func(30), " ALV Detail Function
alv_default_variant TYPE disvariant-variant, " ALV Default Variant
alv_colourize_fields TYPE mmim_rep_print-color. " ALV Color Parameters
&----
*& Selection Screen Declarations
&----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
s_lgnum FOR t300-lgnum OBLIGATORY, " Warehouse Number
s_werks FOR t001w-werks, " Plant
s_lgort FOR t001l-lgort, " Storage Location
s_lgtyp FOR t301-lgtyp. " Storage Type
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECT-OPTIONS:
s_matnr FOR mara-matnr, " Material number
s_mtart FOR t134-mtart, " Material Type
s_charg FOR mcha-charg, " Batch
s_zustd FOR mcha-zustd, " Batch Status
s_lgtkz FOR t305-lgtkz, " Storage Type Indicator for Stock Placement
s_lgtkz1 FOR t305-lgtkz, " Storage Type Indicator for Stock Removal
s_lgbkz FOR t304-lgbkz. " Storage section indicator
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
SELECT-OPTIONS:
s_bestq FOR lqua-bestq, " Stock Type
s_letyp FOR t307-letyp, " Storage Unit Type
s_bdatu FOR lqua-bdatu, " Last Movement Date
s_date FOR vtbbewe-atage. " Number of days since last goods receipt
s_wdatu FOR lqua-wdatu," OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
SELECT-OPTIONS:
s_lgpla FOR lagp-lgpla, " Storage bin
s_skzue FOR lagp-skzue, " Put Away Block
s_skzua FOR lagp-skzua, " Stock Removal Block
s_spgru FOR t330-spgru. " Blocking Reason
SELECTION-SCREEN END OF BLOCK b4.
SELECTION-SCREEN BEGIN OF BLOCK b5 WITH FRAME TITLE text-041.
PARAMETERS:
p_layout TYPE disvariant-variant. " Layout
SELECTION-SCREEN END OF BLOCK b5.
&----
*& Include ZV30_WM_STOCK_OVERVIEW_DATA
&----
&----
*& Form data_retrieval
&----
text
----
--> p1 text
<-- p2 text
----
FORM data_retrieval .
IF s_date IS NOT INITIAL.
r_wdatu-sign = s_date-sign.
r_wdatu-option = s_date-option.
v_datelow = s_date-low.
v_datehigh = s_date-high.
r_wdatu-low = sy-datum - v_datehigh .
r_wdatu-high = sy-datum - v_datelow.
APPEND r_wdatu.
ENDIF.
select data from LQUA table
SELECT lgnum werks matnr lgtyp lgpla lgort lenum letyp charg
vfdat bestq verme meins bdatu wdatu skzue skzua spgru qplos
FROM lqua
INTO TABLE itab_lqua
WHERE lgnum IN s_lgnum AND
werks IN s_werks AND
lgort IN s_lgort AND
lgtyp IN s_lgtyp AND
matnr IN s_matnr AND
bestq IN s_bestq AND
charg IN s_charg AND
wdatu IN r_wdatu AND
bdatu IN s_bdatu AND
lgpla IN s_lgpla AND
letyp IN s_letyp.
IF sy-subrc EQ 0.
SORT itab_lqua BY lgnum matnr werks charg.
ENDIF.
*select data from MARA Table
SELECT matnr mtart FROM mara
INTO TABLE itab_mara
FOR ALL ENTRIES IN itab_lqua
WHERE mtart IN s_mtart
AND matnr = itab_lqua-matnr.
IF sy-subrc EQ 0.
SORT itab_mara BY matnr.
ENDIF.
select data from MCHA table
SELECT matnr werks charg zustd hsdat FROM mcha
INTO TABLE itab_mcha
FOR ALL ENTRIES IN itab_lqua
WHERE zustd IN s_zustd
AND matnr EQ itab_lqua-matnr AND
werks EQ itab_lqua-werks AND
charg EQ itab_lqua-charg.
IF sy-subrc EQ 0.
SORT itab_mcha BY matnr werks charg.
ENDIF.
select data from MLGN table
SELECT matnr lgnum lgbkz ltkze ltkza FROM mlgn
INTO TABLE itab_mlgn
FOR ALL ENTRIES IN itab_lqua
WHERE ltkze IN s_lgtkz AND
ltkza IN s_lgtkz1 AND
lgbkz IN s_lgbkz AND
lgnum IN s_lgnum AND
matnr EQ itab_lqua-matnr.
IF sy-subrc EQ 0.
SORT itab_mlgn BY matnr.
ENDIF.
select data from LAGP table
SELECT lgnum lgtyp lgpla skzua skzue spgru FROM lagp
INTO TABLE itab_lagp
FOR ALL ENTRIES IN itab_lqua
WHERE skzua IN s_skzua AND
skzue IN s_skzue AND
spgru IN s_spgru AND
lgnum = itab_lqua-lgnum AND
lgtyp = itab_lqua-lgtyp AND
lgpla = itab_lqua-lgpla.
IF sy-subrc EQ 0.
SORT itab_lagp BY lgnum lgtyp lgpla.
ENDIF.
select data from MBEW table
SELECT matnr bwkey stprs FROM mbew
INTO TABLE itab_mbew
FOR ALL ENTRIES IN itab_lqua
WHERE matnr = itab_lqua-matnr
AND bwkey = itab_lqua-werks.
IF sy-subrc EQ 0.
SORT itab_mbew BY matnr bwkey.
ENDIF.
select data from T001K table
SELECT bwkey bukrs FROM t001k
INTO TABLE itab_t001k
FOR ALL ENTRIES IN itab_lqua
WHERE bwkey = itab_lqua-werks.
IF sy-subrc EQ 0.
SORT itab_t001k BY bwkey.
ENDIF.
select data from T001 table
SELECT bukrs waers FROM t001
INTO TABLE itab_t001
FOR ALL ENTRIES IN itab_t001k
WHERE bukrs = itab_t001k-bukrs.
IF sy-subrc EQ 0.
SORT itab_t001 BY bukrs.
ENDIF.
select data from MAKT table
SELECT matnr spras maktx FROM makt
INTO TABLE itab_makt
FOR ALL ENTRIES IN itab_lqua
WHERE matnr = itab_lqua-matnr
AND spras = 'EN'.
IF sy-subrc EQ 0.
SORT itab_makt BY matnr.
ENDIF.
select data from INOB table
SELECT cuobj objek FROM inob
INTO TABLE itab_inob
WHERE cuobj IN r_cuobj.
IF sy-subrc EQ 0.
SORT itab_inob BY objek.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ATINN_INPUT'
EXPORTING
input = 'KERNEL_STATUS'
IMPORTING
output = v_atinn.
select data from AUSP table
SELECT objek atinn klart atwrt FROM ausp
INTO TABLE itab_ausp
WHERE atinn EQ v_atinn AND
klart EQ '022' .
IF sy-subrc EQ 0.
SORT itab_ausp BY objek.
ENDIF.
ENDFORM. " data_retrieval
&----
*& Form f_layout_display
&----
text
----
--> p1 text
<-- p2 text
----
FORM f_layout_display .
PERFORM f_catalog USING :
'LGNUM' 'TYPE_STOCK' text-005,
'WERKS' 'TYPE_STOCK' text-006,
'LGORT' 'TYPE_STOCK' text-007,
'LGTYP' 'TYPE_STOCK' text-008,
'LGPLA' 'TYPE_STOCK' text-009,
'MATNR' 'TYPE_STOCK' text-010,
'MAKTX' 'TYPE_STOCK' text-011,
'MTART' 'TYPE_STOCK' text-012,
'LTKZE' 'TYPE_STOCK' text-013,
'LTKZA' 'TYPE_STOCK' text-014,
'LGBKZ' 'TYPE_STOCK' text-015,
'CHARG' 'TYPE_STOCK' text-016,
'ZUSTD' 'TYPE_STOCK' text-017,
'ATWRT' 'TYPE_STOCK' text-018,
'HSDAT' 'TYPE_STOCK' text-019,
'VFDAT' 'TYPE_STOCK' text-020,
'BESTQ' 'TYPE_STOCK' text-021,
'BDATU' 'TYPE_STOCK' text-022,
'DATE1' 'TYPE_STOCK' text-023,
'WDATU' 'TYPE_STOCK' text-024,
'DATE2' 'TYPE_STOCK' text-025,
'LETYP' 'TYPE_STOCK' text-026,
'LENUM' 'TYPE_STOCK' text-027,
'SKZUE' 'TYPE_STOCK' text-028,
'SKZUA' 'TYPE_STOCK' text-029,
'SPGRU' 'TYPE_STOCK' text-030,
'SKZUE1' 'TYPE_STOCK' text-031,
'SKZUA1' 'TYPE_STOCK' text-032,
'SPGRU1' 'TYPE_STOCK' text-033,
'QPLOS' 'TYPE_STOCK' text-034,
'VERME' 'TYPE_STOCK' text-035,
'MEINS' 'TYPE_STOCK' text-036,
'QUAN' 'TYPE_STOCK' text-037,
'WAERS' 'TYPE_STOCK' text-038.
ENDFORM. " f_layout_display
&----
*& Form alv_event
&----
text
----
--> p1 text
<-- p2 text
----
FORM alv_event .
Get ALV event
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = itab_event.
READ TABLE itab_event WITH KEY name = slis_ev_top_of_page INTO wa_event.
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE' TO wa_event-form.
APPEND wa_event TO itab_event.
ENDIF.
CLEAR wa_event.
ENDFORM. " alv_event
&----
*& Form fill_listheader
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_listheader .
CONCATENATE g_date6(2) '.' g_date4(2) '.' g_date+0(4) INTO g_date.
ALV Header Information
wa_listheader-typ = 'H'.
wa_listheader-info = text-039.
CONCATENATE text-039 ':' g_date INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
CLEAR wa_listheader.
wa_listheader-typ = 'H'.
wa_listheader-info = text-040.
CONCATENATE text-040 ':' g_time INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
CLEAR wa_listheader.
ALV Selection Criteria
IF s_lgnum IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-060 .
CONCATENATE text-060 ':' s_lgnum-low s_lgnum-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_werks IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-042.
CONCATENATE text-042 ':' s_werks-low s_werks-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_lgort IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-043.
CONCATENATE text-043 ':' s_lgort-low s_lgort-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_lgtyp IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-044.
CONCATENATE text-044 ':' s_lgtyp-low s_lgtyp-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_matnr IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-045.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = s_matnr-low
IMPORTING
output = s_matnr-low.
CONCATENATE text-045 ':' s_matnr-low s_matnr-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_mtart IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-046.
CONCATENATE text-046 ':' s_mtart-low s_mtart-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_charg IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-047.
CONCATENATE text-047 ':' s_charg-low s_charg-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_zustd[] IS NOT INITIAL AND s_zustd-low EQ ' '.
wa_listheader-typ = 'S'.
wa_listheader-info = text-048.
CONCATENATE text-048 ':' s_zustd-low s_zustd-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_lgtkz IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-049.
CONCATENATE text-049 ':' s_lgtkz-low s_lgtkz-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_lgtkz1 IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-050.
CONCATENATE text-050 ':' s_lgtkz1-low s_lgtkz1-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_lgbkz IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-051.
CONCATENATE text-051 ':' s_lgbkz-low s_lgbkz-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_bestq IS NOT INITIAL AND s_bestq EQ ' '.
wa_listheader-typ = 'S'.
wa_listheader-info = text-052.
CONCATENATE text-052 ':' s_bestq-low s_bestq-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_letyp IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-053.
CONCATENATE text-053 ':' s_letyp-low s_letyp-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
CONCATENATE s_bdatu-low6(2) '.' s_bdatu-low4(2) '.' s_bdatu-low+0(4) INTO v_bdatu-low.
CONCATENATE s_bdatu-high6(2) '.' s_bdatu-high4(2) '.' s_bdatu-high+0(4) INTO v_bdatu-high.
IF s_bdatu IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-054.
CONCATENATE text-054 ':' v_bdatu-low v_bdatu-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
v_date-low = s_date-low.
v_date-high = s_date-high.
IF s_date IS NOT INITIAL .
wa_listheader-typ = 'S'.
wa_listheader-info = text-055.
CONCATENATE text-055 ':' v_date-low v_date-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_lgpla IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-056.
CONCATENATE text-056 ':' s_lgpla-low s_lgpla-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_skzue IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-057.
CONCATENATE text-057 ':' s_skzue-low s_skzue-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_skzua IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-058.
CONCATENATE text-058 ':' s_skzua-low s_skzua-high ';' INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
IF s_spgru IS NOT INITIAL.
wa_listheader-typ = 'S'.
wa_listheader-info = text-059.
CONCATENATE text-059 ':' s_spgru-low s_spgru-high INTO wa_listheader-info SEPARATED BY space.
APPEND wa_listheader TO itab_listheader.
ENDIF.
CLEAR wa_listheader.
ENDFORM. " fill_listheader
&----
*& Form alv_display
&----
text
----
--> p1 text
<-- p2 text
----
FORM alv_display .
g_repid = sy-repid.
itab_layout-zebra = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout = itab_layout
it_fieldcat = itab_fcat[]
it_sort = itab_sort
i_save = 'X'
is_variant = alv_variant
it_events = itab_event
TABLES
t_outtab = itab_stock
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e017.
ENDIF.
REFRESH itab_stock.
ENDFORM. " alv_display
&----
*& Form f_initialize
&----
text
----
--> p1 text
<-- p2 text
----
FORM f_initialize .
REFRESH: itab_lqua,itab_mara,itab_mcha,itab_mlgn,itab_lagp,itab_mbew,itab_t001k,itab_t001,itab_makt,itab_inob,itab_ausp,itab_stock.
g_date = sy-datum.
g_time = sy-uzeit.
ENDFORM. " f_initialize
&----
*& Form build_table
&----
text
----
--> p1 text
<-- p2 text
----
FORM build_table .
LOOP AT itab_lqua INTO wa_lqua.
MOVE:
wa_lqua-lgnum TO wa_stock-lgnum,
wa_lqua-werks TO wa_stock-werks,
wa_lqua-matnr TO wa_stock-matnr,
wa_lqua-lgtyp TO wa_stock-lgtyp,
wa_lqua-lgpla TO wa_stock-lgpla,
wa_lqua-lgort TO wa_stock-lgort,
wa_lqua-lenum TO wa_stock-lenum,
wa_lqua-letyp TO wa_stock-letyp,
wa_lqua-charg TO wa_stock-charg,
wa_lqua-vfdat TO wa_stock-vfdat,
wa_lqua-bestq TO wa_stock-bestq,
wa_lqua-verme TO wa_stock-verme,
wa_lqua-meins TO wa_stock-meins,
wa_lqua-wdatu TO wa_stock-wdatu,
wa_lqua-bdatu TO wa_stock-bdatu,
wa_lqua-skzue TO wa_stock-skzue,
wa_lqua-skzua TO wa_stock-skzua,
wa_lqua-spgru TO wa_stock-spgru,
wa_lqua-qplos TO wa_stock-qplos.
v_date_from1 = wa_stock-wdatu.
v_date_to1 = sy-datum.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
i_date_from = v_date_from1
i_date_to = v_date_to1
IMPORTING
e_days = v_days1.
MOVE v_days1 TO wa_stock-date1.
v_date_from2 = wa_stock-bdatu.
v_date_to2 = sy-datum.
CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
EXPORTING
i_date_from = v_date_from2
i_date_to = v_date_to2
IMPORTING
e_days = v_days2.
MOVE v_days2 TO wa_stock-date2.
READ TABLE itab_mbew INTO wa_mbew WITH KEY matnr = wa_stock-matnr
bwkey = wa_stock-werks BINARY SEARCH.
IF sy-subrc = 0.
wa_stock-quan = wa_stock-verme * wa_mbew-stprs.
ENDIF.
READ TABLE itab_t001k INTO wa_t001k WITH KEY bwkey = wa_lqua-werks BINARY SEARCH.
IF sy-subrc = 0.
READ TABLE itab_t001 INTO wa_t001 WITH KEY bukrs = wa_t001k-bukrs BINARY SEARCH.
IF sy-subrc = 0.
MOVE: wa_t001-waers TO wa_stock-waers.
ENDIF.
ENDIF.
READ TABLE itab_makt INTO wa_makt WITH KEY matnr = wa_stock-matnr BINARY SEARCH.
IF sy-subrc = 0.
MOVE : wa_makt-maktx TO wa_stock-maktx.
ENDIF.
READ TABLE itab_mara INTO wa_mara WITH KEY matnr = wa_stock-matnr BINARY SEARCH.
IF sy-subrc = 0.
MOVE : wa_mara-mtart TO wa_stock-mtart.
ENDIF.
READ TABLE itab_mlgn INTO wa_mlgn WITH KEY matnr = wa_stock-matnr BINARY SEARCH.
IF sy-subrc = 0.
MOVE: wa_mlgn-ltkze TO wa_stock-ltkze,
wa_mlgn-ltkza TO wa_stock-ltkza,
wa_mlgn-lgbkz TO wa_stock-lgbkz.
ENDIF.
READ TABLE itab_lagp INTO wa_lagp WITH KEY lgnum = wa_stock-lgnum
lgtyp = wa_stock-lgtyp
lgpla = wa_stock-lgpla BINARY SEARCH.
IF sy-subrc = 0.
MOVE: wa_lagp-skzue TO wa_stock-skzue1,
wa_lagp-skzua TO wa_stock-skzua1,
wa_lagp-spgru TO wa_stock-spgru1.
ENDIF.
READ TABLE itab_mcha INTO wa_mcha WITH KEY matnr = wa_stock-matnr
werks = wa_stock-werks
charg = wa_stock-charg
BINARY SEARCH.
IF sy-subrc = 0.
CONCATENATE wa_mcha-matnr wa_mcha-werks wa_mcha-charg INTO v_temp1.
MOVE: wa_mcha-zustd TO wa_stock-zustd,
wa_mcha-hsdat TO wa_stock-hsdat.
READ TABLE itab_inob INTO wa_inob WITH KEY objek = v_temp1 BINARY SEARCH.
IF sy-subrc = 0.
READ TABLE itab_ausp INTO wa_ausp WITH KEY objek = wa_inob-cuobj
atinn = v_atinn
klart = '022' BINARY SEARCH .
IF sy-subrc = 0.
MOVE: wa_ausp-atwrt TO wa_stock-atwrt.
ENDIF.
ENDIF."INOB
APPEND wa_stock TO itab_stock.
ENDIF."MCHA
ENDIF."LAGP
ENDIF."MLGN
ENDIF. "MARA
CLEAR wa_stock.
ENDLOOP.
ENDFORM. " build_table
&----
*& Form top_of_page
&----
text
----
--> p1 text
<-- p2 text
----
FORM top_of_page .
ALV commetry write function
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = itab_listheader.
ENDFORM. " top_of_page
*&----
**& Form f_catalog
*&----
text
*----
-->P_0403 text
-->P_0404 text
-->P_TEXT_005 text
*----
FORM f_catalog USING p_field TYPE any
p_table TYPE any
p_text TYPE any.
ADD 1 TO g_pos.
wa_fcat-row_pos = 1.
wa_fcat-col_pos = g_pos.
wa_fcat-fieldname = p_field.
wa_fcat-tabname = p_table.
wa_fcat-seltext_l = p_text.
APPEND wa_fcat TO itab_fcat.
CLEAR wa_fcat.
ENDFORM. " f_catalog
&----
*& Form sort_alv
&----
text
----
--> p1 text
<-- p2 text
----
FORM sort_alv .
PERFORM f_sort USING:
'1' 'LGNUM' ,
'2' 'WERKS' ,
'3' 'LGORT' ,
'4' 'LGTYP' ,
'5' 'LGPLA' ,
'6' 'MATNR' ,
'7' 'MAKTX' ,
'8' 'MTART' ,
'9' 'LTKZE' ,
'10' 'LTKZA' ,
'11' 'LGBKZ' ,
'12' 'CHARG' ,
'13' 'ZUSTD' ,
'14' 'ATWRT' ,
'15' 'HSADT' ,
'16' 'VFDAT' ,
'17' 'BESTQ' ,
'18' 'BDATU' ,
'19' 'DATE1' ,
'20' 'WDATU' ,
'21' 'DATE2' ,
'22' 'LETYP' ,
'23' 'LENUM' ,
'24' 'SKZUE' ,
'25' 'SKZUA' ,
'26' 'SPGRU' ,
'27' 'SKZUE1' ,
'28' 'SKZUA1' ,
'29' 'SPGRU1' ,
'30' 'QPLOS' ,
'31' 'VERME' ,
'32' 'MEINS' ,
'33' 'QUAN' ,
'34' 'WAERS' .
ENDFORM. " sort_alv
&----
*& Form f_sort
&----
text
----
-->P_1679 text
-->P_1680 text
----
FORM f_sort USING p_spos TYPE any
p_field TYPE any.
CLEAR wa_sort.
wa_sort-spos = p_spos.
wa_sort-fieldname = p_field.
APPEND wa_sort TO itab_sort.
ENDFORM. " f_sort
&----
*& Form search_help_werks
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_werks .
DATA: BEGIN OF itab_werks OCCURS 0,
werks TYPE t320-werks, " Plant
lgnum TYPE t320-lgnum, " Warehouse Number
END OF itab_werks.
SELECT awerks blgnum
INTO TABLE itab_werks
FROM t320 AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'WERKS'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_WERKS'
value_org = 'S'
TABLES
value_tab = itab_werks
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_werks INDEX 1. "transporting werks.
IF sy-subrc EQ 0.
MOVE itab_werks-werks TO s_werks-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_werks
&----
*& Form search_help_lgort
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_lgort .
DATA: BEGIN OF itab_lgort OCCURS 0,
lgort TYPE t320-lgort, " Storage Location
lgnum TYPE t320-lgnum, " Warehouse Number
END OF itab_lgort.
SELECT algort blgnum
INTO TABLE itab_lgort
FROM t320 AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGORT'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_LGORT'
value_org = 'S'
TABLES
value_tab = itab_lgort
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_lgort INDEX 1. "transporting LGORT.
IF sy-subrc EQ 0.
MOVE itab_lgort-lgort TO s_lgort-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_lgort
&----
*& Form search_help_lgtyp
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_lgtyp .
DATA: BEGIN OF itab_lgtyp OCCURS 0,
lgtyp TYPE t301-lgtyp, " Storage Type
lgnum TYPE t301-lgnum, " Warehouse Number
END OF itab_lgtyp.
SELECT algtyp blgnum
INTO TABLE itab_lgtyp
FROM t301 AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGTYP'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_LGTYP'
value_org = 'S'
TABLES
value_tab = itab_lgtyp
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_lgtyp INDEX 1. "transporting LGTYP.
IF sy-subrc EQ 0.
MOVE itab_lgtyp-lgtyp TO s_lgtyp-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_lgtyp
&----
*& Form search_help_lgtkz
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_lgtkz .
DATA: BEGIN OF itab_lgtkz OCCURS 0,
lgtkz TYPE t305-lgtkz, " Storage type indicator for Stock Placement
lgnum TYPE t305-lgnum, " Warehouse Number
END OF itab_lgtkz.
SELECT algtkz blgnum
INTO TABLE itab_lgtkz
FROM t305 AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGTKZ'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_LGTKZ'
value_org = 'S'
TABLES
value_tab = itab_lgtkz
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_lgtkz INDEX 1. "transporting LGTKZ.
IF sy-subrc EQ 0.
MOVE itab_lgtkz-lgtkz TO s_lgtkz-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_lgtkz
&----
*& Form search_help_lgbkz
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_lgbkz .
DATA: BEGIN OF itab_lgbkz OCCURS 0,
lgbkz TYPE t304-lgbkz, " Storage section Indicator
lgnum TYPE t304-lgnum, " Warehouse Number
END OF itab_lgbkz.
SELECT algbkz blgnum
INTO TABLE itab_lgbkz
FROM t304 AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGBKZ'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_LGBKZ'
value_org = 'S'
TABLES
value_tab = itab_lgbkz
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_lgbkz INDEX 1. "transporting LGBKZ.
IF sy-subrc EQ 0.
MOVE itab_lgbkz-lgbkz TO s_lgbkz-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_lgbkz
&----
*& Form search_help_letyp
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_letyp .
DATA: BEGIN OF itab_letyp OCCURS 0,
letyp TYPE t307-letyp, " Storage Unit Type
lgnum TYPE t307-lgnum, " Warehouse Number
END OF itab_letyp.
SELECT aletyp blgnum
INTO TABLE itab_letyp
FROM t307 AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LETYP'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_LETYP'
value_org = 'S'
TABLES
value_tab = itab_letyp
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_letyp INDEX 1. "transporting LETYP.
IF sy-subrc EQ 0.
MOVE itab_letyp-letyp TO s_letyp-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_letyp
&----
*& Form search_help_spgru
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_spgru .
DATA: BEGIN OF itab_spgru OCCURS 0,
spgru TYPE t330-spgru, " Blocking Reason
lgnum TYPE t330-lgnum, " Warehouse Number
END OF itab_spgru.
SELECT aspgru blgnum
INTO TABLE itab_spgru
FROM t330 AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'SPGRU'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_SPGRU'
value_org = 'S'
TABLES
value_tab = itab_spgru
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_spgru INDEX 1. "transporting SPGRU.
IF sy-subrc EQ 0.
MOVE itab_spgru-spgru TO s_spgru-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_spgru
&----
*& Form search_help_lgpla
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_lgpla .
DATA: BEGIN OF itab_lgpla OCCURS 0,
lgpla TYPE lagp-lgpla, " Storage Bin
lgtyp TYPE lagp-lgtyp, " Storage Type
lgnum TYPE lagp-lgnum, " Warehouse Number
END OF itab_lgpla.
SELECT algpla algtyp b~lgnum
INTO TABLE itab_lgpla
FROM lagp AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum AND
a~lgtyp IN s_lgtyp.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGPLA'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_LGPLA'
value_org = 'S'
TABLES
value_tab = itab_lgpla
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_lgpla INDEX 1. "transporting SPGRU.
IF sy-subrc EQ 0.
MOVE itab_lgpla-lgpla TO s_lgpla-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_lgpla
&----
*& Form search_help_charg
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_charg .
DATA: BEGIN OF itab_charg OCCURS 0,
charg TYPE mchb-charg, " Batch
werks TYPE mchb-werks, " Plant
lgort TYPE mchb-lgort, " Storage Location
matnr TYPE mchb-matnr, " Material Number
END OF itab_charg.
SELECT acharg awerks algort amatnr
INTO TABLE itab_charg
FROM mchb AS a INNER JOIN t320 AS b
ON awerks EQ bwerks AND
algort EQ blgort
WHERE a~matnr IN s_matnr AND
b~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CHARG'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_CHARG'
value_org = 'S'
TABLES
value_tab = itab_charg
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_charg INDEX 1. "transporting CHARG.
IF sy-subrc EQ 0.
MOVE itab_charg-charg TO s_charg-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_charg
&----
*& Form search_help_lgtkz1
&----
text
----
--> p1 text
<-- p2 text
----
FORM search_help_lgtkz1 .
DATA: BEGIN OF itab_lgtkz OCCURS 0,
lgtkz TYPE t305-lgtkz, " Storage type indicator for Stock Removal
lgnum TYPE t305-lgnum, " Warehouse Number
END OF itab_lgtkz.
SELECT algtkz blgnum
INTO TABLE itab_lgtkz
FROM t305 AS a INNER JOIN t300 AS b
ON algnum EQ blgnum
WHERE a~lgnum IN s_lgnum.
IF sy-subrc NE 0.
MESSAGE s051(zv30_sd) .
ENDIF.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'LGTKZ'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'S_LGTKZ'
value_org = 'S'
TABLES
value_tab = itab_lgtkz
return_tab = t_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_lgtkz INDEX 1. "transporting LGTKZ.
IF sy-subrc EQ 0.
MOVE itab_lgtkz-lgtkz TO s_lgtkz1-low.
ENDIF.
ENDIF.
ENDFORM. " search_help_lgtkz1
ALV Layouts
&----
*& Form alv_f4
&----
text
----
--> p1 text
<-- p2 text
----
FORM alv_f4 .
alv_repid = sy-repid.
alv_variant-report = alv_repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = alv_variant
i_save = 'A'
IMPORTING
es_variant = alv_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
p_layout = alv_variant-variant.
ENDIF.
ENDFORM. " alv_f4
&----
*& Form alv_check
&----
text
----
FORM alv_check.
SET CURSOR FIELD 'P_LAYOUT'.
alv_variant-report = alv_repid.
alv_variant-variant = p_layout.
IF NOT p_layout IS INITIAL.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = 'A'
CHANGING
cs_variant = alv_variant
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE e321(m7) WITH p_layout alv_repid.
ENDIF.
ELSE.
the user wants no initial display variant
IF NOT alv_default_variant IS INITIAL.
but the SAP-LIST-VIEWER will apply the existing
initial display variant / emerge warning 393 ?
CALL FUNCTION 'ME_CHECK_T160M'
EXPORTING
i_arbgb = 'M7'
i_msgnr = '393'
EXCEPTIONS
nothing = 0
OTHERS = 1.
IF sy-subrc <> 0.
list will be created using the initial layout &
MESSAGE w393(m7) WITH alv_default_variant.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. "alv_check
<b>Can you please close all your open threads if you are satisfied with the answers provide.</b>
Regards,
Sree
2007 Jun 13 11:43 AM
Hi,
Refer this site they have given clearly with coding and example.
http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_color.htm
Thanks,
Pavan.
2007 Jun 13 11:43 AM
Hi,
<b>I_SAVE = < variable of type C>, determines the option available to the user for saving layout.</b>
if 'x'------> for global saving only.
if 'U'------> for user-specific saving only.
if 'A'-------> for corresponding to 'X' and 'U' only.
IF SPACE -
> no savings.
<b>follow this link for sample program as per u r need.</b>
http://www.sap-img.com/abap/line-color-in-alv-example.htm
regards,
Ashokreddy.