Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

ALV editable with traffic lights

Former Member
0 Kudos

Hello all,

I need some help about ALV editable; my reports display an ALV grid editable, and update all the new values on the DB table, but I have traffic lights as values on the DB table.

More information’s:

So this is my internal table…

<i>DATA: BEGIN OF it_table OCCURS 0,

document TYPE admi-document,

status TYPE admi-status, “(traffic</i> lights from the table able to modify)

archiv_key TYPE admi_files-archiv_key,

status_opt TYPE admi_files-status_opt, “(traffic lights from the table able to modify )

status_fil TYPE admi_files-status_fil, “(traffic lights from the table able to modify )

END OF it_report.

…</i>

I got all the match code form the table (DB) , so on my report I could modify all the traffic lights but when I save the modifications, I got a message error.

And the second problem was, I couldn’t come back to the value initial and I getting the same message.

Can anybody help me please?

Thanks you.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

HI,

U follow these links to solve u r query.

<u><b>How can I display an icon in ALV? (Common requirement is traffic light icon).</b></u>

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

regards,

AshokReddy.

3 REPLIES 3

Former Member
0 Kudos

HI,

U follow these links to solve u r query.

<u><b>How can I display an icon in ALV? (Common requirement is traffic light icon).</b></u>

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

regards,

AshokReddy.

Former Member
0 Kudos

see the program and i am using traffic lights in my program --

REPORT ZWM_BIN_STOCK_REQ no standard page heading

message-id zwave.

***********************************************************************

                    • D A T A D E C L A R A T I O N ****************************

***********************************************************************

  • Tables

tables : zpwvbap,

mara,

marc,

makt,

vbap,

zshift,

marm,

lqua.

TYPE-POOLS: SLIS.

  • Internal Table for Sales order

data : begin of i_vbap occurs 0,

matnr like zpwvbap-matnr," Material #

ZZCUTOFF like zpwvbak-ZZCUTOFF," Cutoff Time

vlpla like zpwvbap-vlpla,

kwmeng like zpwvbap-kwmeng," Quantity

vrkme like zpwvbap-vrkme, " Sales Unit

meins like zpwvbap-meins, " Unit of measure

end of i_vbap.

  • Internal Table for final Processing

data : begin of i_final occurs 0,

date(8) type c,

matnr like zpwvbap-matnr," Material #

zzshift like zshift-zzshift, " Wave Drop

maktx like makt-maktx," Desc

lgpla like lagp-lgpla, " Pick Bin

pverme like lqua-verme," Stock at Pick Bin

prverme like lqua-verme," Stock at Prod Bin

kwmeng like zpwvbap-kwmeng," Requiremnet from Wave Drop

vrkme like zpwvbap-vrkme, " Sales Unit

  • meins like zpwvbap-meins," Unit of measure

end of i_final.

  • Internal Table for Output

data : begin of i_output occurs 0,

field type c, " Traffic Lights

zzshift like zshift-zzshift, " Wave Drop

matnr like zpwvbap-matnr," Material #

maktx like makt-maktx," Desc

lgpla like lagp-lgpla, " Pick Bin

pverme like lqua-verme," Stock at Pick Bin

prverme like lqua-verme," Stock at Prod Bin

kwmeng like zpwvbap-kwmeng," Requiremnet from Wave Drop

vrkme like zpwvbap-vrkme," Sales Unit

  • meins like zpwvbap-meins," Unit of measure

diff like zpwvbap-kwmeng, " Diffrence

end of i_output.

  • Work Area for Final Internal Table

data wa_final like i_final.

data : w_zzcutoff(12) TYPE c,

v_date type sy-datum,

v_time(4) type c,

v_fldate(12) type c,

v_fhdate(12) type c,

v_pverme like lqua-verme,

v_prverme like lqua-verme,

v_diff like zpwvbap-kwmeng.

  • Variables for new check box

data : v_nverme like lqua-verme.

  • Internal Table for Pick Bin

data : begin of i_verme occurs 0,

verme like lqua-verme,

end of i_verme.

  • Internal table for Prod Bin

data : begin of i_pverme occurs 0,

verme like lqua-verme,

end of i_pverme.

  • Variables for ALV

DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT_LN LIKE LINE OF FIELDCAT,

SORTCAT TYPE SLIS_T_SORTINFO_ALV,

SORTCAT_LN LIKE LINE OF SORTCAT,

EVENTCAT TYPE SLIS_T_EVENT,

EVENTCAT_LN LIKE LINE OF EVENTCAT,

LAYOUT TYPE SLIS_LAYOUT_ALV,

C_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',

g_user_command TYPE slis_formname VALUE 'USER_COMMAND',

GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: COL_POS TYPE I,

P_LIGNAM TYPE SLIS_FIELDNAME VALUE 'FIELD'.

DATA : V_REPID LIKE SY-REPID,

flag type c.

************************************************************************

                            • S E L E C T I O N - S C R E E N *************************

************************************************************************

selection-screen : begin of block blk with frame title text-001.

parameter : p_plant like marc-werks obligatory default '1000'.

select-options : s_date for sy-datum obligatory ,

s_shift for zshift-zzshift,

s_matnr for mara-matnr,

s_dept for zpwvbap-zzdept,

s_pdept for marc-ZZPRODDEPT.

selection-screen: end of block blk.

parameters : p_check as checkbox ."default 'X'.

ranges r_cutoff for w_zzcutoff.

************************************************************************

                              • I N I T I A L I Z A T I O N ****************************

************************************************************************

initialization.

V_REPID = SY-REPID.

s_date-low = sy-datum + 1.

append s_date.

************************************************************************

                      • S T A R T - O F - S E L E C T I O N ***********************

************************************************************************

start-of-selection.

  • Get the Shift Data.

PERFORM GET_SHIFT_DETAILS.

  • Get the data from ZPWVBAP Table

PERFORM GET_DATA_VBAP.

***********************************************************************

                                • E N D - O F - S E L E C T I O N **********************

***********************************************************************

end-of-selection.

if not i_output[] is initial.

sort i_output by field zzshift matnr.

  • Reset the all Fiedcatlog.

PERFORM RESETVALUES.

  • Traffic Lights

PERFORM BUILD_LAYOUT.

  • Fill the fieldcatlog values

PERFORM FILL_FIELDCATLOG.

  • Call the List Function module

PERFORM CALL_lIST.

endif.

&----


*& Form GET_SHIFT_DETAILS

&----


  • Get the Cutoff Time.

----


FORM GET_SHIFT_DETAILS.

clear : v_fldate,

v_fhdate.

if not s_shift-low is initial.

clear: v_time,

v_date.

if s_shift-low = '1'.

v_time = '2000'.

elseif s_shift-low = '2'.

v_time = '2300'.

endif.

v_date = s_date-low - 1.

concatenate v_date v_time into v_fldate.

endif.

if not s_shift-high is initial.

clear : v_date,

v_time.

if s_shift-high = '1'.

v_time = '2000'.

elseif s_shift-high = '2'.

v_time = '2300'.

endif.

if not s_date-high is initial.

v_date = s_date-high - 1.

else.

v_date = s_date-low - 1.

endif.

concatenate v_date v_time into v_fhdate.

endif.

if not v_fhdate is initial.

r_cutoff-low = v_fldate.

r_cutoff-high = v_fhdate.

r_cutoff-sign = 'I'.

r_cutoff-option = 'BT'.

append r_cutoff.

endif.

ENDFORM. " GET_SHIFT_DETAILS

&----


*& Form GET_DATA_VBAP

&----


  • Get the data from ZPWVBAP Table

----


FORM GET_DATA_VBAP.

  • Get the data from ZPWVBAP and ZPWVBAK Table

if not v_fhdate is initial.

select matnr ZZCUTOFF vlpla sum( kwmeng ) vrkme meins

into table i_vbap

from zpwvbap as a inner join zpwvbak as b on

a~vbeln = b~vbeln

where a~werks = p_plant

and a~matnr in s_matnr

and b~vdatu in s_date

and a~zzdept in s_dept

and b~zzcutoff in r_cutoff

group by matnr zzcutoff vlpla vrkme meins.

elseif not v_fldate is initial.

select matnr ZZCUTOFF vlpla sum( kwmeng ) vrkme meins

into table i_vbap

from zpwvbap as a inner join zpwvbak as b on

a~vbeln = b~vbeln

where a~werks = p_plant

and a~matnr in s_matnr

and b~vdatu in s_date

and a~zzdept in s_dept

and b~zzcutoff = v_fldate

group by matnr zzcutoff vlpla vrkme meins.

else.

select matnr ZZCUTOFF vlpla sum( kwmeng ) vrkme meins

into table i_vbap

from zpwvbap as a inner join zpwvbak as b on

a~vbeln = b~vbeln

where a~werks = p_plant

and a~matnr in s_matnr

and b~vdatu in s_date

and a~zzdept in s_dept

and b~zzcutoff in r_cutoff

group by matnr zzcutoff vlpla vrkme meins .

endif.

if sy-subrc ne 0.

message i000(zwave) with 'No data found for given selection'.

stop.

endif.

sort i_vbap by zzcutoff matnr.

loop at i_vbap.

clear : v_pverme,

v_prverme.

  • Compare the data with pick method

select single zzpick from marc into marc-zzpick

where matnr = i_vbap-matnr

and werks = p_plant

and zzpick = '01'.

if sy-subrc ne 0.

continue.

endif.

  • Compare the data from MARC Table with Production Department

select single zzPRODdept from marc into marc-zzPRODdept

where matnr = i_vbap-matnr

and werks = p_plant

and zzPRODdept in s_pdept.

if sy-subrc ne 0.

continue.

endif.

  • Get the Material Description from MAKT Table

Select single maktx from makt into makt-maktx

where matnr = i_vbap-matnr

and spras = 'E'.

if sy-subrc eq 0.

i_final-maktx = makt-maktx.

endif.

  • Get the Pick Bin

i_final-lgpla = i_vbap-vlpla.

refresh i_verme.

clear i_verme.

  • Get the stock at Pick bin

select verme from lqua into table i_verme

where lgpla = i_vbap-vlpla

and matnr = i_vbap-matnr

and LGNUM = '100'.

if sy-subrc eq 0.

loop at i_verme.

v_pverme = v_pverme + i_verme-verme.

endloop.

if sy-subrc eq 0.

i_final-pverme = v_pverme.

endif.

endif.

refresh i_pverme.

clear i_pverme.

  • Get the stock at Production bin

select verme from lqua into table i_pverme

where matnr = i_vbap-matnr

and LGNUM = '100'

and ( lgpla = '9595959595' or

lgpla = '2222222222' or

lgpla = '5555555555' or

lgpla = '3232323232' or

lgpla = '8080808080' or

lgpla = '4040404040' or

lgpla = '9090909090' ).

if sy-subrc eq 0.

loop at i_pverme.

v_prverme = v_prverme + i_pverme-verme.

endloop.

if sy-subrc eq 0.

i_final-prverme = v_prverme.

endif.

endif.

  • Compare the unit of measure and sales unit

if i_vbap-vrkme ne i_vbap-meins.

  • Get the data from MARM Table ( Unit of measure )

select single * from marm into marm

where matnr = i_vbap-matnr

and meinh = i_vbap-vrkme.

if sy-subrc eq 0.

i_final-pverme = ( i_final-pverme * marm-umren ) / marm-umrez.

endif.

endif.

  • Material #

i_final-matnr = i_vbap-matnr.

  • Quantity from ZPWVBAP

i_final-kwmeng = i_vbap-kwmeng.

  • Unit of Measure

  • i_final-meins = i_vbap-meins.

  • Sales Unit

i_final-vrkme = i_vbap-vrkme.

  • Wave Drop

if i_vbap-ZZCUTOFF+8(4) = '2000' .

i_final-zzshift = '1'.

endif.

if i_vbap-zzcutoff+8(4) = '2300'.

i_final-zzshift = '2'.

endif.

i_final-date = i_vbap-zzcutoff+0(8).

append i_final.

clear : i_final,

i_vbap.

**Difference

*

  • i_output-diff = i_output-pverme - i_vbap-kwmeng.

*

    • Traffic Lights Depends on value

  • if i_output-pverme > i_output-kwmeng.

  • i_output-field = '3'.

  • elseif i_output-pverme < i_output-kwmeng.

  • i_output-field = '1'.

  • elseif i_output-pverme = i_output-kwmeng.

  • i_output-field = '2'.

  • endif.

*

  • append i_output.

  • clear : i_output,

  • i_vbap.

endloop.

refresh i_vbap.

sort i_final by date matnr zzshift.

  • Processing the internal table to get same material with pick quantity

  • deduction even it for 2nd shift

loop at i_final.

  • Move the data into work area in order remove #

move i_final to wa_final.

clear : flag.

at new matnr.

move : wa_final-matnr to i_output-matnr," Material #

wa_final-maktx to i_output-maktx," Desc

wa_final-lgpla to i_output-lgpla," Pick Bin

wa_final-kwmeng to i_output-kwmeng," Order qty

wa_final-zzshift to i_output-zzshift," Shift

wa_final-pverme to i_output-pverme, " Pick bin qty

wa_final-vrkme to i_output-vrkme," Sales Unit

wa_final-prverme to i_output-prverme. " Prod Bin Qty

break sreddy.

  • Difference

i_output-diff = i_output-pverme - i_output-kwmeng.

  • New logic for Only HMR Department

if p_check = 'X'.

if i_output-pverme < i_output-kwmeng.

v_nverme = i_output-pverme + i_output-prverme.

if v_nverme > i_output-kwmeng.

if i_output-pverme < i_output-kwmeng.

i_output-field = '2'.

else.

  • Traffic Lights Depends on value

i_output-field = '3'.

endif.

elseif v_nverme < i_output-kwmeng.

i_output-field = '1'.

elseif v_nverme = i_output-kwmeng.

i_output-field = '2'.

endif.

elseif i_output-pverme > i_output-kwmeng.

i_output-field = '3'.

elseif i_output-pverme = i_output-kwmeng.

i_output-field = '3'.

endif.

else.

  • Traffic Lights Depends on value

if i_output-pverme > i_output-kwmeng.

i_output-field = '3'.

elseif i_output-pverme < i_output-kwmeng.

i_output-field = '1'.

elseif i_output-pverme = i_output-kwmeng.

i_output-field = '2'.

endif.

endif.

move i_output-diff to v_diff.

flag = 'X'.

endat.

if flag ne 'X'.

move : wa_final-matnr to i_output-matnr," Material #

wa_final-maktx to i_output-maktx," Desc

wa_final-lgpla to i_output-lgpla," Pick Bin

wa_final-kwmeng to i_output-kwmeng," Order qty

wa_final-zzshift to i_output-zzshift," Shift

wa_final-vrkme to i_output-vrkme," Sales Unit

wa_final-prverme to i_output-prverme. " Prod Bin Qty

  • Move Diffrence value

move v_diff to i_output-pverme.

clear: v_diff.

  • New logic for Only HMR Department

  • New logic for Only HMR Department

if p_check = 'X'.

if i_output-pverme < i_output-kwmeng.

v_nverme = i_output-pverme + i_output-prverme.

if v_nverme > i_output-kwmeng.

if i_output-pverme < i_output-kwmeng.

i_output-field = '2'.

else.

  • Traffic Lights Depends on value

i_output-field = '3'.

endif.

  • Traffic Lights Depends on value

  • i_output-field = '3'.

elseif v_nverme < i_output-kwmeng.

i_output-field = '1'.

elseif v_nverme = i_output-kwmeng.

i_output-field = '2'.

endif.

elseif i_output-pverme > i_output-kwmeng.

i_output-field = '3'.

elseif i_output-pverme = i_output-kwmeng.

i_output-field = '3'.

endif.

i_output-diff = i_output-pverme - i_output-kwmeng.

else.

  • Difference

i_output-diff = i_output-pverme - i_output-kwmeng.

  • Traffic Lights Depends on value

if i_output-pverme > i_output-kwmeng.

i_output-field = '3'.

elseif i_output-pverme < i_output-kwmeng.

i_output-field = '1'.

elseif i_output-pverme = i_output-kwmeng.

i_output-field = '2'.

endif.

endif.

endif.

append i_output.

clear : i_output,

wa_final,

i_final,

v_nverme.

endloop.

sort i_output by field zzshift matnr.

ENDFORM. " GET_DATA_VBAP

&----


*& Form RESETVALUES

&----


  • Reset the all fieldcatlogs

----


FORM RESETVALUES.

FIELDCAT_LN-KEY = SPACE.

FIELDCAT_LN-DO_SUM = SPACE.

FIELDCAT_LN-NO_OUT = SPACE.

FIELDCAT_LN-QFIELDNAME = SPACE.

FIELDCAT_LN-HOTSPOT = SPACE.

FIELDCAT_LN-OUTPUTLEN = '0'.

CLEAR: fieldcat_ln-seltext_l, fieldcat_ln-seltext_m,

fieldcat_ln-seltext_s, fieldcat_ln-reptext_ddic.

ENDFORM. " RESETVALUES

&----


*& Form FILL_FIELDCATLOG

&----


  • Fill the Fieldcatlog values

----


FORM FILL_FIELDCATLOG.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

  • Trafiic Light

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'FIELD'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 7.

LS_FIELDCAT-col_pos = '1'.

ls_fieldcat-seltext_L = 'Lights'.

ls_fieldcat-seltext_s = 'Lights'.

ls_fieldcat-seltext_m = 'Lights'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Wave Drop

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'ZZSHIFT'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 9.

LS_FIELDCAT-col_pos = '2'.

ls_fieldcat-seltext_L = 'Wave Drop'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Material

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'MATNR'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 18.

LS_FIELDCAT-col_pos = '3'.

ls_fieldcat-seltext_L = 'Material'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Description

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'MAKTX'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 40.

LS_FIELDCAT-col_pos = '4'.

ls_fieldcat-seltext_L = 'Description'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Pick Bin

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'LGPLA'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 15.

LS_FIELDCAT-col_pos = '5'.

ls_fieldcat-seltext_L = 'Pick Bin'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Trafiic Light

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'PVERME'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 16.

LS_FIELDCAT-col_pos = '6'.

ls_fieldcat-seltext_L = 'Stock at Pick Bin'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Stock at Prod Bin

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'PRVERME'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 16.

LS_FIELDCAT-col_pos = '7'.

ls_fieldcat-seltext_L = 'Stock at Prod Bin'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Req from wave drop

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'KWMENG'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 23.

LS_FIELDCAT-col_pos = '8'.

ls_fieldcat-seltext_L = 'Requirement from Wave Drop'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Sales Unit

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'VRKME'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 12.

LS_FIELDCAT-col_pos = '9'.

ls_fieldcat-seltext_L = 'Sales Unit'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Unit of Measure

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'MEINS'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 9.

LS_FIELDCAT-col_pos = '10'.

ls_fieldcat-seltext_L = 'UNIT'.

ls_fieldcat-no_out = 'X'.

APPEND LS_FIELDCAT TO FIELDCAT.

  • Diffference

CLEAR LS_FIELDCAT.

LS_FIELDCAT-FIELDNAME = 'DIFF'.

LS_FIELDCAT-TABNAME = 'I_OUTPUT'.

LS_FIELDCAT-OUTPUTLEN = 12.

LS_FIELDCAT-col_pos = '11'.

ls_fieldcat-seltext_L = 'Difference'.

APPEND LS_FIELDCAT TO FIELDCAT.

ENDFORM. " FILL_FIELDCATLOG

&----


*& Form CALL_lIST

&----


  • Use ALV Function module to display output

----


FORM CALL_lIST.

  • Top - of - Page

PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = g_user_command

I_CALLBACK_TOP_OF_PAGE = C_TOP_OF_PAGE

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IT_EXCEPT_QINFO =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = I_OUTPUT

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

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. " CALL_lIST

&----


*& Form BUILD_LAYOUT

&----


  • text

----


FORM BUILD_LAYOUT.

LAYOUT-GET_SELINFOS = 'X'.

      • Now we want a traffic light to say if the Truck is deleted

      • the variable p_lignam contains the name in IREPO which stores the

      • value for the traffic light

LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.

layout-HEADER_TEXT = 'Lights'.

LAYOUT-LIGHTS_CONDENSE = 'X'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form COMMENT_BUILD

&----


  • text

----


  • -->P_GT_LIST_TOP_OF_PAGE[] text

----


FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE

SLIS_T_LISTHEADER.

data : v_day(2) type c,

v_mon(2) type c,

v_year(4) type c,

v_ldate(10) type c,

v_hdate(10) type c.

DATA: LS_LINE TYPE SLIS_LISTHEADER.

data: d_date like sy-datum.

clear : v_ldate,

v_hdate.

  • Header Information.

  • LIST HEADING LINE: TYPE H

CLEAR LS_LINE.

LS_LINE-TYP = 'H'.

  • LS_LINE-KEY: NOT USED FOR THIS TYPE

LS_LINE-INFO = 'Bin Replenishment report for HMR'.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

  • STATUS LINE: TYPE S

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = TEXT-003.

  • LS_LINE-INFO = TEXT-003.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

  • STATUS LINE: TYPE S

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

  • LS_LINE-KEY = TEXT-003.

  • LS_LINE-INFO = TEXT-003.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

  • Get the data ( s_date_low) into proper format.

v_year = s_date-low+0(4).

v_mon = s_date-low+4(2).

v_day = s_date-low+6(2).

concatenate v_mon '/' v_day '/' v_year into v_ldate.

clear : v_mon,

v_year,

v_day.

  • Get the data ( s_date_high) into proper format.

v_year = s_date-high+0(4).

v_mon = s_date-high+4(2).

v_day = s_date-high+6(2).

concatenate v_mon '/' v_day '/' v_year into v_hdate.

clear : v_mon,

v_year,

v_day.

  • Delivery date

if not s_date-low is initial .

if not s_date-high is initial.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Delivery date From:'.

LS_LINE-INFO = v_ldate.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Delivery date To :'.

LS_LINE-INFO = v_hdate.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

endif.

endif.

if not s_date-low is initial.

if s_date-high is initial.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Delivery date :'.

LS_LINE-INFO = v_ldate.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

endif.

endif.

  • Wave Drop

if not S_SHIFT-LOW is initial.

if not S_SHIFT-high is initial.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Wave Drop From :'.

LS_LINE-INFO = s_shift-low.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Wave Drop to :'.

LS_LINE-INFO = s_shift-high.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

endif.

endif.

if not S_SHIFT-LOW is initial.

if S_SHIFT-high is initial.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Wave Drop :'.

LS_LINE-INFO = s_shift-low.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

  • CLEAR LS_LINE.

  • LS_LINE-TYP = 'S'.

  • LS_LINE-KEY = 'Wave Drop to :'.

  • LS_LINE-INFO = s_shift-high.

  • APPEND LS_LINE TO LT_TOP_OF_PAGE.

endif.

endif.

  • Department

if not s_dept-low is initial .

if not s_dept-high is initial.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Department From :'.

LS_LINE-INFO = s_dept-low.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Department to :'.

LS_LINE-INFO = s_dept-high.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

endif.

endif.

if not s_dept-low is initial .

if s_dept-high is initial.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Department :'.

LS_LINE-INFO = s_dept-low.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

endif.

endif.

  • Production Department

if not S_PDEPT-LOW is initial.

if not S_PDEPT-high is initial.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Production Department From :'.

LS_LINE-INFO = S_PDEPT-LOW.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Production Department to :'.

LS_LINE-INFO = S_PDEPT-high.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

endif.

endif.

if not S_PDEPT-LOW is initial.

if S_PDEPT-high is initial.

CLEAR LS_LINE.

LS_LINE-TYP = 'S'.

LS_LINE-KEY = 'Production Department :'.

LS_LINE-INFO = S_PDEPT-LOW.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

endif.

endif.

ENDFORM. " COMMENT_BUILD

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

----


  • FORM USER_COMMAND *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield. "#EC CALLED

CASE R_UCOMM.

WHEN '&IC1'.

read table i_output index rs_selfield-tabindex.

SET PARAMETER ID 'MAT' FIELD i_output-matnr.

SET PARAMETER ID 'WRK' FIELD p_plant.

if not i_output-matnr is initial.

call transaction 'MD04' and skip first screen.

endif.

ENDCASE.

ENDFORM.

Former Member
0 Kudos

Sorry ,

it's not exactly what I want !

the problem was on my tabel.

on my table (DB) ADMI as value range

0 = yellow light

1 = green light

2 = red light

....

So I don't kwon how could I do it, for my ALV editable...

thank you