Decimals upto 2 in alv report
Hi to all abapers,
I have to show only upto 2 decimals in the field of an alv report but it is of type p and decimals 4.I dont want to change its type to 2 decimals due to some calculations.So can we show upto 2 decimals in the report?
Thanks in Advance,
Salish
Hi,
Here is the code
<b>Here act_pckeff is of type p decimals 4 and i want it upto 2 decimals in the output.</b>
PERFORM fldcat USING i_fieldcat 'ACT_PCKEFF' 'DEC' 'Actual Efficiency "Packed"' ''."13
FORM fldcat USING p_ifieldcat TYPE lvc_t_fcat
value(p_name)
value(p_type)
value(p_desc)
value(p_key).
DATA: w_fldcat TYPE LINE OF lvc_t_fcat.
CLEAR w_fldcat.
w_fldcat-fieldname = p_name.
w_fldcat-datatype = p_type.
w_fldcat-reptext = p_desc.
w_fldcat-key = p_key.
IF w_fldcat-fieldname = 'AUFNR'.
w_fldcat-no_zero = 'X'.
ENDIF.
IF p_type = 'CURR' OR p_type = 'QUAN'..
w_fldcat-do_sum = 'X'.
ENDIF.
<b>IF p_name = 'ACT_PCKEFF'.
w_fldcat-decimals = 2.
w_fldcat-do_sum = 'C'.
ENDIF</b>.
APPEND w_fldcat TO p_ifieldcat.
ENDFORM. " fldcat
Regards,
Salish.
Similar Messages
-
How to truncate the decimals in the ALV report for the quantity field
Hi All,
I have to display a quantity field and units of measure in the ALV output. If the units of measure eq 'PC' i should not display the decimal places for quantity in the alv output, otherwise i have to display the decimals in the output. How to do this....any help would be highly rewarded. I knew that for this type of cases decimal_o will not work.Hi,
Declare one more Internal table same as output table. In that intead of that quantity field, declare field_name(15) type c.
data temp type i.
Loop at itab.
if field = 'PC'.
temp = qunantity field.
field_name =temp.
else.
field_name = quantity field.
endif.
endif.
endloop. -
End of Page event not triggering in ALV report
Hello,
I am developing an ALV report using REUSE_ALV_LIST_DISPLAY. Whatever I write in top_of_page, it will be displayed in the header portion of the output.
But I want to display some footer text at the end of the page. The problem I am facing is, the WRITE statements within end_of_page are not displayed when the report is run.
I have populated the i_events as follows :
FORM f_events CHANGING p_i_events TYPE slis_t_event.
CONSTANTS : l_c_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
l_c_end_of_page TYPE slis_formname VALUE 'END_OF_PAGE'.
DATA : l_wa_event TYPE slis_alv_event.
Returns table of possible events
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_i_events.
To append internal table holding event names with event 'TOP OF PAGE'
READ TABLE p_i_events INTO l_wa_event
WITH KEY name = slis_ev_top_of_page.
IF sy-subrc = 0.
MOVE l_c_top_of_page TO l_wa_event-form.
APPEND l_wa_event TO p_i_events.
ENDIF.
To append internal table holding event names with event 'END OF PAGE'
READ TABLE p_i_events INTO l_wa_event
WITH KEY name = slis_ev_end_of_page.
IF sy-subrc = 0.
MOVE l_c_end_of_page TO l_wa_event-form.
APPEND l_wa_event TO p_i_events.
ENDIF.
ENDFORM. "f_events
Regds
RajeshHi have a look at the following code, and change ur code for end of page accordingly. this will resolve ur problem.
This is a basic ALV with the followings:-
- Page Heading
- Page No
- Sub-Total
- Grand Total
REPORT ZALV.
TYPE-POOLS: SLIS.
DATA: G_REPID LIKE SY-REPID,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
COL_POS TYPE I.
DATA: BEGIN OF ITAB,
FIELD1(5) TYPE C,
FIELD2(5) TYPE C,
FIELD3(5) TYPE P DECIMALS 2,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB1.
DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB_FIELDCAT.
Print Parameters
PARAMETERS:
P_PRINT AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE
P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO
P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE
P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE
P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO
P_RESERV TYPE I. "NO OF FOOTER LINE
INITIALIZATION.
G_REPID = SY-REPID.
PERFORM PRINT_BUILD USING GS_PRINT. "Print PARAMETERS
START-OF-SELECTION.
TEST DATA
MOVE 'TEST1' TO ITAB1-FIELD1.
MOVE 'TEST1' TO ITAB1-FIELD2.
MOVE '10.00' TO ITAB1-FIELD3.
APPEND ITAB1.
MOVE 'TEST2' TO ITAB1-FIELD1.
MOVE 'TEST2' TO ITAB1-FIELD2.
MOVE '20.00' TO ITAB1-FIELD3.
APPEND ITAB1.
DO 50 TIMES.
APPEND ITAB1.
ENDDO.
END-OF-SELECTION.
PERFORM BUILD.
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.
PERFORM CALL_ALV.
FORM BUILD.
DATA FIELD CATALOG
Explain Field Description to ALV
DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD1'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-SELTEXT_L = 'HEAD1'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD2'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-NO_OUT = 'X'.
FIELDCAT_LN-SELTEXT_L = 'HEAD2'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.
CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD3'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
FIELDCAT_LN-REF_TABNAME = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY
APPEND FIELDCAT_LN TO GT_FIELDCAT.
DATA SORTING AND SUBTOTAL
DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD1'.
GS_SORT-SPOS = 1.
GS_SORT-UP = 'X'.
GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.
CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD2'.
GS_SORT-SPOS = 2.
GS_SORT-UP = 'X'.
*GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.
ENDFORM.
FORM CALL_ALV.
ABAP List Viewer
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = 'ITAB1'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = GT_SORT[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = GT_EVENTS[]
IT_EVENT_EXIT =
IS_PRINT = GS_PRINT
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.
HEADER FORM
FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
define END_OF_PAGE event
READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.
ENDFORM.
FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GS_LINE TYPE SLIS_LISTHEADER.
CLEAR GS_LINE.
GS_LINE-TYP = 'H'.
GS_LINE-INFO = 'HEADER 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'STATUS 1'.
GS_LINE-INFO = 'INFO 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
GS_LINE-KEY = 'STATUS 2'.
GS_LINE-INFO = 'INFO 2'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
CLEAR GS_LINE.
GS_LINE-TYP = 'A'.
GS_LINE-INFO = 'ACTION'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
ENDFORM.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.
FORM END_OF_PAGE.
WRITE at (sy-linsz) sy-pagno CENTERED.
ENDFORM.
PRINT SETTINGS
FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.
LS_PRINT-PRINT = P_PRINT. "PRINT IMMEDIATE
LS_PRINT-NO_PRINT_SELINFOS = P_NOSINF. "NO SELECTION INFO
LS_PRINT-NO_COVERPAGE = P_NOCOVE. "NO COVER PAGE
LS_PRINT-NO_NEW_PAGE = P_NONEWP.
LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO
LS_PRINT-RESERVE_LINES = P_RESERV.
ENDFORM.
*END OF ZALV PROGRAM
Satish -
How to show a value of a field in %(Percentage) in ALV report
Hi,
I would like to show % symbol in my ALV report.
Can anybody please let me know how to do this.
Thanks
Venkatplz refer this..
DATA : v_var(10) TYPE p DECIMALS 2,
v_char(12) .
v_var = '-3.12'.
IF v_var < 0 .
v_char = ABS( v_var ).
CONDENSE v_char.
CONCATENATE '-' v_char INTO v_char.
ELSE.
v_char = v_var.
ENDIF.
WRITE :/ v_var , -
Wrong Display of Japanese Currency in ALV Report
Dear Friends,
I am facing a problem in Displaying a Japanese Currency in the ALV Report Output. I am mentioning the Currency Key field and the Currency field in the Report.
For example, the amount field should be displaying as 22838 instead of 228.38 where this is correct in case of USD but not correct in case of JPY.
Code where the i am appending the fieldcatlog:
ls_fieldcat-fieldname = 'WAERK'.
ls_fieldcat-datatype = 'CUKY'.
ls_fieldcat-outputlen = 8.
ls_fieldcat-seltext_l = Text-088.
ls_fieldcat-seltext_m = Text-088.
ls_fieldcat-seltext_s = Text-088.
ls_fieldcat-reptext_ddic = Text-088.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUCK0'.
ls_fieldcat-datatype = 'CURR'.
ls_fieldcat-outputlen = 16.
ls_fieldcat-seltext_l = Text-017.
ls_fieldcat-seltext_m = Text-017.
ls_fieldcat-seltext_s = Text-017.
ls_fieldcat-reptext_ddic = Text-017.
Please do suggest if any inputs on the same.
Thanks in Advance for you reply.
Thanks and Regards,
Saritha KHi,
All the Decimals related to currency fields will be stored in the table tcurx.
You have to get the currency and respective decimals into internal table.
Read the internal the table with key equal to currency.
And calculate the values as below :
loop at gt_output.
READ TABLE gt_tcurx WITH KEY currkey = gt_output-zwaers.
IF sy-subrc EQ 0.
IF gt_tcurx-currdec = '0'.
gt_output-dmbtr = gt_output-dmbtr * 100.
ELSEIF gt_tcurx-currdec = '3'.
gt_output-dmbtr = gt_output-dmbtr / 10.
ENDIF.
ENDIF.
MODIFY gt_output.
endloop. Then pass the gt_output to ALV FM.
In the above code gt_output is my final internal table which i am passing to the ALV FM. And gt_tcurx is the internal table consists of all the currency and their decimals.
Thanks,
Sri. -
Header prob. in ALV report
Hi All,
Hope you all are doing fine!!!
In the below program am trying to print the top-of-page/header in alv report,,but am unable to do it..
Am working on 4.6c version,,,,,its working fine in ECC 6.0 but i really dont understand why its not working in 4.6c...AM JUST PASTING THE ALV PART...!!!
Pls. do the needful
REPORT yjack LINE-SIZE 132
LINE-COUNT 65
NO STANDARD PAGE HEADING.
DATA: /sie/swe_ag0_rdo TYPE /sie/swe_ag0_rdo,
wa_tvko TYPE tvko,
/sie/swe_ag0_raa TYPE /sie/swe_ag0_raa,
wa_kna1 TYPE kna1,
wa_t001 TYPE t001,
wa_tvkot TYPE tvkot,
/sie/swe_ag0_con TYPE /sie/swe_ag0_con,
/sie/swe_ag0_r02 TYPE /sie/swe_ag0_r02.
TYPES: BEGIN OF ty_itab,
bukrs TYPE /sie/swe_ag0_rdo-bukrs,
vkorg TYPE /sie/swe_ag0_rdo-vkorg,
zclpr TYPE /sie/swe_ag0_rdo-zclpr,
zcdaz TYPE /sie/swe_ag0_rdo-zcdaz,
vbeln TYPE /sie/swe_ag0_rdo-vbeln,
posnr TYPE /sie/swe_ag0_rdo-posnr,
vbtyp TYPE /sie/swe_ag0_rdo-vbtyp,
zidag TYPE /sie/swe_ag0_rdo-zidag,
zimpp TYPE /sie/swe_ag0_rdo-zimpp,
zimco TYPE /sie/swe_ag0_rdo-zimco,
zimmg TYPE /sie/swe_ag0_rdo-zimmg,
fkdat TYPE /sie/swe_ag0_rdo-fkdat,
zstre TYPE /sie/swe_ag0_rdo-zstre,
vtweg TYPE /sie/swe_ag0_rdo-vtweg,
kunrg TYPE /sie/swe_ag0_rdo-kunrg,
END OF ty_itab.
TYPES: BEGIN OF ty_itab2,
bukrs TYPE /sie/swe_ag0_rdo-bukrs,
vkorg TYPE /sie/swe_ag0_rdo-vkorg,
zcdaz TYPE /sie/swe_ag0_rdo-zcdaz,
fkdat TYPE /sie/swe_ag0_rdo-fkdat,
vbeln TYPE /sie/swe_ag0_rdo-vbeln,
zimpp TYPE /sie/swe_ag0_rdo-zimpp,
zimco(5) TYPE p DECIMALS 2,
zimmg(5) TYPE p DECIMALS 2,
resid(6) TYPE p DECIMALS 2,
kunrg TYPE /sie/swe_ag0_rdo-kunrg,
name1 TYPE kna1-name1,
END OF ty_itab2.
type-pools: slis.
types: begin of ty_final,
bukrs type char29,
vkorg type char24,
mese type char17,
gjahr type gjahr,
agent type char45,
vbeln type vbeln,
fkdat type fkdat,
zimpp type /SIE/SWE_AG0_ZIMPP,
zimco type /SIE/SWE_AG0_ZIMCO,
zimmg type /SIE/SWE_AG0_ZIMMG,
resid(5) TYPE p DECIMALS 2,
kunrg type kunrg,
name1 type NAME1_GP,
end of ty_final.
data: it_final type table of ty_final,
wa_final type ty_final,
g_bukrs(29) type c,
g_vkorg(24) type c.
data: it_fieldcat type slis_t_fieldcat_alv,
it_layout type slis_layout_alv,
it_list_top_of_page type slis_t_listheader,
it_events type slis_t_event,
wa_events type slis_alv_event,
it_headings type slis_t_listheader,
wa_headings type slis_listheader.
constants: c_h type c value 'H',
c_s type c value 'S'.
field-symbols: <fs_final> type ty_final.
DATA: it_itab TYPE TABLE OF ty_itab,
it_itab2 TYPE TABLE OF ty_itab2,
wa_itab TYPE ty_itab,
wa_itab2 TYPE ty_itab2.
DATA: wa_app TYPE ty_itab.
DATA: w_var TYPE c VALUE '1',
w_com_mese(9) TYPE c,
w_flag_st TYPE c.
$$ Selection-screen
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK parametri WITH FRAME TITLE text-001.
BEG MOD ESX00596 IMS:100276414 TR:SWIK9A04W7 11.04.2007
*PARAMETERS: p_bukrs LIKE /sie/swe_ag0_rdo-bukrs OBLIGATORY.
*PARAMETERS: p_vkorg LIKE /sie/swe_ag0_rdo-vkorg OBLIGATORY.
PARAMETERS: p_bukrs TYPE /sie/swe_ag0_rdo-bukrs OBLIGATORY.
PARAMETERS: p_vkorg TYPE /sie/swe_ag0_rdo-vkorg OBLIGATORY.
SELECT-OPTIONS: s_zcdaz FOR /sie/swe_ag0_rdo-zcdaz OBLIGATORY
MATCHCODE OBJECT /sie/swe_ag0_zaa.
PARAMETERS: mese(2) TYPE n OBLIGATORY,
anno TYPE /sie/swe_ag0_rdo-gjahr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK parametri.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: c1 AS CHECKBOX.
SELECTION-SCREEN COMMENT 8(31) text-006 FOR FIELD c1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK b1.
DATA: w_cd_a TYPE /sie/swe_ag0_rdo-vtweg,
w_cd_gen TYPE /sie/swe_ag0_rdo-vtweg,
w_cd_di TYPE /sie/swe_ag0_rdo-vtweg,
w_cd_re TYPE /sie/swe_ag0_rdo-vtweg,
w_cd_te TYPE /sie/swe_ag0_rdo-vtweg,
w_cd_ca TYPE /sie/swe_ag0_rdo-vtweg.
INITIALIZATION.
PERFORM selezione_hard_coding.
$$ At selection-screen
AT SELECTION-SCREEN.
PERFORM controlli.
$$ Top-of-page
TOP-OF-PAGE.
PERFORM top_of_page.
$$ Start-of-selection
START-OF-SELECTION.
perform build_events.
PERFORM carica_itab.
PERFORM carica_itab2.
PERFORM stampa.
END-OF-SELECTION.
IF C1 EQ 'X'.
perform fill-fieldcatalog.
perform display_alv.
ENDIF.
*& Form fill-fieldcatalog
text
--> p1 text
<-- p2 text
form fill-fieldcatalog.
data: l_fieldcat TYPE slis_fieldcat_alv.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'BUKRS'.
l_fieldcat-col_pos = 1.
l_fieldcat-seltext_l = 'Company'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'VKORG'.
l_fieldcat-col_pos = 2.
l_fieldcat-seltext_l = 'Comm. Organization'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'MESE'.
l_fieldcat-col_pos = 3.
l_fieldcat-seltext_l = 'Month'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'GJAHR'.
l_fieldcat-col_pos = 4.
l_fieldcat-seltext_l = 'Year'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'AGENT'.
l_fieldcat-col_pos = 5.
l_fieldcat-seltext_l = 'AGENT'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'VBELN'.
l_fieldcat-col_pos = 6.
l_fieldcat-seltext_l = 'Invoice'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'FKDAT'.
l_fieldcat-col_pos = 7.
l_fieldcat-seltext_l = 'Date'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'ZIMPP'.
l_fieldcat-col_pos = 8.
l_fieldcat-seltext_l = 'Taxable'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'ZIMCO'.
l_fieldcat-col_pos = 9.
l_fieldcat-seltext_l = 'Tot.Comm.'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'ZIMMG'.
l_fieldcat-col_pos = 10.
l_fieldcat-seltext_l = 'Settle'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'RESID'.
l_fieldcat-col_pos = 11.
l_fieldcat-seltext_l = 'Accruing'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'KUNRG'.
l_fieldcat-col_pos = 12.
l_fieldcat-seltext_l = 'Cust.Code'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
l_fieldcat-tabname = 'IT_FINAL'.
l_fieldcat-fieldname = 'NAME1'.
l_fieldcat-col_pos = 13.
l_fieldcat-seltext_l = 'Company Name'.
APPEND l_fieldcat TO it_fieldcat.
clear l_fieldcat.
endform. " fill-fieldcatalog
*& Form display_alv
text
--> p1 text
<-- p2 text
form display_alv.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_CALLBACK_TOP_OF_PAGE = 'PRINT_HEADING'
IS_LAYOUT = it_layout
IT_FIELDCAT = it_fieldcat
IT_EVENTS = it_events
TABLES
t_outtab = it_final
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
*& Form build_events
text
-->P_IT_EVENTS[] text
form build_events.
clear wa_events.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = it_events.
read table it_events into wa_events with key name = 'TOP_OF_PAGE'.
if sy-subrc eq 0.
wa_events-form = 'PRINT_HEADING'.
modify it_events from wa_events transporting form
where name = 'TOP_OF_PAGE'.
endif.
endform. " build_events
form PRINT_HEADING.
clear wa_headings.
wa_headings-typ = 'H'.
wa_headings-info = 'DEMO FOR ALV!!!'.
append wa_headings to it_headings.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_headings.
endform.
Thanks n Regards
JackHi friend,
I think u have to remove below lines in your program because FM 'REUSE_ALV_GRID_DISPLAY' will call directly Form 'PRINT_HEADING' for TOP-OF-PAGE event through table 'it_events' :
Remove lines:
TOP-OF-PAGE.
PERFORM top_of_page.
Also remove the parameter
I_CALLBACK_TOP_OF_PAGE = 'PRINT_HEADING' in FM 'REUSE_ALV_GRID_DISPLAY'
Also put a breakpoint in your program in the line,
START-OF-SELECTION.
perform build_events.
See whether 'form' 'name' gets populated in table 'it_events' or not.
See sample report and compare.
REPORT zawi_assign3 NO STANDARD PAGE HEADING.
TYPE-POOLS: slis.
DATA: BEGIN OF gt_outtab OCCURS 0.
INCLUDE STRUCTURE ekpo.
DATA: END OF gt_outtab,
gs_layout TYPE slis_layout_alv,
g_exit_caused_by_caller,
gs_exit_caused_by_user TYPE slis_exit_by_user,
g_repid LIKE sy-repid.
DATA:
gt_events TYPE slis_t_event,
gt_list_top_of_page TYPE slis_t_listheader,
g_status_set TYPE slis_formname VALUE 'PF_STATUS_SET',
g_user_command TYPE slis_formname VALUE 'USER_COMMAND',
g_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
g_top_of_list TYPE slis_formname VALUE 'TOP_OF_LIST',
g_end_of_list TYPE slis_formname VALUE 'END_OF_LIST'.
DATA: gs_variant LIKE disvariant,
g_save.
INITIALIZATION.
g_repid = sy-repid.
PERFORM layout_init USING gs_layout.
PERFORM eventtab_build USING gt_events[].
gs_variant-report = g_repid.
g_save = 'X'.
START-OF-SELECTION.
PERFORM select_data TABLES gt_outtab.
END-OF-SELECTION.
PERFORM comment_build USING gt_list_top_of_page[].
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = 'ALV_BACKGROUND'
i_buffer_active = 'X'
i_callback_program = g_repid
i_structure_name = 'ekpo'
is_layout = gs_layout
i_save = g_save
is_variant = gs_variant
it_events = gt_events[]
IMPORTING
e_exit_caused_by_caller = g_exit_caused_by_caller
es_exit_caused_by_user = gs_exit_caused_by_user
TABLES
t_outtab = gt_outtab
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc = 0.
IF g_exit_caused_by_caller = 'X'.
ELSE.
IF gs_exit_caused_by_user-back = 'X'.
ELSE.
IF gs_exit_caused_by_user-exit = 'X'.
ELSE.
IF gs_exit_caused_by_user-cancel = 'X'.
ELSE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
ENDIF.
FORM select_data TABLES rt_outtab LIKE gt_outtab[].
SELECT * FROM ekpo INTO CORRESPONDING FIELDS
OF TABLE rt_outtab
UP TO 00030 ROWS.
ENDFORM. "SELECT_DATA
FORM layout_init USING rs_layout TYPE slis_layout_alv.
rs_layout-detail_popup = 'X'.
rs_layout-edit = 'X'.
ENDFORM. "LAYOUT_INIT
FORM eventtab_build USING rt_events TYPE slis_t_event.
*"Registration of events to happen during list display
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = rt_events.
READ TABLE rt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE g_top_of_page TO ls_event-form.
APPEND ls_event TO rt_events.
ENDIF.
ENDFORM. "EVENTTAB_BUILD
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = 'ENJOYSAP_LOGO'
it_list_commentary = gt_list_top_of_page.
ENDFORM. "TOP_OF_PAGE
FORM comment_build USING lt_top_of_page TYPE
slis_t_listheader.
DATA: ls_line TYPE slis_listheader.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = text-100.
APPEND ls_line TO lt_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-key = 'Program'.
ls_line-info = sy-repid.
APPEND ls_line TO lt_top_of_page.
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-key = 'User'.
ls_line-info = sy-uname.
APPEND ls_line TO lt_top_of_page.
ENDFORM. "COMMENT_BUILD
Might solve your problem.
Thanks.
Edited by: Sap Fan on Feb 20, 2009 9:50 AM
Edited by: Sap Fan on Feb 20, 2009 9:52 AM
Edited by: Sap Fan on Feb 20, 2009 9:54 AM -
Deleting Zeros at the end of fields in ALV report
I want to make an ALV report that include both integer and decimals in same column.
for example :
1 - 1234.0000
2 - 0.0027
i dont want to see zeros at the end of value.
But the type will be decimal and integer values will be shown with zeros at the end.
For Ex.
I want to take report like this ;
1 - 1234
2 - 0.0027
How can i make this?
Thanks.
Edited by: aydnbk on May 14, 2010 3:22 PMHello aydnbk.
As far as i know, there is no way to do what you want using standard ALV-Functions. There is a field 'DECIMALS' in structure LVC_S_FCAT, but using this field you could only define ONE setting, that would affect ANY value.
Furthermore i am asking myself, if this feature is really sensible - when numbers are right-justified, a global setting for the number of decimals makes it much easier to compare the values - at least this is my personal opinion...
If i had to do this trick, i would simply add some character fields to the output-structure and write the values to the charater-fields to enforce this quite special layout.
Additionally i would set the fields 'NO_OUT' and 'TECH' for the fields of type 'P', that are holding the values - 'NO_OUT' hides the column and 'TECH' ensures, that the field can not be selected in a user-defined layout.
Hope this helps.
Regards, Jörg -
HI all,
I have developed an ALV Report. In the ALV display, i would like to sum see the Sum (Total) of few fields like Qty, Net value etc when i select that particular column and click the 'SUM" icon.
In my Report when i do so, the Program is displaying Runtime Error.
How to resolve this issue?
Any idea?
Regards
PavanYou must make sure that these columns are defined correctly in the field catalog and in the internal table. For example, make sure that the quantity field is typed as such in the internal table.
data: begin of itab occurs 0,
qty type p decimals 2,
end of itab.
And then in your field catalog, make sure that the DATATYPE is set correctly.
ls_fcat-datatype = 'QUAN'.
Do this may help your situation. Also make sure that the data in these columns is all numeric.
Regards,
Rich Heilman -
Subtotal in alv report based on the particular field value
Hi,
As per my requirement, i need to do subtotal of quntity field based on the material number field value in alv report.
Ex: if material number falls 1 to 10 then i need to be calculate and display subtotal qty amount with text " total of the mat1" and if material number falls 11 to 20 then again i need to be claculate and display subtotal qty amount with text "total of the mat2". similarily i need to display the details.
<removed_by_moderator>
Regards
NagendraHi,
Ex: if material number falls 1 to 10 then i need to be calculate and display subtotal qty amount with text " total of the mat1" and if material number falls 11 to 20 then again i need to be claculate and display subtotal qty amount with text "total of the mat2". similarily i need to display the details.
What you can do is in your output table, you will have to create an auxilary field, lets call it as material group (groupid). Now you can do a subtotal on the material group. However the logic to determine what materials belong to which group should be coded. I guess you might be having some logic for that.
So lets say that material 1 to 10 as G1 ( group 1 ) and material 11 to 20 as G2 ( group 2 )
The output of the internal table would be
Groupid matnr ...
1 1
1 2
1 3.....and so on
2 11
2 12
2 13....upto 20.
Now in the fieldcatalog assign an 'X' to the 'dosum' parameter to the field Groupid
In the sort info do the following :
gs_sort-fieldname = 'GROUPID'.
gs_sort-spos = 1.
gs_sort-up = 'X'.
gs_sort-subtot = 'X'. ***CRUCIAL STATEMENT****
append gs_sort to gt_sort.
Now pass all this data to the alv grid function. And you are done.
regards,
Advait -
ALV report - remove of decimal values
Hi experts,
In my ALV report, output table having decimal values, ex:90000.50, i want to display only 90000,
can help any one inthis.
Thanks in advance.
Regards
RamsHi,
for that particular field in Field catalog..
<ur field cat>-decimals_out = 0.
see this sample code.
type-pools: slis.
DATA: begin of itab6 occurs 0,
chk type c,
a type p decimals 2,
b type p decimals 2,
c type c,
end of itab6.
data: ls_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
wa_layout TYPE slis_layout_alv.
itab6-a = '1.12'.
itab6-b = '2.25'.
itab6-c = '+'.
append itab6.
append itab6.
append itab6.
append itab6.
ls_fieldcat-fieldname = 'A'.
ls_fieldcat-seltext_m = 'A'.
append ls_fieldcat.
ls_fieldcat-fieldname = 'B'.
ls_fieldcat-seltext_m = 'B'.
ls_fieldcat-decimals_out = 0. "this ll do
append ls_fieldcat.
ls_fieldcat-fieldname = 'C'.
ls_fieldcat-seltext_m = 'C'.
append ls_fieldcat.
wa_layout-box_tabname = 'ITAB6'.
wa_layout-box_fieldname = 'CHK'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = ls_fieldcat[]
IS_LAYOUT = wa_layout
TABLES
t_outtab = itab6[].
Cheers,
jose. -
Re: Display format in ALV report
Hi Expert,
I have develop an alv report with some like lifnr,name1,dmbtr,budat,zterm, But my requiremnt is output should come in
the below format like
vendor number vendor name payment tern jan feb mar april ...................... upto december.
no value no value no value no value ..................
Abouce is my report format below jan i have two fields no and value for i have written code output is comming in alv but it
is not commig in the above format
My code is
TYPE-POOLS: SLIS.
TABLES: LFA1,BSAK,BSIK.
TYPES: BEGIN OF TY_LFA1,
LIFNR TYPE LFA1-LIFNR, "VENDOR NUMBER
NAME1 TYPE LFA1-NAME1, "VENDOR NAME
END OF TY_LFA1.
TYPES: BEGIN OF TY_BSIK,
LIFNR TYPE BSIK-LIFNR, "VENDOR NUMBER
DMBTR TYPE BSIK-DMBTR, "AMOUNT IN LOCAL CURRENCY
WMWST TYPE BSIK-WMWST, "TAX AMOUNT IN DOCUMENT CURRENCY
BUDAT TYPE BSIK-BUDAT, "POSTING DATE
ZTERM TYPE BSIK-ZTERM, "TERM OF PAYMENT
END OF TY_BSIK.
TYPES: BEGIN OF TY_OUTPUT,
LIFNR TYPE LFA1-LIFNR,
NAME1 TYPE LFA1-NAME1,
DMBTR TYPE BSIK-DMBTR,
BUDAT TYPE BSIK-BUDAT,
ZTERM TYPE BSIK-ZTERM,
NEW TYPE SY-DATUM,
END OF TY_OUTPUT.
SELECT T1~LIFNR
T1~NAME1
T2~DMBTR
T2~BUDAT
T2~ZTERM
INTO TABLE GT_OUTPUT FROM LFA1 AS T1 INNER JOIN BSIK AS T2
ON T1LIFNR = T2LIFNR
WHERE T1~LIFNR IN S_LIFNR
AND T2~BUDAT IN S_BUDAT
AND ZTERM NE ' '.
and then i have use alv function module REUSE_ALV_GRID_DISPLAY..........................
How to display the report in the above format
can any one throw some light in this..............
Regards,
AdduDear Koolspy,
You are correct i have check in the table BSIK their is one field called SHKZG for credit and debt please can you let me know how to wrtie this in my code my main logic is below.
SELECT T1~LIFNR
T1~NAME1
T2~DMBTR
T2~BUDAT
T2~ZTERM
INTO TABLE GT_OUTPUT FROM LFA1 AS T1 INNER JOIN BSIK AS T2
ON T1LIFNR = T2LIFNR
WHERE T1~LIFNR IN S_LIFNR
AND T2~BUDAT IN S_BUDAT
AND ZTERM NE ' '.
LOOP AT GT_OUTPUT INTO WT_OUTPUT.
WT_FINAL-LIFNR = WT_OUTPUT-LIFNR.
WT_FINAL-NAME1 = WT_OUTPUT-NAME1.
WT_FINAL-DMBTR = WT_OUTPUT-DMBTR. "Amount
WT_FINAL-NEW = WT_OUTPUT-BUDAT+4(2). "posting date
WT_FINAL-ZTERM = WT_OUTPUT-ZTERM.
APPEND WT_FINAL TO IT_FINAL.
CLEAR WT_FINAL.
ENDLOOP.
LOOP AT IT_FINAL INTO WT_FINAL.
COLLECT WT_FINAL INTO GT_OUTPUT5.
ENDLOOP.
LOOP AT GT_OUTPUT5 INTO WT_OUTPUT5.
WT_OUTPUT2-LIFNR = WT_OUTPUT5-LIFNR.
WT_OUTPUT2-NAME1 = WT_OUTPUT5-NAME1.
WT_OUTPUT2-DMBTR = WT_OUTPUT5-DMBTR.
WT_OUTPUT2-NEW = WT_OUTPUT5-NEW.
WT_OUTPUT2-ZTERM = WT_OUTPUT5-ZTERM.
IF WT_OUTPUT5-NEW = '01'. "2
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-JAN.
"2
ELSEIF WT_OUTPUT5-NEW = '02'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-FEB.
ELSEIF WT_OUTPUT5-NEW = '03'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-MAR.
ELSEIF WT_OUTPUT5-NEW = '04'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-APR.
ELSEIF WT_OUTPUT5-NEW = '05'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-MAY.
ELSEIF WT_OUTPUT5-NEW = '06'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-JUN.
ELSEIF WT_OUTPUT5-NEW = '07'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-JUL.
ELSEIF WT_OUTPUT5-NEW = '08'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-AUG. "5
ELSEIF WT_OUTPUT5-NEW = '09'. "
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-SEP.
ELSEIF WT_OUTPUT5-NEW = '10'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-OCT.
ELSEIF WT_OUTPUT5-NEW = '11'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-NOV.
ELSEIF WT_OUTPUT5-NEW = '12'.
MOVE WT_OUTPUT5-DMBTR TO WT_OUTPUT2-DEC.
MODIFY GT_OUTPUT2 FROM WT_OUTPUT2.
ENDIF.
APPEND WT_OUTPUT2 TO GT_OUTPUT2.
collect WT_OUTPUT2 inTO GT_OUTPUT2.
COLLECT WT_FINAL INTO GT_OUTPUT5.
clear : wt_output2.
ENDLOOP.
Please let me know where to insert that SHKZG field.
Regards,
Am -
How to use pf-status u2018menuu2019 in ALV report ?
Hi Friends,
How to use pf-status u2018menuu2019 in ALV report ?
I want to use back button ( F3). whenever press it should show
another report.
I used subroutine
form SUB_ERROR_OUTPUT USING RT_EXTAB TYPE SLIS_T_EXTAB .
SET PF-STATUS 'ZMENU' EXCLUDING RT_EXTAB. u201C( the button name is u201C back u201C)
CASE SY-UCOMM.
*WHEN '&F03'.
WHEN 'BACK'
( my coding is there ).
endcase.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PF_STATUS_SET = 'SUB_ERROR_OUTPUT'
but it is executing, working the back button but not showing another report .
any other procedure to use back button in alv report ?
plz any idea .
For correct answer reword most.
Thanking you.Purchase day Book .
Data to be down loaded / printed for EDP dept. CGL.
CGL - Requirement .
WRITTEN BY : ADI.****
*CONSULTANT : SANJAY JAJOO..
AS PER DP REQUIREMENT.
-CHANGED BY : KRISHNA MOHAN (15/01/2002)--
-CHANGE REQ BY : JAJU S--
-DESCRIPTION : SUMMRY BY TAX CODE WISE & GL CODE WISE--
---MODIFIED LINES: -
---CHANGED BY : -
---CHANGE REQ BY : -
---DESCRIPTION : -
---MODIFIED LINES: -
*---changed by : sanjay jajoo on 23/08
*---changed req by: Ranka
*---Description : Inserting Range of period as sel field
changed by : krishna mohan
func. consultant: sanjay jajoo
REPORT ZMMPURDB MESSAGE-ID 00
LINE-SIZE 255
LINE-COUNT 60
NO STANDARD PAGE HEADING .
TABLES : MKPF , MSEG ,SKAT,
EKKO , EKPO , EKBE ,
BSEG , BKPF , BSET ,
T009B , T001 , T007S ,
T001W , T001K ,LFA1.
******Table deactivated on 30/8/2000------jaju
*tables : zcgltaxatn .
DATA : ZFILE1(65) VALUE '/DOWNLOAD/'.
DATA : ZFILE2(65) .
DATA : ZFILE(30) TYPE C VALUE '/DOWNLOAD/'.
DATA : ZMON(2).
DATA : ZTOTAL(11) TYPE N.
DATA: ZTOT1 TYPE P DECIMALS 2.
DATA: ZTXT LIKE SKAT-TXT50.
TYPES: BEGIN OF COMPANY ,
HKONT LIKE BSEG-HKONT,
TOTAL LIKE BSEG-DMBTR,
END OF COMPANY.
DATA: COMP TYPE COMPANY,
COMPTAB TYPE HASHED TABLE OF COMPANY WITH UNIQUE KEY HKONT
WITH HEADER LINE.
DATA : NEXT LIKE BSEG-BUZEI. "A.A. (28/03/2000)
DATA : DOC LIKE BSEG-BELNR. "A.A. (28/03/2000)
DATA S_GSBER.
DATA: CTR TYPE I.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-B01.
PARAMETERS : T_BUKRS LIKE T001-BUKRS OBLIGATORY MEMORY ID BUK .
***********CH--ID- ADI- 29 / 09 / 1999
SELECT-OPTIONS : ZGL FOR BSEG-HKONT OBLIGATORY.
***********CH--ID- ADI- 29 / 09 / 1999
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(9) TEXT-C01 .
PARAMETERS : POPER RADIOBUTTON GROUP RAD1 .
SELECTION-SCREEN COMMENT 13(7) TEXT-C02 .
PARAMETERS : MONTH RADIOBUTTON GROUP RAD1 .
SELECTION-SCREEN COMMENT 23(8) TEXT-C03 .
SELECTION-SCREEN POSITION 33 .
commented on 22/08 sanjay jajoo
*PARAMETERS : T_MONAT LIKE BKPF-MONAT .
SELECTION-SCREEN END OF LINE.
PARAMETERS : T_GJAHR LIKE BKPF-GJAHR OBLIGATORY .
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS : S_DOCTYP FOR BKPF-BLART,
S_VENDOR FOR LFA1-LIFNR MATCHCODE OBJECT KRED,
S_MATNR FOR BSEG-MATNR NO-DISPLAY,
T_BUDAT FOR MKPF-BUDAT NO-EXTENSION MODIF ID DAT,
p_gsber FOR bseg-gsber OBLIGATORY,
P_GSBER FOR BSEG-GSBER,
mod starts for inserting range of period - sanjay jajoo
T_MONAT FOR BKPF-MONAT OBLIGATORY.
mod ends
*SELECT-OPTIONS: br_blart FOR mkpf-blart.
*Select-options: br_blart for bkpf-blart.
SELECTION-SCREEN END OF BLOCK B1 .
Start of Delete by B.Elan on 23/12/2005
*PARAMETERS : errors AS CHECKBOX .
*PARAMETERS : summary AS CHECKBOX .
*PARAMETERS : nodetail AS CHECKBOX .
**selection-screen skip 2.
*SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-b03. "<<<
*Add
*PARAMETER : stax_reg RADIOBUTTON GROUP rad2 . "<<<
*Add
*PARAMETER : pur_db RADIOBUTTON GROUP rad2 . "<<<
*Add
*SELECTION-SCREEN END OF BLOCK b3 . "<<< Add
*SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-b02.
*PARAMETERS : display RADIOBUTTON GROUP grp1 ,
dload RADIOBUTTON GROUP grp1.
*PARAMETERS : fname1 LIKE rlgrap-filename .
*DATA : zdoc LIKE bseg-belnr.
*DATA : fname LIKE rlgrap-filename.
*SELECTION-SCREEN END OF BLOCK b2 .
End of Delete by B.Elan on 23/12/2005
Start of Insert by B.Elan on 23/12/2005
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(5) TEXT-C01.
PARAMETER : PUR_DB RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 10(25) TEXT-C06.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(5) TEXT-C01.
PARAMETERS : MAT_SM RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 10(25) TEXT-C04.
SELECTION-SCREEN COMMENT 35(5) TEXT-C01.
PARAMETERS : VEN_SM RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 44(20) TEXT-C05.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(5) TEXT-C01.
PARAMETERS : MAT_DT RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 10(25) TEXT-C07.
SELECTION-SCREEN COMMENT 35(5) TEXT-C01.
PARAMETERS : VEN_DT RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 44(20) TEXT-C08.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
End of Insert by B.Elan on 23/12/2005
Hard coded values used in the program
added by krishna mohan on 09/02/02
DATA : BEGIN OF IT_MSEG OCCURS 0,
BELNR LIKE BSEG-BELNR,
MBLNR LIKE MSEG-MBLNR,
EBELN LIKE BSEG-EBELN,
EBELP LIKE BSEG-EBELP,
END OF IT_MSEG.
mod ends
Start of Insert by B.Elan on 23/12/2005
*--vikky
DATA : BEGIN OF IT_FINAL OCCURS 0,
MATNR LIKE MARA-MATNR,
BLART LIKE BKPF-BLART, " doctype
BELNR LIKE BSEG-BELNR, "sr - nO 10
XBLNR LIKE BKPF-XBLNR , " Bill-no 16
NAME1_VENDOR(25),
"lfa1-name1, " Vendor Name 35
HKONT LIKE BSEG-HKONT , " Alloc-cd 10
MWSKZ LIKE EKPO-MWSKZ , " St-cd 2
BUDAT LIKE BKPF-BUDAT , " Bill-dt 10
DUE_DATE LIKE BSEG-ZFBDT , " Due date 10
PON LIKE EKKO-EBELN , " PON 10
MAKTX LIKE MAKT-MAKTX, "Material text 40
MBLNR LIKE MSEG-MBLNR,
QTY(8) TYPE P DECIMALS 2 , "Qty 11
RATE(9) TYPE P DECIMALS 2 , "Rate11
DISCOUNT(7) TYPE P DECIMALS 2, "DISCOUNT 11
PROD-AMT(9) TYPE P DECIMALS 2,
"AMOUNT 13
EXCISE(8) TYPE P DECIMALS 2 , "eXCISE TAX 11
SALES(5) TYPE P DECIMALS 2 , "SALES TAX 11
FREIGHT(9) TYPE P DECIMALS 2, "FREIGHT 11
OTHERS(11) TYPE P DECIMALS 2, " OTHERS 11
TOTAL(9) TYPE P DECIMALS 2, "TOTAL 17
END OF IT_FINAL.
*DATA : BEGIN OF IT_FINAL OCCURS 0,
MATNR LIKE MARA-MATNR,
BLART LIKE BKPF-BLART, " doctype
BELNR LIKE BSEG-BELNR, "sr - nO 10
XBLNR LIKE BKPF-XBLNR , " Bill-no 16
NAME1_VENDOR(25),
"lfa1-name1, " Vendor Name 35
HKONT LIKE BSEG-HKONT , " Alloc-cd 10
MWSKZ LIKE EKPO-MWSKZ , " St-cd 2
BUDAT LIKE BKPF-BUDAT , " Bill-dt 10
DUE_DATE LIKE BSEG-ZFBDT , " Due date 10
PON LIKE EKKO-EBELN , " PON 10
MAKTX LIKE MAKT-MAKTX, "Material text 40
MBLNR LIKE MSEG-MBLNR,
QTY(13) TYPE P DECIMALS 2 , "Qty 11
RATE(13) TYPE P DECIMALS 2 , "Rate 11
DISCOUNT(13) TYPE P DECIMALS 2, "DISCOUNT 11
PROD-AMT(13) TYPE P DECIMALS 2,
"AMOUNT 13
EXCISE(13) TYPE P DECIMALS 2 , "eXCISE TAX 11
SALES(13) TYPE P DECIMALS 2 , "SALES TAX 11
FREIGHT(13) TYPE P DECIMALS 2, "FREIGHT 11
OTHERS(13) TYPE P DECIMALS 2, " OTHERS 11
TOTAL(13) TYPE P DECIMALS 2, "TOTAL 17
END OF IT_FINAL.
*--vikky
DATA : BEGIN OF IT_FINAL_VN OCCURS 0,
NAME1_VENDOR(25),
"lfa1-name1, " Vendor Name 35
MATNR LIKE MARA-MATNR,
BLART LIKE BKPF-BLART, " doctype
BELNR LIKE BSEG-BELNR, "sr - nO 10
XBLNR LIKE BKPF-XBLNR , " Bill-no 16
HKONT LIKE BSEG-HKONT , " Alloc-cd 10
MWSKZ LIKE EKPO-MWSKZ , " St-cd 2
BUDAT LIKE BKPF-BUDAT , " Bill-dt 10
DUE_DATE LIKE BSEG-ZFBDT , " Due date 10
PON LIKE EKKO-EBELN , " PON 10
MAKTX LIKE MAKT-MAKTX, "Material text 40
MBLNR LIKE MSEG-MBLNR,
QTY(8) TYPE P DECIMALS 2 , "Qty 11
RATE(9) TYPE P DECIMALS 2 , "Rate 11
DISCOUNT(7) TYPE P DECIMALS 2, "DISCOUNT 11
PROD-AMT(9) TYPE P DECIMALS 2,
"AMOUNT 13
EXCISE(5) TYPE P DECIMALS 2 , "eXCISE TAX 11
SALES(5) TYPE P DECIMALS 2 , "SALES TAX 11
FREIGHT(5) TYPE P DECIMALS 2, "FREIGHT 11
OTHERS(9) TYPE P DECIMALS 2, " OTHERS 11
TOTAL(9) TYPE P DECIMALS 2, "TOTAL 17
END OF IT_FINAL_VN.
End of Insert by B.Elan on 23/12/2005
DATA: BEGIN OF ITAB_DISPLAY OCCURS 0,
BLART LIKE BKPF-BLART, " doctype
BELNR LIKE BSEG-BELNR, "sr - nO 10
XBLNR LIKE BKPF-XBLNR , " Bill-no 16
NAME1_VENDOR(25), "lfa1-name1, " Vendor Name 35
HKONT LIKE BSEG-HKONT , " Alloc-cd 10
MWSKZ LIKE EKPO-MWSKZ , " St-cd 2
BUDAT LIKE BKPF-BUDAT , " Bill-dt 10
DUE_DATE LIKE BSEG-ZFBDT , " Due date 10
PON LIKE EKKO-EBELN , " PON 10
MAKTX LIKE MAKT-MAKTX, "Material text 40
QTY(8) TYPE P DECIMALS 2 , "Qty 11
"qty 5
RATE(5) TYPE P DECIMALS 2 , "Rate 11
mod starts on 21/08 for inc size to 7
RATE(9) TYPE P DECIMALS 2 , "Rate 11
"Rate 7
mod ends - sanjay jajoo 21/08
DISCOUNT(7) TYPE P DECIMALS 2, "DISCOUNT 11
PROD-AMT(9) TYPE P DECIMALS 2, "AMOUNT 13
EXCISE(5) TYPE P DECIMALS 2 , "eXCISE TAX 11
SALES(5) TYPE P DECIMALS 2 , "SALES TAX 11
FREIGHT(5) TYPE P DECIMALS 2, "FREIGHT 11
OTHERS(9) TYPE P DECIMALS 2, " OTHERS 11 " added by vik on
*21.08.2008
TOTAL(9) TYPE P DECIMALS 2, "TOTAL 17
TOTAL1(9) TYPE P DECIMALS 2,
MATNR LIKE MARA-MATNR,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
END OF ITAB_DISPLAY.
DATA: BEGIN OF ITAB_TOTAL1 OCCURS 0,
HKONT LIKE BSEG-HKONT,
TOTAL TYPE P DECIMALS 2,
TXT50 LIKE SKAT-TXT50,
END OF ITAB_TOTAL1.
DATA: BEGIN OF ITAB_KONV OCCURS 0,
KNUMV LIKE KONV-KNUMV,
KPOSN LIKE KONV-KPOSN,
STUNR LIKE KONV-STUNR,
ZAEHK LIKE KONV-ZAEHK,
KSCHL LIKE KONV-KSCHL,
KWERT LIKE KONV-KWERT,
END OF ITAB_KONV.
DATA:BEGIN OF ITAB_RATE_MODVAT OCCURS 0,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MENGE LIKE EKPO-MENGE,
BRTWR LIKE EKPO-BRTWR,
KZWI5 LIKE EKPO-KZWI5,
KNUMV LIKE EKKO-KNUMV,
MATNR LIKE EKPO-MATNR,
TXZ01 LIKE EKPO-TXZ01,
END OF ITAB_RATE_MODVAT.
DATA: BEGIN OF ITAB_PO OCCURS 0,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
END OF ITAB_PO.
DATA: BEGIN OF ITAB_PO_ITEM OCCURS 0,
BELNR LIKE BSEG-BELNR,
EBELN LIKE BSEG-EBELN,
BUZID LIKE BSEG-BUZID,
XBLNR LIKE BKPF-XBLNR,
MATNR LIKE BSEG-MATNR,
EBELP LIKE BSEG-EBELP,
MENGE LIKE BSEG-MENGE,
WRBTR LIKE BSEG-WRBTR,
EXCISE LIKE BSEG-DMBTR, " ADDED ON 21/01/02 FOR 27500 EXCISE
SGTXT LIKE BSEG-SGTXT, " ADDED ON 24/01/02
FLAG,
END OF ITAB_PO_ITEM.
DATA:BEGIN OF I_LFA1 OCCURS 0,
LIFNR LIKE BSEG-LIFNR,
END OF I_LFA1.
DATA: BEGIN OF I_VENDOR OCCURS 0,
LIFNR LIKE LFA1-LIFNR,
NAME1 LIKE LFA1-NAME1,
END OF I_VENDOR.
DATA: BEGIN OF ITAB_PO_OTHERS OCCURS 0,
BELNR LIKE BSEG-BELNR,
MATNR LIKE BSEG-MATNR,
EBELN LIKE BSEG-EBELN,
EBELP LIKE BSEG-EBELP,
MENGE LIKE BSEG-MENGE,
WRBTR LIKE BSEG-WRBTR,
END OF ITAB_PO_OTHERS.
DATA: BEGIN OF ITAB_FINAL OCCURS 0,
BUKRS LIKE BSEG-BUKRS,
BELNR LIKE BSEG-BELNR,
GJAHR LIKE BSEG-GJAHR,
BUZEI LIKE BSEG-BUZEI,
BUZID LIKE BSEG-BUZID,
SHKZG LIKE BSEG-SHKZG,
EBELN LIKE BSEG-EBELN,
EBELP LIKE BSEG-EBELP,
MENGE LIKE BSEG-MENGE,
WRBTR LIKE BSEG-WRBTR,
MATNR LIKE BSEG-MATNR,
HKONT LIKE BSEG-HKONT, " ADDED ON 21/01/02 FOR 27500 EXCISE
SGTXT LIKE BSEG-SGTXT, " ADDED ON 24/01/02 FOR SALES TAX
END OF ITAB_FINAL.
DATA : BEGIN OF ITAB OCCURS 100 ,
MWSKZ LIKE EKPO-MWSKZ , " St-cd
HKONT LIKE BSEG-HKONT , " Alloc-cd
MBLNR LIKE MKPF-MBLNR , " Sr-No
LIFNR LIKE LFA1-LIFNR , " Supp-cd
XBLNR LIKE BKPF-XBLNR , " Bill-no
BUDAT LIKE BKPF-BUDAT , " Bill-dt
DUE_DATE LIKE BSEG-ZFBDT , " Due date
PON LIKE EKKO-EBELN , " PON
BELNR LIKE BKPF-BELNR , " CCI no
DMBTR LIKE BSEG-DMBTR , " Prod-amount
EXCISE LIKE BSEG-DMBTR , " Excise / ModVAT
ST_INV LIKE BSEG-DMBTR , " Sales Tax Loaded on Inv.
ST_SET LIKE BSEG-DMBTR , " Sales Tax setoff .
OCT_TOT LIKE BSEG-DMBTR , " A,A, (29/03/2000) Octroi chargs
PT_PABLE LIKE BSEG-DMBTR , " Purchase tax payable
ST_TOT LIKE BSEG-DMBTR , " Sales Tax total
OTHR_CHRG LIKE BSEG-DMBTR , " Other chagres
NEBTR LIKE BSEG-NEBTR, " Total-amount
NAME1_VENDOR LIKE LFA1-NAME1, " Vendor Name
END OF ITAB.
DATA: BEGIN OF ITAB_DOC OCCURS 0,
BELNR LIKE BKPF-BELNR,
BLART LIKE BKPF-BLART,
END OF ITAB_DOC.
DATA : BEGIN OF DOCTAB OCCURS 100 ,
MWSKZ LIKE BSEG-MWSKZ ,
HKONT LIKE BSEG-HKONT ,
BELNR LIKE BKPF-BELNR ,
Changed By Pankaj 19.03.99
Included field fiscal year
GJAHR LIKE BKPF-GJAHR ,
BUDAT LIKE BKPF-BUDAT ,
XBLNR LIKE BKPF-XBLNR ,
LIFNR LIKE LFA1-LIFNR ,
ZTERM LIKE BSEG-ZTERM ,
AMOUNT LIKE BSEG-DMBTR ,
DMBTR LIKE BSEG-DMBTR ,
OTHR_CHRG LIKE BSEG-DMBTR ,
MBLNR LIKE MKPF-MBLNR ,
MJAHR LIKE MSEG-MJAHR ,
DUE_DATE LIKE BSEG-ZFBDT ,
PON LIKE EKKO-EBELN ,
JMO1 LIKE BSEG-DMBTR ,
JMO2 LIKE BSEG-DMBTR ,
JIP1 LIKE BSEG-DMBTR ,
JIP2 LIKE BSEG-DMBTR ,
************CH-ID-ADI-START-28 / 09 / 1999
JIP4 LIKE BSEG-DMBTR ,
ZTUT LIKE BSEG-DMBTR ,
*****************ABEY
ZOCT LIKE BSEG-DMBTR ,
*****************END
************CH-ID-ADI-START-28 / 09 / 1999
ZSET LIKE BSEG-DMBTR ,
ZPTX LIKE BSEG-DMBTR ,
BLART LIKE BKPF-BLART ,
END OF DOCTAB .
Download for EDP "EDP
DATA : BEGIN OF DOWNLOAD OCCURS 100 ,
SIGN1(1) ,
TOT_VAL(11) TYPE N,
SIGN2(1) ,
TAXABLE(11) TYPE N ,
SIGN3(1) ,
TOT_TAX(11) TYPE N ,
SIGN4(1) ,
SURCHARG(9) TYPE N ,
SIGN5(1) ,
ST_AMT(9) TYPE N ,
SIGN6(1) ,
OTH_CHRG(9) TYPE N ,
******************************ch-adi-start-28 / 09 / 1999
SIGN7(1),
TOT(9) TYPE N,
******************************ch-adi-end-28 / 09 / 1999
TYPE(1) TYPE N ,
STKY1(1) TYPE N ,
STBR(2) ,
STDV(2) ,
STCC(1) ,
STKY(1) ,
STDC(2) TYPE N ,
STTYP(1) ,
STCODE(2) ,
STRATE(2) TYPE N ,
STRTT(2) TYPE N ,
SERIAL_NO(6) TYPE N ,
STACP(9) ,
BLANK1(3) ,
STYRMN(6) ,
BLANK2(7) TYPE C .
DATA : END OF DOWNLOAD .
DATA : BEGIN OF GLTAB OCCURS 5 ,
MWSKZ LIKE BSEG-MWSKZ, " << ADD A.A. (01.02.2000)
HKONT LIKE BSEG-HKONT ,
DMBTR LIKE BSEG-DMBTR , " Prod-amount
EXCISE LIKE BSEG-DMBTR , " Excise / ModVAT
ST_INV LIKE BSEG-DMBTR , " Sales Tax Loaded on Inv.
ST_SET LIKE BSEG-DMBTR , " Sales Tax setoff .
PT_PABLE LIKE BSEG-DMBTR , " Purchase tax payable
ST_TOT LIKE BSEG-DMBTR , " Sales Tax total
OTHR_CHRG LIKE BSEG-DMBTR , " Other Charges
NEBTR LIKE BSEG-NEBTR. " Total-amount
DATA : END OF GLTAB .
DATA : BEGIN OF ERRORTAB OCCURS 5 .
INCLUDE STRUCTURE ITAB .
DATA : END OF ERRORTAB .
*- Start of change by Raj on 3-Spet-05
DATA : V_TMPVAL TYPE P DECIMALS 2.
*- End of change by Raj on 3-Spet-05
DATA : STRING LIKE BKPF-AWKEY ,
V_NO TYPE I,
V_EBELN LIKE BSEG-EBELN,
V_MATNR LIKE BSEG-MATNR. " ADDED ON 21/01/02 FOR BUZID = 'S'
Start of Insert by B.Elan on 23/12/2005
WORK AREA
DATA : WA_DISPLAY LIKE ITAB_DISPLAY.
DATA : V_UCOMM TYPE SY-UCOMM.
CONSTANTS : C_X TYPE C VALUE 'X'.
End of Insert by B.Elan on 23/12/2005
AT SELECTION-SCREEN ON T_BUKRS.
SELECT SINGLE * FROM T001 WHERE BUKRS = T_BUKRS .
IF SY-SUBRC NE 0 .
MESSAGE E368 WITH T_BUKRS TEXT-M01 .
ENDIF .
AT SELECTION-SCREEN ON T_MONAT.
PERFORM check_period_year USING 'X'. " COMMENTED
AT SELECTION-SCREEN ON T_GJAHR.
PERFORM check_period_year USING ' '. "COMMENTED
Start of Delete by B.Elan on 23/12/2005
*AT SELECTION-SCREEN ON RADIOBUTTON GROUP grp1 .
CLEAR fname .
DATA : BEGIN OF xt247 OCCURS 12 .
INCLUDE STRUCTURE t247 .
DATA : END OF xt247 .
CHECK dload EQ 'X' .
REFRESH xt247 .
IF poper EQ 'X' .
MESSAGE e368 WITH text-m05 .
ENDIF .
CALL FUNCTION 'MONTH_NAMES_GET'
TABLES
month_names = xt247
EXCEPTIONS
month_names_not_found = 1
OTHERS = 2.
READ TABLE xt247 WITH KEY mnr = t_monat .
CONCATENATE 'STAXSUMM.' xt247-ktx INTO fname .
CONCATENATE '
DOWNLOAD\' fname INTO fname1.
CONCATENATE zfile1 fname INTO zfile2.
CONDENSE fname1 NO-GAPS.
CONDENSE zfile2 NO-GAPS.
CONCATENATE 'STAXSUMM.' xt247-ktx INTO fname .
End of Delete by B.Elan on 23/12/2005
AT SELECTION-SCREEN OUTPUT .
LOOP AT SCREEN .
IF SCREEN-NAME EQ 'FNAME' .
SCREEN-INPUT = 0.
MODIFY SCREEN .
ENDIF .
IF SCREEN-GROUP2 EQ 'DBS' .
SCREEN-ACTIVE = 0 .
MODIFY SCREEN .
IF SCREEN-NAME EQ 'BR_BLART-LOW' .
Form the select option for the LDB .
CLEAR BR_BLART . REFRESH BR_BLART .
BR_BLART-SIGN = 'I' .
BR_BLART-OPTION = 'EQ' .
BR_BLART-LOW = 'RE' .
APPEND BR_BLART .
BR_BLART-SIGN = 'I' .
BR_BLART-OPTION = 'EQ' .
BR_BLART-LOW = 'SR' .
APPEND BR_BLART .
BR_BLART-SIGN = 'I' .
BR_BLART-OPTION = 'EQ' .
BR_BLART-LOW = 'SP' .
APPEND BR_BLART . " ADD ON 11122003 JAJ
BR_BLART-SIGN = 'I' .
BR_BLART-OPTION = 'EQ' .
br_blart-low = 'VI' .
BR_BLART-LOW = 'ST'.
APPEND BR_BLART .
BR_BLART-LOW = 'S1'.
APPEND BR_BLART .
BR_BLART-LOW = 'P1'.
APPEND BR_BLART .
BR_BLART-LOW = 'PM'.
APPEND BR_BLART .
BR_BLART-LOW = 'R1'.
APPEND BR_BLART .
BR_BLART-SIGN = 'I' .
BR_BLART-OPTION = 'EQ' .
BR_BLART-LOW = 'KR' .
APPEND BR_BLART .
BR_BLART-SIGN = 'I' .
BR_BLART-OPTION = 'EQ' .
*************CH-ID-ADI---30 / 09 / 1999.
BR_BLART-LOW = 'RA'.
APPEND BR_BLART .
BR_BLART-SIGN = 'I' .
BR_BLART-OPTION = 'EQ' .
BR_BLART-LOW = 'EM'.
APPEND BR_BLART .
BR_BLART-SIGN = 'I' .
BR_BLART-OPTION = 'EQ' .
BR_BLART-LOW = 'EI' .
APPEND BR_BLART .
ENDIF .
ENDIF .
CHECK SCREEN-GROUP1 EQ 'DAT' .
SCREEN-INPUT = 0.
MODIFY SCREEN .
ENDLOOP .
START-OF-SELECTION .
Block 1 - Selection of accounting documents in the posting period
is done through the LDB
GET BKPF .
commented on 22/08
CHECK BKPF-MONAT = T_MONAT.
CHECK BKPF-MONAT IN T_MONAT.
CHECK BKPF-GJAHR = T_GJAHR.
CHECK BKPF-STBLG IS INITIAL . "<<<< Reversed
*CHECK bkpf-budat IN t_budat .
CHECK BKPF-BUKRS EQ T_BUKRS .
CHECK BKPF-BUKRS EQ T_BUKRS .
CHECK BKPF-BSTAT EQ SPACE . "<<< Sample docs
CHECK BKPF-BLART EQ 'RE' "MM-IV
OR BKPF-BLART EQ 'KR' "FI-IV
OR bkpf-blart EQ 'VI' "FI-IV Direct
*************CH-ID-ADI-30 / 09 / 1999
OR bkpf-blart EQ 'RA' "CASH CCI
OR bkpf-blart EQ 'EM' "MAINTAINANCE
OR bkpf-blart EQ 'EI' . "IDT
OR BKPF-BLART EQ 'P1'
OR BKPF-BLART EQ 'PM'
OR BKPF-BLART EQ 'R1'
OR BKPF-BLART EQ 'S1'
OR BKPF-BLART EQ 'ST'
OR BKPF-BLART EQ 'SR' " ADD ON 101203 JAJ
OR BKPF-BLART EQ 'SP'.
*************CH-ID-ADI-30 / 09 / 1999
CLEAR DOCTAB .
DOCTAB-BLART = BKPF-BLART .
DOCTAB-BELNR = BKPF-BELNR .
DOCTAB-BUDAT = BKPF-BUDAT .
DOCTAB-XBLNR = BKPF-XBLNR .
Added By Pankaj 19.03.99
Initializing fiscal year for document table
DOCTAB-GJAHR = BKPF-GJAHR .
APPEND DOCTAB.
Tax details
GET BSET . " Commented because LDB gives wrong BSET entries
" for some documents
CASE BSET-KSCHL .
WHEN 'JMO1' .
DOCTAB-JMO1 = DOCTAB-JMO1 + BSET-HWSTE .
WHEN 'JMO2' .
DOCTAB-JMO2 = DOCTAB-JMO2 + BSET-HWSTE .
WHEN 'JIP1' .
DOCTAB-JIP1 = DOCTAB-JIP1 + BSET-HWSTE .
WHEN 'JIP2' .
DOCTAB-JIP2 = DOCTAB-JIP2 + BSET-HWSTE .
WHEN 'ZSET' .
break deven .
DOCTAB-ZSET = DOCTAB-ZSET + BSET-HWSTE .
WHEN 'ZPTX' .
DOCTAB-ZPTX = DOCTAB-ZPTX + BSET-HWSTE .
ENDCASE .
DOCTAB-MWSKZ = BSET-MWSKZ.
MODIFY DOCTAB INDEX SY-TABIX.
Item details
*changed by srinivas yerra.
GET BSEG .
IF BSEG-KOART = 'K' . "<<< Vendor Line
IF BSEG-KOART = 'K' .
*end of chnages by srinivas yerra.
DOCTAB-LIFNR = BSEG-LIFNR .
IF NOT BSEG-ZTERM IS INITIAL .
DOCTAB-ZTERM = BSEG-ZTERM .
DOCTAB-DUE_DATE = BSEG-ZFBDT + BSEG-ZBD1T .
ENDIF .
IF BSEG-SHKZG EQ 'H' . "<< Add credits
DOCTAB-AMOUNT = DOCTAB-AMOUNT + BSEG-DMBTR .
ELSE . "<< Subtr debits
DOCTAB-AMOUNT = DOCTAB-AMOUNT - BSEG-DMBTR .
ENDIF .
ENDIF .
CASE BSEG-KTOSL .
WHEN 'WRX' .
DOCTAB-PON = BSEG-EBELN .
IF DOCTAB-MWSKZ IS INITIAL .
DOCTAB-MWSKZ = BSEG-MWSKZ .
ENDIF .
WHEN 'BSX' .
***********ABEY
IF NEXT = BSEG-BUZEI
AND
DOC = BSEG-BELNR
AND
( BSEG-BUZID = 'M'
OR
BSEG-HKONT = 50765 ).
DOCTAB-ZOCT = DOCTAB-ZOCT + BSEG-DMBTR.
IF BSEG-SHKZG EQ 'H' . "<< Subtr credits
DOCTAB-OTHR_CHRG = DOCTAB-OTHR_CHRG - BSEG-DMBTR .
ELSE . "<< Add debits
DOCTAB-OTHR_CHRG = DOCTAB-OTHR_CHRG + BSEG-DMBTR .
ENDIF .
ENDIF .
************END
IF BSEG-SHKZG EQ 'S' .
DOCTAB-DMBTR = DOCTAB-DMBTR + BSEG-DMBTR .
ELSE .
DOCTAB-DMBTR = DOCTAB-DMBTR - BSEG-DMBTR .
ENDIF .
WHEN 'OCT' OR 'FRE' OR 'FR1' OR SPACE .
*****CH-ID-ADI-30 / 09 /1999.
IF ( ( BKPF-BLART = 'EM' OR BKPF-BLART = 'RA' OR BKPF-BLART =
'EI')
AND BSEG-KTOSL = SPACE ) OR BSEG-MWSKZ = '9W' OR BSEG-MWSKZ =
'K9' OR
BSEG-MWSKZ =
'X9'.
DOCTAB-OTHR_CHRG = 0.
ELSE.
*********CH-ID-ADI--01 / 10 / 1999
Other Charges only for accounts other than vendor acc.
CHECK BSEG-BUZID NE 'T' .
CHECK BSEG-BUZID NE 'P' .
IF BSEG-KOART NE 'K' .
*********ABEY (25/02/2000), (21/02/2000)
IF BSEG-BUZID = 'F'
OR BSEG-HKONT = 75461.
NEXT = BSEG-BUZEI + 1.
DOC = BSEG-BELNR.
DOCTAB-ZOCT = DOCTAB-ZOCT + BSEG-DMBTR.
ENDIF.
IF BSEG-BUZEI = NEXT
AND
( BSEG-BUZID = 'M'
OR
BSEG-HKONT = 50765 ).
DOCTAB-ZOCT = DOCTAB-ZOCT + BSEG-DMBTR.
ENDIF.
*********END
IF BSEG-SHKZG EQ 'H' . "<< Subtr credits
DOCTAB-OTHR_CHRG = DOCTAB-OTHR_CHRG - BSEG-DMBTR .
ELSE . "<< Add debits
DOCTAB-OTHR_CHRG = DOCTAB-OTHR_CHRG + BSEG-DMBTR .
ENDIF .
ENDIF .
*****NEXT-LINE ADDED BY ADI
ENDIF .
*************END.
ENDCASE .
*CHANGED BY SRINIVAS YERRA
*MODIFY DOCTAB INDEX SY-TABIX.
APPEND DOCTAB.
*END OF CHANGES.
PO History
GET EKBE .
CHECK DOCTAB-BELNR EQ EKBE-BELNR .
DOCTAB-MBLNR = EKBE-LFBNR .
DOCTAB-MJAHR = EKBE-LFGJA .
MODIFY DOCTAB INDEX SY-TABIX .
PERFORM show_indicator USING text-m02 .
*PERFORM convert_data.
END-OF-SELECTION .
Data read from LDB is converted into printable format.
PERFORM SHOW_INDICATOR USING TEXT-M04 .
PERFORM CONVERT_DATA .
Start of Delete by B.Elan on 23/12/2005
IF stax_reg EQ 'X' . "<<< Add
SORT itab BY mwskz hkont belnr .
ELSE . "<<< Add
SORT itab BY belnr . "<<< Add
SORT itab BY pon.
ENDIF . "<<< Add
Perform further operation based on user input
IF display EQ 'X' .
PERFORM write_itab.
PERFORM write_data .
ELSE .
PERFORM download_data .
ENDIF .
End of Delete by B.Elan on 23/12/2005
Start of Insert by B.Elan on 23/12/2005
SORT ITAB BY BELNR.
PERFORM WRITE_DATA.
IF MAT_SM = C_X.
PERFORM WRITE_MATERIAL_SUMMARY.
ELSEIF MAT_DT = C_X.
PERFORM WRITE_MATERIAL_DETAILS.
ELSEIF VEN_SM = C_X.
PERFORM WRITE_VENDOR_SUMMARY.
ELSEIF VEN_DT = C_X.
PERFORM WRITE_VENDOR_DETAILS.
ENDIF.
End of Insert by B.Elan on 23/12/2005
Start of Insert by B.Elan on 23/12/2005
AT USER-COMMAND.
V_UCOMM = SY-UCOMM.
CASE V_UCOMM.
WHEN 'DETLS'.
NEW-PAGE.
PUR_DB = C_X.
PERFORM CLEAR_DETAILS.
PERFORM WRITE_DATA.
WHEN 'MSUMRY'.
PERFORM WRITE_MATERIAL_SUMMARY.
WHEN 'MDETL'.
PERFORM WRITE_MATERIAL_DETAILS.
WHEN 'VSUMRY'.
PERFORM WRITE_VENDOR_SUMMARY.
WHEN 'VDETL'.
PERFORM WRITE_VENDOR_DETAILS.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
End of Insert by B.Elan on 23/12/2005
*- - - - - - - - - End Of Execution .- - - - - - - - - - - - - - - - - -
TOP-OF-PAGE .
IF PUR_DB = C_X.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_PUR_DB.
ELSEIF MAT_SM = C_X.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_MAT_SM.
ELSEIF MAT_DT = C_X.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_MAT_DT.
ELSEIF VEN_SM = C_X.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_VEN_SM.
ELSEIF VEN_DT = C_X.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_VEN_DT.
ENDIF.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE V_UCOMM.
WHEN 'DETLS'.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_PUR_DB.
WHEN 'MSUMRY'.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_MAT_SM.
WHEN 'MDETL'.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_MAT_DT.
WHEN 'VSUMRY'.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_VEN_SM.
WHEN 'VDETL'.
PERFORM TOP_OF_PAGE.
PERFORM TOP_OF_PAGE_VEN_DT.
ENDCASE.
*& Form WRITE_DATA
text *
FORM WRITE_DATA.
DATA: V_SALES LIKE ITAB_DISPLAY-SALES,
V_RATE LIKE ITAB_DISPLAY-RATE,
V_DISCOUNT LIKE ITAB_DISPLAY-DISCOUNT,
V_PROD-AMT LIKE ITAB_DISPLAY-PROD-AMT,
V_EXCISE1 LIKE ITAB_DISPLAY-EXCISE,
V_EXCISE LIKE ITAB_DISPLAY-EXCISE,
V_PON LIKE ITAB_DISPLAY-PON,
V_OTHERS LIKE ITAB_DISPLAY-OTHERS,
V_FREIGHT LIKE ITAB_DISPLAY-FREIGHT.
CLEAR ITAB .
Write the correct data i.e. tax code and G/L code both available .
LOOP AT ITAB .
*************CH-ID-ADI-30 / 09 / 1999
IF ( ITAB-MWSKZ = '9W' OR ITAB-MWSKZ = 'K9' OR ITAB-MWSKZ = 'X9' )
AND ITAB-OTHR_CHRG NE 0 .
ITAB-DMBTR = ITAB-OTHR_CHRG.
ITAB-OTHR_CHRG = 0.
MODIFY ITAB.
ENDIF.
ENDLOOP.
LOOP AT ITAB.
I_LFA1-LIFNR = ITAB-LIFNR.
APPEND I_LFA1.
CLEAR I_LFA1.
ENDLOOP.
SORT I_LFA1.
DELETE ADJACENT DUPLICATES FROM I_LFA1 COMPARING ALL FIELDS.
SELECT LIFNR
NAME1
FROM LFA1 INTO TABLE I_VENDOR
FOR ALL ENTRIES IN I_LFA1 WHERE
LIFNR = I_LFA1-LIFNR.
FREE I_LFA1.
LOOP AT ITAB.
READ TABLE I_VENDOR WITH KEY LIFNR = ITAB-LIFNR .
IF SY-SUBRC EQ 0.
ITAB-NAME1_VENDOR = I_VENDOR-NAME1.
MODIFY ITAB TRANSPORTING NAME1_VENDOR.
ENDIF.
ENDLOOP.
LOOP AT ITAB.
IF NOT ITAB-LIFNR IN S_VENDOR.
DELETE ITAB.
ENDIF.
ENDLOOP.
SELECT BUKRS BELNR GJAHR BUZEI BUZID SHKZG EBELN EBELP ERFMG WRBTR
MATNR HKONT SGTXT " ERFMG for MENGE,HKONT,SGTXT Added by KrishnaMohan
INTO TABLE ITAB_FINAL
FROM BSEG FOR ALL ENTRIES IN ITAB
WHERE BUKRS = T_BUKRS AND "'1000' AND
BELNR = ITAB-BELNR AND
*added by srinivas
hkont in zgl and
*end
GJAHR = T_GJAHR AND
*- Start of change by Raj on 030905
buzid IN ('W', 'M', 'K', 'S', 'F' , 'P' ) AND
BUZID IN ('W', 'M', 'K', 'S', 'F' , 'P' , 'T', ' ') AND
" ADD T 090206 JAJ
KOART <> 'K' AND " mod by vik on 21.08.2008" sjaj si
*- End of change by Raj on 030905
BUZID = P Added on 21/01/02 by Krishna Mohan
GSBER IN P_GSBER AND
gsber IN p_gsber OR gsber = ' ' AND
MATNR IN S_MATNR.
SELECT BELNR BLART INTO TABLE ITAB_DOC FROM BKPF
FOR ALL ENTRIES IN ITAB_FINAL WHERE
BUKRS = T_BUKRS AND "'1000' AND
BELNR = ITAB_FINAL-BELNR AND
GJAHR = T_GJAHR AND
BLART NOT IN ('WA' , 'WE').
SORT ITAB_DOC BY BELNR BLART.
LOOP AT ITAB_DOC.
IF NOT ITAB_DOC-BLART IN S_DOCTYP .
DELETE ITAB_DOC.
ENDIF.
ENDLOOP.
LOOP AT ITAB_FINAL.
READ TABLE ITAB_DOC WITH KEY BELNR = ITAB_FINAL-BELNR BINARY SEARCH.
IF SY-SUBRC NE 0.
DELETE ITAB_FINAL.
ENDIF.
ENDLOOP.
DELETE ITAB_FINAL WHERE BUZID = 'K' AND BUZEI = '1'.
LOOP AT ITAB_FINAL WHERE SHKZG = 'H'.
ITAB_FINAL-WRBTR = ITAB_FINAL-WRBTR * ( -1 ).
MODIFY ITAB_FINAL TRANSPORTING WRBTR.
ENDLOOP.
LOOP AT ITAB_FINAL WHERE BUZID = 'M'.
IF ITAB_FINAL-SGTXT NE ' '.
TRANSLATE ITAB_FINAL-SGTXT TO UPPER CASE.
MODIFY ITAB_FINAL.
ENDIF.
ENDLOOP.
LOOP AT ITAB_FINAL .
IF ITAB_FINAL-BUZID = 'W'.
CLEAR V_MATNR.
V_EBELN = ITAB_FINAL-EBELN.
V_MATNR = ITAB_FINAL-MATNR.
ITAB_PO_ITEM-BELNR = ITAB_FINAL-BELNR.
ITAB_PO_ITEM-BUZID = ITAB_FINAL-BUZID.
ITAB_PO_ITEM-MATNR = ITAB_FINAL-MATNR.
ITAB_PO_ITEM-EBELN = ITAB_FINAL-EBELN.
ITAB_PO_ITEM-EBELP = ITAB_FINAL-EBELP.
ITAB_PO_ITEM-MENGE = ITAB_FINAL-MENGE.
ITAB_PO_ITEM-WRBTR = ITAB_FINAL-WRBTR.
COLLECT ITAB_PO_ITEM.
CLEAR ITAB_PO_ITEM.
ELSEIF ITAB_FINAL-BUZID = 'M' OR ITAB_FINAL-BUZID = 'K' OR
ITAB_FINAL-BUZID = 'S' OR
ITAB_FINAL-BUZID = 'P' OR " ADDED ON 21/01/02
*- Start of change by Raj on 030905
ITAB_FINAL-BUZID = ' ' OR
ITAB_FINAL-BUZID = 'T' OR " ADD BY JAJ ON 090206
*- End of change by Raj on 030905
ITAB_FINAL-BUZID = 'F'.
IF ITAB_FINAL-MATNR IS INITIAL.
ITAB_FINAL-MATNR = V_MATNR.
ENDIF.
CLEAR V_MATNR.
ITAB_PO_OTHERS-BELNR = ITAB_FINAL-BELNR.
ITAB_PO_OTHERS-MATNR = ITAB_FINAL-MATNR.
ITAB_PO_OTHERS-EBELN = ITAB_FINAL-EBELN.
ITAB_PO_OTHERS-EBELP = ITAB_FINAL-EBELP.
ITAB_PO_OTHERS-MENGE = ITAB_FINAL-MENGE.
ITAB_PO_OTHERS-WRBTR = ITAB_FINAL-WRBTR.
IF CONDITION,ADDED ON 21/01/02 FOR GETTING EXCISE WHEN CONDITION MEETS
ie TOTAL AMOUNT = EXCISE WHEN BUZID = S AND HKONT = 27500
*IF itab_final-buzid = 'S' AND ( itab_final-hkont = '0000027500' OR "
*COMM BY JAJ ON 090206
IF ITAB_FINAL-BUZID = 'S' OR ITAB_FINAL-BUZID = 'T' AND (
ITAB_FINAL-HKONT = '0000027500' OR
ITAB_FINAL-HKONT = '0000027515'
OR ITAB_FINAL-HKONT = '0000027550' " jaj on 090206
OR ITAB_FINAL-HKONT = '0000027507' OR
ITAB_FINAL-HKONT = '0000027508'). "Added on 050905 - Raj
ITAB_FINAL-EBELN = V_EBELN.
to get ebeln value into header so that when there are 2 po's
and 2 W's excise can go into only one po which is v_ebeln
Start of insert by B.Elan on 10/02/2006
READ TABLE ITAB_PO_ITEM WITH KEY BELNR = ITAB_FINAL-BELNR
EBELN = ITAB_FINAL-EBELN
MATNR = ITAB_FINAL-MATNR.
ITAB_PO_ITEM-EXCISE = ITAB_PO_ITEM-EXCISE + ITAB_FINAL-WRBTR.
End of insert by B.Elan on 10/02/2006
Start of delete by B.Elan on 10/02/2006
itab_po_item-excise = itab_final-wrbtr.
End of delete by B.Elan on 10/02/2006
MODIFY ITAB_PO_ITEM TRANSPORTING EXCISE
WHERE BELNR EQ ITAB_FINAL-BELNR AND
EBELN EQ ITAB_FINAL-EBELN.
CLEAR ITAB_PO_ITEM.
ELSE.
COLLECT ITAB_PO_OTHERS.
ENDIF.
CLEAR ITAB_PO_OTHERS.
ENDIF.
ENDLOOP.
sateesh
SORT ITAB_PO_ITEM BY BELNR EBELN.
LOOP AT ITAB_PO_ITEM.
AT NEW BELNR.
AT NEW EBELN.
READ TABLE ITAB_PO_ITEM INDEX SY-TABIX.
ITAB_PO_ITEM-FLAG = 'X'.
MODIFY ITAB_PO_ITEM INDEX SY-TABIX.
ENDAT.
ENDAT.
ENDLOOP.
LOOP AT ITAB_PO_ITEM.
ITAB_PO_ITEM-EXCISE = 0.
MODIFY ITAB_PO_ITEM TRANSPORTING EXCISE
WHERE EXCISE > 0
AND FLAG = SPACE.
ENDLOOP.
end
LOOP AT ITAB_PO_ITEM.
ITAB_PO-EBELN = ITAB_PO_ITEM-EBELN.
ITAB_PO-EBELP = ITAB_PO_ITEM-EBELP.
APPEND ITAB_PO.
CLEAR ITAB_PO.
ENDLOOP.
LOOP AT ITAB_PO_OTHERS.
ITAB_PO-EBELN = ITAB_PO_OTHERS-EBELN.
ITAB_PO-EBELP = ITAB_PO_OTHERS-EBELP.
APPEND ITAB_PO.
CLEAR ITAB_PO.
ENDLOOP.
SORT ITAB_PO.
DELETE ADJACENT DUPLICATES FROM ITAB_PO COMPARING ALL FIELDS.
SELECT EKPO~EBELN
EBELP
MENGE
BRTWR
KZWI5
EKKO~KNUMV
EKPO~MATNR
EKPO~TXZ01
INTO TABLE ITAB_RATE_MODVAT
FROM EKPO INNER JOIN EKKO
ON EKPO~EBELN = EKKO~EBELN
FOR ALL ENTRIES IN ITAB_PO WHERE
EKPO~EBELN = ITAB_PO-EBELN AND
EBELP = ITAB_PO-EBELP.
SELECT KNUMV KPOSN STUNR ZAEHK KSCHL KWERT
INTO TABLE ITAB_KONV
FROM KONV
FOR ALL ENTRIES IN ITAB_RATE_MODVAT
WHERE KNUMV = ITAB_RATE_MODVAT-KNUMV AND
KSCHL IN ('YT02', 'YF07', 'YOTH', 'YPF1', 'YD01', 'YD02', 'YD03' ) .
SORT ITAB_KONV BY KNUMV KSCHL.
SORT ITAB BY BELNR.
SORT ITAB_RATE_MODVAT BY EBELN EBELP.
SORT ITAB_PO_OTHERS BY BELNR MATNR.
LOOP AT ITAB_PO_ITEM.
ITAB_DISPLAY-BELNR = ITAB_PO_ITEM-BELNR.
READ TABLE ITAB_DOC WITH KEY BELNR = ITAB_PO_ITEM-BELNR BINARY
SEARCH.
IF SY-SUBRC EQ 0.
ITAB_DISPLAY-BLART = ITAB_DOC-BLART.
ENDIF.
READ TABLE ITAB WITH KEY BELNR = ITAB_PO_ITEM-BELNR BINARY SEARCH.
IF SY-SUBRC EQ 0.
ITAB_DISPLAY-XBLNR = ITAB-XBLNR.
ITAB_PO_ITEM-XBLNR = ITAB-XBLNR.
ITAB_DISPLAY-NAME1_VENDOR = ITAB-NAME1_VENDOR.
ITAB_DISPLAY-HKONT = ITAB-HKONT.
ITAB_DISPLAY-MWSKZ = ITAB-MWSKZ.
ITAB_DISPLAY-BUDAT = ITAB-BUDAT.
ITAB_DISPLAY-DUE_DATE = ITAB-DUE_DATE.
ITAB_DISPLAY-PON = ITAB_PO_ITEM-EBELN.
ENDIF.
ITAB_DISPLAY-QTY = ITAB_PO_ITEM-MENGE.
READ TABLE ITAB_RATE_MODVAT WITH KEY EBELN = ITAB_PO_ITEM-EBELN
EBELP = ITAB_PO_ITEM-EBELP
BINARY SEARCH.
IF SY-SUBRC EQ 0.
ITAB_DISPLAY-PON = ITAB_PO_ITEM-EBELN.
ITAB_DISPLAY-MATNR = ITAB_RATE_MODVAT-MATNR.
ITAB_DISPLAY-MAKTX = ITAB_RATE_MODVAT-TXZ01.
ITAB_DISPLAY-RATE = ITAB_RATE_MODVAT-BRTWR /
ITAB_RATE_MODVAT-MENGE.
ITAB_DISPLAY-PROD-AMT = ITAB_DISPLAY-RATE * ITAB_PO_ITEM-MENGE.
IF ITAB_PO_ITEM-EXCISE NE 0.
ITAB_DISPLAY-EXCISE = ITAB_PO_ITEM-EXCISE.
ELSE.
*ITAB_DISPLAY-EXCISE = ( ITAB_PO_ITEM-MENGE * ITAB_RATE_MODVAT-KZWI5 ) /
ITAB_RATE_MODVAT-MENGE.
*commentedon 210102 to get excise directly from BSEG - IV
ENDIF.
ENDIF.
READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
KPOSN = ITAB_RATE_MODVAT-EBELP
KSCHL = 'YT02' .
IF SY-SUBRC EQ 0.
ITAB_DISPLAY-SALES = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT ) /
ITAB_RATE_MODVAT-MENGE.
READ TABLE ITAB_FINAL WITH KEY BELNR = ITAB_PO_ITEM-BELNR
BUZID = 'M'
SGTXT(9) = 'SALES TAX'.
IF SY-SUBRC EQ 0.
IF ITAB_FINAL-SGTXT(9) EQ 'SALES TAX'
OR ITAB_FINAL-SGTXT(9) EQ 'sales tax'.
ITAB_DISPLAY-SALES = ITAB_DISPLAY-SALES + ITAB_FINAL-WRBTR.
ENDIF.
ENDIF.
ENDIF.
READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
KPOSN = ITAB_RATE_MODVAT-EBELP
KSCHL = 'YF07'.
IF SY-SUBRC EQ 0.
ITAB_DISPLAY-FREIGHT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT ) /
ITAB_RATE_MODVAT-MENGE.
ENDIF.
READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
KPOSN = ITAB_RATE_MODVAT-EBELP
KSCHL = 'YD01' .
IF SY-SUBRC EQ 0.
ITAB_DISPLAY-DISCOUNT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT ) /
ITAB_RATE_MODVAT-MENGE.
ELSE.
READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
KPOSN = ITAB_RATE_MODVAT-EBELP
KSCHL = 'YD02' .
IF SY-SUBRC EQ 0.
ITAB_DISPLAY-DISCOUNT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT )
ITAB_RATE_MODVAT-MENGE.
ELSE.
READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
KPOSN = ITAB_RATE_MODVAT-EBELP
KSCHL = 'YD03' .
IF SY-SUBRC EQ 0.
ITAB_DISPLAY-DISCOUNT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT
ITAB_RATE_MODVAT-MENGE.
ENDIF.
ENDIF.
ENDIF.
LOOP AT ITAB_KONV WHERE KNUMV = ITAB_RATE_MODVAT-KNUMV AND KPOSN =
ITAB_RATE_MODVAT-EBELP AND
( KSCHL = 'YPF1' OR KSCHL = 'YOTH' ) .
ITAB_KONV-KWERT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT ) /
ITAB_RATE_MODVAT-MENGE.
ITAB_DISPLAY-OTHERS = ITAB_DISPLAY-OTHERS + ITAB_KONV-KWERT.
ENDLOOP.
READ TABLE ITAB_PO_OTHERS WITH KEY BELNR = ITAB_PO_ITEM-BELNR.
EBELN = ITAB_PO_ITEM-EBELN.
BINARY SEARCH.
sateesh as on 10092003
IF SY-SUBRC NE 0. CLEAR ITAB_PO_OTHERS. ENDIF.
end
IF NOT ITAB_PO_OTHERS-EBELN IS INITIAL.
READ TABLE ITAB_PO_OTHERS WITH KEY EBELN = ITAB_PO_ITEM-EBELN
EB -
hi,
what are the minimum requirements to display logo in alv report at the top of the page.
i searched forums but did n't get the required answer.Hi
This code is to display logo in the report through alv grid
*& Report ZALVDEMO *
REPORT ZALVDEMO.
TABLES : J_1IEXCHDR, " header table
J_1IEXCDTL, " item table
J_1IPART2, " Excise Part II details
LFA1, " vendor master table
J_1IMOVEND, " vendor excise details table
MSEG, " Document Segment: Material
MKPF, " Header: Material Document
DD07T, " domain text table
T001W. " Plant and Branch Details
DATA : BEGIN OF IT_CHDR OCCURS 100,
DOCNO LIKE J_1IEXCHDR-DOCNO,
DOCYR LIKE J_1IEXCHDR-DOCYR,
EXNUM LIKE J_1IEXCHDR-EXNUM,
EXDAT LIKE J_1IEXCHDR-EXDAT,
WERKS LIKE J_1IEXCHDR-WERKS,
EXBED LIKE J_1IEXCHDR-EXBED,
EXCCD LIKE J_1IEXCHDR-EXCCD,
ECS LIKE J_1IEXCHDR-ECS,
END OF IT_CHDR.
DATA : BEGIN OF IT_CDTL OCCURS 100,
DOCYR LIKE J_1IEXCDTL-DOCYR,
DOCNO LIKE J_1IEXCDTL-DOCNO,
EXNUM LIKE J_1IEXCDTL-EXNUM,
EXDAT LIKE J_1IEXCDTL-EXDAT,
LIFNR LIKE J_1IEXCDTL-LIFNR,
MATNR LIKE J_1IEXCDTL-MATNR,
MAKTX LIKE J_1IEXCDTL-MAKTX,
CHAPID LIKE J_1IEXCDTL-CHAPID,
EXBAS LIKE J_1IEXCDTL-EXBAS,
EXBED LIKE J_1IEXCDTL-EXBED,
ECS LIKE J_1IEXCDTL-ECS,
MENGE LIKE J_1IEXCDTL-MENGE,
MEINS LIKE J_1IEXCDTL-MEINS,
RDOC2 LIKE J_1IEXCDTL-RDOC2,
END OF IT_CDTL.
DATA TEXT(10).
DATA : BEGIN OF IT_OUT OCCURS 0,
SERIALNO LIKE J_1IPART2-SERIALNO,
TEXT1 LIKE TEXT,
EXNUM LIKE J_1IEXCDTL-EXNUM,
EXDAT LIKE J_1IEXCDTL-EXDAT,
NAME LIKE LFA1-NAME1,
DDTEXT LIKE DD07T-DDTEXT,
EXCCD LIKE J_1IEXCHDR-EXCCD,
BUDAT LIKE MKPF-BUDAT,
EXBAS LIKE IT_CDTL-EXBAS,
EXBED LIKE IT_CDTL-EXBED,
ECS LIKE IT_CDTL-ECS,
MATNR LIKE IT_CDTL-MATNR,
MAKTX LIKE IT_CDTL-MAKTX,
CHAPID LIKE IT_CDTL-CHAPID,
MENGE LIKE IT_CDTL-MENGE,
MEINS LIKE IT_CDTL-MEINS,
DEL_IND(1),
END OF IT_OUT.
DATA IT_PART2 LIKE J_1IPART2 OCCURS 0 WITH HEADER LINE.
DATA S_NO(4) .
DATA DB_CNT LIKE SY-TABIX.
DATA EBELN_T LIKE MSEG-EBELN .
TYPE-POOLS : SLIS.
DATA : AFIELD TYPE SLIS_FIELDCAT_ALV.
DATA : LIST_HEADER TYPE SLIS_T_LISTHEADER,
FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LS_FTCAT TYPE LVC_S_FCAT,
SORTCAT TYPE SLIS_T_SORTINFO_ALV,
SORTCAT_LN LIKE LINE OF SORTCAT,
G_REPID LIKE SY-REPID,
G_BACK_GROUND(70), "like bapibds01-objkey,
GS_VARIANT LIKE DISVARIANT,
G_SAVE ,
GT_EVENTS TYPE SLIS_T_EVENT,
ALV_EVENT TYPE SLIS_ALV_EVENT,
EVENTCAT TYPE SLIS_T_EVENT,
EVENTCAT_LN LIKE LINE OF EVENTCAT,
LAYOUT_IN TYPE SLIS_LAYOUT_ALV,
LAYOUT_IN1 TYPE SLIS_LAYOUT_ALV.
CONSTANTS : GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE
'TOP_OF_PAGE',
GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE
'USER_COMMAND',
GC_FORMNAME_BEFORE_OUTPUT TYPE SLIS_FORMNAME VALUE
'BEFORE_OUTPUT'.
ALV_EVENT TYPE SLIS_ALV_EVENT,
DATA EX_NO LIKE IT_CHDR-EXNUM VALUE 0.
DATA REGTYP_1 LIKE J_1IPART2-REGTYP.
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.
PARAMETERS WERKS TYPE J_1IEXCHDR-WERKS.
SELECT-OPTIONS : BUDAT FOR J_1IEXCHDR-EXDAT.
PARAMETERS : R1 RADIOBUTTON GROUP GRP DEFAULT 'X',
R2 RADIOBUTTON GROUP GRP.
SELECTION-SCREEN END OF BLOCK B.
INITIALIZATION.
G_REPID = SY-REPID.
G_SAVE = 'A'.
PERFORM BUILD_EVENT USING GT_EVENTS[].
PERFORM ALV_EVENT_INIT.
AT SELECTION-SCREEN.
REFRESH LIST_HEADER.
PERFORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER.
START-OF-SELECTION.
PERFORM ALV_EVENT_INIT.
G_REPID = SY-REPID.
G_BACK_GROUND = ' ' .
IF R1 = 'X'.
CLEAR R2. CLEAR : REGTYP_1.
REGTYP_1 = 'A'.
set titlebar 'BALAJI' with DB_CNT.
ELSEIF R2 = 'X'.
CLEAR R1.CLEAR : REGTYP_1.
REGTYP_1 = 'C'.
set titlebar 'BALAJI1' with DB_CNT.
ENDIF.
SELECT * FROM J_1IPART2
INTO CORRESPONDING FIELDS OF TABLE IT_PART2
WHERE REGTYP = REGTYP_1 AND
TRNTYP = 'GRPO' AND
BUDAT IN BUDAT.
DOCYR = IT_CDTL-DOCYR AND
DOCNO = IT_CDTL-DOCNO.
LOOP AT IT_PART2.
SELECT SINGLE * FROM J_1IEXCHDR
INTO CORRESPONDING FIELDS OF IT_CHDR
WHERE TRNTYP = 'GRPO' AND
DOCYR = IT_PART2-DOCYR AND
DOCNO = IT_PART2-DOCNO AND
WERKS = WERKS AND
exdat IN BUDAT.
ORDER BY EXDAT.
IF SY-SUBRC = 0.
APPEND IT_CHDR.
ELSE.
CONTINUE.
ENDIF.
IF SY-SUBRC <> 0.
MESSAGE E084.
ENDIF.
ENDLOOP.
LOOP AT IT_CHDR.
SELECT * FROM J_1IEXCDTL
INTO CORRESPONDING FIELDS OF IT_CDTL
FOR ALL ENTRIES IN IT_CHDR
WHERE
TRNTYP = 'GRPO' AND
DOCNO = IT_CHDR-DOCNO AND
DOCYR = IT_CHDR-DOCYR AND
EXNUM = IT_CHDR-EXNUM AND
EXDAT = IT_CHDR-EXDAT AND
WERKS = IT_CHDR-WERKS.
IF SY-SUBRC = 0.
APPEND IT_CDTL.
ELSE.
CONTINUE.
ENDIF.
ENDSELECT.
ENDLOOP.
LOOP AT IT_CDTL.
CLEAR TEXT.
DB_CNT = DB_CNT + 1.
READ TABLE IT_CHDR WITH KEY EXNUM = IT_CDTL-EXNUM.
READ TABLE IT_PART2 WITH KEY DOCNO = IT_CDTL-DOCNO .
IT_OUT-SERIALNO = IT_PART2-SERIALNO.
SELECT SINGLE NAME1 FROM LFA1
INTO IT_OUT-NAME
WHERE LIFNR = IT_CDTL-LIFNR.
SELECT SINGLE * FROM LFA1
WHERE LIFNR = IT_CDTL-LIFNR.
IF LFA1-LAND1 EQ 'IN'.
TEXT = 'INVOICE'.
IT_OUT-TEXT1 = TEXT.
ELSE.
TEXT = 'BOE'.
IT_OUT-TEXT1 = TEXT.
ENDIF.
SELECT SINGLE * FROM J_1IMOVEND
WHERE LIFNR = IT_CDTL-LIFNR.
SELECT SINGLE * FROM DD07T
INTO IT_OUT-DDTEXT
WHERE DOMNAME = 'J_1IVTYP' AND
DDLANGUAGE = 'EN' AND
DOMVALUE_L = J_1IMOVEND-J_1IVTYP.
IF DD07T-DDTEXT = 'First Stage Dealer of indigenous excisable goods'
OR
DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisablegoods'.
DD07T-DDTEXT = 'Dealer'.
ENDIF.
IT_OUT-DDTEXT = DD07T-DDTEXT.
ELSEIF DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisable
*goods'.
DD07T-DDTEXT =
CLEAR EBELN_T.
SELECT SINGLE LFBNR FROM MSEG
INTO EBELN_T
WHERE MBLNR = IT_CDTL-RDOC2 .
SELECT SINGLE * FROM MSEG
WHERE BWART = '106' AND
LFBNR = EBELN_T ."and
ebeln = ebeln_t.
IF SY-SUBRC = 0.
IT_OUT-DEL_IND = 'X'.
ELSE.
IT_OUT-DEL_IND = ' '.
ENDIF.
SELECT SINGLE BUDAT FROM MKPF
INTO IT_OUT-BUDAT
WHERE MBLNR = EBELN_T ."MSEG-LFBNR.
IT_OUT-EXNUM = IT_CDTL-EXNUM.
IT_OUT-EXDAT = IT_CDTL-EXDAT.
IT_OUT-EXCCD = IT_CHDR-EXCCD.
IT_OUT-EXBAS = IT_CDTL-EXBAS.
IT_OUT-EXBED = IT_CDTL-EXBED.
IT_OUT-ECS = IT_CDTL-ECS.
IT_OUT-MATNR = IT_CDTL-MATNR.
IT_OUT-MAKTX = IT_CDTL-MAKTX.
IT_OUT-CHAPID = IT_CDTL-CHAPID.
IT_OUT-MENGE = IT_CDTL-MENGE.
IT_OUT-MEINS = IT_CDTL-MEINS.
APPEND IT_OUT.
EX_NO = IT_CDTL-EXNUM.
ENDLOOP.
Title Portion
IF REGTYP_1 = 'A'.
SET TITLEBAR 'BALAJI' WITH DB_CNT.
ELSEIF REGTYP_1 = 'C'.
SET TITLEBAR 'BALAJI1' WITH DB_CNT.
ENDIF.
AFIELD-COL_POS = 1.
AFIELD-FIELDNAME = 'SERIALNO'.
AFIELD-SELTEXT_L = 'INPUTS'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 2.
AFIELD-FIELDNAME = 'TEXT1'.
AFIELD-SELTEXT_L = 'TYPE OF DOC'.
AFIELD-JUST = 'L'.
AFIELD-DECIMALS_OUT = '0'.
AFIELD-NO_ZERO = 'X'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 3.
AFIELD-FIELDNAME = 'EXNUM'.
AFIELD-SELTEXT_L = 'DOC.NO'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 4.
AFIELD-FIELDNAME = 'EXDAT'.
AFIELD-SELTEXT_L = 'DOC.DATE'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 5.
AFIELD-FIELDNAME = 'NAME'.
AFIELD-SELTEXT_L = 'NAME OF THE SUPPLIER'.
AFIELD-NO_ZERO = 'X'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 6.
AFIELD-FIELDNAME = 'DDTEXT'.
AFIELD-SELTEXT_L = 'TYPE-OF-SUPPLIER'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 7.
AFIELD-FIELDNAME = 'EXCCD'.
AFIELD-SELTEXT_L = 'ECC OF THE SUPPLIER'.
AFIELD-NO_ZERO = 'X'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 8.
AFIELD-FIELDNAME = 'BUDAT'.
AFIELD-SELTEXT_L = 'INPUT RECV DATE'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 9.
AFIELD-FIELDNAME = 'EXBAS'.
AFIELD-SELTEXT_L = 'ASSESSABLE-VALUE'.
AFIELD-DO_SUM = 'X'.
AFIELD-JUST = 'R'.
AFIELD-DECIMALS_OUT = '2'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 10.
AFIELD-FIELDNAME = 'EXBED'.
AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN CENVAT'.
AFIELD-JUST = 'R'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 11.
AFIELD-FIELDNAME = 'ECS'.
AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN E-CESS'.
AFIELD-JUST = 'R'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 12.
AFIELD-FIELDNAME = 'MATNR'.
AFIELD-SELTEXT_L = 'MATERIAL-CODE'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 13.
AFIELD-FIELDNAME = 'MAKTX'.
AFIELD-SELTEXT_L = 'DESCRIPTION'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 14.
AFIELD-FIELDNAME = 'CHAPID'.
AFIELD-SELTEXT_L = 'TARIFF-ID'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 15.
AFIELD-FIELDNAME = 'MENGE'.
AFIELD-SELTEXT_L = 'QUANTITY'.
AFIELD-JUST = 'R'.
AFIELD-DO_SUM = ' '.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 16.
AFIELD-FIELDNAME = 'MEINS'.
AFIELD-SELTEXT_L = 'UOM'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 17.
AFIELD-FIELDNAME = 'DEL_IND'.
AFIELD-SELTEXT_L = 'Deleted'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
* LAYOUT FOR ZEBRA CATLOG
LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.
LAYOUT_IN-ZEBRA = 'X'.
LAYOUT_IN-GET_SELINFOS = 'X'.
LAYOUT_IN-CONFIRMATION_PROMPT = 'X'.
LAYOUT_IN-DETAIL_POPUP = 'X' .
SORTCAT-decimals = '0'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_SAVE = G_SAVE
IS_VARIANT = GS_VARIANT
IT_FIELDCAT = FIELDCAT
IT_SORT = SORTCAT
IS_LAYOUT = LAYOUT_IN
IT_EVENTS = EVENTCAT
I_BACKGROUND_ID = g_back_ground
TABLES
T_OUTTAB = IT_OUT.
*& Form TOP_OF_PAGE_LIST_HEADER
text
-->LIST_HEADERtext
FORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER TYPE SLIS_T_LISTHEADER.
DATA : HLINE TYPE SLIS_LISTHEADER,
TEXT(60) TYPE C.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE 'ROOTS INDUSTRIES LTD' TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
SELECT SINGLE * FROM T001W WHERE WERKS = WERKS.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE 'PLANT :' TO TEXT.
WRITE WERKS TO TEXT+8.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-NAME1 TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-STRAS TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-ORT01 TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE 'DATE :' TO TEXT.
WRITE BUDAT-LOW TO TEXT+7.
IF BUDAT-HIGH NE ''.
WRITE 'TO' TO TEXT+18.
WRITE BUDAT-HIGH TO TEXT+22.
ENDIF.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
ENDFORM. "TOP_OF_PAGE_LIST_HEADER
*& Form ALV_EVENT_INIT
text
FORM ALV_EVENT_INIT .
CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
ALV_EVENT-FORM = 'ALV_TOP_OF_PAGE'.
APPEND ALV_EVENT TO EVENTCAT.
CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
ALV_EVENT-FORM = 'ALV_TOP_OF_LIST'.
APPEND ALV_EVENT TO EVENTCAT.
CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_END_OF_LIST.
ALV_EVENT-FORM = 'ALV_END_OF_LIST'.
APPEND ALV_EVENT TO GT_EVENTS.
CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_END_OF_PAGE.
ALV_EVENT-FORM = 'ALV_END_OF_PAGE'.
APPEND ALV_EVENT TO GT_EVENTS.
ENDFORM. "ALV_EVENT_INIT
*& Form ALV_TOP_OF_PAGE
text
FORM ALV_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LIST_HEADER
I_LOGO = 'ENJOYSAP_LOGO'.
ENDFORM. "ALV_TOP_OF_PAGE
*& Form BUILD_EVENT
text
-->P_GT_EVENTS[] text
FORM BUILD_EVENT USING P_EVENTS TYPE SLIS_T_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO
ALV_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_USER_COMMAND TO ALV_EVENT-FORM.
APPEND ALV_EVENT TO P_EVENTS.
ENDIF.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT INTO
ALV_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_BEFORE_OUTPUT TO ALV_EVENT-FORM.
APPEND ALV_EVENT TO P_EVENTS.
ENDIF.
ENDFORM. " BUILD_EVENT
this wud help u -
Email ALV report to a distribution list
Hi all,
I have scheduled an alv report (uses ALV Grid) to run in the background using SM36.I put the spool list to be delivered to a set of people whose addresses are in the distribution list. The mails are being received by the users. But the problem is : <b>There are around 20 columns in the report but only info upto 15 columns are being sent as a PDF. There is no problem with the number of rows being sent. It's only the width of the report has been shortened. Can anyone help me out with this please, it is a urgent requirement.</b>
SatishHello,
In general I'd recommend you should always use a full address for your email recipients. Your mail server should handle a fully qualified address even for local delivery, however by using the fully qualified version you protect yourself from any configuration changes on the mail server that would stop local addressing working.
Just my thoughts.
John.
http://jes.blogs.shellprompt.net
http://apex-evangelists.com -
Hello everyone,
I have an ALV report with a radiobutton in the selection screen. This radiobutton has 4 options(for example): Office A, Office B, Office C, Office D.
When i choose Office C, the ALV will report data concerning only to this Office (all fields in the table are common to all Offices).
But besides this, i would like to check at the beginning if the user trying to access the ALV report is from Office A,B, C or D. If he is from Office B, he should only have access to ALV with radiobutton chosen to Office B.
Can anyone help me with a suggestion ?
I read something about authorization groups. Is this an option here ?Here is a sample code with similar functionality... Using this to develop your logic....
Type pools Declaration..............................................*
TYPE-POOLS SLIS. " Global types
Range tables........................................................*
RANGES R_LIFEX FOR LIKP-LIFEX. " External Identification of
" Delivery note
selection screen elememts...........................................*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-009.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:
P_OPEN RADIOBUTTON GROUP R1 DEFAULT 'X'.
" Open orders
SELECTION-SCREEN COMMENT (20) TEXT-001 FOR FIELD P_OPEN.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS:
P_PREPAY RADIOBUTTON GROUP R1. " Prepay orders
SELECTION-SCREEN COMMENT (20) TEXT-002 FOR FIELD P_PREPAY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
Constants variables.................................................*
CONSTANTS:
C_L TYPE C VALUE 'L', " SD document object
C_J TYPE C VALUE 'J', " SD document category
C_A TYPE C VALUE 'A', " Status of Not yet processed
C_B TYPE C VALUE 'B', " Status of Partially processed
C_LF(2) TYPE C VALUE 'LF', " Delivery Type
C_E TYPE C VALUE 'E', " Language
C_TON(3) TYPE C VALUE 'TON', " Material unit
C_TO(2) TYPE C VALUE 'TO', " Material unit
C_X TYPE C VALUE 'X', " Parameter value
C_I TYPE C VALUE 'I', " Sign
C_CP(2) TYPE C VALUE 'CP', " Option
C_PP1(3) TYPE C VALUE 'PP*', " Prepay order
C_PP2(3) TYPE C VALUE 'pP*', " Prepay order
C_PP3(3) TYPE C VALUE 'pp*', " Prepay order
C_PP4(3) TYPE C VALUE 'Pp*', " Prepay order
C_0 TYPE C VALUE '0', " Zero
C_UREA(40) TYPE C VALUE 'UREA(GRANULAR)',
" Material name
C_30%(3) TYPE C VALUE '30%', " Material name
C_32%(3) TYPE C VALUE '32%', " Material name
C_28%(3) TYPE C VALUE '28%', " Material name
C_NH3(3) TYPE C VALUE 'NH3', " Material name
C_AN(3) TYPE C VALUE 'AN', " Material name
C_UAN(3) TYPE C VALUE 'UAN', " Material name
C_30(2) TYPE C VALUE '30', " Output length
C_20(2) TYPE C VALUE '20', " Output length
C_1_102311 TYPE P DECIMALS 6 VALUE '1.102311',
" Conversion factor
Begin of Deletion CS1K931253
C_METHANOL(40) TYPE C VALUE 'METHANOL',
" Material name
End of Deletion CS1K931253
C_TOP_OF_PAGE(15) TYPE C VALUE 'TOP_OF_PAGE',
" Top of page event
C_BEFORE_LINE_OUTPUT(25) TYPE C VALUE 'BEFORE_LINE_OUTPUT',
" Before line output event
C_END_OF_LIST(15) TYPE C VALUE 'END_OF_LIST',
" End of list
Begin of Insertion CS1K931253
C_OPEN(4) TYPE C VALUE 'OPEN',
" Open orders
C_PREPAY(6) TYPE C VALUE 'PREPAY'.
" Prepay orders
End of Insertion CS1K931253
Working Variable declarations *
DATA:
W_NUMBER TYPE I, " Plant number
W_INDEX TYPE SY-TABIX VALUE '1', " Table Index
W_MATNR TYPE LIPS-MATNR, " Material Number
Begin of Deletion - CS1K931253
W_LFIMG TYPE LIPS-LFIMG, " Actual quantity delivered
W_TOTAL32 TYPE LIPS-LFIMG, " Actual quantity delivered
End of Deletion - CS1K931253
W_LFIMG TYPE P DECIMALS 3, " Actual quantity delivered
W_TOTAL32 TYPE P DECIMALS 3, " Actual quantity delivered
W_INCR TYPE I VALUE 5, " Increment variable
W_PRDCT(40) TYPE C, " Product Name
Field string Declarations *
*Field string to hold open delivery quantities
BEGIN OF FS_OPEN_DEL,
VTEXT TYPE TVSTT-VTEXT, " Plant name
MAT_NUM TYPE I, " Plant Number
PRDCT(40) TYPE C, " Product Name
QTYA TYPE LIPS-LFIMG, " Quantity moved by Truck
QTYB TYPE LIPS-LFIMG, " Quantity moved by Rail
QTYC TYPE LIPS-LFIMG, " Quantity moved by Barge
QTYD TYPE LIPS-LFIMG, " Quantity moved by Pipe
QTYE TYPE LIPS-LFIMG, " Quantity moved by Vessel
QTYT TYPE LIPS-LFIMG, " Total Quantity moved
QTYG TYPE LIPS-LFIMG, " Quantity moved by
VRKME TYPE LIPS-VRKME, " Sales unit
END OF FS_OPEN_DEL,
*Field string to hold open deliveries
BEGIN OF FS_LIKPUK,
VBELN TYPE LIKP-VBELN, " Delivery
END OF FS_LIKPUK,
*Field string to hold Ship point description
BEGIN OF FS_TVSTT,
VSTEL TYPE LIKP-VSTEL, " Plant
VTEXT TYPE TVSTT-VTEXT, " Plant Name
END OF FS_TVSTT,
*Field string to hold delivery item documents data
BEGIN OF FS_LIPS,
VBELN TYPE LIKP-VBELN, " Delivery
POSNR TYPE LIPS-POSNR, " Item
MATNR TYPE LIPS-MATNR, " Material Number
LFIMG TYPE LIPS-LFIMG, " Quantity delivered
VRKME TYPE LIPS-VRKME, " Sales unit
END OF FS_LIPS,
*Field string to hold delivery header documents data
BEGIN OF FS_LIKP,
VBELN TYPE LIKP-VBELN, " Delivery
VSTEL TYPE LIKP-VSTEL, " Plant
VSBED TYPE LIKP-VSBED, " Shipping Condition
END OF FS_LIKP,
Field string to hold Plants and its delivered quantities
BEGIN OF FS_DEL_QUAN,
PRODNAME(40), " Product Name
VTEXT TYPE TVSTT-VTEXT, " Plant
VSBED TYPE LIKP-VSBED, " Shipping Condition
LFIMG TYPE LIPS-LFIMG, " Delivered quantity
VRKME TYPE LIPS-VRKME, " Sales unit
END OF FS_DEL_QUAN,
Field String to hold material text
BEGIN OF FS_MAKT,
MATNR TYPE MAKT-MATNR, " Material Number
MAKTX TYPE MAKT-MAKTX, " Material text
END OF FS_MAKT,
FS_FIELDCAT TYPE LINE OF SLIS_T_FIELDCAT_ALV,
FS_EVENTS TYPE LINE OF SLIS_T_EVENT.
Internal Table Declarations *
DATA:
Table to hold open delivery quantities
T_OPEN_DEL LIKE STANDARD TABLE
OF FS_OPEN_DEL,
Table to hold open deliveries
T_LIKPUK LIKE STANDARD TABLE
OF FS_LIKPUK,
Table to hold Ship point description
T_TVSTT LIKE STANDARD TABLE
OF FS_TVSTT,
Table to hold delivery item documents data
T_LIPS LIKE STANDARD TABLE
OF FS_LIPS,
Table to hold delivery item documents data
T_LIPS2 LIKE STANDARD TABLE
OF FS_LIPS,
Table to hold delivery header documents data
T_LIKP LIKE STANDARD TABLE
OF FS_LIKP,
Table to hold delivery header documents data
T_LIKP2 LIKE STANDARD TABLE
OF FS_LIKP,
Table to hold Plants and its delivered quantities
T_DEL_QUAN LIKE STANDARD TABLE
OF FS_DEL_QUAN,
Table to hold Material text
T_MAKTX LIKE STANDARD TABLE
OF FS_MAKT,
Field catalog...
T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
Events...
T_EVENTS TYPE SLIS_T_EVENT.
START-OF-SELECTION *
START-OF-SELECTION.
Retrives Open deliveries
PERFORM GET_DELS.
Retrives Open delivery data
PERFORM GET_ORDER_DATA.
Retrives Delivery item data
PERFORM GET_ITEM_DATA.
Gets Plant description
PERFORM GET_SHIPPOINT_TEXT.
Fetch Material description.
PERFORM GET_MATTEXT.
Connects Plant and products delivered by it
PERFORM CONNECT_PLANT_PRODUCT_DATA.
Sums up quantities based on Shipping condition
PERFORM COLLECT_DATA_BY_SHIPTYPE.
Changing UAN 28% to UAN 32%
PERFORM CHANGE_UAN.
END-OF-SELECTION *
END-OF-SELECTION.
Displays the data
PERFORM DISPLAY_DATA.
Form GET_DELS
This subroutine gets all open deliveries
No Parameter interface
FORM GET_DELS.
*Get all open deliveries
SELECT VBELN " Delivery
APPENDING TABLE T_LIKPUK
FROM VBUK
PACKAGE SIZE 5000
WHERE ( WBSTK = C_A OR WBSTK = C_B )
AND VBTYP = C_J
AND VBOBJ = C_L.
ENDSELECT.
IF SY-SUBRC NE 0.
MESSAGE I280(LF).
STOP.
ENDIF. " IF SY-SUBRC NE 0.
ENDFORM. " GET_DELS
Form GET_ORDER_DATA
This subroutine gets delivery header data
No Parameter interface
FORM GET_ORDER_DATA .
IF P_PREPAY EQ C_X.
Fill the Pattern required as pp, any case.
REFRESH R_LIFEX.
R_LIFEX-SIGN = C_I.
R_LIFEX-OPTION = C_CP.
R_LIFEX-LOW = C_PP1.
APPEND R_LIFEX.
R_LIFEX-LOW = C_PP2.
APPEND R_LIFEX.
R_LIFEX-LOW = C_PP3.
APPEND R_LIFEX.
R_LIFEX-LOW = C_PP4.
APPEND R_LIFEX.
Get delivery information.
IF T_LIKPUK IS NOT INITIAL.
SELECT VBELN " Delivery
VSTEL " Plant
VSBED " Shipping condition
FROM LIKP
INTO TABLE T_LIKP
FOR ALL ENTRIES IN T_LIKPUK
WHERE VBELN = T_LIKPUK-VBELN
AND LFART = C_LF
AND LIFEX IN R_LIFEX
AND LIFSK EQ SPACE.
IF SY-SUBRC NE 0.
MESSAGE I280(LF).
STOP.
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF T_LIKPUK IS NOT INITIAL
ELSE.
IF T_LIKPUK IS NOT INITIAL.
SELECT VBELN " Delivery
VSTEL " Plant
VSBED " Shipping condition
FROM LIKP
INTO TABLE T_LIKP
FOR ALL ENTRIES IN T_LIKPUK
WHERE VBELN = T_LIKPUK-VBELN
AND LFART = C_LF
AND LIFSK EQ SPACE.
IF SY-SUBRC NE 0.
MESSAGE I280(LF).
STOP.
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF T_LIKPUK IS NOT INITIAL
ENDIF. " IF P_PREPAY EQ C_X.
T_LIKP2 = T_LIKP.
REFRESH T_LIKPUK.
ENDFORM. " GET_ORDER_DATA
Form GET_ITEM_DATA
This subroutine gets delivery item data
No Parameter interface
FORM GET_ITEM_DATA .
Get delivery item information.
IF T_LIKP IS NOT INITIAL.
SELECT VBELN " Delivery
POSNR " Item
MATNR " Material Number
LFIMG " Delivered Quantity
VRKME " Sales Unit
FROM LIPS
INTO TABLE T_LIPS
FOR ALL ENTRIES IN T_LIKP
WHERE VBELN = T_LIKP-VBELN
AND LFIMG NE 0.
IF SY-SUBRC NE 0.
STOP.
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF T_LIKP IS NOT INITIAL.
Begin of Insertion CS1K931253
SORT T_LIPS BY VBELN POSNR.
DELETE ADJACENT DUPLICATES FROM T_LIPS COMPARING VBELN.
End of Insertion CS1K931253
T_LIPS2 = T_LIPS.
ENDFORM. " GET_ITEM_DATA
Form GET_SHIPPOINT_TEXT
This subroutine gets Shipping point text
No Parameter interface
FORM GET_SHIPPOINT_TEXT .
Retrieve Shipping point texts, for unique shipping points.
SORT T_LIKP2 BY VSTEL.
DELETE ADJACENT DUPLICATES FROM T_LIKP2 COMPARING VSTEL.
IF T_LIKP2 IS NOT INITIAL.
SELECT VSTEL " Plant
VTEXT " Plant description
FROM TVSTT
INTO TABLE T_TVSTT
FOR ALL ENTRIES IN T_LIKP2
WHERE SPRAS = C_E
AND VSTEL = T_LIKP2-VSTEL.
IF SY-SUBRC NE 0.
Sy-subrc check not required
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF T_LIKP2 IS NOT INITIAL.
ENDFORM. " GET_SHIPPOINT_TEXT
*& Form GET_MATTEXT
This subroutine fetches Material description
No Parameter interface
FORM GET_MATTEXT .
SORT T_LIPS2 BY MATNR.
DELETE ADJACENT DUPLICATES FROM T_LIPS2 COMPARING MATNR.
Fetch Matrial text
IF T_LIPS2 IS NOT INITIAL.
SELECT MATNR " Material Number
MAKTX " Material text
INTO TABLE T_MAKTX
FROM MAKT
FOR ALL ENTRIES IN T_LIPS2
WHERE MATNR EQ T_LIPS2-MATNR
Begin of insertion CS1K931253
AND MATNR NE '000000000000030014'
End of insertion CS1K931253
AND SPRAS = SY-LANGU.
IF SY-SUBRC NE 0.
Sy-subrc check not required
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF T_LIPS2 IS NOT INITIAL.
ENDFORM. " GET_MATTEXT
Form CONNECT_PLANT_PRODUCT_DATA
This subroutine Connects Plant and quantity delivered by it
No Parameter interface
FORM CONNECT_PLANT_PRODUCT_DATA.
SORT T_LIKP BY VBELN.
SORT T_TVSTT BY VSTEL.
SORT T_MAKTX BY MATNR.
LOOP AT T_LIPS INTO FS_LIPS.
Getting Plant Name
READ TABLE T_LIKP INTO FS_LIKP WITH KEY VBELN = FS_LIPS-VBELN
BINARY SEARCH.
IF SY-SUBRC EQ 0.
READ TABLE T_TVSTT INTO FS_TVSTT WITH KEY VSTEL = FS_LIKP-VSTEL
BINARY SEARCH.
IF SY-SUBRC EQ 0.
FS_DEL_QUAN-VTEXT = FS_TVSTT-VTEXT.
ENDIF. " IF SY-SUBRC EQ 0
ENDIF. " IF SY-SUBRC EQ 0
Getting Ship Type.
FS_DEL_QUAN-VSBED = FS_LIKP-VSBED.
Getting Quantity.
IF FS_LIPS-VRKME EQ C_TO.
Begin of Deletion - CS1K931174
PERFORM CONVERT_UNIT.
End of Deletion - CS1K931174
Begin of Insertion - CS1K931174
FS_DEL_QUAN-VRKME = C_TON.
FS_DEL_QUAN-LFIMG = FS_LIPS-LFIMG * C_1_102311.
End of Insertion - CS1K931174
ELSE.
FS_DEL_QUAN-LFIMG = FS_LIPS-LFIMG.
FS_DEL_QUAN-VRKME = FS_LIPS-VRKME.
ENDIF. " IF FS_LIPS-VRKME EQ C_TO
Getting Product Name
W_MATNR = FS_LIPS-MATNR.
SHIFT W_MATNR LEFT DELETING LEADING C_0.
CASE W_MATNR.
Begin of Deletion - CS1K931174
WHEN '10023'.
FS_DEL_QUAN-PRODNAME = C_METHANOL.
End of Deletion - CS1K931174
WHEN '10024'.
FS_DEL_QUAN-PRODNAME = C_UREA.
WHEN '10026'.
FS_DEL_QUAN-PRODNAME = C_30%.
WHEN '10027'.
FS_DEL_QUAN-PRODNAME = C_32%.
WHEN '10030'.
FS_DEL_QUAN-PRODNAME = C_NH3.
WHEN '10031'.
FS_DEL_QUAN-PRODNAME = C_28%.
WHEN '36052'.
FS_DEL_QUAN-PRODNAME = C_AN.
WHEN OTHERS.
READ TABLE T_MAKTX INTO FS_MAKT WITH KEY MATNR = FS_LIPS-MATNR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
FS_DEL_QUAN-PRODNAME = W_MATNR.
ENDIF. " IF SY-SUBRC NE 0
ENDCASE. " CASE FS_MATNR
Begin of Insertion - CS1K931174
IF W_MATNR NE '10023'.
End of Insertion - CS1K931174
APPEND FS_DEL_QUAN TO T_DEL_QUAN.
Begin of Insertion - CS1K931174
ENDIF. " IF W_MATNR NE '10023'.
End of Insertion - CS1K931174
CLEAR:
FS_DEL_QUAN,
FS_LIKP,
FS_LIPS,
FS_TVSTT,
FS_MAKT.
ENDLOOP. " LOOP AT T_LIPS INTO FS_LIPS
REFRESH:
T_LIKP,
T_LIPS.
CLEAR:
FS_LIKP,
FS_LIPS.
ENDFORM. " CONNECT_PLANT_PRODUCT_DATA
Form COLLECT_DATA_BY_SHIPTYPE
This subroutine adds quantity based on shipping condition
No Parameter interface
FORM COLLECT_DATA_BY_SHIPTYPE .
SORT T_DEL_QUAN BY PRODNAME VTEXT VSBED.
LOOP AT T_DEL_QUAN INTO FS_DEL_QUAN.
Adding delivered quantites based on Shiiping condition
CASE FS_DEL_QUAN-VSBED.
WHEN '01'.
FS_OPEN_DEL-QTYA = FS_OPEN_DEL-QTYA + FS_DEL_QUAN-LFIMG.
WHEN '02'.
FS_OPEN_DEL-QTYB = FS_OPEN_DEL-QTYB + FS_DEL_QUAN-LFIMG.
WHEN '03'.
FS_OPEN_DEL-QTYC = FS_OPEN_DEL-QTYC + FS_DEL_QUAN-LFIMG.
WHEN '04'.
FS_OPEN_DEL-QTYD = FS_OPEN_DEL-QTYD + FS_DEL_QUAN-LFIMG.
WHEN '05'.
FS_OPEN_DEL-QTYE = FS_OPEN_DEL-QTYE + FS_DEL_QUAN-LFIMG.
ENDCASE. " CASE FS_DEL_QUAN-VSBED
FS_OPEN_DEL-VRKME = FS_DEL_QUAN-VRKME.
AT END OF VTEXT.
FS_OPEN_DEL-VTEXT = FS_DEL_QUAN-VTEXT.
FS_OPEN_DEL-PRDCT = FS_DEL_QUAN-PRODNAME.
FS_OPEN_DEL-QTYT = FS_OPEN_DEL-QTYA + FS_OPEN_DEL-QTYB +
FS_OPEN_DEL-QTYC + FS_OPEN_DEL-QTYD +
FS_OPEN_DEL-QTYE.
CASE FS_OPEN_DEL-PRDCT.
Begin of Deletion - CS1K931174
WHEN C_METHANOL.
FS_OPEN_DEL-MAT_NUM = 1.
End of Deletion - CS1K931174
WHEN C_UREA.
FS_OPEN_DEL-MAT_NUM = 2.
WHEN C_30%.
FS_OPEN_DEL-MAT_NUM = 3.
WHEN C_32%.
FS_OPEN_DEL-MAT_NUM = 3.
WHEN C_28%.
FS_OPEN_DEL-MAT_NUM = 3.
WHEN C_NH3.
FS_OPEN_DEL-MAT_NUM = 4.
WHEN C_AN.
FS_OPEN_DEL-MAT_NUM = 5.
WHEN OTHERS.
IF FS_OPEN_DEL-PRDCT NE W_PRDCT.
W_INCR = W_INCR + 1.
ENDIF. " IF FS_OPEN_DEL-PRDCT...
W_PRDCT = FS_OPEN_DEL-PRDCT.
FS_OPEN_DEL-MAT_NUM = W_INCR.
ENDCASE. " CASE FS_OPEN_DEL-PRDCT
APPEND FS_OPEN_DEL TO T_OPEN_DEL.
CLEAR FS_OPEN_DEL.
ENDAT. " AT END OF VTEXT.
ENDLOOP. " LOOP AT T_DEL_QUAN INTO ...
REFRESH T_DEL_QUAN.
ENDFORM. " COLLECT_DATA_BY_SHIPTYPE
Form CHANGE_UAN
This subroutine to convert 28%UAN to 32%UAN
No Parameter interface
FORM CHANGE_UAN .
DATA LFS_OPEN_DEL2 LIKE FS_OPEN_DEL.
SORT T_OPEN_DEL BY VTEXT PRDCT.
Converting 28% UAN to 32% UAN
LOOP AT T_OPEN_DEL INTO FS_OPEN_DEL.
IF FS_OPEN_DEL-MAT_NUM = 3.
CASE FS_OPEN_DEL-PRDCT.
WHEN C_32%.
READ TABLE T_OPEN_DEL INTO LFS_OPEN_DEL2 WITH KEY
VTEXT = FS_OPEN_DEL-VTEXT
PRDCT = C_28% BINARY SEARCH.
IF SY-SUBRC EQ 0.
FS_OPEN_DEL-QTYG = FS_OPEN_DEL-QTYT + ( LFS_OPEN_DEL2-QTYT
( 875 / 1000 ) ).
ELSE.
FS_OPEN_DEL-QTYG = FS_OPEN_DEL-QTYT.
ENDIF. " IF SY-SUBRC EQ 0 .
W_TOTAL32 = W_TOTAL32 + FS_OPEN_DEL-QTYG.
MODIFY TABLE T_OPEN_DEL FROM FS_OPEN_DEL TRANSPORTING QTYG.
WHEN C_28%.
READ TABLE T_OPEN_DEL INTO LFS_OPEN_DEL2 WITH KEY
VTEXT = FS_OPEN_DEL-VTEXT
PRDCT = C_32% BINARY SEARCH.
IF SY-SUBRC NE 0.
FS_OPEN_DEL-QTYG = ( FS_OPEN_DEL-QTYT * ( 875 / 1000 ) ).
W_TOTAL32 = W_TOTAL32 + FS_OPEN_DEL-QTYG.
MODIFY TABLE T_OPEN_DEL FROM FS_OPEN_DEL TRANSPORTING QTYG.
ENDIF. " IF SY-SUBRC NE 0.
WHEN C_30%.
FS_OPEN_DEL-QTYG = ( FS_OPEN_DEL-QTYT * ( 9375 / 10000 ) ).
W_TOTAL32 = W_TOTAL32 + FS_OPEN_DEL-QTYG.
MODIFY TABLE T_OPEN_DEL FROM FS_OPEN_DEL TRANSPORTING QTYG.
ENDCASE. " CASE FS_OPEN_DEL-PRDCT
ENDIF. " IF FS_OPEN_DEL-MAT_NUM = 3
ENDLOOP. " LOOP AT T_OPEN_DEL INTO WA...
ENDFORM. " CHANGE_UAN
Form DISPLAY_DATA
This subroutine displays data
No Parameter interface
FORM DISPLAY_DATA.
IF T_OPEN_DEL IS NOT INITIAL.
Adding events to table T_EVENTS
PERFORM ADD_EVENTS.
Generating Fieldcatlog
PERFORM ADD_FIELDCATLOG.
SORT T_OPEN_DEL BY MAT_NUM VTEXT PRDCT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = T_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = T_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
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_OPEN_DEL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF T_OPEN_DEL IS NOT INITIAL.
ENDFORM. " DISPLAY_DATA
FORM TOP_OF_PAGE.
This subroutine displays product name in top of page
No Parameter interface
FORM TOP_OF_PAGE.
CLEAR FS_OPEN_DEL.
READ TABLE T_OPEN_DEL INDEX W_INDEX INTO FS_OPEN_DEL.
IF SY-SUBRC EQ 0.
Display Product name in Top of page.
IF FS_OPEN_DEL-PRDCT EQ C_28% OR
FS_OPEN_DEL-PRDCT EQ C_32%.
FS_OPEN_DEL-PRDCT = C_UAN.
ENDIF. " IF FS_OPEN_DEL-PRDCT EQ C_28..
ENDIF. " IF SY-SUBRC EQ 0
Begin of Deletion - CS1K931253
WRITE:
40 'OPEN'(003),
FS_OPEN_DEL-PRDCT.
Begin of Deletion - CS1K931253
Begin of Insertion - CS1K931253
IF P_OPEN EQ 'X'.
WRITE:
40 C_OPEN,
FS_OPEN_DEL-PRDCT.
ELSE.
WRITE:
40 C_PREPAY,
FS_OPEN_DEL-PRDCT.
ENDIF. " IF P_OPEN EQ 'X'
Begin of Insertion - CS1K931253
ENDFORM. " TOP_OF_PAGE
FORM BEFORE_LINE_OUTPUT
This subroutine displays total quantity for each product
No Parameter interface
FORM BEFORE_LINE_OUTPUT USING RS_LINEINFO TYPE SLIS_LINEINFO.
CLEAR FS_OPEN_DEL.
READ TABLE T_OPEN_DEL INDEX RS_LINEINFO-TABINDEX INTO FS_OPEN_DEL.
Calculating Total quantity delivered based for each product
IF FS_OPEN_DEL-MAT_NUM NE W_NUMBER AND
RS_LINEINFO-TABINDEX NE 1.
W_INDEX = RS_LINEINFO-TABINDEX.
ULINE.
Begin of Deletion - CS1K931253
WRITE:'Total quantity delivered:'(004),
W_LFIMG UNIT FS_OPEN_DEL-VRKME .
End of Deletion - CS1K931253
Begin of Insertion - CS1K931253
WRITE:'Total quantity delivered:'(004),
W_LFIMG.
End of Insertion - CS1K931253
IF W_NUMBER EQ '3'.
Begin of Deletion - CS1K931253
WRITE:/ 'Total 32%:'(005),
W_TOTAL32 UNIT FS_OPEN_DEL-VRKME .
End of Deletion - CS1K931253
Begin of Insertion - CS1K931253
WRITE:/ 'Total 32%:'(005),
W_TOTAL32.
End of Insertion - CS1K931253
ENDIF. " IF FS_NUMBER EQ '3'.
NEW-PAGE.
CLEAR W_LFIMG.
ENDIF. " FS_OPEN_DEL-MAT_NUM NE...
W_NUMBER = FS_OPEN_DEL-MAT_NUM.
W_LFIMG = W_LFIMG + FS_OPEN_DEL-QTYT.
ENDFORM. " BEFORE_LINE_OUTPUT
FORM END_OF_LIST.
This subroutine to display End of List
No Parameter interface
FORM END_OF_LIST.
FORMAT COLOR 2.
Begin of Deletion - CS1K931253
WRITE: /'Total quantity delivered:'(004),
W_LFIMG UNIT FS_OPEN_DEL-VRKME .
End of Deletion - CS1K931253
Begin of Insertion - CS1K931253
WRITE: /'Total quantity delivered:'(004),
W_LFIMG.
End of Insertion - CS1K931253
FORMAT COLOR OFF.
ENDFORM. " END_OF_LIST
Form ADD_EVENTS
This subroutine to append events to ALV
No Parameter interface
FORM ADD_EVENTS.
CLEAR FS_EVENTS.
FS_EVENTS-NAME = C_TOP_OF_PAGE.
FS_EVENTS-FORM = C_TOP_OF_PAGE.
APPEND FS_EVENTS TO T_EVENTS.
CLEAR FS_EVENTS.
FS_EVENTS-NAME = C_BEFORE_LINE_OUTPUT.
FS_EVENTS-FORM = C_BEFORE_LINE_OUTPUT.
APPEND FS_EVENTS TO T_EVENTS.
CLEAR FS_EVENTS.
FS_EVENTS-NAME = C_END_OF_LIST.
FS_EVENTS-FORM = C_END_OF_LIST.
APPEND FS_EVENTS TO T_EVENTS.
ENDFORM. " ADD_EVENTS
Form ADD_FIELDCATLOG
This subroutine to append fields to field catlog
No Parameter interface
FORM ADD_FIELDCATLOG.
FS_FIELDCAT-FIELDNAME = 'VTEXT'(006).
FS_FIELDCAT-SELTEXT_L = 'PLANT'(007).
FS_FIELDCAT-OUTPUTLEN = C_30.
FS_FIELDCAT-SELTEXT_M = 'PLANT'(007).
FS_FIELDCAT-SELTEXT_S = 'PLANT'(007).
FS_FIELDCAT-KEY = 'X'.
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'PRDCT'(008).
FS_FIELDCAT-SELTEXT_L = 'PRODUCT'(009).
FS_FIELDCAT-SELTEXT_M = 'PRODUCT'(009).
FS_FIELDCAT-SELTEXT_S = 'PRODUCT'(009).
FS_FIELDCAT-OUTPUTLEN = C_20.
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'QTYA'(010).
FS_FIELDCAT-SELTEXT_L = 'TRUCK'(011).
FS_FIELDCAT-SELTEXT_M = 'TRUCK'(011).
FS_FIELDCAT-SELTEXT_S = 'TRUCK'(011).
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'QTYB'(012).
FS_FIELDCAT-SELTEXT_L = 'RAIL'(013).
FS_FIELDCAT-SELTEXT_M = 'RAIL'(013).
FS_FIELDCAT-SELTEXT_S = 'RAIL'(013).
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'QTYC'(014).
FS_FIELDCAT-SELTEXT_L = 'BARGE'(015).
FS_FIELDCAT-SELTEXT_M = 'BARGE'(015).
FS_FIELDCAT-SELTEXT_S = 'BARGE'(015).
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'QTYD'(016).
FS_FIELDCAT-SELTEXT_L = 'PIPE'(017).
FS_FIELDCAT-SELTEXT_M = 'PIPE'(017).
FS_FIELDCAT-SELTEXT_S = 'PIPE'(017).
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'QTYE'(018).
FS_FIELDCAT-SELTEXT_L = 'VESSEL'(019).
FS_FIELDCAT-SELTEXT_M = 'VESSEL'(019).
FS_FIELDCAT-SELTEXT_S = 'VESSEL'(019).
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'QTYT'(020).
FS_FIELDCAT-SELTEXT_L = 'TOTAL'(021).
FS_FIELDCAT-SELTEXT_M = 'TOTAL'(021).
FS_FIELDCAT-SELTEXT_S = 'TOTAL'(021).
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'QTYG'(022).
FS_FIELDCAT-SELTEXT_L = '32%TOTAL'(023).
FS_FIELDCAT-SELTEXT_M = '32%TOTAL'(023).
FS_FIELDCAT-SELTEXT_S = '32%TOTAL'(023).
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'VRKME'(024).
FS_FIELDCAT-SELTEXT_L = 'UNITS'(025).
FS_FIELDCAT-SELTEXT_M = 'UNITS'(025).
FS_FIELDCAT-SELTEXT_S = 'UNITS'(025).
APPEND FS_FIELDCAT TO T_FIELDCAT.
CLEAR FS_FIELDCAT.
ENDFORM. " ADD_FIELDCATLOG
Regards,
Pavan
Maybe you are looking for
-
Using Mac OSX10.6.7 and FF 4.0.1, I'm having a problem with the preference to always show the tab bar. I want it to always show. I check this in the Preferences under the "tab" window, and everything is fine until I quit FF and when I restart FF the
-
Power Mac G5 Shuts Down When Waking From Sleep
I picked up a Power Mac G5 for a song at work. It had OS X Tiger 10.4.11, 1 GB RAM and 160 GB HDD, I've since upgraded the RAM to 2 GB, the HDD to 1 TB, and installed OS X Leopard 10.5 from an install disk I had bought when it first came out, and t
-
Procedure that just won't work (newbie)
CREATE OR REPLACE PROCEDURE NODB_LOAD AS -------------Declare neede variables--------- t_schedule_number; t_month; t_year; prev_schedule_number; differencetable = Dt; rowcount = 0; DECLARE TYPE nodb_cur IS REF CURSOR RETURN joltsdata%ROWTYPE BEGIN OP
-
Drill through report performance
i have a simple drill through report based on one parameter (indexed) that runs sub-second in SSMS but through SSRS it takes more like 10+ seconds. Occasionally, it seems like first time running, it takes a second or two which is more like what I exp
-
Does anybody know of a way to import existing tables from a database into an OWB dimension? We have an existing datawarehouse, I am trying to re-use the time dimension that is already created and in use, but do not see a way to import a dimension.