Pf satus in alv ----- urgent
i want to create a select all button on the application tool bar of the alv.my requirement is when i'll click on select all all the check boxes whixh are present at the 1st column of my grid should be check. plz help its urgent.plz giv me the code.
regards
Hi,
Have a look on the following code and change this as for ur requirement.
THIS IS THE GRID DISPLAY BY USING PF-STATUS.
TYPE-POOLS: SLIS.
TYPES: BEGIN OF I_MARA,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MEINS LIKE MARA-MEINS,
GROES LIKE MARA-GROES,
VOLUM LIKE MARA-VOLUM,
END OF I_MARA.
DATA: IT_MARA TYPE STANDARD TABLE OF I_MARA INITIAL SIZE 0.
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
REPID TYPE SY-REPID,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: I_TITLE_MARA TYPE LVC_TITLE VALUE 'GRID DISPLAY'.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BLD_FLDCAT.
PERFORM BLD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
FORM BLD_FLDCAT.
FLDCAT-FIELDNAME = 'MATNR'.
FLDCAT-SELTEXT_M = 'MATERIAL NUMBER'.
FLDCAT-COL_POS = 0.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'MTART'.
FLDCAT-SELTEXT_M = 'MATERIAL TYPE'.
FLDCAT-COL_POS = 1.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'MEINS'.
FLDCAT-SELTEXT_M = 'UNIT OF MEASURE'.
FLDCAT-COL_POS = 2.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'GROES'.
FLDCAT-SELTEXT_M = 'SIZE'.
FLDCAT-COL_POS = 3.
FLDCAT-KEY = 'X'.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
FLDCAT-FIELDNAME = 'VOLUM'.
FLDCAT-SELTEXT_M = 'VOLUME'.
FLDCAT-COL_POS = 4.
APPEND FLDCAT TO FLDCAT.
CLEAR FLDCAT.
ENDFORM.
FORM BLD_LAYOUT.
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-ZEBRA = 'X'.
GD_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'.
ENDFORM.
FORM DISPLAY_ALV_REPORT.
REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = 'STANDARD'
I_CALLBACK_USER_COMMAND = 'USER-COMMAND'
I_CALLBACK_TOP_OF_PAGE = '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_TITLE_MARA
I_GRID_SETTINGS =
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FLDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'X'
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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MARA
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.
FORM DATA_RETRIEVAL.
SELECT MATNR MTART MEINS GROES VOLUM
INTO TABLE IT_MARA FROM MARA
UP TO 40 ROWS.
ENDFORM.
FORM TOP_OF_PAGE.
DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER.
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'THIS IS MY FIRST ALV'.
APPEND WA_HEADER TO T_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-INFO = 'THIS IS SECOND'.
APPEND WA_HEADER TO T_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM.
FORM STANDARD USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'STANDA02' EXCLUDING EXTAB.
ENDFORM.
FORM USER-COMMAND USING R_COMM TYPE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_COMM.
WHEN 'F3'.
LEAVE PROGRAM.
ENDCASE.
ENDFORM.
Double click on STANDA02, it opens new screen(menu painter),there u can add menu bars, application tool bars etc.
Add this steps to meet ur criteria.
1.Insert another field in internal table(I_MARA) for check box.
2.develop the fieldcatalog and give the field position.
3.Double click on "standard02" and give the pushbutton name.
4.come back to ur main program.
5 In fieldcatalog of checkbox there is another parameter "checkbox",pass this value as variable(not 'X').
6.in "form user-command", write as when '<pushbutton name>' then pass the variable(which u used for the checkbox) value as 'X'.
Thanks,
chandu.
Similar Messages
-
How to change the layout of alv-urgent
hi friends,
my requirement is User should be able to sort the data on fields in different order, should be able to select the fields to sort the data
for example iam displaying the sales order,sales group,kunnr,amount in ALV List Display now when iam selecting the fields sales group,kunnr,amount,sales order then program has to display output in this way only. for this i used sort table thae way iwrote logic for displaying output is as follows ...
w_sort-spos = 3.
w_sort-fieldname = 'FINQTR'.
W_FIELD-just = 'C'.
W_SORT-UP = 'X'.
W_SORT-group = 'UL'.
W_SORT-SUBTOT = 'X'.
APPEND W_SORT TO I_SORT.
CLEAR W_SORT.
for subtotals it is working fine and now what shall i do for this requirement plz send me the sample code its really urgent to me.use slis_t_sortinfo_alv.
w_sort-fieldname = 'XYZ'.
w_sort-up = p_userinput1.(for XYZ)
w_sort-down = p_userinput2.(for XYZ) preferabbly radio buttons.
append w_sort to t_sort.
w_sort-fieldname = 'YZX'.
w_sort-up = p_userinput1.(for YZX)
w_sort-down = p_userinput2.(for YZX) preferabbly radio buttons.
append w_sort to t_sort.
thats the best I am able to think for you.
let me know if that is helpful.
cheers
santhosh -
Hi All,
i have a following requirement.
i am displaying ouput using alv list display. here i an showing my own pf status in this pf status i need threee buttons
1. sorting (both ascending and descending)
2.position <- purpose of this button is :
when i click this button it will show a screen(say 101) in this scren i will enter appln,appln type, when i click ok button then this action has show that entire row only.
for sorting i dont want to copy from standard SALV pf status.
if possible please send me piece of code for this rrequirement.
thanks,
maheedhar.tHI APRIL
I WROTE SELECT SINGLE STATEMENT WHAT U MENTIONED.
in screen 102 i defined fields as w_appl,w_applntype.
after entering the values in debug mode i have seeen that no value is coming for w_appln and w_applntype.
my select statement is as follows.
select single appln
appln_user
appln_partner
partner_type
from zuser_secobjects into w_itab1
where appln = w_appln and
appln_user = w_user and
appln_partner = w_partner and
partner_type = w_ptype.
if sy-subrc = 0.
append w_itab1 to it_secobjects4.
clear it_secobjects4.
clear w_itab1.
perform alvlist_display1. <- using this i am displaying output.
endif.
i think i may have to use chain and end chaiun statements.
can you please suggest me what shall i do in this case.
thanks,
maheedhar.t -
How can we change the Subtotal text in alv , urgent.
hi,
i want to maintain the text at subtotal level in an ALV.here i am using standard alv.not abap oops. i tried with the event subtotal_text but the form was not triggering in the progam.please provide some sample code.Hi,
See This code .
Reward if its usefull.
Regards,
Durgaprasad.
*& Report ZALV1
REPORT ZALV1.
TABLES : vbak.
TYPE-POOLS: slis. " ALV Global types
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.
DATA:
BEGIN OF gt_vbak OCCURS 0,
vkorg LIKE vbak-vkorg, " Sales organization
kunnr LIKE vbak-kunnr, " Sold-to party
vbeln LIKE vbak-vbeln, " Sales document
netwr LIKE vbak-netwr, " Net Value of the Sales Order
waerk LIKE vbak-waerk, " Document currency
END OF gt_vbak.
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 * INTO CORRESPONDING FIELDS OF TABLE gt_vbak
FROM vbak
UP TO p_max ROWS
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.
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 -
Hi to all,
i have 't found any example programs for below function modules of alv
REUSE_ALE_GRID_COMMENTORY_GET
REUSE_ALE_GRID_DISPLAY_LVC
REUSE_ALE_GRID_LAYOUT_INFO_GET
REUSE_ALE_GRID_LAYOUT_INFO_SET
for above given f/m , i searched all standard programs also.
but they are too lengthy to understand .
pls.help in this regard .if any body has sample programs of bove f/m's,
pls.send me to my mail id : [email protected]
I am looking to hear a positive reply
Regards ,
Kiran.Hi,
REPORT YALV
NO STANDARD PAGE HEADING "
LINE-SIZE 80 "
LINE-COUNT 64 "
MESSAGE-ID XX. "
*TABLES:
TYPE-POOLS:SLIS.
DATA:BEGIN OF TB_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
WERKS LIKE MARC-WERKS,
LGORT LIKE MARD-LGORT,
ICON TYPE ICON-ID,
SEL(1) TYPE C,
END OF TB_MARA.
DATA:LS_FIELDCAT_ALV TYPE SLIS_FIELDCAT_ALV,
LT_FIELDCAT_ALV TYPE SLIS_T_FIELDCAT_ALV,
LS_LAYOUT_ALV TYPE SLIS_LAYOUT_ALV.
START-OF-SELECTION.
**--Perform to get matrial data.
PERFORM GET_MAT_DATA.
**--Perform fieldcat_alv.
PERFORM FIELDCAT_ALV. "USING LS_FIELDCAT_ALV. "CHANGING LT_FIELDCAT_ALV.
**--Perform to_display.
PERFORM DISPLAY_LAYOUT.
**--Perform to_display.
PERFORM DISPLAY_DATA.
*& Form get_mat_data
FORM GET_MAT_DATA .
SELECT MARAMATNR MARCWERKS MARD~LGORT
INTO TABLE TB_MARA
FROM MARA INNER JOIN MARC ON MARCMATNR = MARAMATNR
INNER JOIN MARD ON MARDMATNR = MARAMATNR.
LOOP AT TB_MARA.
TB_MOBILE-SEL = 'X'.
TB_MARA-ICON = '@08@'. "0A RED,08 GREEN,09 YELLOW
MODIFY TB_MARA.
ENDLOOP.
ENDFORM. " get_mat_data
*& Form fieldcat_alv
FORM FIELDCAT_ALV.
LS_FIELDCAT_ALV-FIELDNAME = 'ICON'.
LS_FIELDCAT_ALV-ICON = 'X'.
LS_FIELDCAT_ALV-COL_POS = 0.
LS_FIELDCAT_ALV-OUTPUTLEN = 4.
LS_FIELDCAT_ALV-EMPHASIZE = 'X'.
LS_FIELDCAT_ALV-KEY = 'X'.
APPEND LS_FIELDCAT_ALV TO LT_FIELDCAT_ALV.
CLEAR LS_FIELDCAT_ALV.
LS_FIELDCAT_ALV-SELTEXT_M = 'Material'.
LS_FIELDCAT_ALV-FIELDNAME = 'MATNR'.
LS_FIELDCAT_ALV-TABNAME = 'TB_MARA'.
LS_FIELDCAT_ALV-OUTPUTLEN = 18.
LS_FIELDCAT_ALV-KEY = 'X'.
APPEND LS_FIELDCAT_ALV TO LT_FIELDCAT_ALV.
CLEAR LS_FIELDCAT_ALV.
LS_FIELDCAT_ALV-SELTEXT_M = 'Plant'.
LS_FIELDCAT_ALV-FIELDNAME = 'WERKS'.
LS_FIELDCAT_ALV-TABNAME = 'TB_MARA'.
LS_FIELDCAT_ALV-OUTPUTLEN = 6.
LS_FIELDCAT_ALV-KEY = ' '.
APPEND LS_FIELDCAT_ALV TO LT_FIELDCAT_ALV.
CLEAR LS_FIELDCAT_ALV.
LS_FIELDCAT_ALV-SELTEXT_M = 'Storage Loc'.
LS_FIELDCAT_ALV-FIELDNAME = 'LGORT'.
LS_FIELDCAT_ALV-TABNAME = 'TB_MARA'.
LS_FIELDCAT_ALV-OUTPUTLEN = 10.
LS_FIELDCAT_ALV-KEY = ' '.
APPEND LS_FIELDCAT_ALV TO LT_FIELDCAT_ALV.
CLEAR LS_FIELDCAT_ALV.
ENDFORM. " fieldcat_alv
*& Form DISPLAY_LAYOUT
FORM DISPLAY_LAYOUT .
CLEAR LS_LAYOUT_ALV.
LS_LAYOUT_ALV-ZEBRA = 'X'.
LS_LAYOUT_ALV-BOX_FIELDNAME = 'SEL'.
LS_LAYOUT_ALV-BOX_TABNAME = 'TB_MARA'.
LS_LAYOUT_ALV-NO_INPUT = 'X'.
LS_LAYOUT_ALV-COLWIDTH_OPTIMIZE = 'X'.
LS_LAYOUT_ALV-TOTALS_TEXT = 'Totals'(201).
ENDFORM. " DISPLAY_LAYOUT
*& Form display_data
FORM DISPLAY_DATA .
DATA:LV_REPID LIKE SY-REPID.
LV_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = LV_REPID
IS_LAYOUT = LS_LAYOUT_ALV
IT_FIELDCAT = LT_FIELDCAT_ALV
I_SAVE = 'A'
TABLES
T_OUTTAB = TB_MARA
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.
Regards,
V.Durga -
Hi experts,
I got a CR of an ALV report where I have to add subtotal of PR Qty for a particular material
Please help me how to add subtotal ?
RegardsHi,
Following report will explain you haow to maintain the subtotal in your alv report.
REPORT YMS_ALVSUBTOTAL.
TYPE-POOLS: slis.
DATA: BEGIN OF it_output OCCURS 0,
var1(8) TYPE n,
var2(10),
var3 TYPE I,
END OF it_output.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
t_fieldcat TYPE slis_fieldcat_alv,
it_sort TYPE slis_t_sortinfo_alv,
t_sort TYPE slis_sortinfo_alv,
v_repid LIKE sy-repid,
ilayout type slis_layout_alv.
INITIALIZATION.
v_repid = sy-repid.
START-OF-SELECTION.
PERFORM get_data.
PERFORM sort_fields.
PERFORM fill_fieldcat.
PERFORM list_display.
*& Form GET_DATA
* text
* --> p1 text
* <-- p2 text
FORM get_data.
it_output-var1 = 1000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
* it_output-key = 'X'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'siddhu'.
it_output-var3 = '20000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'chinni'.
it_output-var3 = '100000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 2000.
it_output-var2 = 'chicchu'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 2000.
it_output-var2 = 'candy'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 4000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
ENDFORM. " GET_DATA
*& Form fill_fieldcat
* text
* --> p1 text
* <-- p2 text
FORM fill_fieldcat.
PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',
'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',
'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.
ENDFORM. " fill_fieldcat
*& Form fill_fields
* text
* -->P_0146 text
* -->P_0147 text
* -->P_0148 text
* -->P_0149 text
FORM fill_fields USING value(tabname) TYPE slis_tabname
value(fieldname) TYPE slis_fieldname
value(seltext_m) LIKE dd03p-scrtext_m
value(do_sum) TYPE c.
t_fieldcat-tabname = tabname.
t_fieldcat-fieldname = fieldname.
t_fieldcat-seltext_m = seltext_m.
IF do_sum = 'X'.
t_fieldcat-datatype = 'CURR'.
ENDIF.
t_fieldcat-do_sum = do_sum.
APPEND t_fieldcat TO it_fieldcat.
CLEAR t_fieldcat.
ENDFORM. " fill_fields
*& Form list_display
* text
* --> p1 text
* <-- p2 text
FORM list_display.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = it_fieldcat
it_sort = it_sort[]
TABLES
t_outtab = it_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. " list_display
*& Form sort_fields
* text
* --> p1 text
* <-- p2 text
FORM sort_fields.
t_sort-fieldname = 'VAR1'.
t_sort-tabname = 'IT_OUTPUT'.
t_sort-spos = 1.
t_sort-up = 'X'.
t_sort-subtot = 'X'.
APPEND t_sort TO it_sort.
CLEAR t_sort.
t_sort-fieldname = 'VAR3'.
t_sort-tabname = 'IT_OUTPUT'.
t_sort-spos = 2.
t_sort-up = 'X'.
APPEND t_sort TO it_sort.
CLEAR t_sort.
ENDFORM. " sort_fields
Thanks,
Sankar M -
Creating 2 header in ALV (Urgent!)
Hello... i have aproblem right now. i want to create report using ALV grid and i'm using OO method, the problem is, i want to create 2 header in the same screen,
for example
[header1] [header2]
name place name place
but i don't know how to create them, i don't want to use split container is there another way to create it.
And for the header it's dynamic based on my selection at the selection screen. so if in selection screen header 1 i fill try1 and in header 2 i fill try2, then the result will be:
try1 try2
name place name place
Can u gice me the sample code, i'll really appreciate if u do, thx.Hi,
Welcome to SDN!!!!!!!!!!!!!
I think you can do this while building your FIELDCATALOG.
Look at the sample code.......
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = i_repid
i_callback_user_command = 'USER_COMMAND_PERNR'
it_fieldcat = header
is_layout = gt_layout
i_callback_top_of_page = 'TOP-OF-PAGE1'
i_grid_title = xyz
it_sort = gt_sort[]
i_default = 'X'
i_save = 'U'
is_variant = gt_variant
it_events = gt_events
tables
t_outtab = t_output.
clear t_output.
*******Building Fieldcatlog***********
clear ls_fieldcat.
ls_fieldcat-fieldname = 'NAME'.
ls_fieldcat-col_pos = 1.
ls_fieldcat-seltext_l = text-t01.
ls_fieldcat-outputlen = 8.
ls_fieldcat-fix_column = 'X'.
ls_fieldcat-key = 'X'.
append ls_fieldcat to header.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'PLACE'.
ls_fieldcat-col_pos = 2.
ls_fieldcat-seltext_l = text-t02.
ls_fieldcat-outputlen = 40.
ls_fieldcat-fix_column = 'X'.
ls_fieldcat-just = 'C'.
append ls_fieldcat to header.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'NAME1'.
ls_fieldcat-col_pos = 3.
ls_fieldcat-seltext_l = text-t03.
ls_fieldcat-outputlen = 40.
ls_fieldcat-just = 'C'.
append ls_fieldcat to header.
clear ls_fieldcat.
ls_fieldcat-fieldname = 'PLACE1'.
ls_fieldcat-col_pos = 4.
ls_fieldcat-seltext_l = text-t04.
ls_fieldcat-outputlen = 10.
ls_fieldcat-just = 'C'.
append ls_fieldcat to header.
clear ls_fieldcat.
here in your Internal table differentiate your coloumns such a way the data while passing to FM it will not be a problem.
Thanks.
If this helps you reward with points.
Message was edited by: Deepak -
Aggregating fields in ALV (Urgent)
Hi friends
How can i do aggregate in ALV ?
eg:-
my report output luks like this:-
10C-NAME1 10 3 4
10C-NAME1 2 4 6
10C-NAME1 8 8 8
Now i want to sumup these records and display as one record.
Now..my rep output should be 10C-NAME1 20 15 18
The above is just an example.. I m using ALV Grid report.
Please help meHi ,
Let me give u a simpler solution.
Use ABAP statement COLLECT <internal table>
this will sum up all the numerical fields in your internal table based on Name field (non numeric)
after sum operation all the records will be repalced wid the new summation record. thus u can used the same internal table to display your results
this statement is meant exactly for your requirement.
Kindly give me some points if this helps.
Look into the following link for more details
http://help.sap.com/saphelp_47x200/helpdata/en/87/56d00722c011d2954a0000e8353423/frameset.htm
regards,
Sumeet Mishra -
Subtotaling in ALV(urgent)
Hi experts,
can anyone tell how to achieve the subtotaling in ALV'S.any pseudo code .points will be awarded.
Regards,
nagarajHello Nagaraj,
In the sort table use:
REFRESH IT_SORT.
CLEAR: G_S_SORT,G_S_SORT.
G_S_SORT-SPOS = 1.
G_S_SORT-FIELDNAME = 'EBELN'.
G_S_SORT-UP = 'X'.
G_S_SORT-DOWN = ' '.
<b> G_S_SORT-SUBTOT = 'X'.</b>
G_S_SORT-EXPA = ' '.
APPEND G_S_SORT TO IT_SORT.
If useful reward.
Vasanth -
Freezing of cell of ALV(urgent)
Hi all abapers,
My requirement is to freeze a particular cell of ALV grid. Pleas give me an idea of that if anyway it is possible.
I anticipate for ur reply.
I assure you for giving full marks if you get my solution done.
Cheers,Hi Pradeep,
before calling "REUSE_ALV_LIST_DISPLAY".
write the code as below:
LOOP AT FCAT ASSIGNING <lfs_fieldcat>.
CASE <lfs_fieldcat>-fieldname.
WHEN 'MATNR'.
<b><lfs_fieldcat>-KEY = 'X'. "for freezing MATNR column</b>
WHEN 'ERSDA'.
<b><lfs_fieldcat>-KEY = 'X'. "for freezing ERSDA column</b>
WHEN 'ERNAM'.
<b><lfs_fieldcat>-KEY = 'X'. "for freezing ERNAM column</b>
endcase.
endloop.
<b>Reward points if it is useful....</b>
Cheers !
Moqeeth. -
in selection screen for select option u have addition no extension no intervals.
does it will work like parameter . if in case whythey have come up with this addition u can use direct parameterHI,
it works like parameter for storing single value.
but for parameter u cant specify any option, but with select options u can, specify sign n option.
ex:
select-options: s_matnr for mara-matnr no intervals no-extension DEFAULT '1001'.
initialization.
LOOP AT S_MATNR.
s_matnr-option = 'NE'.
MODIFY S_MATNR.
ENDLOOP.
incase of parameter, the above is not possible
regards,
madhu -
Urgent regarding Display fields in ALV End of Page
Hi,
I am displaying the output using ALV List Display. Output of the report is displayed in different pages based on a particular delivery address. I have to display some of the fields (Delivery address) of the final internal table in the end of page. I need to trigger this end of page in alv based on the selection of radio buttons also.
Its very urgent. Respond immediately.
Thanks
GeetaRefer the follwoing code:
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
i_callback_html_end_of_list = 'END_OF_LIST_HTML'
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
*& Form end_of_list_html
* output at the end of the list - not in printed output *
FORM end_of_list_html USING end TYPE REF TO cl_dd_document.
DATA: ls_text TYPE sdydo_text_element,
l_grid TYPE REF TO cl_gui_alv_grid,
f(14) TYPE c VALUE 'SET_ROW_HEIGHT'.
ls_text = 'Footer title'.
* adds and icon (red triangle)
CALL METHOD end->add_icon
EXPORTING
sap_icon = 'ICON_MESSAGE_ERROR_SMALL'.
* adds test (via variable)
CALL METHOD end->add_text
EXPORTING
text = ls_text
sap_emphasis = 'strong'.
* adds new line (start new line)
CALL METHOD end->new_line.
* display text(bold)
CALL METHOD end->add_text
EXPORTING
text = 'Bold text'
sap_emphasis = 'strong'.
* adds new line (start new line)
CALL METHOD end->new_line.
* display text(normal)
CALL METHOD end->add_text
EXPORTING
text = 'Normal text'.
* adds new line (start new line)
CALL METHOD end->new_line.
* display text(bold)
CALL METHOD end->add_text
EXPORTING
text = 'Yellow triangle'
sap_emphasis = 'strong'.
* adds and icon (yellow triangle)
CALL METHOD end->add_icon
EXPORTING
sap_icon = 'ICON_LED_YELLOW'.
* display text(normal)
CALL METHOD end->add_text
EXPORTING
text = 'More text'.
*set height of this section
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = l_grid.
CALL METHOD l_grid->parent->parent->(f)
EXPORTING
id = 3
height = 14.
ENDFORM. "end_of_list_html. -
Urgent... need help in alv.
hai all,
in an alv report i want a pushbutton in the application tool bar .
how can i get it.
and also i want to select multiple rows from the list and the first column as a button to select the rows.
please.. help me. its very urgent.
thanks in advance.
regards, selvi.Hi,
Following steps to copy standard status to zstatus
Goto T.Code SE41 & give program name SAPLSLVC then select
status as STANDARD then copy this status to zstatus in your program
open zstatus in T.Code SE41 and add push button and save & activate it.
then Call FM PF_STATUS.
see below,
I_CALLBACK_PF_STATUS_SET- 'PF_STATUS'
In module PF_STATUS
set pf-status 'ZSTATUS'
reward if useful. -
URGENT: REGARDING POSTING DATE AND DELETION OF ZEROS IN ALV REPORT
Hi,
I had made a report in which i have to display 'POSTING DATE' (iseg-budat) when we execute the report i.e. it should be displayed as PERIOD :- _______ to _______ .
2nd problem is i had displayed the material no. ,but there are zeros which are displaying in dere ,i want to remove dem ... example, if the mat.no. is 2321 ,it is displaying 000002321. i want to remove these zeros.
Its request to all of u dat plz help me as fast as possible as it is most urgent to me and if any body provide me help he or sh e will be definately rewarded..
Regards,
ric.sHere i am giving you one of the ALV reports i have generated. Check this program. I hope it will be helpful to you.
REPORT ZFI_ASSIGNED_FUNDS_FINAL.
TABLES: FMIT,FMCIT,FPOS,IFMEISA1,FMFCTRT,BSEG,ZREV_BUDGET.
TYPE-POOLS: SLIS.
*ALV data declarations
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID.
*For ALV top of page
DATA : IT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
*For ALV Events
DATA : IT_EVENT1 TYPE SLIS_T_EVENT.
*For ALV Events
DATA : IT_EVENT TYPE SLIS_ALV_EVENT.
*For top of page heading
DATA: IT_LINE TYPE SLIS_LISTHEADER.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : RADIO RADIOBUTTON GROUP R1.
IF RADIO EQ 'X'.
SELECT-OPTIONS: FIPEX FOR FPOS-FIPEX, " SELECTION FOR FUNDS CENTER & COMMITMENT ITEM
RFISTL FOR FMIT-RFISTL.
ENDIF.
PARAMETER: RADIO1 RADIOBUTTON GROUP R1.
IF RADIO1 EQ 'X'.
SELECT-OPTIONS : HKONT FOR BSEG-HKONT, " SELECTION FOR COST CENTER & G/L ACCOUNT
KOSTL FOR ZREV_BUDGET-KOSTL.
ENDIF.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: PERDE FOR IFMEISA1-PERDE DEFAULT '01' TO '12' OBLIGATORY.
PARAMETER : RYEAR LIKE FMIT-RYEAR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B2.
DATA: BEGIN OF IT_TAB OCCURS 0,
FIKRS LIKE FMFCTR-FIKRS,
FICTR LIKE CSKS-KOSTL,
CTR_OBJNR LIKE FMFCTR-CTR_OBJNR,
RFISTL LIKE FMIT-RFISTL,
OBJNR LIKE BPPE-OBJNR,
END OF IT_TAB.
DATA: BEGIN OF IT_TAB1 OCCURS 0,
CO_OBJNR LIKE BPIJ-CO_OBJNR,
POSIT LIKE BPPE-POSIT,
FIPEX LIKE FMPOSIT-FIPEX,
FICTR LIKE FMFCTR-FICTR,
KSTAR LIKE COSP-KSTAR,
RFISTL LIKE FMIT-RFISTL,
OBJNR1 LIKE BPPE-OBJNR,
END OF IT_TAB1.
DATA: BEGIN OF IT_FMIT OCCURS 0,
RYEAR LIKE FMIT-RYEAR,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE ZREV_BUDGET-KOSTL,
RFIPEX LIKE ZREV_BUDGET-KSTAR,
HSL01 LIKE FMIT-HSL01,
HSL02 LIKE FMIT-HSL02,
HSL03 LIKE FMIT-HSL03,
HSL04 LIKE FMIT-HSL04,
HSL05 LIKE FMIT-HSL05,
HSL06 LIKE FMIT-HSL06,
HSL07 LIKE FMIT-HSL07,
HSL08 LIKE FMIT-HSL08,
HSL09 LIKE FMIT-HSL09,
HSL10 LIKE FMIT-HSL10,
HSL11 LIKE FMIT-HSL11,
HSL12 LIKE FMIT-HSL12,
HSL13 LIKE FMIT-HSL13,
HSL14 LIKE FMIT-HSL14,
HSL15 LIKE FMIT-HSL15,
HSL16 LIKE FMIT-HSL16,
END OF IT_FMIT.
DATA: BEGIN OF IT_FMIT1 OCCURS 0,
RYEAR LIKE FMIT-RYEAR,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE ZREV_BUDGET-KOSTL,
RFIPEX LIKE FMPG-FIPEX,
TOTAL LIKE FMIT-TSL01,
TOTAL1 LIKE FMIT-TSL01,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
END OF IT_FMIT1.
DATA: BEGIN OF IT_BPPE OCCURS 0,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
GJAHR LIKE BPPE-GJAHR,
WLP01 LIKE BPPE-WLP01,
WLP02 LIKE BPPE-WLP02,
WLP03 LIKE BPPE-WLP03,
WLP04 LIKE BPPE-WLP04,
WLP05 LIKE BPPE-WLP05,
WLP06 LIKE BPPE-WLP06,
WLP07 LIKE BPPE-WLP07,
WLP08 LIKE BPPE-WLP08,
WLP09 LIKE BPPE-WLP09,
WLP10 LIKE BPPE-WLP10,
WLP11 LIKE BPPE-WLP11,
WLP12 LIKE BPPE-WLP12,
END OF IT_BPPE.
DATA: BEGIN OF IT_BPPE1 OCCURS 0,
OBJNR LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
GJAHR LIKE BPPE-GJAHR,
RFISTL LIKE FMIT-RFISTL,
FIPEX LIKE FPOS-FIPEX,
TOTAL2 LIKE BPPE-WLP01,
END OF IT_BPPE1.
DATA: BEGIN OF IT_CSKS OCCURS 0,
KOKRS LIKE CSKS-KOKRS,
KOSTL LIKE CSKS-KOSTL,
BUKRS LIKE CSKS-BUKRS,
OBJNR LIKE CSKS-OBJNR,
END OF IT_CSKS.
DATA: BEGIN OF IT_COSP OCCURS 0,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
BEKNZ LIKE COSP-BEKNZ,
WKG001 LIKE COSP-WKG001,
WKG002 LIKE COSP-WKG002,
WKG003 LIKE COSP-WKG003,
WKG004 LIKE COSP-WKG004,
WKG005 LIKE COSP-WKG005,
WKG006 LIKE COSP-WKG006,
WKG007 LIKE COSP-WKG007,
WKG008 LIKE COSP-WKG008,
WKG009 LIKE COSP-WKG009,
WKG010 LIKE COSP-WKG010,
WKG011 LIKE COSP-WKG011,
WKG012 LIKE COSP-WKG012,
END OF IT_COSP.
DATA: BEGIN OF IT_COSP2 OCCURS 0,
OBJNR LIKE COSP-OBJNR,
GJAHR LIKE COSP-GJAHR,
KSTAR LIKE COSP-KSTAR,
FIPEX LIKE FMPG-FIPEX,
TOTAL LIKE COSP-WKG001,
TOTAL1 LIKE COSP-WKG001,
OBJNR1 LIKE BPPE-OBJNR,
POSIT LIKE BPPE-POSIT,
END OF IT_COSP2.
IF RADIO EQ 'X'.
DATA: BEGIN OF IT_FINAL OCCURS 0,
FIKRS LIKE FMIT-FIKRS,
RFISTL LIKE FMIT-RFISTL,
RFIPEX LIKE FMIT-RFIPEX,
TEXT LIKE FMCIT-TEXT1,
ALLOC LIKE FMIT-TSL16,
USED LIKE FMIT-TSL16,
REMAIN LIKE FMIT-TSL16,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FINAL.
ENDIF.
IF RADIO1 EQ 'X'.
DATA: BEGIN OF IT_FINAL1 OCCURS 0,
GJAHR LIKE ZREV_BUDGET-GJAHR,
KOSTL LIKE ZREV_BUDGET-KOSTL,
KSTAR LIKE ZREV_BUDGET-KSTAR,
TOTAL1 LIKE COSP-WKG001,
TOTAL3 LIKE COSP-WKG001,
TEXT LIKE CSKU-KTEXT,
VARIANCE LIKE COSP-WKG001,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FINAL1.
ENDIF.
DATA: BEGIN OF IT_FISTL OCCURS 0,
RFISTL LIKE FMIT-RFISTL,
BEZEICH LIKE FMFCTRT-BEZEICH,
END OF IT_FISTL.
DATA: BEGIN OF IT_HKONT OCCURS 0,
KSTAR LIKE CSKU-KSTAR,
KTEXT LIKE CSKU-KTEXT,
END OF IT_HKONT.
DATA: PERIOD1 TYPE I,
PERIOD2 TYPE I,
PERIOD3 TYPE I,
PERIO TYPE I.
DATA: BEZEICH LIKE FMFCTRT-BEZEICH.
CONSTANTS: C_00 TYPE MONAT VALUE '00',
C_13 TYPE MONAT VALUE '13'.
DATA : IT_RETURN LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
DATA: FIPEX1 LIKE COSP-KSTAR.
A T - S E L E C T I O N S C R E E N
AT SELECTION-SCREEN.
LOOP AT PERDE.
IF PERDE-LOW >= C_13 OR PERDE-HIGH >= C_13 .
MESSAGE E022(ZA) WITH 'Enter Period values from 1 to 12'.
EXIT.
ENDIF.
ENDLOOP.
IF NOT PERDE-LOW IS INITIAL.
PERIOD1 = PERDE-LOW.
ENDIF.
IF NOT PERDE-HIGH IS INITIAL.
PERIOD2 = PERDE-HIGH.
PERIOD3 = PERIOD2 - PERIOD1.
PERIOD3 = PERIOD3 + 1.
ELSE.
PERIOD3 = 1.
ENDIF.
PERIO = PERIOD1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR RFISTL-LOW.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS EQ 'NFFM'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'RFISTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO RFISTL-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR RFISTL-HIGH.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS EQ 'NFFM'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'RFISTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO RFISTL-HIGH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR HKONT-LOW.
SELECT KSTAR KTEXT INTO TABLE IT_HKONT FROM CSKU WHERE SPRAS EQ 'EN'.
SORT IT_HKONT BY KSTAR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'HKONT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_HKONT
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO HKONT-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR HKONT-HIGH.
SELECT KSTAR KTEXT INTO TABLE IT_HKONT FROM CSKU WHERE SPRAS EQ 'EN'.
SORT IT_HKONT BY KSTAR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'HKONT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_HKONT
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO HKONT-HIGH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR KOSTL-LOW.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS IN KOSTL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO KOSTL-LOW.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR KOSTL-HIGH.
SELECT FICTR BEZEICH INTO TABLE IT_FISTL FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FIKRS IN KOSTL.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'KOSTL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_FISTL
RETURN_TAB = IT_RETURN.
IF SY-SUBRC = 0.
READ TABLE IT_RETURN INDEX 1.
MOVE IT_RETURN-FIELDVAL TO KOSTL-HIGH.
ENDIF.
*START-OF-SELECTION
START-OF-SELECTION.
IF RADIO EQ 'X'. " FOR FUNDS CENTER AND COMMITMENT ITEM
PERFORM GET_DATA.
PERFORM PROCESS_DATA.
ENDIF.
IF RADIO1 EQ 'X'. " FOR COST CENTER AND G/L ACCOUNT
PERFORM GET_DATA1.
PERFORM PROCESS_DATA1.
ENDIF.
*END OF SELECTION
PERFORM BUILD_LAYOUT.
PERFORM BUILD_EVENTS.
IF RADIO EQ 'X'.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_SORT.
PERFORM DISPLAY_ALV_REPORT.
ENDIF.
IF RADIO1 EQ 'X'.
PERFORM BUILD_FIELDCATALOG1.
PERFORM BUILD_SORT1.
PERFORM DISPLAY_ALV_REPORT1.
ENDIF.
*& Form GET_DATA
text
--> p1 text
<-- p2 text
FORM GET_DATA .
SELECT FIKRS FICTR CTR_OBJNR INTO TABLE IT_TAB FROM FMFCTR
WHERE FIKRS EQ 'NFFM'
AND FICTR IN RFISTL.
SELECT CO_OBJNR POSIT INTO TABLE IT_TAB1 FROM BPIJ
FOR ALL ENTRIES IN IT_TAB
WHERE CO_OBJNR EQ IT_TAB-CTR_OBJNR.
LOOP AT IT_TAB1.
SELECT SINGLE FIPEX INTO IT_TAB1-FIPEX FROM FMPOSIT WHERE FIKRS EQ 'NFFM'
AND POSIT EQ IT_TAB1-POSIT
AND FIPEX IN FIPEX.
IF SY-SUBRC EQ '0'.
MODIFY IT_TAB1.
ELSE.
DELETE IT_TAB1.
ENDIF.
ENDLOOP.
SELECT OBJNR
POSIT
GJAHR
WLP01
WLP02
WLP03
WLP04
WLP05
WLP06
WLP07
WLP08
WLP09
WLP10
WLP11
WLP12
INTO TABLE IT_BPPE
FROM BPPE
FOR ALL ENTRIES IN IT_TAB1
WHERE OBJNR EQ IT_TAB1-CO_OBJNR
AND POSIT EQ IT_TAB1-POSIT
AND GJAHR EQ RYEAR
AND VORGA IN ('KBFR','KBUE','KBUS').
LOOP AT IT_BPPE.
MOVE-CORRESPONDING IT_BPPE TO IT_BPPE1.
IT_BPPE1-RFISTL = IT_BPPE1-OBJNR+6(4).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_BPPE1-RFISTL
IMPORTING
OUTPUT = IT_BPPE1-RFISTL.
CALL FUNCTION 'FM_FIPEX_GET_FROM_POSIT'
EXPORTING
I_FIKRS = 'NFFM'
I_POSIT = IT_BPPE1-POSIT
IMPORTING
E_FIPEX = IT_BPPE1-FIPEX.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP01.
WHEN 2.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP02.
WHEN 3.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP03.
WHEN 4.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP04.
WHEN 5.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP05.
WHEN 6.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP06.
WHEN 7.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP07.
WHEN 8.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP08.
WHEN 9.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP09.
WHEN 10.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP10.
WHEN 11.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP11.
WHEN 12.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
COLLECT IT_BPPE1.
CLEAR PERIOD1.
CLEAR IT_BPPE1.
ENDLOOP.
SELECT RYEAR
FIKRS
RFISTL
RFIPEX
HSL01
HSL02
HSL03
HSL04
HSL05
HSL06
HSL07
HSL08
HSL09
HSL10
HSL11
HSL12
HSL13
HSL14
HSL15
HSL16
INTO TABLE IT_FMIT FROM FMIT
FOR ALL ENTRIES IN IT_BPPE1
WHERE RYEAR EQ RYEAR
AND FIKRS EQ 'NFFM'
AND RFIPEX EQ IT_BPPE1-FIPEX
AND RFIPEX IN FIPEX
AND RFISTL EQ IT_BPPE1-RFISTL.
LOOP AT IT_FMIT.
MOVE-CORRESPONDING IT_FMIT TO IT_FMIT1.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL01.
WHEN 2.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL02.
WHEN 3.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL03.
WHEN 4.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL04.
WHEN 5.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL05.
WHEN 6.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL06.
WHEN 7.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL07.
WHEN 8.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL08.
WHEN 9.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL09.
WHEN 10.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL10.
WHEN 11.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL11.
WHEN 12.
IT_FMIT1-TOTAL = IT_FMIT1-TOTAL + IT_FMIT-HSL12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
IT_FMIT1-TOTAL1 = IT_FMIT1-TOTAL * -1 .
COLLECT IT_FMIT1.
CLEAR PERIOD1.
CLEAR IT_FMIT1.
ENDLOOP.
ENDFORM. " GET_DATA
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA .
SORT IT_FMIT1 BY FIKRS RFISTL RFIPEX.
SORT IT_BPPE1 BY RFISTL FIPEX.
LOOP AT IT_BPPE1.
IT_FINAL-RFISTL = IT_BPPE1-RFISTL.
IT_FINAL-RFIPEX = IT_BPPE1-FIPEX.
IT_FINAL-ALLOC = IT_BPPE1-TOTAL2.
READ TABLE IT_FMIT1 WITH KEY RFISTL = IT_BPPE1-RFISTL RFIPEX = IT_BPPE1-FIPEX.
IF SY-SUBRC EQ 0.
IT_FINAL-USED = IT_FMIT1-TOTAL1.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFIPEX
IMPORTING
OUTPUT = IT_FMIT1-RFIPEX.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFISTL
IMPORTING
OUTPUT = IT_FMIT1-RFISTL.
Changes made on 13/11/2007 *******************************
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_FMIT1-RFIPEX.
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_BPPE1-FIPEX.
Changes made on 13/11/2007 *******************************
SELECT SINGLE BEZEICH INTO IT_FINAL-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FMIT1-RFISTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL-RFIPEX
IMPORTING
OUTPUT = IT_FINAL-RFIPEX.
IT_FINAL-REMAIN = IT_FINAL-ALLOC - IT_FINAL-USED.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
SORT IT_FINAL BY FIKRS RFISTL RFIPEX.
LOOP AT IT_FMIT1.
READ TABLE IT_FINAL WITH KEY RFISTL = IT_FMIT1-RFISTL RFIPEX = IT_FMIT1-RFIPEX.
IF SY-SUBRC NE 0.
IT_FINAL-RFISTL = IT_FMIT1-RFISTL.
IT_FINAL-RFIPEX = IT_FMIT1-RFIPEX.
IT_FINAL-USED = IT_FMIT1-TOTAL1.
IT_FINAL-ALLOC = '0'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFIPEX
IMPORTING
OUTPUT = IT_FMIT1-RFIPEX.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FMIT1-RFISTL
IMPORTING
OUTPUT = IT_FMIT1-RFISTL.
SELECT SINGLE TEXT1 INTO IT_FINAL-TEXT FROM FMCIT WHERE SPRAS EQ 'EN'
AND FIPEX EQ IT_FMIT1-RFIPEX.
SELECT SINGLE BEZEICH INTO IT_FINAL-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FMIT1-RFISTL.
IT_FINAL-REMAIN = IT_FINAL-ALLOC - IT_FINAL-USED.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ELSE.
DELETE IT_FMIT1.
ENDIF.
ENDLOOP.
SORT IT_FINAL BY FIKRS RFISTL RFIPEX.
ENDFORM. " PROCESS_DATA
*& Form GET_DATA1
text
--> p1 text
<-- p2 text
FORM GET_DATA1 .
SELECT KOKRS KOSTL BUKRS OBJNR INTO TABLE IT_CSKS
FROM CSKS
WHERE KOKRS EQ '1000'
AND KOSTL IN KOSTL
AND BUKRS EQ 'NFCL'.
SELECT OBJNR
GJAHR
KSTAR
BEKNZ
WKG001
WKG002
WKG003
WKG004
WKG005
WKG006
WKG007
WKG008
WKG009
WKG010
WKG011
WKG012
FROM COSP
INTO TABLE IT_COSP
FOR ALL ENTRIES IN IT_CSKS
WHERE OBJNR EQ IT_CSKS-OBJNR
AND GJAHR EQ RYEAR
AND KSTAR IN HKONT.
LOOP AT IT_COSP.
MOVE-CORRESPONDING IT_COSP TO IT_COSP2.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG001.
WHEN 2.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG002.
WHEN 3.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG003.
WHEN 4.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG004.
WHEN 5.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG005.
WHEN 6.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG006.
WHEN 7.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG007.
WHEN 8.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG008.
WHEN 9.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG009.
WHEN 10.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG010.
WHEN 11.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG011.
WHEN 12.
IT_COSP2-TOTAL = IT_COSP2-TOTAL + IT_COSP-WKG012.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
IT_COSP2-OBJNR1 = IT_COSP2-OBJNR+10(6).
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_COSP2-OBJNR1
IMPORTING
OUTPUT = IT_COSP2-OBJNR1.
CONCATENATE 'FSNFFM' IT_COSP2-OBJNR1 INTO IT_COSP2-OBJNR1.
IT_COSP2-FIPEX = IT_COSP2-KSTAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_COSP2-FIPEX
IMPORTING
OUTPUT = IT_COSP2-FIPEX.
CALL FUNCTION 'FM_POSIT_GET_FROM_FIPEX'
EXPORTING
I_FIKRS = 'NFFM'
I_FIPEX = IT_COSP2-FIPEX
I_FLG_BUFFER_ALL =
IMPORTING
E_POSIT = IT_COSP2-POSIT
TABLES
T_FMPOSIT =
EXCEPTIONS
INPUT_ERROR = 1
DATA_NOT_FOUND = 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.
CONDENSE IT_COSP2-OBJNR1.
CONDENSE IT_COSP2-POSIT.
COLLECT IT_COSP2.
CLEAR PERIOD1.
CLEAR IT_COSP2.
ENDLOOP.
SORT IT_COSP2 BY OBJNR KSTAR.
SELECT OBJNR
POSIT
GJAHR
WLP01
WLP02
WLP03
WLP04
WLP05
WLP06
WLP07
WLP08
WLP09
WLP10
WLP11
WLP12
INTO TABLE IT_BPPE
FROM BPPE
FOR ALL ENTRIES IN IT_COSP2
WHERE OBJNR EQ IT_COSP2-OBJNR1
AND POSIT EQ IT_COSP2-POSIT
AND GJAHR EQ RYEAR
AND VORGA IN ('KBFR','KBUE','KBUS').
LOOP AT IT_BPPE.
MOVE-CORRESPONDING IT_BPPE TO IT_BPPE1.
PERIOD1 = PERIO.
DO PERIOD3 TIMES.
CASE PERIOD1.
WHEN 1.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP01.
WHEN 2.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP02.
WHEN 3.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP03.
WHEN 4.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP04.
WHEN 5.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP05.
WHEN 6.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP06.
WHEN 7.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP07.
WHEN 8.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP08.
WHEN 9.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP09.
WHEN 10.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP10.
WHEN 11.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP11.
WHEN 12.
IT_BPPE1-TOTAL2 = IT_BPPE1-TOTAL2 + IT_BPPE-WLP12.
ENDCASE.
IF PERIOD2 >= PERIOD1.
PERIOD1 = PERIOD1 + 1.
ENDIF.
ENDDO.
COLLECT IT_BPPE1.
CLEAR PERIOD1.
CLEAR IT_BPPE1.
ENDLOOP.
ENDFORM. " GET_DATA1
*& Form PROCESS_DATA1
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA1 .
LOOP AT IT_COSP2.
IT_FINAL1-GJAHR = IT_COSP2-GJAHR.
IT_FINAL1-KSTAR = IT_COSP2-KSTAR.
IT_FINAL1-TOTAL1 = IT_COSP2-TOTAL.
SELECT SINGLE KOSTL FROM CSKS INTO IT_FINAL1-KOSTL WHERE KOKRS = '1000'
AND BUKRS EQ 'NFCL'
AND OBJNR = IT_COSP2-OBJNR.
READ TABLE IT_BPPE1 WITH KEY OBJNR = IT_COSP2-OBJNR1 POSIT = IT_COSP2-POSIT.
IF SY-SUBRC EQ 0.
IT_FINAL1-TOTAL3 = IT_BPPE1-TOTAL2.
ENDIF.
SELECT SINGLE KTEXT INTO IT_FINAL1-TEXT FROM CSKU WHERE SPRAS EQ 'EN'
AND KSTAR EQ IT_COSP2-KSTAR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL1-KOSTL
IMPORTING
OUTPUT = IT_FINAL1-KOSTL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_FINAL1-KSTAR
IMPORTING
OUTPUT = IT_FINAL1-KSTAR.
SELECT SINGLE BEZEICH INTO IT_FINAL1-BEZEICH FROM FMFCTRT
WHERE SPRAS EQ 'EN'
AND FICTR EQ IT_FINAL1-KOSTL.
IT_FINAL1-VARIANCE = IT_FINAL1-TOTAL3 - IT_FINAL1-TOTAL1.
APPEND IT_FINAL1.
CLEAR IT_FINAL1.
ENDLOOP.
SORT IT_FINAL1 BY KOSTL KSTAR.
DELETE IT_FINAL1 WHERE KOSTL IS INITIAL.
ENDFORM. " PROCESS_DATA1
*& Form BUILD_FIELDCATALOG
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'RFISTL'.
FIELDCATALOG-SELTEXT_M = 'Funds Center'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BEZEICH'.
FIELDCATALOG-SELTEXT_M = 'Fund Center Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'RFIPEX'.
FIELDCATALOG-SELTEXT_M = 'Commitment Item'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TEXT'.
FIELDCATALOG-SELTEXT_M = 'Commitment Item Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ALLOC'.
FIELDCATALOG-SELTEXT_M = 'Allocated Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USED'.
FIELDCATALOG-SELTEXT_M = 'Used Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'REMAIN'.
FIELDCATALOG-SELTEXT_M = 'Remaining Budget'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
*& Form BUILD_FIELDCATALOG1
text
--> p1 text
<-- p2 text
FORM BUILD_FIELDCATALOG1 .
FIELDCATALOG-FIELDNAME = 'KOSTL'.
FIELDCATALOG-SELTEXT_M = 'Cost Center'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BEZEICH'.
FIELDCATALOG-SELTEXT_M = 'Cost Center Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KSTAR'.
FIELDCATALOG-SELTEXT_M = 'G/L Account'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TEXT'.
FIELDCATALOG-SELTEXT_M = 'G/L Account Description'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TOTAL3'.
FIELDCATALOG-SELTEXT_M = 'Planned amount'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TOTAL1'.
FIELDCATALOG-SELTEXT_M = 'Actuals'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'VARIANCE'.
FIELDCATALOG-SELTEXT_M = 'Variance'.
FIELDCATALOG-DO_SUM = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG1
*& Form BUILD_LAYOUT
text
--> p1 text
<-- p2 text
FORM BUILD_LAYOUT .
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM. " BUILD_LAYOUT
*& Form BUILD_SORT
text
--> p1 text
<-- p2 text
FORM BUILD_SORT .
DATA: GT_SORT TYPE SLIS_SORTINFO_ALV.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'RFISTL'.
GT_SORT-TABNAME = 'IT_FINAL'.
GT_SORT-SUBTOT = 'X'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'BEZEICH'.
GT_SORT-TABNAME = 'IT_FINAL'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
ENDFORM. " BUILD_SORT
*& Form BUILD_SORT1
text
--> p1 text
<-- p2 text
FORM BUILD_SORT1 .
DATA: GT_SORT TYPE SLIS_SORTINFO_ALV.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'KOSTL'.
GT_SORT-TABNAME = 'IT_FINAL'.
GT_SORT-SUBTOT = 'X'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
GT_SORT-UP = 'X'.
GT_SORT-FIELDNAME = 'BEZEICH'.
GT_SORT-TABNAME = 'IT_FINAL'.
APPEND GT_SORT TO GD_SORT.
CLEAR GT_SORT.
ENDFORM. " BUILD_SORT1
*& Form BUILD_EVENTS
text
--> p1 text
<-- p2 text
FORM BUILD_EVENTS .
IT_EVENT-NAME = 'TOP_OF_PAGE'.
IT_EVENT-FORM = 'TOP_OF_PAGE'.
APPEND IT_EVENT TO IT_EVENT1.
CLEAR IT_EVENT.
ENDFORM. " BUILD_EVENTS
*& Form TOP_OF_PAGE
ALV TOP-OF-PAGE
FORM TOP_OF_PAGE. "#EC CALLED
REFRESH : IT_LIST_TOP_OF_PAGE.
CLEAR : IT_LINE.
IT_LINE-TYP = 'H'.
IT_LINE-INFO = TEXT-001.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE.
IF RADIO EQ 'X'.
IT_LINE-TYP = 'S'.
IT_LINE-INFO = TEXT-101.
IF NOT FIPEX-LOW IS INITIAL.
CONCATENATE TEXT-101 '-' FIPEX-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT FIPEX-HIGH IS INITIAL.
CONCATENATE TEXT-101 '-' FIPEX-LOW 'to' FIPEX-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-102.
IF NOT RFISTL-LOW IS INITIAL.
CONCATENATE TEXT-102 '-' RFISTL-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT RFISTL-HIGH IS INITIAL.
CONCATENATE TEXT-102 '-' RFISTL-LOW 'to' RFISTL-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
ENDIF.
IF RADIO1 EQ 'X'.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-105.
IF NOT KOSTL-LOW IS INITIAL.
CONCATENATE TEXT-105 '-' KOSTL-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT KOSTL-HIGH IS INITIAL.
CONCATENATE TEXT-105 '-' KOSTL-LOW 'to' KOSTL-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-106.
IF NOT HKONT-LOW IS INITIAL.
CONCATENATE TEXT-106 '-' HKONT-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT HKONT-HIGH IS INITIAL.
CONCATENATE TEXT-106 '-' HKONT-LOW 'to' HKONT-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
ENDIF.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-103.
IF NOT PERDE-LOW IS INITIAL.
CONCATENATE TEXT-103 '-' PERDE-LOW INTO IT_LINE-INFO SEPARATED BY SPACE.
IF NOT PERDE-HIGH IS INITIAL.
CONCATENATE TEXT-103 '-' PERDE-LOW 'to' PERDE-HIGH INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CLEAR IT_LINE-INFO.
IT_LINE-INFO = TEXT-104.
IF NOT RYEAR IS INITIAL.
CONCATENATE TEXT-104 '-' RYEAR INTO IT_LINE-INFO SEPARATED BY SPACE.
ENDIF.
APPEND IT_LINE TO IT_LIST_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LIST_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGE
*& Form DISPLAY_ALV_REPORT
text
--> p1 text
<-- p2 text
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = GD_LAYOUT
IT_EVENTS = IT_EVENT1[]
IT_FIELDCAT = FIELDCATALOG[]
IT_SORT = GD_SORT[]
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. "DISPLAY_ALV_REPORT
*& Form DISPLAY_ALV_REPORT1
text
--> p1 text
<-- p2 text
FORM DISPLAY_ALV_REPORT1 .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IS_LAYOUT = GD_LAYOUT
IT_EVENTS = IT_EVENT1[]
IT_FIELDCAT = FIELDCATALOG[]
IT_SORT = GD_SORT[]
TABLES
T_OUTTAB = IT_FINAL1
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-MSG -
Urgent: regarding ALV report display problem
hi,
There are 3 problems:-
1.) I had made a ALV report in which i have to display 'POSTING DATE' (iseg-budat) when we execute the report i.e. it should be displayed as PERIOD :- _______ to _______ on alv report ..
2.)the 2nd problem is dat when i use the ' wa_fieldcat-no_zero = 'X'. It eliminates all the leading zeros which are present which is okay when i it displays material no.. but the problem is dat it also deletes the other fields where the values are to be zeros.
i had used this FM:-
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITS1-MATNR
IMPORTING
OUTPUT = ITS1-MATNR.
so that only matnr field are to be 0's.
3.) I want to delete the rows which use to contain the values 0's as there are no calculations are performing as these are displayed .
ANYbody having solution of this problem ,plzzzz provide the soluion of it as it is most urgent to me and dat person will definately rewarded.
regards,
ric.shi kiran,
thanks for ur response. here is d code which i am using it and plzz help me to figure out where i have to make changes:-
REPORT ZTEST03.
TABLES: ISEG,MARA.
TYPE-POOLS : SLIS.
INTERNAL TABLE FOR INVENTORY STOCK *****************
DATA: BEGIN OF ITS1 OCCURS 0,
MATNR LIKE ISEG-MATNR,
MEINS LIKE ISEG-MEINS,
MENGE LIKE ISEG-MENGE,
WRTZL LIKE ISEG-WRTZL,
BUCHM LIKE ISEG-BUCHM,
WRTBM LIKE ISEG-WRTBM,
WERKS LIKE ISEG-WERKS,
BUDAT LIKE ISEG-BUDAT,
MTART LIKE MARA-MTART,
ITEMDESC LIKE MAKT-MAKTX,
DIFFQTY LIKE ISEG-BUCHM,
DIFFVALUE LIKE ISEG-WRTBM,
END OF ITS1.
data: t_heading type slis_t_listheader.
SELECTION-SCREEN BEGIN OF BLOCK PAR1 WITH FRAME TITLE TEXT-001.
*********PARAMETERS*********
PARAMETERS : PLANT LIKE ISEG-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : R_DATE FOR ISEG-BUDAT,
M_TYPE FOR MARA-MTART,
IT_M FOR MARA-MATNR.
*********DEFINING VARIABLES*********
SELECTION-SCREEN END OF BLOCK par1.
TOP-OF-PAGE.
PERFORM PG_HEADER.
START-OF-SELECTION.
SELECT DISTINCT A~MATNR A~MEINS A~MENGE A~WRTZL A~BUCHM A~WRTBM A~WERKS A~BUDAT B~MTART
FROM ISEG AS A INNER JOIN MARA AS B ON B~MATNR = A~MATNR
INTO CORRESPONDING FIELDS OF TABLE ITS1 WHERE B~MATNR = A~MATNR AND B~MEINS = A~MEINS AND A~WERKS = PLANT AND A~BUDAT IN R_DATE AND B~MTART IN M_TYPE AND B~MATNR IN IT_M.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITS1-MATNR
IMPORTING
OUTPUT = ITS1-MATNR.
SORT ITS1 BY MATNR.
DELETE ADJACENT DUPLICATES FROM ITS1 WHERE MENGE = 0 AND BUCHM = 0.
LOOP AT ITS1.
ITS1-DIFFQTY = ITS1-MENGE - ITS1-BUCHM.
ITS1-DIFFVALUE = ITS1-WRTZL - ITS1-WRTBM.
SELECT SINGLE MAKTX FROM MAKT INTO ITS1-ITEMDESC WHERE MATNR = ITS1-MATNR.
MODIFY ITS1.
ENDLOOP.
PERFORM PRN_SMSTOCK_ALV.
WRITING DATA FROM D TABLES**********
FORM PG_HEADER.
WRITE : 'PHYSICAL INVENTORY AUDIT REPORT PLANT : ', PLANT.
ENDFORM.
*& Form PRN_SMSTOCK_ALV
text
--> p1 text
<-- p2 text
form PRN_SMSTOCK_ALV .
data: w_title type lvc_title,
w_repid type syrepid,
w_comm type slis_formname,
w_status type slis_formname,
x_layout type slis_layout_alv,
t_event type slis_t_event,
t_fieldcat type slis_t_fieldcat_alv,
t_sort type slis_t_sortinfo_alv.
refresh t_fieldcat.
refresh t_event.
refresh t_sort.
clear x_layout.
clear w_title.
perform set_fieldcat2 using:
1 'MTART' 'MTART' 'MARA' '15' space 'MATERIAL TYPE' space space space space space space space space SPACE t_fieldcat 'L' 'C',
2 'MATNR' 'MATNR' 'MARA' '13' space 'MATERIAL NO. ' space space space space space space space space SPACE t_fieldcat 'R' 'C',
3 'ITEMDESC' 'MAKTX' 'MAKT' '25' space 'MATERIAL DESCRIPTION' space space space space space space space space SPACE t_fieldcat 'L' 'C',
4 'MEINS' 'MEINS' 'MARA' '5' space 'UOM' space space space space space space space space SPACE t_fieldcat 'C' 'C',
5 'MENGE' 'MENGE' 'ISEG' '13' space 'ORG.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
6 'WRTZL' 'WRTZL' 'ISEG' '13' space 'ORG.INV.VALUE' space space space space space space space space SPACE t_fieldcat 'R' 'C',
7 'BUCHM' 'BUCHM' 'ISEG' '13' space 'PHY.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
8 'WRTBM' 'WRTBM' 'ISEG' '13' space 'PHY.INV.VALUE' space space space space space space space space SPACE t_fieldcat 'R' 'C',
9 'DIFFQTY' 'MENGE' 'ISEG' '13' space 'DIFF.INV.QTY' space space space space space space space space SPACE t_fieldcat 'R' 'C',
10 'DIFFVALUE' 'WRTZL' 'ISEG' '13' space 'DIFF.INV.VALUE' space space space space space space space space SPACE t_fieldcat SPACE 'P'.
x_layout-zebra = 'X'.
perform set_top_page_heading using t_heading t_event.
perform set_events using t_event.
w_status = ''.
w_repid = sy-repid.
w_comm = 'USER_COMMAND'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = w_repid
it_fieldcat = t_fieldcat
i_Callback_top_of_page = 'Top-of-page'
is_layout = x_layout
it_sort = t_sort
i_callback_pf_status_set = w_status
i_callback_user_command = w_comm
i_save = 'X'
it_events = t_event
i_grid_title = w_title
tables
t_outtab = ITS1
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.
FORM set_fieldcat2 USING
p_colpos p_fieldname p_ref_fieldname p_ref_tabname
p_outputlen p_noout
p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
p_hotspot p_showasicon p_checkbox p_edit
p_dosum
t_fieldcat TYPE slis_t_fieldcat_alv
P_JUST
P_FTYPE.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
CLEAR wa_fieldcat.
General settings
wa_fieldcat-fieldname = p_fieldname.
wa_fieldcat-no_zero = 'X'.
wa_fieldcat-col_pos = p_colpos.
wa_fieldcat-no_out = p_noout.
wa_fieldcat-hotspot = p_hotspot.
wa_fieldcat-checkbox = p_checkbox.
wa_fieldcat-icon = p_showasicon.
wa_fieldcat-do_sum = p_dosum.
Set output length.
IF NOT p_outputlen IS INITIAL.
wa_fieldcat-outputlen = p_outputlen.
ENDIF.
Set text headers.
IF NOT p_seltext_m IS INITIAL.
wa_fieldcat-seltext_m = p_seltext_m.
ENDIF.
IF NOT p_seltext_l IS INITIAL.
wa_fieldcat-seltext_l = p_seltext_l.
ENDIF.
IF NOT p_seltext_s IS INITIAL.
wa_fieldcat-seltext_s = p_seltext_s.
ENDIF.
IF NOT p_reptext_ddic IS INITIAL.
wa_fieldcat-reptext_ddic = p_reptext_ddic.
ENDIF.
IF NOT p_ddictxt IS INITIAL.
wa_fieldcat-ddictxt = p_ddictxt.
ENDIF.
IF NOT P_JUST IS INITIAL.
WA_FIELDCAT-JUST = P_JUST.
ENDIF.
Set as editable or not.
IF NOT p_edit IS INITIAL.
wa_fieldcat-input = 'X'.
wa_fieldcat-edit = 'X'.
ENDIF.
APPEND wa_fieldcat TO t_fieldcat.
ENDFORM. "set_fieldcat2
======================== Subroutines called by ALV ================
*& Form top_of_page
Called on top_of_page ALV event.
Prints the heading.
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_heading.
ENDFORM.
form set_top_page_heading using t_heading type slis_t_listheader
t_events type slis_t_event.
data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = 'PHYSICAL INVENTORY AUDIT REPORT'.
append x_heading to t_heading.
Plant Name
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'PLANT: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
Posting Date
*clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'POSTING DATE: '.
x_heading-info = ITS1-BUDAT.
append x_heading to t_heading.
Control Date
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'CONTROL No: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
Control date
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'CONTROL DATE: '.
x_heading-info = its1-werks.
append x_heading to t_heading.
User who is running the report
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'User: '.
x_heading-info = sy-uname.
append x_heading to t_heading.
Date of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Date: '.
write sy-datum to x_heading-info.
append x_heading to t_heading.
Time of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Time: '.
write sy-uzeit to x_heading-info.
append x_heading to t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
endform.
form set_events using t_events type slis_t_event.
data: x_event type line of slis_t_event.
endform.
plzzz help me out as it is most urgent to me.
regards,
ric.s
Maybe you are looking for
-
Lock-Ups and Freezes PLEASE HELP
Hello everyone.. I come here to see if anyone can help me... Ive done it all and nothing is working. I just recently started having problems with my computer, im not sure why this happend but ill try to explain everything as best as I can. The proble
-
IPhone not removing played podcasts during sync(using the unplayed feature)
Hi folks, I listen to a lot of podcasts. When I used an iPod the sync unplayed option. Once I listened to a podcast it was removed (saving space for more podcasts). With my iPhone I've got the options set up correctly (i.e. set at Sync Unplayed) but
-
My MacBook Pro with Retina display shows wrong current location
I purchased my MacBook Pro when I was a student at a particular university in Hawaii. After I graduated, I moved back to my home country in the Philippines. When I use Google Maps or Bing Maps to show me my current location which is now in the Philip
-
Pictures of strange women in start up screen
why skype puts pictures of young females and facebook advertisement on stratup screen? i dont use facebook, and pictures of you women in my startup screen are highly offensive!!!!!!!!!!! how to remove this idiotic feature???? Attachments: skypepimp.p
-
Hi Experts , I am working on SSIS 2008. I have Excel file as a Source . Scenario: First 5 Rows contain some Headings which I dont need My Actual Header Starts from 6th Row and then Data . How should I used my Excel source to Take 6th Row as Header an