AT new in ALV
Hello every one, got an issue with at new in ALV.
I need to get individial sum for each employee. So what ever the amount sub total is for emploee 8361 it should be displayed first b4 it proceeds for next employee 8375.
How to go about it.
Employe Amount
8361 50,000.00-
8375 47,250.00
8375 23,625.00-
8375 64,855.00-
8375 95,100.00-
8375 70,150.00-
256,480.00-
Hi Kesi,
*& Report Z_REPORTFROMKNA1ANDT005T
report z_reportfromkna1andt005t
line-size 180
message-id zz.
tables:ekko.
type-pools : slis.
Internal table for ALV
data : it_fieldcat type slis_t_fieldcat_alv, "Field catalog
wa_fieldcat type slis_fieldcat_alv, "WA for Field catalog
it_event type slis_t_event, "events
wa_event type slis_alv_event, "WA for events
it_comment type slis_t_listheader, "Header details
wa_comment type slis_listheader, "WA for header details
wa_layout type slis_layout_alv, "Layout
it_sort type slis_t_sortinfo_alv, "Sort table
wa_sort type slis_sortinfo_alv, "WA for sort table
it_keyinfo type slis_keyinfo_alv. "Pass key value
data : v_repid like sy-repid.
v_repid = sy-repid.
data : v_date like sy-datum.
color management.
data : it_color type table of lvc_s_scol. "Color management.
Internal table declearation
data:begin of it_ekko occurs 0,
ebeln like ekko-ebeln,
bukrs like ekko-bukrs,
aedat like ekko-aedat,
end of it_ekko.
data : begin of it_ekpo occurs 0,
ebeln like ekpo-ebeln,
ebelp like ekpo-ebelp,
matnr like ekpo-matnr,
menge like ekpo-menge,
meins like ekpo-meins,
netpr like ekpo-netpr,
netwr like ekpo-menge,
end of it_ekpo.
data : begin of it_EKBE occurs 0,
ebeln like EKBE-ebeln,
ebelp like EKBE-ebelp,
BELNR like EKBE-BELNR,
MENGE like EKBE-MENGE,
MATNR like EKBE-MATNR,
end of it_EKBE.
data : begin of it_final occurs 0,
ebeln like ekpo-ebeln,
ebelp like ekpo-ebelp,
matnr like ekpo-matnr,
menge like ekpo-menge,
meins like ekpo-meins,
netpr like ekpo-netpr,
netwr like ekpo-netwr,
line_color(4) type c, "Used to store row color attributes
end of it_final.
selection-screen begin of block blk with frame title text-001.
select-options:s_ebeln for ekko-ebeln.
parameters : rb1 radiobutton group g1,
rb2 radiobutton group g1,
rb3 radiobutton group g1.
selection-screen end of block blk.
start-of-selection.
perform get_details.
perform get_alv.
*& Form GET_DETAILS
Get the details
form get_details .
data: ld_color(1) type c.
select ebeln
bukrs
aedat
from ekko
into table it_ekko
where ebeln in s_ebeln.
if sy-subrc = 0.
sort it_ekko by ebeln.
else.
message e000 with 'DATA NOT FOUND'.
endif.
if not it_ekko[] is initial.
select ebeln
ebelp
matnr
menge
meins
netpr
netwr
from ekpo
into table it_ekpo
for all entries in it_ekko
where ebeln = it_ekko-ebeln.
if sy-subrc = 0.
sort it_ekpo by ebeln.
endif.
endif.
loop at it_ekpo.
it_final-ebeln = it_ekpo-ebeln.
it_final-ebelp = it_ekpo-ebelp.
it_final-matnr = it_ekpo-matnr.
it_final-menge = it_ekpo-menge.
it_final-meins = it_ekpo-meins.
it_final-netpr = it_ekpo-netpr.
it_final-netwr = it_ekpo-netwr.
on change of it_final-ebeln.
ld_color = 7.
concatenate 'C' ld_color '10' into it_final-line_color.
endon.
append it_final.
clear it_final.
endloop.
loop at it_final.
on change of it_final-ebeln.
ld_color = 7.
concatenate 'C' ld_color '10' into it_final-line_color.
modify it_final.
endon.
endloop.
endform. " GET_DETAILS
*& Form GET_ALV
text
form get_alv .
perform generate_fieldcat.
perform generate_layout.
perform generate_events.
perform generate_sort.
perform alv_grid_display.
endform. " GET_ALV
*& Form GENERATE_FIELDCAT
Field catalog
form generate_fieldcat .
if rb1 = 'X' or rb2 = 'X'.
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-just = 'R'.
wa_fieldcat-seltext_l = 'PO Number'.
wa_fieldcat-lowercase = 'X'.
<b> wa_fieldcat-do_sum = 'X'.</b>
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext_l = 'Item Number'.
wa_fieldcat-lowercase = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext_l = 'Material Number'.
wa_fieldcat-lowercase = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext_l = 'PO Quantity'.
wa_fieldcat-lowercase = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'MEINS'.
wa_fieldcat-col_pos = '5'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext_l = 'Order unit'.
wa_fieldcat-lowercase = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'NETPR'.
wa_fieldcat-col_pos = '6'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext_l = 'Net price'.
wa_fieldcat-lowercase = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'NETWR'.
wa_fieldcat-col_pos = '7'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext_l = 'Net order value'.
wa_fieldcat-lowercase = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'CHK'.
wa_fieldcat-col_pos = '8'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext_l = 'Check Box'.
wa_fieldcat-lowercase = 'X'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-edit = 'X'.
append wa_fieldcat to it_fieldcat.
else.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = v_repid
i_internal_tabname = 'IT_EKKO'
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = v_repid
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
changing
ct_fieldcat = it_fieldcat
exceptions
inconsistent_interface = 1
program_error = 2
others = 3
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = v_repid
i_internal_tabname = 'IT_EKPO'
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = v_repid
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
changing
ct_fieldcat = it_fieldcat
exceptions
inconsistent_interface = 1
program_error = 2
others = 3
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endif.
endform. " GENERATE_FIELDCAT
*& Form GENERATE_EVENTS
Generate Events
form generate_events .
call function 'REUSE_ALV_EVENTS_GET'
importing
et_events = it_event
exceptions
list_type_wrong = 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.
if not it_event[] is initial.
read table it_event into wa_event with key name = 'TOP_OF_PAGE'.
if sy-subrc = 0.
wa_event-form = 'TOP_OF_PAGE'.
modify it_event from wa_event index sy-tabix.
endif.
endif.
endform. " GENERATE_EVENTS
*& Form TOP_OF_PAGE
TOP_OF_PAGE
form top_of_page.
wa_comment-typ = 'S'.
wa_comment-key = 'USER :'.
wa_comment-info = sy-uname.
append wa_comment to it_comment.
wa_comment-typ = 'S'.
wa_comment-key = 'DATE:'.
wa_comment-info = sy-datum.
append wa_comment to it_comment.
wa_comment-typ = 'S'.
wa_comment-key = 'TIME:'.
wa_comment-info = sy-timlo.
append wa_comment to it_comment.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = it_comment.
clear it_comment.
endform. "TOP_OF_PAGE
*& Form ALV_GRID_DISPLAY
Grid display
form alv_grid_display .
if rb1 = 'X'.
perform grid_display.
elseif rb2 = 'X'.
perform list_display.
else.
perform hierseq_display.
endif.
endform. " ALV_GRID_DISPLAY
*& Form GENERATE_LAYOUT
LAYOUT
form generate_layout .
wa_layout-colwidth_optimize = 'X'. "OPTIMIZING FIELD WIDTH
wa_layout-zebra = 'X'. "PUTTING ZEBRA COLORS
<b> wa_layout-totals_text = 'Total'.</b>
<b> wa_layout-subtotals_text = 'SUB TOTAL'.</b>
wa_layout-info_fieldname = 'LINE_COLOR'.
endform. " GENERATE_LAYOUT
*& Form GENERATE_SORT
SORT
form generate_sort .
wa_sort-fieldname = 'EBELN'.
wa_sort-spos = '1'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
append wa_sort to it_sort.
endform. " GENERATE_SORT
*& Form GRID_DISPLAY
GRID DISPLAY
form grid_display .
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 = 'IT_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
i_grid_title = 'Purchase Order Details'
I_GRID_SETTINGS = I_GRID_SETTINGS
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
it_sort = it_sort
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
it_events = it_event
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
tables
t_outtab = it_final
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. " GRID_DISPLAY
*& Form LIST_DISPLAY
LIST DISPLAY
form list_display .
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = ' '
i_callback_program = v_repid
I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'IT_USER_COMMAND'
I_STRUCTURE_NAME = I_STRUCTURE_NAME
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
it_sort = it_sort
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
it_events = it_event
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
tables
t_outtab = it_final
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. " LIST_DISPLAY
*& Form HIERSEQ_DISPLAY
HIERSEQ DISPLAY
form hierseq_display .
it_keyinfo-header01 = 'EBELN'.
it_keyinfo-item01 = 'EBELN'.
call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
i_callback_program = v_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
is_layout = wa_layout
it_fieldcat = it_fieldcat
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
it_sort = it_sort
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
it_events = it_event
IT_EVENT_EXIT = IT_EVENT_EXIT
i_tabname_header = 'IT_EKKO'
i_tabname_item = 'IT_EKPO'
I_STRUCTURE_NAME_HEADER = I_STRUCTURE_NAME_HEADER
I_STRUCTURE_NAME_ITEM = I_STRUCTURE_NAME_ITEM
is_keyinfo = it_keyinfo
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
IR_SALV_HIERSEQ_ADAPTER = IR_SALV_HIERSEQ_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
tables
t_outtab_header = it_ekko
t_outtab_item = it_ekpo
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. " HIERSEQ_DISPLAY
*& Form IT_USER_COMMAND
text
form it_user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
free it_fieldcat.
case r_ucomm.
when '&IC1'.
read table it_final index rs_selfield-tabindex.
perform get_EKBE.
PERFORM GET_FIELD_CATALOG.
perform get_list.
endcase.
endform. "IT_USER_COMMAND
*& Form GET_EKBE
text
form get_EKBE .
if not it_final[] is initial.
select ebeln
ebelp
BELNR
MENGE
MATNR
into table it_ekbe
from EKBE
for all entries in it_final
where ebeln = it_final-ebeln
and ebelp = it_final-ebelp.
endif.
endform. " GET_EKBE
*& Form GET_FIELD_CATALOG
text
form GET_FIELD_CATALOG .
wa_fieldcat-fieldname = 'EBELN'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-just = 'R'.
wa_fieldcat-seltext_l = 'PO Number'.
wa_fieldcat-lowercase = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-col_pos = '2'.
wa_fieldcat-just = 'R'.
wa_fieldcat-seltext_l = 'Item Number'.
wa_fieldcat-lowercase = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'BELNR'.
wa_fieldcat-col_pos = '3'.
wa_fieldcat-just = 'R'.
wa_fieldcat-seltext_l = 'Material Document'.
wa_fieldcat-lowercase = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-col_pos = '4'.
wa_fieldcat-just = 'R'.
wa_fieldcat-seltext_l = 'Quantity'.
wa_fieldcat-lowercase = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-col_pos = '5'.
wa_fieldcat-just = 'R'.
wa_fieldcat-seltext_l = 'Material Number'.
wa_fieldcat-lowercase = 'X'.
wa_fieldcat-do_sum = 'X'.
append wa_fieldcat to it_fieldcat.
endform. " GET_FIELD_CATALOG
*& Form get_list
text
form get_list .
IF RB1 = 'X'.
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 = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'SECONDARY LIST'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
tables
t_outtab = IT_EKBE
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.
ENDIF.
IF RB2 = 'X'.
call function 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = v_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
tables
t_outtab = it_ekbe
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.
ENDIF.
endform. " get_list
Thanks
Vikranth Khimavath
Message was edited by: Khimavath Vikranth
Similar Messages
-
At-New using ALV Function Modules
Hi,
Could anyone post how to handle control break command 'AT NEW' in ALV Reports using Function Modules.Hi Amit,
you've posted the question asked by me in another thread, Also one is related to oops and the other is related to Function modules. For my issue I have know about both of them.
Waiting for ur reply in form of solution.
Thanks,
G Sandeep Kumar. -
How to use at new in alv report
Hi Experts,
I am creating a ALV report in which i have to sorted the data with 1 field like " if there the one division that have multiple department , so i have to show the output like division name then next row contain the releted dept of that"
can you plz suggest me how to i do this.
Thanks....Hi Asamadhi,
Using control break statement(At new or at end of)you can do this.
At first sort the internal table by key field(for your case i think division).
at first field(division)
write:/ data.
endat.
Regards,
Tutun -
Example of how to call a BadI from an Abap and use the NEW OO ALV Grid
Very easy to do.
<b>REPORT Z_BADI_TEST.
test call Badi from standard abap.
*Only from rel 6.40
do the following
1) define the Badi (SE18).
For Abap call test uncheck multiple use
and filter boxes
2) Implement the badi (SE19).
Add any methods here in the implementation
3) activate
4) define the standard class exithandler to the
Abap. This class is the "Badi caller
5) define an exit variable referring to your Badi
Implementation interface
this interface will normally be
called something like
ZIF_EX***************
You will see the actual name in SE18/SE19.
6) Instantiate your instance of the badi
via method call get_instance
7) Now call any method(s) in the Badi.
*****************start of abap code **************
Define the Badi calling class (standard sap class)
class cl_exithandler definition load. "Declaration
*Interface reference
data exit type ref to zif_ex__jimbotest.
data yes type c.
Used in Fmod call in Badi methods
data: v_knvv type knvv.
start-of-selection.
yes = ' '.
selection-screen begin of block b1.
parameters: r1 radiobutton group rad1,
r2 radiobutton group rad1,
r3 radiobutton group rad1.
selection-screen end of block b1.
parameters: p_kunnr type knvv-kunnr.
select single * into v_knvv
from knvv
where kunnr eq p_kunnr.
export v_knvv to memory id 'CUST6A'.
*Save customer data for the function module call
call method cl_exithandler=>get_instance
exporting
exit_name = 'Z_JIMBOTEST' "Your Badi Name
null_instance_accepted = yes
changing instance = exit.
if not exit is initial.
if r1 = 'X'.
call method exit->dispord . "Badi call
endif.
if r2 = 'X'.
call method exit->dispfakt. "Badi Call
endif.
if r3 = 'X'.
call method exit->dispmat. "Badi call
endif.
end of calling abap******** </b>
In the badi methods code as shown
1)
method ZIF_EX__JIMBOTEST~DISPORD.
CALL FUNCTION 'Z_DISPLAY_CUST'.
endmethod.
2)
method ZIF_EX__JIMBOTEST~DISPFAKT.
CALL FUNCTION 'Z_DISPLAY_FAKT'.
endmethod
3)
method ZIF_EX__JIMBOTEST~DISPMAT.
CALL FUNCTION 'Z_DISPLAY_CUST'.
endmethod.
Copy via SE 41 the status SALV_STANDARD from standard SAP program SALV_DEMO_METADATA into the main program where you've created the 3 function modules below (SAP______TOP)
Global Data for the three function modules I'm calling
FUNCTION-POOL Z_BADI_KNVV. "MESSAGE-ID ..
include <color>.
include <icon>.
include <symbol>.
tables: zknvv.
data: v_zzkvgr6 TYPE KNVV-ZZKVGR6.
data: choice1 type c.
data: choice2 type c.
data: choice3 type c.
data: choice4 Type c.
data: ok-code(5) type c.
data: answer type string.
data: value1 type SPOP-VARVALUE1.
data: answer1 type string.
tables: vbak, vbap, vakpa, vbrk, vrkpa.
data: lr_functions type ref to cl_salv_functions_list.
constants: gc_true type sap_bool value 'X',
gc_false type sap_bool value space.
add for colour displays
data: ls_color type lvc_s_colo.
DATA : LV_SALV_COLUMNS_TABLE TYPE REF TO CL_SALV_COLUMNS_TABLE.
data: lr_columns type ref to cl_salv_columns_table,
lr_column type ref to cl_salv_column_table.
Data:
gr_table TYPE REF TO cl_salv_table.
data: z_datum type sy-datum.
data: v_knvv type knvv.
data : begin of s_vbak,
vkorg type vakpa-vkorg,
vkgrp type vakpa-vkgrp,
vtweg type vakpa-vtweg,
spart type vakpa-spart,
auart type vakpa-auart,
vbeln type vakpa-vbeln,
bstnk type vakpa-bstnk,
audat type vakpa-audat,
netwr type vbak-netwr,
end of s_vbak.
data : begin of s_vbrk,
vbeln type vrkpa-vbeln,
vkorg type vrkpa-vkorg,
fkart type vrkpa-fkart,
fkdat type vrkpa-fkdat,
netwr type vbrk-netwr,
end of s_vbrk.
data: begin of s_vbap,
matnr type vbap-matnr,
arktx type vbap-arktx,
netwr type vbap-netwr,
kwmeng type vbap-kwmeng,
end of s_vbap.
data: t_vbap like table of s_vbap.
data: t_vbak
like table of s_vbak.
data: t_vbrk
like table of s_vbrk.
data: s_name type tabname.
data: gr_selections type ref to cl_salv_selections.
data: gr_events type ref to cl_salv_events_table.
Source code of the function modules.
Function modules themselves
FUNCTION Z_DISPLAY_CUST.
s_name = 'S_VBAK'.
orders in last 6 months
z_datum = sy-datum - 180.
import v_knvv from memory id 'CUST6A'.
get data
select avkorg aaudat avkgrp avtweg aspart aauart abstnk avbeln b~netwr
into corresponding fields of table t_vbak
up to 100 rows
from ( vakpa as a
inner join vbak as b
on avbeln eq bvbeln )
where a~kunde eq v_knvv-kunnr
and a~parvw eq 'AG'
and a~vkorg eq 'EN01'
and a~trvog eq '0'
and a~audat gt z_datum.
sort t_vbak by audat descending.
*data: gt_hyperlink type standard table of g_type_s_hyperlink.
Instead of if_salv_c_bool_sap=>false, you can pass the
value if_salv_c_bool_sap=>true to this method to
see your ALV as a list.
display data in Grid / List
TRY.
CALL METHOD cl_salv_table=>factory
EXPORTING
list_display = if_salv_c_bool_sap=>false
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = t_vbak.
CATCH cx_salv_msg.
ENDTRY.
try.
LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
ls_color-col = col_negative.
ls_color-int = 0.
ls_color-inv = 0.
lr_column->set_color( ls_color ).
catch cx_salv_not_found.
endtry.
try.
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'VBELN' ).
ls_color-col = col_negative.
ls_color-int = 1.
ls_color-inv = 1.
lr_column->set_color( ls_color ).
catch cx_salv_not_found.
endtry.
try.
*LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
lr_column->set_short_text( 'Short' ).
lr_column->set_medium_text( 'Medium' ).
lr_column->set_long_text( 'Net Value' ).
*lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
catch cx_salv_not_found.
endtry.
gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
report = sy-repid
set_functions = gr_table->c_functions_all ).
this statement actually does the display.
gr_table->display( ).
ENDFUNCTION.
FUNCTION Z_DISPLAY_FAKT.
s_name = 'S_VBRK'.
invoices in last 6 months
z_datum = sy-datum - 180.
import v_knvv from memory id 'CUST6A'.
get data
select avbeln afkart avkorg afkdat
b~netwr
into corresponding fields of table t_vbrk
up to 100 rows
from ( vrkpa as a
inner join vbrk as b
on avbeln eq bvbeln )
where a~kunde eq v_knvv-kunnr
and a~parvw eq 'RG'
and a~vkorg eq 'EN01'
and a~vbtyp eq 'M'
and a~fkdat gt z_datum.
sort t_vbrk by fkdat descending.
*data: gt_hyperlink type standard table of g_type_s_hyperlink.
Instead of if_salv_c_bool_sap=>false, you can pass the
value if_salv_c_bool_sap=>true to this method to
see your ALV as a list.
display data in Grid / List
TRY.
CALL METHOD cl_salv_table=>factory
EXPORTING
list_display = if_salv_c_bool_sap=>false
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = t_vbrk.
CATCH cx_salv_msg.
ENDTRY.
try.
LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
ls_color-col = col_negative.
ls_color-int = 0.
ls_color-inv = 0.
lr_column->set_color( ls_color ).
catch cx_salv_not_found.
endtry.
try.
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'VBELN' ).
ls_color-col = col_negative.
ls_color-int = 1.
ls_color-inv = 1.
lr_column->set_color( ls_color ).
catch cx_salv_not_found.
endtry.
try.
*LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
lr_column->set_short_text( 'Short' ).
lr_column->set_medium_text( 'Medium' ).
lr_column->set_long_text( 'Net Value' ).
*lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
catch cx_salv_not_found.
endtry.
gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
report = sy-repid
set_functions = gr_table->c_functions_all ).
this statement actually does the display.
gr_table->display( ).
ENDFUNCTION.
FUNCTION Z_DISPLAY_MATERIAL.
s_name = 'S_VBAP'.
invoicesrs in last 6 months
z_datum = sy-datum - 180.
import v_knvv from memory id 'CUST6A'.
get data
select avbeln bmatnr barktx bnetwr b~kwmeng
into corresponding fields of table t_vbap
up to 100 rows
from ( vakpa as a
inner join vbap as b
on avbeln eq bvbeln )
where a~kunde eq v_knvv-kunnr
and a~parvw eq 'AG'
and a~vkorg eq 'EN01'
and a~trvog eq '0'
and a~audat gt z_datum.
TRY.
CALL METHOD cl_salv_table=>factory
EXPORTING
list_display = if_salv_c_bool_sap=>false
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = t_vbap.
CATCH cx_salv_msg.
ENDTRY.
try.
LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
ls_color-col = col_negative.
ls_color-int = 0.
ls_color-inv = 0.
lr_column->set_color( ls_color ).
catch cx_salv_not_found.
endtry.
try.
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'ARKTX' ).
ls_color-col = col_negative.
ls_color-int = 1.
ls_color-inv = 1.
lr_column->set_color( ls_color ).
catch cx_salv_not_found.
endtry.
try.
*LV_SALV_COLUMNS_TABLE = gr_table->get_columns( ).
lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'NETWR' ).
lr_column->set_short_text( 'Short' ).
lr_column->set_medium_text( 'Medium' ).
lr_column->set_long_text( 'Net Value' ).
*lr_column ?= LV_SALV_COLUMNS_TABLE->get_column( 'URL' ).
catch cx_salv_not_found.
endtry.
gr_table->set_screen_status( pfstatus = 'SALV_STANDARD'
report = sy-repid
set_functions = gr_table->c_functions_all ).
this statement actually does the display.
gr_table->display( ).
ENDFUNCTION.
You can extend this as far as you like -- it's really easy and MUCH MUCH easier than the old way with fieldcatalogs etc etc.If the pagecontainer_mc holds another movieclip that contains the button you are trying to target, then you need to include that loaded movieclip in the targeting. And if contacts is that movieclip, then you should be able to target it directly using...
var contacts:contatti = new contatti;
contacts.contacts_btn.addEventListener(MouseEvent.CLICK,showContacts); -
Hi all,
I am displaying an ALV list. I want my output to display the department in a new line for every new department.
Example:
no name dept
department D1
1 abc d1
2 xyz d1
3 xyz1 d1
department D2
1 abr d2
2 xyg d2
3 xfz d2
How can we do it in ALV list? Please help me.
Dev.You cannot add that line("Department D1") in ALV,
You can do this work around,
declare wa_final and it_final just like your itab.
1) sort itab by dept.
2) Loop at itab into wa.
3) at new dept.
wa_final-name = 'Department'.
wa_final-dept = wa-dept
append wa_final to it_final.
endat.
wa_final = wa.
append wa_final to it_final.
endloop.
Please refine the code. I have not tested it.
Regards,
Sumit -
Helllo,
I am trying to write a pgm that uses ALV. I have copied a pgm already written and trying to modify it. I would like to know if there is any documentation that explains the function modules REUSE_ALV_VARIANT_EXISTENCE, REUSE_ALV_FIELDCATLOG_MERGE, REUSE_ALV_GRID_DISPLAY, REUSE_ALV_COMMENTARY_WRITE and any other modules that are used in ALV coding.
thanks in advance for the helpALV
http://www.geocities.com/mpioud/Abap_programs.html
http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox
ALV
1. Please give me general info on ALV.
http://www.sapfans.com/forums/viewtopic.php?t=58286
http://www.sapfans.com/forums/viewtopic.php?t=76490
http://www.sapfans.com/forums/viewtopic.php?t=20591
http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
2. How do I program double click in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
3. How do I add subtotals (I have problem to add them)...
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
4. How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
5. How to print page number / total number of pages X/XX in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
http://www.sapfans.com/forums/viewtopic.php?t=64320
http://www.sapfans.com/forums/viewtopic.php?t=44477
7. How can I set the cell color in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=52107
8. How do I print a logo/graphics in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=81149
http://www.sapfans.com/forums/viewtopic.php?t=35498
http://www.sapfans.com/forums/viewtopic.php?t=5013
9. How do I create and use input-enabled fields in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=84933
http://www.sapfans.com/forums/viewtopic.php?t=69878
10. How can I use ALV for reports that are going to be run in background?
http://www.sapfans.com/forums/viewtopic.php?t=83243
http://www.sapfans.com/forums/viewtopic.php?t=19224
11. How can I display an icon in ALV? (Common requirement is traffic light icon).
http://www.sapfans.com/forums/viewtopic.php?t=79424
http://www.sapfans.com/forums/viewtopic.php?t=24512
12. How can I display a checkbox in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919
By
Yuvaram.
Check the previous forum answers to get more help. -
Can u tell me which document i have to refer so that in a short time i can know abt alv grid and can start my project work
Hi check thes links.
1. Please give me general info on ALV.
http://www.sapfans.com/forums/viewtopic.php?t=58286
http://www.sapfans.com/forums/viewtopic.php?t=76490
http://www.sapfans.com/forums/viewtopic.php?t=20591
http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
2. How do I program double click in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
3. How do I add subtotals (I have problem to add them)...
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
4. How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
5. How to print page number / total number of pages X/XX in ALV? http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
http://www.sapfans.com/forums/viewtopic.php?t=64320
http://www.sapfans.com/forums/viewtopic.php?t=44477
7. How can I set the cell color in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=52107
8. How do I print a logo/graphics in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=81149
http://www.sapfans.com/forums/viewtopic.php?t=35498
http://www.sapfans.com/forums/viewtopic.php?t=5013
9. How do I create and use input-enabled fields in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=84933
http://www.sapfans.com/forums/viewtopic.php?t=69878
10. How can I use ALV for reports that are going to be run in background?
http://www.sapfans.com/forums/viewtopic.php?t=83243
http://www.sapfans.com/forums/viewtopic.php?t=19224
11. How can I display an icon in ALV? (Common requirement is traffic light icon).
http://www.sapfans.com/forums/viewtopic.php?t=79424
http://www.sapfans.com/forums/viewtopic.php?t=24512
12. How can I display a checkbox in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919 -
Change column headers in ALV report
Hi experts,
I have created a new simple ALV report (it uses only internal tables, no structures). I would like to change the names of column headers in the ALV report. Is this possible? How can I do it?
Thanks in advanced.Thanks for your reply,
I am trying to use the code mentioned in the link but I think that something
is missing, probably a CASE statement before WHEN in the LOOP.
Can you help me? What do I have to put before WHEN statement?
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = <program name>
i_structure_name = <DDIC structure>
i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = gi_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3. "#EC *
LOOP AT gi_fieldcat INTO wa_fieldcat.
WHEN 'XXXX'.
wa_fieldcat-seltext_s = 'Fac'.
wa_fieldcat-seltext_m = 'Factory'.
wa_fieldcat-seltext_l = 'Factory'.
wa_fieldcat-reptext_ddic = 'Factory'.
MODIFY gi_fieldcat FROM wa_fieldcat.
ENDLOOP. -
hi all
I am working on ALV report in OO concept. and facing in some difficulties in sorting, subtotal, coloring etc.. so it would be great help if there some sample program which can handle all this..
***Create new instance ALV table object
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = o_alv
CHANGING
t_table = i_mara.
CATCH cx_salv_msg INTO lc_msg .
ENDTRY.
***.Enable Generic ALV functions
lo_functions = o_alv->get_functions( ).
lo_functions->set_all( ).
lo_functions->set_default( abap_true ).
***Sorting
lo_sorts = o_alv->get_sorts( ).
lo_sorts->add_sort( columnname = 'BRGEW' subtotal = abap_true ).
o_alv->display( ).
i tried this one but it is telling no column found and not doing subtotal..
pls giude
thanks
Edited by: JaiKarthik on Dec 7, 2009 4:17 AMHi You have to use ls_fieldcat-do_sum statement in your coding Check this sample report to display output in total & subtotal &---- *& Report ZALVTOTAL * *& * &---- *& * *& * &---- REPORT ZALVTOTAL . TYPES : BEGIN OF ty_vbak, vkorg TYPE vbak-vkorg, " Sales organization kunnr TYPE vbak-kunnr, " Sold-to party vbeln TYPE vbak-vbeln, " Sales document netwr TYPE vbak-netwr, " Net Value of the Sales Order waerk TYPE vbak-waerk, " Document currency END OF ty_vbak. DATA: vbak TYPE vbak, gt_vbak TYPE TABLE OF ty_vbak. SELECT-OPTIONS : s_vkorg FOR vbak-vkorg, " Sales organization s_kunnr FOR vbak-kunnr, " Sold-to party s_vbeln FOR vbak-vbeln. " Sales document SELECTION-SCREEN : SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY. SELECTION-SCREEN END OF LINE. ---- INITIALIZATION. v_1 = 'Maximum of records to read'. ---- START-OF-SELECTION. PERFORM f_read_data. PERFORM f_display_data. ---- * Form f_read_data ---- FORM f_read_data. SELECT vkorg kunnr vbeln netwr waerk UP TO p_max ROWS INTO TABLE gt_vbak FROM vbak WHERE kunnr IN s_kunnr AND vbeln IN s_vbeln AND vkorg IN s_vkorg. ENDFORM. " F_READ_DATA ---- * Form f_display_data ---- FORM f_display_data. TYPE-POOLS: slis. " ALV Global types DEFINE m_fieldcat. add 1 to ls_fieldcat-col_pos. ls_fieldcat-fieldname = &1. ls_fieldcat-ref_tabname = 'VBAK'. ls_fieldcat-do_sum = &2. ls_fieldcat-cfieldname = &3. append ls_fieldcat to lt_fieldcat. END-OF-DEFINITION. DEFINE m_sort. add 1 to ls_sort-spos. ls_sort-fieldname = &1. ls_sort-up = 'X'. ls_sort-subtot = &2. append ls_sort to lt_sort. END-OF-DEFINITION. DATA: ls_fieldcat TYPE slis_fieldcat_alv, lt_fieldcat TYPE slis_t_fieldcat_alv, lt_sort TYPE slis_t_sortinfo_alv, ls_sort TYPE slis_sortinfo_alv, ls_layout TYPE slis_layout_alv. m_fieldcat 'VKORG' '' ''. m_fieldcat 'KUNNR' '' ''. m_fieldcat 'VBELN' '' ''. m_fieldcat 'NETWR' 'X' 'WAERK'. m_fieldcat 'WAERK' '' ''. m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal m_sort 'VBELN' ''. " Sort by vbeln ls_layout-cell_merge = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING is_layout = ls_layout it_fieldcat = lt_fieldcat it_sort = lt_sort TABLES t_outtab = gt_vbak. ENDFORM. " F_DISPLAY_DATA
Regards,
Arun. -
ALV Report: How to pass the variable in Work area to the FM ? Please help !
I want to pass the field in the work area which contains the floating point numbers to FM 'FLTP_CHAR_CONVERSION_FROM_SI'. This the correct FM, I have tested.
If I specify the field with Tab name in FM , It says its not an internal table with header line.
Please help me, How should can I proceed further and pass the field to FM and get it back in work area.
And an other issue is I want to sum the particular field in the output.
Is there a way to do using 'PF-STATUS', if so how ? or what is the alternative for this ?
Please help me with my issues.
I'm new to ALV reports.
Thanks in Advance !Hi,
For your FM issue, i think you are trying to pass the field in the FM as ITAB-field, while you should be taking the data in the work area first and then pass this work area in the FM as WA_ITAB-field.
I hope this will resolve your prob.
I mean loop at the table and take the values into work area, update the internal table with changed value. This way by the end of loop you will have all your fields converted.
Please explain a little more about your second doubt, it is unclear(to me atleast).
Edited by: DeepakNagar on Jul 28, 2011 6:08 PM -
Directly creation of ALV Variant in Production - Whether possible
Hi Friends,
I have a requirement to display few more fields for the standard dunning report . The server version is 4.6C .
All the required fields are available in field catalogue. I have to create a new variant to access the new fields also.
I am totally new to ALV Programs related activities.
My question is -
Can I create the variant directly in Production , or I have to create the variant in Dev and move to TST and Production.
Please advice.
Thanks in advance,
Vengal Rao.Hello Vengal,
Check this thread: ALV layout name for details.
BR,
Suhas -
hi,
i am new to ALV programming,i awant to generate the report with three teable mseg,mkpf,mard.
i need selection screen also.
in the selection screen following is the field names.
Matdoc number-mseg-mblnr
mat number - mseg-matnr
plant - mseg-werks
sloc mseg-lgort
movtype- mseg-bwart.
batch number- mseg-charg.
ordernumber -mseg-aufnr.
costcenter- mseg-kostl.
reservation number- mseg-rsnum.
storage bin - mard-lgpbe.
i want to fetch the data from three tables
mseg,mard,mkpf.
after featch report should disply in alv grid following items.
Matdoc number-mseg-mblnr
mat number - mseg-matnr
plant - mseg-werks
sloc mseg-lgort
movtype- mseg-bwart.
batch number- mseg-charg.
ordernumber -mseg-aufnr.
costcenter- mseg-kostl.
reservation number- mseg-rsnum.
storage bin - mard-lgpbe.
posting date - mkpf-budat.
if any body have the code kindly send it as early as posible.
Thanks,
Rammohan.here is a sample program i think almost containing the same tables and fields
*& Report ZSD_R_ENHANCEMENT2 *
*& REPORT PROGRAMMING FOR THE FURTHER ENHANCEMENT OF THE PRE-GENERATED
*& MB51. REQUIREMENT IS TO ADD FIVE MORE FIELDS.
*& OLD MATERIAL ON THE TOP LEFT CORNER OF THE HEADER AND
*& Batch number the right of material document.
*& Serial number if found should be placed to the right of the batch number.
*& Handling unit/ storage unit to the right of serial number.
*& Transaction description at the last of the report.
REPORT ZSD_R_ENHANCEMENT2 MESSAGE-ID ZB6T2 .
*& STRUCTURE CREATION FOR INTERNAL TABLES *
*STRUCUTRE CREATION FOR HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
TYPES: BEGIN OF TY_MKPF_MSEG,
MBLNR TYPE MBLNR, " NUMBER OF MATERIAL DOC
MJAHR TYPE MJAHR, " MATERIAL DOCUMENT YEAR
VGART TYPE VGART, " TRANSACTION EVENT TYPE
BLART TYPE BLART, " DOCUMENT TYPE
BUDAT TYPE BUDAT, " POSTING DATE INT THE DOC
USNAM TYPE USNAM, " USERNAME
XBLNR TYPE XBLNR1, " REFERENCE DOCUMENT NUMBER
MATNR TYPE MATNR, " MATERIAL NUMBER
WERKS TYPE WERKS_D, " PLANT
LGORT TYPE LGORT_D, " STORAGE LOCATION
CHARG TYPE CHARG_D, " BATCH NUM
LIFNR TYPE ELIFN, " ACC OF VENDOR
KUNNR TYPE EKUNN, " CUSTOMER NUM
SOBKZ TYPE SOBKZ, " SPECIAL STOKING
BWART TYPE BWART, " MOVEMENT TYPE
ZEILE TYPE MBLPO, " ITEM IN MATERIAL DOCUMENT
ERFMG TYPE ERFMG, " QUANTITY IN UNIT OF ENTERY
ERFME TYPE ERFME, " UNIT OF ENTRY
END OF TY_MKPF_MSEG,
*STRUCTURE FOR MATERIAL MASTER DATA
BEGIN OF TY_MARA,
MATNR TYPE MATNR, " MATERIAL TYPE
BISMT TYPE BISMT, " OLD MATERIAL NUMBER
END OF TY_MARA,
*STRUCTURE DECLARATION FOR MATERIAL DESCRIPTION
BEGIN OF TY_MAKT,
MATNR TYPE MATNR, " MATERIAL NUM
SPRAS TYPE SPRAS, " LANGUAGE KEY
MAKTX TYPE MAKTX, " MATERIAL DESC
END OF TY_MAKT,
*STRUCTURE DECLARATION FOR MOVEMENT TYPE TEXT
BEGIN OF TY_T156T,
BWART TYPE BWART, " MOVEMENT TYPE
BTEXT TYPE BTEXT, " MOVEMENT TYPE TEXT
SPRAS TYPE SPRAS, " LANGUAGE KEY
END OF TY_T156T,
*STRUCTURE CREATION FOR DOCUMENT HEADER FOR SERIALNUMBERS FOR GOOD MOVEMENTS
BEGIN OF TY_SER03,
MBLNR TYPE MBLNR, " NUMBER OF MATERIAL DOC
MJAHR TYPE MJAHR, " MATERIAL DOCU YEAR
ZEILE TYPE MBLPO, " OUTPUT IN MATERIAL DOC
OBKNR TYPE OBJKNR, " OBJECT LIST NUMBER
END OF TY_SER03,
*STRUCUTRE DECLARATION FOR PLANTS MAINTANENCE OBKECT LIST
BEGIN OF TY_OBJK,
OBKNR TYPE OBJKNR, " OBJECT LIST NUMBER
OBZAE TYPE OBJZA, " OBLECT LIST COUNTERS
SERNR TYPE GERNR, " SERIAL NUMBER
END OF TY_OBJK,
*STRUCUTRE DECLARATION FOR PLANTS/BRANCHES
BEGIN OF TY_T001W,
WERKS TYPE WERKS_D, " PLANT
NAME1 TYPE NAME1, " NAME
END OF TY_T001W,
*STRUCUTRE DECLARATION FOR OUTPUT TABLE
BEGIN OF TY_OUTPUT,
MATNR TYPE MATNR, " MATERIAL NUMBER
BISMT TYPE BISMT, " OLD MATERIAL NUMBER
MAKTX TYPE MAKTX, " MATERIAL DESC
WERKS TYPE WERKS_D, " PLANT
NAME1 TYPE NAME1, " NAME
LGORT TYPE LGORT_D, " Storage Location
BWART TYPE BWART, " Movement Type
MBLNR TYPE MBLNR, " NUMBER OF MATERIAL DOC
CHARG TYPE CHARG_D, " BATCH NUM
SERNR TYPE GERNR, " SERIAL NUMBER
ZEILE TYPE MBLPO, " OUTPUT IN MATERIAL DOC
BUDAT TYPE BUDAT, " POSTING DOCU DATE
ERFMG TYPE ERFMG, " QUANTITY IN UNIT OF ENTRY
ERFME TYPE ERFME, " UNINT OF ENTRY
BTEXT TYPE BTEXT, " MOVEMENT TYPE TEXT
MJAHR TYPE MJAHR, " MATEREIAL DOC YEAR
VGART TYPE VGART, " TRANSACTION EVENT TYPE
BLART TYPE BLART, " DOCUMENT TYPE
USNAM TYPE USNAM, " USERNAME
XBLNR TYPE XBLNR1, " REFERENCE DOCUMENT NUM
SOBKZ TYPE SOBKZ, " SPECIAL STOCKING
LIFNR TYPE ELIFN, " ACC OF VENDOR
KUNNR TYPE EKUNN, " CUSTOMER
OBKNR TYPE OBJKNR, " OBJECT LIST NUMBER
END OF TY_OUTPUT.
*&INTERNAL TABLE DECLARATION FOR STRUCUTRES *
INTERNAL TABLE DECLARATION FOR HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
DATA : T_MKPF_MSEG TYPE STANDARD TABLE OF TY_MKPF_MSEG INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR MATERIAL MASTER DAT
T_MARA TYPE STANDARD TABLE OF TY_MARA INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR MATERIAL TYPE DESC
T_MAKT TYPE STANDARD TABLE OF TY_MAKT INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR MOVEMENT TYPE TEXT
T_T156T TYPE STANDARD TABLE OF TY_T156T INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR Document Header for Serial Numbers for Goods Movements
T_SER03 TYPE STANDARD TABLE OF TY_SER03 INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR Plant Maintenance Object List
T_OBJK TYPE STANDARD TABLE OF TY_OBJK INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR Plants/Branches
T_T001W TYPE STANDARD TABLE OF TY_T001W INITIAL SIZE 0,
*INTERNAL TABLE DECLARATION FOR OUTPUT
T_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT INITIAL SIZE 0,
*&WORK AREA DECLARATIONS FOR INTERNAL TABLES *
*WORK AREA DECLARATION HEADER MATERIAL DOCMENT AND DOCUMENT SEGEMNT MATERIAL
W_MKPF_MSEG TYPE TY_MKPF_MSEG,
*WORK AREA DECLARATION MATERIAL MASTER DATA
W_MARA TYPE TY_MARA,
*WORK AREA DECLARATION MATERIAL TYPE DESC
W_MAKT TYPE TY_MAKT,
*WORK AREA DECLARATION MOVEMENT TYPE TEXT\
W_T156T TYPE TY_T156T,
*WORK AREA DECLARATION Document Header for Serial Numbers for Goods Movements
W_SER03 TYPE TY_SER03,
*WORK AREA DECLARATION PLANT MAINTENANCE OBJECT LIST
W_OBJK TYPE TY_OBJK,
*WORK AREA DECLARATION PLANTS AND BRANCHES
W_T001W TYPE TY_T001W,
*WORK AREA DECLARATION FOR OUTPUT TABLE.
W_OUTPUT TYPE TY_OUTPUT,
*& GLOBAL VARIABLE DECLARATIONS *
G_MATNR TYPE MSEG-MATNR,
G_WERKS TYPE MSEG-WERKS,
G_LGORT TYPE MSEG-LGORT,
G_CHARG TYPE MSEG-CHARG,
G_LIFNR TYPE MSEG-LIFNR,
G_KUNNR TYPE MSEG-KUNNR,
G_BWART TYPE MSEG-BWART,
G_SOBKZ TYPE MSEG-SOBKZ,
G_BUDAT TYPE MKPF-BUDAT,
G_USNAM TYPE MKPF-USNAM,
G_VGART TYPE MKPF-VGART,
G_XBLNR TYPE MKPF-XBLNR.
*& SELECTION SCREEN EVENT *
*SELECT OPTIONS EVENTS FOR ITEM DETAILS
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS: S_MATNR FOR G_MATNR,
S_WERKS FOR G_WERKS,
S_LGORT FOR G_LGORT,
S_CHARG FOR G_CHARG,
S_LIFNR FOR G_LIFNR,
S_KUNNR FOR G_KUNNR,
S_BWART FOR G_BWART,
S_SOBKZ FOR G_SOBKZ.
SELECTION-SCREEN END OF BLOCK B1.
*SELECT OPTIONS EVENTS FOR HEADER DETAILS
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
SELECT-OPTIONS: S_BUDAT FOR G_BUDAT,
S_USNAM FOR G_USNAM,
S_VGART FOR G_VGART,
S_XBLNR FOR G_XBLNR.
SELECTION-SCREEN END OF BLOCK B2.
*&INITIALIZATION EVENTS *
INITIALIZATION.
CLEAR: W_MKPF_MSEG,
W_MARA,
W_MAKT,
W_T156T,
W_SER03,
W_OBJK,
W_T001W,
W_OUTPUT.
REFRESH: T_MKPF_MSEG,
T_MARA,
T_MAKT,
T_T156T,
T_SER03,
T_OBJK,
T_T001W,
T_OUTPUT.
*& At Selection screen Event
AT SELECTION-SCREEN.
PERFORM SUB_VALID_MATNR.
PERFORM SUB_VALID_WERKS.
PERFORM SUB_VALID_LGORT.
PERFORM SUB_VALID_CHARG.
PERFORM SUB_VALID_LIFNR.
PERFORM SUB_VALID_KUNNR.
PERFORM SUB_VALID_BWART.
PERFORM SUB_VALID_SOBKZ.
PERFORM SUB_VALID_BUDAT.
PERFORM SUB_VALID_USNAM.
PERFORM SUB_VALID_VGART.
PERFORM SUB_VALID_XBLNR.
*& Start of selection event.
START-OF-SELECTION.
PERFORM SUB_GET_MKPF_MSEG.
PERFORM SUB_GET_MARA.
PERFORM SUB_GET_MAKT.
PERFORM SUB_GET_T156T.
PERFORM SUB_GET_SER03.
PERFORM SUB_GET_T001W.
PERFORM SUB_BSLIST_DISP.
*& Form SUB_VALID_MATNR
*VALIDATION FOR MATERIAL NUM
FORM SUB_VALID_MATNR .
DATA : L_MATNR TYPE MATNR.
SELECT SINGLE MATNR
FROM MARA
INTO L_MATNR
WHERE MATNR IN S_MATNR.
IF SY-SUBRC <> 0.
MESSAGE E001.
ENDIF.
ENDFORM. " SUB_VALID_MATNR
*& Form SUB_VALID_WERKS
text
FORM SUB_VALID_WERKS .
DATA L_WERKS TYPE WERKS_D.
SELECT SINGLE WERKS
FROM T001W
INTO L_WERKS
WHERE WERKS IN S_WERKS.
IF SY-SUBRC <> 0.
MESSAGE E002.
ENDIF.
ENDFORM. " SUB_VALID_WERKS
*& Form SUB_VALID_LGORT
text
FORM SUB_VALID_LGORT .
DATA L_LGORT TYPE LGORT_D.
SELECT SINGLE LGORT
FROM T001L
INTO L_LGORT
WHERE LGORT IN S_LGORT.
IF SY-SUBRC <> 0.
MESSAGE E003.
ENDIF.
ENDFORM. " SUB_VALID_LGORT
*& Form SUB_VALID_CHARG
text
FORM SUB_VALID_CHARG .
DATA L_CHARG TYPE CHARG_D.
SELECT SINGLE CHARG
FROM MCHA
INTO L_CHARG
WHERE CHARG IN S_CHARG.
IF SY-SUBRC <> 0.
MESSAGE E004.
ENDIF.
ENDFORM. " SUB_VALID_CHARG
*& Form SUB_VALID_LIFNR
text
FORM SUB_VALID_LIFNR .
DATA L_LIFNR TYPE LIFNR.
SELECT SINGLE LIFNR
FROM LFA1
INTO L_LIFNR
WHERE LIFNR IN S_LIFNR.
IF SY-SUBRC <> 0.
MESSAGE E005.
ENDIF.
ENDFORM. " SUB_VALID_LIFNR
*& Form SUB_VALID_KUNNR
text
FORM SUB_VALID_KUNNR .
DATA L_KUNNR TYPE KUNNR.
SELECT SINGLE KUNNR
FROM KNA1
INTO L_KUNNR
WHERE KUNNR IN S_KUNNR.
IF SY-SUBRC <> 0.
MESSAGE E006.
ENDIF.
ENDFORM. " SUB_VALID_KUNNR
*& Form SUB_VALID_BWART
text
FORM SUB_VALID_BWART .
DATA L_BWART TYPE BWART.
SELECT SINGLE BWART
FROM T156
INTO L_BWART
WHERE BWART IN S_BWART.
IF SY-SUBRC <> 0.
MESSAGE E007.
ENDIF.
ENDFORM. " SUB_VALID_BWART
*& Form SUB_VALID_SOBKZ
text
FORM SUB_VALID_SOBKZ .
DATA L_SOBKZ TYPE SOBKZ.
SELECT SINGLE SOBKZ
FROM T148
INTO L_SOBKZ
WHERE SOBKZ IN S_SOBKZ.
IF SY-SUBRC <> 0.
MESSAGE E008.
ENDIF.
ENDFORM. " SUB_VALID_SOBKZ
*& Form SUB_VALID_BUDAT
text
FORM SUB_VALID_BUDAT .
DATA L_BUDAT TYPE BUDAT.
SELECT SINGLE BUDAT
FROM MKPF
INTO L_BUDAT
WHERE BUDAT IN S_BUDAT.
IF SY-SUBRC <> 0.
MESSAGE E009.
ENDIF.
ENDFORM. " SUB_VALID_BUDAT
*& Form SUB_VALID_USNAM
text
FORM SUB_VALID_USNAM .
DATA L_USNAM TYPE USNAM.
SELECT SINGLE USNAM
FROM MKPF
INTO L_USNAM
WHERE USNAM IN S_USNAM.
IF SY-SUBRC <> 0.
MESSAGE E010.
ENDIF.
ENDFORM. " SUB_VALID_USNAM
*& Form SUB_VALID_VGART
text
FORM SUB_VALID_VGART .
DATA L_VGART TYPE VGART.
SELECT SINGLE VGART
FROM MKPF
INTO L_VGART
WHERE VGART IN S_VGART.
IF SY-SUBRC <> 0.
MESSAGE E011.
ENDIF.
ENDFORM. " SUB_VALID_VGART
*& Form SUB_VALID_XBLNR
text
FORM SUB_VALID_XBLNR .
DATA L_XBLNR TYPE XBLNR.
SELECT SINGLE XBLNR
FROM MKPF
INTO L_XBLNR
WHERE XBLNR IN S_XBLNR.
IF SY-SUBRC <> 0.
MESSAGE E012.
ENDIF.
ENDFORM. " SUB_VALID_XBLNR
*& Form SUB_GET_MKPF_MSEG
text
FORM SUB_GET_MKPF_MSEG .
REFRESH T_MKPF_MSEG.
SELECT KMBLNR KMJAHR K~VGART
KBLART KBUDAT K~USNAM
K~XBLNR
SMATNR SWERKS S~LGORT
SCHARG SLIFNR S~KUNNR
SSOBKZ SBWART S~ZEILE
SERFMG SERFME
INTO TABLE T_MKPF_MSEG
FROM MKPF AS K INNER JOIN MSEG AS S
ON KMBLNR = SMBLNR AND KMJAHR = SMJAHR
WHERE K~VGART IN S_VGART
AND K~BUDAT IN S_BUDAT
AND K~USNAM IN S_USNAM
AND K~XBLNR IN S_XBLNR
AND S~MATNR IN S_MATNR
AND S~WERKS IN S_WERKS
AND S~LGORT IN S_LGORT
AND S~CHARG IN S_CHARG
AND S~SOBKZ IN S_SOBKZ
AND S~LIFNR IN S_LIFNR
AND S~KUNNR IN S_KUNNR.
ENDFORM. " SUB_GET_MKPF_MSEG
*& Form SUB_GET_MARA
text
FORM SUB_GET_MARA .
IF T_MKPF_MSEG IS NOT INITIAL.
SORT T_MKPF_MSEG BY MATNR.
REFRESH T_MARA.
SELECT MATNR
BISMT
FROM MARA
INTO TABLE T_MARA
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE MATNR = T_MKPF_MSEG-MATNR.
ENDIF.
ENDFORM. " SUB_GET_MARA
*& Form SUB_GET_MAKT
text
FORM SUB_GET_MAKT .
REFRESH T_MAKT.
SELECT MATNR
SPRAS
MAKTX
FROM MAKT
INTO TABLE T_MAKT
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE SPRAS = SY-LANGU AND MATNR = T_MKPF_MSEG-MATNR.
ENDFORM. " SUB_GET_MAKT
*& Form SUB_GET_T156T
text
FORM SUB_GET_T156T .
SELECT BWART
BTEXT
SPRAS
FROM T156T
INTO TABLE T_T156T
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE SPRAS = SY-LANGU AND BWART = T_MKPF_MSEG-BWART.
ENDFORM. " SUB_GET_T156T
*& Form SUB_GET_SER03
text
FORM SUB_GET_SER03 .
SELECT MBLNR
MJAHR
ZEILE
OBKNR
FROM SER03
INTO TABLE T_SER03
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE MBLNR = T_MKPF_MSEG-MBLNR
AND MJAHR = T_MKPF_MSEG-MJAHR
AND ZEILE = T_MKPF_MSEG-ZEILE.
IF T_SER03 IS NOT INITIAL.
SELECT OBKNR
OBZAE
SERNR
FROM OBJK
INTO CORRESPONDING FIELDS OF TABLE T_OBJK
FOR ALL ENTRIES IN T_SER03
WHERE OBKNR = T_SER03-OBKNR.
ENDIF.
ENDFORM. " SUB_GET_SER03
*& Form SUB_GET_T001W
text
FORM SUB_GET_T001W .
SELECT WERKS
NAME1
FROM T001W
INTO TABLE T_T001W
FOR ALL ENTRIES IN T_MKPF_MSEG
WHERE WERKS = T_MKPF_MSEG-WERKS.
ENDFORM. " SUB_GET_T001W
*& Form SUB_BSLIST_DISP
FOR DISPLAY OUT
FORM SUB_BSLIST_DISP .
REFRESH T_OUTPUT.
CLEAR W_MKPF_MSEG.
SORT T_MKPF_MSEG BY MBLNR MJAHR ZEILE MATNR.
LOOP AT T_MKPF_MSEG INTO W_MKPF_MSEG.
W_OUTPUT-MBLNR = W_MKPF_MSEG-MBLNR .
W_OUTPUT-MJAHR = W_MKPF_MSEG-MJAHR.
W_OUTPUT-VGART = W_MKPF_MSEG-VGART.
W_OUTPUT-BLART = W_MKPF_MSEG-BLART.
W_OUTPUT-BUDAT = W_MKPF_MSEG-BUDAT.
W_OUTPUT-USNAM = W_MKPF_MSEG-USNAM.
W_OUTPUT-XBLNR = W_MKPF_MSEG-XBLNR.
W_OUTPUT-ZEILE = W_MKPF_MSEG-ZEILE.
W_OUTPUT-BWART = W_MKPF_MSEG-BWART.
W_OUTPUT-MATNR = W_MKPF_MSEG-MATNR.
W_OUTPUT-WERKS = W_MKPF_MSEG-WERKS.
W_OUTPUT-LGORT = W_MKPF_MSEG-LGORT.
W_OUTPUT-CHARG = W_MKPF_MSEG-CHARG.
W_OUTPUT-SOBKZ = W_MKPF_MSEG-SOBKZ.
W_OUTPUT-LIFNR = W_MKPF_MSEG-LIFNR.
W_OUTPUT-KUNNR = W_MKPF_MSEG-KUNNR.
W_OUTPUT-ERFMG = W_MKPF_MSEG-ERFMG.
W_OUTPUT-ERFME = W_MKPF_MSEG-ERFME.
CLEAR W_MARA.
READ TABLE T_MARA INTO W_MARA WITH KEY MATNR = W_OUTPUT-MATNR.
IF SY-SUBRC = 0.
W_OUTPUT-BISMT = W_MARA-BISMT.
ENDIF.
CLEAR W_MAKT.
READ TABLE T_MAKT INTO W_MAKT WITH KEY MATNR = W_OUTPUT-MATNR .
IF SY-SUBRC = 0.
W_OUTPUT-MAKTX = W_MAKT-MAKTX.
ENDIF.
CLEAR W_T156T.
READ TABLE T_T156T INTO W_T156T WITH KEY BWART = W_OUTPUT-BWART .
IF SY-SUBRC = 0.
W_OUTPUT-BTEXT = W_T156T-BTEXT.
ENDIF.
CLEAR W_T001W.
READ TABLE T_T001W INTO W_T001W WITH KEY WERKS = W_MKPF_MSEG-WERKS.
IF SY-SUBRC = 0.
W_OUTPUT-NAME1 = W_T001W-NAME1.
ENDIF.
CLEAR W_SER03.
READ TABLE T_SER03 INTO W_SER03 WITH KEY MBLNR = W_OUTPUT-MBLNR
MJAHR = W_OUTPUT-MJAHR
ZEILE = W_OUTPUT-ZEILE.
IF SY-SUBRC = 0.
W_OUTPUT-OBKNR = W_SER03-OBKNR.
ENDIF.
CLEAR W_OBJK.
READ TABLE T_OBJK INTO W_OBJK WITH KEY OBKNR = W_OUTPUT-OBKNR.
IF SY-SUBRC = 0.
W_OUTPUT-SERNR = W_OBJK-SERNR .
ENDIF.
APPEND W_OUTPUT TO T_OUTPUT.
CLEAR W_OUTPUT.
ENDLOOP.
PERFORM SUB_DISPLAY.
ENDFORM.
*& Form SUB_DISPLAY
HIERARICAL DISPLAY
FORM SUB_DISPLAY .
SORT T_OUTPUT BY MATNR BISMT MAKTX WERKS NAME1 LGORT BWART MBLNR CHARG SERNR ZEILE BUDAT ERFMG ERFME BTEXT.
CLEAR W_OUTPUT.
LOOP AT T_OUTPUT INTO W_OUTPUT.
AT NEW NAME1.
WRITE:/ W_OUTPUT-MATNR,
W_OUTPUT-BISMT,
W_OUTPUT-MAKTX,
W_OUTPUT-WERKS,
W_OUTPUT-NAME1.
ENDAT.
AT NEW BTEXT.
WRITE:/ W_OUTPUT-LGORT,
W_OUTPUT-BWART,
W_OUTPUT-MBLNR,
W_OUTPUT-CHARG,
W_OUTPUT-SERNR,
W_OUTPUT-ZEILE,
W_OUTPUT-BUDAT,
W_OUTPUT-ERFMG,
W_OUTPUT-ERFME,
W_OUTPUT-BTEXT.
ENDAT.
CLEAR W_OUTPUT.
ENDLOOP.
REFRESH T_OUTPUT.
ENDFORM. " SUB_DISPLAY -
How to use IT_special_groups in ALV Grid ?
Hi Abapers,
Am new to ALv's
am passing almost all parameters to ALV_GRID FM..!
i dont no how to use of options Groups , Filters and I_sel_hide .
event i find an Demo example related to Groups ..
but while displaying the out put i didnt find any Changes ?
could any one give an Example with using GROUPS , Filters and SEL_INFO ?
Pls help me out to resolve this problem ..!
Thanks & Regrds
RajeshkHi,
you can group your ALV columns into various groups using field SP_GROUP in field catalog. You assign name to these groups in the table IT_SPECIAL_GROUPS. User can restrict column selection to one of these groups (using name from the table) on the current layout window. More info can be found in [SAP documentation|http://help.sap.com/saphelp_nw04/helpdata/en/a2/64f7a2ee4f11d2b484006094192fe3/frameset.htm]
Probably as you know you can filter selected records in ALV (icon with funnel). You can use table IT_FILTER to set up this filter.
I am not sure about I_SEL_HIDE but as far as I remember ALV can display selection criteria from report which call ALV FM. So I assume that you can use this table to control displaying of them.
BTW there is a really nice [reference for ALV|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907?overridelayout=true].
Cheers -
Hi,
Could anyone post solution for the given below issue.
I have to handle control break command 'AT NEW' in ALV Reports using Global Classes(OOABAP), If possible with a small sample code which is more relative.Read first this documentation [ALV Grid Control (BC-SRV-ALE)|http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf] and then elaborate a little more on your actual requirement.
Also perform some [search at sdn|https://www.sdn.sap.com/irj/scn/advancedsearch?cat=sdn_all&query=%22atNEW%22OO+ALV&adv=false&sortby=cm_rnd_rankvalue#] and please don't post too many threads.
Regards -
Doing subtotal in ALV manually
Hi since in alv when calculation % the summing up is wrong
i did the calculation manually buy inserting lines.
but now all properties of ALV is gone. i am aware of that but still i want to arrange the display to may it same as AVL would do it.
since i am new to ALV can u plzz tell me how to
color a cell in alv?
make the value in bold formal?
thinker the cell border?Hi,
<b>Coloring a Cell in ALV:</b>
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. . Again key field coloring will override your settings. Thats why, we have another field in this inner table called nokeycol. For each field represented in the inner table, set this field to X to prevent overriding of key color settings. In this procedure, again we must tell the control the name of the inner table containing color data. The field CTAB_FNAME of the layout structure is used for this purpose.
Code Part 14 Adding inner table that will contain cell color data *--- Internal table holding list data
DATA BEGIN OF gt_list OCCURS 0 .
INCLUDE STRUCTURE SFLIGHT .
DATA rowcolor(4) TYPE c .
DATA cellcolors TYPE lvc_t_scol .
DATA END OF gt_list .
Code Part 15 A sample code to make the cell at row 5 and column SEATSOCC colored
DATA ls_cellcolor TYPE lvc_s_scol .
READ TABLE gt_list INDEX 5 .
ls_cellcolor-fname = 'SEATSOCC' .
ls_cellcolor-color-col = '7' .
ls_cellcolor-color-int = '1' .
APPEND ls_cellcolor TO gt_list-cellcolors .
MODIFY gt_list INDEX 5 .
Check this
http://www.sapfans.com/forums/viewtopic.php?t=52107
<b>Value in Bold Format:</b>
You need to have a nested internal table as a part of your DATA table which will be of type LVC_T_STYL.
Fill that table for the field that you want to be BOLD, fill the row in the STYLE table and append it to the MAIN table. You might have to use a combination of the styles provided as attributes in the class CL_GUI_ALV_GRID.
If you want to make entire column bold you can set the style in field catalog to
ls_fieldcat-style = '0000016'
this makes the entire column bold...
Just look at the where used list for LVC_T_STYL, you will get multiple programs.
It is used in the following programs.
BCALV_EDIT_02
BCALV_EDIT_04
BCALV_GRID_EDIT
BCALV_TEST_FULLSCREEN
BCALV_TEST_GRID
BCALV_TEST_GRID_DRAG_DROP
BCALV_TEST_GRID_EDITABLE
BCALV_TEST_GRID_FIELDS
BCALV_TEST_GRID_INDEX
BCALV_TEST_GRID_PRINT
BCALV_TEST_GRID_TOOLBAR
BCALV_VERIFY_DATATYPES
Regards,
Padmam.
Maybe you are looking for
-
My IPad is Disabled and can't get it on.
My IPad is Disabled and says connect to Itunes. I don't know how to get it working again.
-
Hi All, There is this function module which is used to extract values into BW. "FCIW_HIERARCHY_TRANSFER_CSIT" I guess this is a standard SAP FM. I want to know if there are table names mentioned for extracting the Nodes of the hierarchies, in this co
-
Is it possible to use the JS coding in webdynpro java application!!!
Hi Experts, Is it possible to use the JS coding in webdynpro java application by any means? If yes, kindly suggest the procedure or any pointers for the same. Thanks in advance. Regards, Anurag
-
In Develop Mode, how do I reduce glare?
I have a photo of a glass plate that has too much light glare. How do I reduce it? Can I polarize filter it somehow?
-
Visitors using IE10 and Windows 7 can't download pdf brochure from our web site. Visitors using other browsers are able to download it. Can the file be modified to enable IE10 users to download it?