Need Authorization Oject for a LE report
I have a Z report which is launched by a Ztcode and fetches all the information of packed items delivered by a vendor at a particular plant... providing supplier packinginformation(handling units) to upload to a local label system to print label for some products due to local country legal requirements. Data to be provided after launching Ztcode:
Purchase Order : <> to <>
Purchase Order Item : <> to <>
Purchase Order Creation Date : <> to <>
Material Number : <> to <>
Purchasing group : <> to <>
Handling Unit Number : <> to <>
Inbound Delivery Number : <> to <>
Inbound Delivery Item : <> to <>
Inbound Delivery Creation Date: <> to <>
Vendor Code : <> to <>
Plant : <> to <>
Delivery Type : <> to <>
Now I want to add an authority check for the Ztcode for the field "plant" while executing the report for a spedific duration.
Please provide the solution.
Edited by: santoshkc on Nov 10, 2011 11:43 AM
Thanks York.. I will check this and let you know.
Similar Messages
-
Need standrad program for vendor aging report
Hi
Need standrad program for vendor aging report.
Please reply me only standrad programs.
Point are sure.
Regards,
kumarHi Pankaj
sorry to say that this is not my required program.
I need vendor aging report like s_alr_87012178 tc leads to customer aging report.
Thanks for your effort.
points are awarded.
Regards,
kumar -
Need Authorization Object for SE11
Dear All,
I have created role in PFCG and created user in su01.
I need authorization object for se11 and sm30.
With Regards,
BaskaranHi,
For the Authorization Object for any Tcode goto SE93 Enter the Tcode and press display
S_DEVELOP
Cheers
Ram -
Needed sample program for emailing the report output
hi all,
neede sample program for emailing the report outputHi,
Please refer this program for sending e-mail with attachment.
***INCLUDE ZHZLPP_CLZSN_DAILY_MIS_PRINT .
*& Form print
* text
* --> p1 text
* <-- p2 text
FORM print .
DATA: wa_output_options TYPE ssfcompop,
wa_control_parameters TYPE ssfctrlop,
t_otfdata TYPE ssfcrescl,
t_pdf_tab TYPE TABLE OF tline WITH HEADER LINE.
DATA: t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE.
DATA: w_filesize TYPE i.
DATA: w_bin_filesize TYPE i.
DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
i_tline TYPE TABLE OF tline WITH HEADER LINE,
v_form_name TYPE rs38l_fnam,
v_len_in LIKE sood-objlen,
w_return TYPE ssfcrescl.
DATA : l_mean TYPE p DECIMALS 2,
l_mean1 TYPE p DECIMALS 2,
l_mean2 TYPE p DECIMALS 2,
l_mean3 TYPE p DECIMALS 4,
temp TYPE p DECIMALS 2,
v_header LIKE zmisdisp3-remark,
disp_d_kwh_mt TYPE zmisdisp5,
disp_m_kwh_mt TYPE zmisdisp5,
disp_d_mt_mw TYPE zmisdisp5,
disp_m_mt_mw TYPE zmisdisp5,
l_bptarget(16) TYPE p DECIMALS 2,
l_act_d(16) TYPE p DECIMALS 2,
l_act_c(16) TYPE p DECIMALS 2,
l_pow_gen TYPE p DECIMALS 2,
l_pow_gen_d TYPE p DECIMALS 2,
l_pow_gen_c TYPE p DECIMALS 2,
l_no_of_days TYPE p,
disp_bptarget TYPE zmisdisp5,
disp_act_d TYPE zmisdisp5,
disp_act_c TYPE zmisdisp5,
disp_d_kwh TYPE zmisdisp5,
disp_c_kwh TYPE zmisdisp5,
disp_d_mw TYPE zmisdisp5,
disp_c_mw TYPE zmisdisp5,
disp_pow_gen_d TYPE zmisdisp5,
disp_pow_gen_c TYPE zmisdisp5,
disp_pow_gen TYPE zmisdisp5,
disp_ftd_h1 TYPE zmisdisp5,
disp_ftd_h2 TYPE zmisdisp5,
disp_ftd_h3 TYPE zmisdisp5,
disp_ftd_h4 TYPE zmisdisp5,
disp_ftd_h5 TYPE zmisdisp5,
disp_ftd_o1 TYPE zmisdisp5,
disp_ftd_o2 TYPE zmisdisp5,
disp_ftd_o4 TYPE zmisdisp5,
disp_ftd_o5 TYPE zmisdisp5,
disp_***_o1 TYPE zmisdisp5,
disp_***_o2 TYPE zmisdisp5,
disp_***_o4 TYPE zmisdisp5,
disp_***_o5 TYPE zmisdisp5,
disp_cath_d TYPE zmisdisp5,
disp_cath_c TYPE zmisdisp5,
disp_anode_d TYPE zmisdisp5,
disp_anode_c TYPE zmisdisp5,
l_rec_con_d_kwh(16) TYPE p DECIMALS 2,
l_rec_con_c_kwh(16) TYPE p DECIMALS 2,
l_rec_con_d_mw(16) TYPE p DECIMALS 2,
l_rec_con_c_mw(16) TYPE p DECIMALS 2,
tot_kah TYPE p DECIMALS 2,
avg_kah TYPE p DECIMALS 2,
disp_tot_kah TYPE zmisdisp5,
disp_avg_kah TYPE zmisdisp5,
v_ftd_h1 TYPE p DECIMALS 2,
v_ftd_h2 TYPE p DECIMALS 2,
v_ftd_h3 TYPE p DECIMALS 2,
v_ftd_h4 TYPE p DECIMALS 2,
v_ftd_h5 TYPE p DECIMALS 2,
v_ftd_o1 TYPE p DECIMALS 2,
v_ftd_o2 TYPE p DECIMALS 2,
v_ftd_o4 TYPE p DECIMALS 2,
v_ftd_o5 TYPE p DECIMALS 2,
v_***_o1 TYPE p DECIMALS 2,
v_***_o2 TYPE p DECIMALS 2,
v_***_o4 TYPE p DECIMALS 2,
v_***_o5 TYPE p DECIMALS 2,
l_cdiff1 LIKE imrg-cdiff,
l_cdiff2 LIKE imrg-cdiff,
l_cdiff3 LIKE imrg-cdiff,
l_cdiff4 LIKE imrg-cdiff,
l_path LIKE rlgrap-filename,
l_flag.
DATA :prod_disp TYPE TABLE OF zmisdisp1 WITH HEADER LINE,
keyp_disp TYPE TABLE OF zmisdisp2 WITH HEADER LINE,
keyp_dis1 TYPE TABLE OF zmisdisp2 WITH HEADER LINE,
rmat_disp TYPE TABLE OF zmisdisp4 WITH HEADER LINE,
rcur_disp TYPE TABLE OF zmisdisp6 WITH HEADER LINE,
rhrs_disp TYPE TABLE OF zmisdisp4 WITH HEADER LINE,
brkd_disp TYPE TABLE OF zmisdisp7 WITH HEADER LINE.
DEFINE fill_kpp.
clear l_flag.
loop at it_mic_data where kurztext = &1.
l_mean1 = it_mic_data-mittelwert.
l_mean = it_mic_data-mean.
if l_flag = ' '.
move : &2 to keyp_disp-desc,
l_mean1 to keyp_disp-ftd.
if it_mic_data-kurztext = 'Ingot Pb SHG Zinc'.
l_mean2 = v_mean_pbshg.
move l_mean2 to keyp_disp-avg.
elseif it_mic_data-kurztext = 'Ingot Cu SHG Zinc'.
l_mean2 = v_mean_cushg.
move l_mean2 to keyp_disp-avg.
elseif it_mic_data-kurztext = 'Ingot Cd SHG Zinc'.
l_mean2 = v_mean_cdshg.
move l_mean2 to keyp_disp-avg.
elseif it_mic_data-kurztext = 'Ingot Fe SHG Zinc'.
l_mean2 = v_mean_feshg.
move l_mean2 to keyp_disp-avg.
elseif it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
l_mean2 = v_mean_znshg.
move l_mean2 to keyp_disp-avg.
else.
move l_mean to keyp_disp-avg.
endif.
if it_mic_data-masseinhsw = 'GLI'.
move 'g/l' to keyp_disp-unit.
elseif it_mic_data-masseinhsw = 'PPM'.
move 'ppm' to keyp_disp-unit.
elseif it_mic_data-masseinhsw = 'NO'.
move 'no' to keyp_disp-unit.
else.
move it_mic_data-masseinhsw to keyp_disp-unit.
endif.
append keyp_disp.
clear keyp_disp.
move 'X' to l_flag.
else.
move : l_mean1 to keyp_disp-ftd.
append keyp_disp.
clear keyp_disp.
endif.
endloop.
if sy-subrc is not initial.
move &2 to keyp_disp-desc.
append keyp_disp.
clear keyp_disp.
endif.
END-OF-DEFINITION.
DEFINE fill_kp1.
clear l_flag.
loop at it_mic_data where kurztext = &1.
l_mean1 = it_mic_data-mittelwert.
l_mean = it_mic_data-mean.
if l_flag = ' '.
move : &2 to keyp_dis1-desc,
l_mean1 to keyp_dis1-ftd.
if it_mic_data-kurztext = 'Ingot Pb SHG Zinc'.
l_mean2 = v_mean_pbshg.
move l_mean2 to keyp_dis1-avg.
elseif it_mic_data-kurztext = 'Ingot Cu SHG Zinc'.
l_mean2 = v_mean_cushg.
move l_mean2 to keyp_dis1-avg.
elseif it_mic_data-kurztext = 'Ingot Cd SHG Zinc'.
l_mean2 = v_mean_cdshg.
move l_mean2 to keyp_dis1-avg.
elseif it_mic_data-kurztext = 'Ingot Fe SHG Zinc'.
l_mean2 = v_mean_feshg.
move l_mean2 to keyp_dis1-avg.
elseif it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
l_mean3 = v_mean_znshg.
move l_mean3 to keyp_dis1-avg.
clear l_mean3.
l_mean3 = it_mic_data-mittelwert.
move l_mean3 to keyp_dis1-ftd.
else.
move l_mean to keyp_dis1-avg.
endif.
if it_mic_data-masseinhsw = 'GLI'.
move 'g/l' to keyp_dis1-unit.
elseif it_mic_data-masseinhsw = 'PPM'.
move 'ppm' to keyp_dis1-unit.
elseif it_mic_data-masseinhsw = 'NO'.
move 'no' to keyp_dis1-unit.
else.
move it_mic_data-masseinhsw to keyp_dis1-unit.
endif.
append keyp_dis1.
clear keyp_dis1.
move 'X' to l_flag.
else.
if it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
clear l_mean3.
l_mean3 = it_mic_data-mittelwert.
move l_mean3 to keyp_dis1-ftd.
else.
move : l_mean1 to keyp_dis1-ftd.
endif.
append keyp_dis1.
clear keyp_dis1.
endif.
endloop.
if sy-subrc is not initial.
move &2 to keyp_dis1-desc.
append keyp_dis1.
clear keyp_dis1.
endif.
END-OF-DEFINITION.
*FIRST PAGE
********PLANT HEADER
MOVE 'CLZS HYDRO I PLANT - DAILY PRODUCTION REPORT' TO v_header.
********Production figure
LOOP AT it_disp1.
prod_disp-desc = it_disp1-desc.
prod_disp-d_plnmg = it_disp1-d_plnmg.
prod_disp-d_menge = it_disp1-d_menge.
prod_disp-u_plnmg = it_disp1-u_plnmg.
prod_disp-u_menge = it_disp1-u_menge.
prod_disp-avg = it_disp1-avg.
prod_disp-ask_rate = it_disp1-ask_rate.
prod_disp-m_plnmg = it_disp1-m_plnmg.
prod_disp-y_plnmg = it_disp1-y_plnmg.
prod_disp-y_menge = it_disp1-y_menge.
prod_disp-y_variance = it_disp1-y_variance.
APPEND prod_disp.
ENDLOOP.
********Key performance parameters
MOVE 'ROASTER :' TO keyp_disp-desc.
APPEND keyp_disp.
fill_kpp '% S/S IN 45 DEG' ' S/S in Calcine'.
MOVE 'LEACHING :' TO keyp_disp-desc.
APPEND keyp_disp.
fill_kpp '% S/S IN CAL' ' S/S in Calcine'.
fill_kpp '%water soluble Zn' ' W/S Zn in Jarosite Cake'.
fill_kpp '%total Zn in HBF' ' T/Zn in Jarosite cake'.
fill_kpp 'ZINC IN CT' ' Zn in Conditioning tank'.
fill_kpp 'g/l zn in neutral overflow' ' Zn in Electrolyte Prod (gpl)'.
fill_kpp 'PPM CU IN PS25' ' Purified Solution Cu'.
fill_kpp 'PPM CADMIUM IN PS25' ' Purified Solution Cd'.
fill_kpp 'PPM COBALT IN PS25' ' Purified Solution Co'.
MOVE 'CELLHOUSE :' TO keyp_disp-desc.
APPEND keyp_disp.
fill_kpp 'g/l zinc in cell feed' ' Cell Feed Zinc gpl'.
fill_kpp 'GPL ACID IN CELL FEED' ' Cell Feed acidity gpl'.
fill_kpp 'g/l manganese in cell feed' ' Cell Feed Mn gpl'.
LOOP AT t_imrg_add_disp.
MOVE: t_imrg_add_disp-desc TO keyp_disp-desc,
t_imrg_add_disp-d_value TO keyp_disp-ftd,
t_imrg_add_disp-c_value TO temp,
temp TO keyp_disp-avg.
IF t_imrg_add_disp-units = 'NO'.
MOVE: 'no' TO keyp_disp-unit.
ELSE.
MOVE: t_imrg_add_disp-units TO keyp_disp-unit.
ENDIF.
APPEND keyp_disp.CLEAR keyp_disp.
ENDLOOP.
fill_kp1 'Ingot Pb SHG Zinc' ' Ingot Pb SHG Zinc'.
fill_kp1 'Ingot Cu SHG Zinc' ' Ingot Cu SHG Zinc'.
fill_kp1 'Ingot Cd SHG Zinc' ' Ingot Cd SHG Zinc'.
fill_kp1 'Ingot Fe SHG Zinc' ' Ingot Fe SHG Zinc'.
fill_kp1 'Ingot Zn SHG Zinc' ' Ingot Zn SHG Zinc'.
********Cellhouse power
CATCH SYSTEM-EXCEPTIONS bcd_zerodivide = 1.
v_m_kwh_mt = v_ind8_m / cathode_recipt.
v_m_mt_mw = cathode_recipt / ( v_ind8_m / 24000 ).
ENDCATCH.
MOVE : v_d_kwh_mt TO disp_d_kwh_mt,
v_m_kwh_mt TO disp_m_kwh_mt,
v_d_mt_mw TO disp_d_mt_mw,
v_m_mt_mw TO disp_m_mt_mw.
*SECOND PAGE
********Raw Material
LOOP AT it_disp3.
rmat_disp-desc = it_disp3-desc.
rmat_disp-opstk = it_disp3-opstk.
rmat_disp-d_recpt = it_disp3-d_recpt.
rmat_disp-u_recpt = it_disp3-u_recpt.
rmat_disp-d_cons = it_disp3-d_cons.
rmat_disp-u_cons = it_disp3-u_cons.
rmat_disp-clstk = it_disp3-clstk.
APPEND rmat_disp.
ENDLOOP.
********Work in Progress
********Finished Goods
********power consumption
l_no_of_days = v_mm_en_dt+6(2).
CATCH SYSTEM-EXCEPTIONS bcd_zerodivide = 1.
l_bptarget = ( v_bp_nrms_p * v_gross_d ) / l_no_of_days.
l_act_d = v_ind6_d + v_ind2_d - ( v_ind3_d + ( v_ind4_d / 2 ) ) - v_ind5_d.
l_act_c = v_ind6_m + v_ind2_m - ( v_ind3_m + ( v_ind4_m / 2 ) ) - v_ind5_m.
l_pow_gen = ( v_ind2_d / 1000 ) / v_ind7_d.
ENDCATCH.
l_pow_gen_d = v_ind2_d / 1000.
l_pow_gen_c = v_ind9_m / 1000.
l_rec_con_d_kwh = v_ind8_d.
l_rec_con_c_kwh = v_ind8_m.
l_rec_con_d_mw = v_ind8_d / 24000.
l_rec_con_c_mw = v_ind8_m / ( 24000 * v_days_pased ).
LOOP AT t_disp_curr.
rcur_disp-time = t_disp_curr-time.
rcur_disp-current = t_disp_curr-current.
rcur_disp-kah = t_disp_curr-kah.
APPEND rcur_disp.
AT LAST.
SUM.
tot_kah = t_disp_curr-kah.
ENDAT.
ENDLOOP.
avg_kah = tot_kah / '24'.
*********************running hrs
LOOP AT it_disp6.
rhrs_disp-desc = it_disp6-desc.
rhrs_disp-opstk = it_disp6-d_runhrs.
rhrs_disp-d_recpt = it_disp6-m_runhrs.
APPEND rhrs_disp.
ENDLOOP.
rhrs_disp-desc = 'Turbo Generator'.
rhrs_disp-opstk = v_turbod.
rhrs_disp-d_recpt = v_turboc.
INSERT rhrs_disp INDEX 2.
**********************BREAK_DOWN & OIL
CLEAR value.
LOOP AT itab2.
IF itab2-equnr = 'NMZ-EH01G001'.
PERFORM s_conversion_h.
v_ftd_h1 = v_ftd_h1 + value.
CLEAR value.
ENDIF.
IF itab2-equnr = 'NMZ-EH01G002'.
PERFORM s_conversion_h.
v_ftd_h2 = v_ftd_h2 + value.
CLEAR value.
ENDIF.
IF itab2-equnr = 'NMZ-EH01V003'.
PERFORM s_conversion_h.
v_ftd_h3 = v_ftd_h3 + value.
CLEAR value.
ENDIF.
IF itab2-equnr = 'NMZ-EH01V001'.
PERFORM s_conversion_h.
v_ftd_h4 = v_ftd_h4 + value.
CLEAR value.
ENDIF.
IF itab2-equnr = 'NMZ-EH01V002'.
PERFORM s_conversion_h.
v_ftd_h5 = v_ftd_h5 + value.
CLEAR value.
ENDIF.
ENDLOOP.
LOOP AT t_oil.
AT END OF ind.
SUM.
IF t_oil-ind = 1.
v_***_o1 = t_oil-cdiff * 1000.
ELSEIF t_oil-ind = 2.
v_***_o2 = t_oil-cdiff * 1000.
ELSEIF t_oil-ind = 3.
v_***_o4 = t_oil-cdiff * 1000.
ELSEIF t_oil-ind = 4.
v_***_o5 = t_oil-cdiff * 1000.
ENDIF.
ENDAT.
IF t_oil-idate = p_repdt.
IF t_oil-ind = 1.
l_cdiff1 = l_cdiff1 + t_oil-cdiff.
ELSEIF t_oil-ind = 2.
l_cdiff2 = l_cdiff2 + t_oil-cdiff.
ELSEIF t_oil-ind = 3.
l_cdiff3 = l_cdiff3 + t_oil-cdiff.
ELSEIF t_oil-ind = 4.
l_cdiff4 = l_cdiff4 + t_oil-cdiff.
ENDIF.
ENDIF.
ENDLOOP.
v_ftd_o1 = l_cdiff1 * 1000.
v_ftd_o2 = l_cdiff2 * 1000.
v_ftd_o4 = l_cdiff3 * 1000.
v_ftd_o5 = l_cdiff4 * 1000.
*********Breakdown details----3rd page
LOOP AT itab INTO wa.
CALL FUNCTION 'FLTP_CHAR_CONVERSION'
EXPORTING
decim = 0
expon = 0
input = wa-auszt
ivalu = 'X'
IMPORTING
flstr = wk_char_auszt.
CONDENSE wk_char_auszt NO-GAPS.
wk_flt_auszt = wk_char_auszt.
wk_flt_auszt = wk_flt_auszt / 3600.
duration = wk_flt_auszt.
brkd_disp-eqdesc = wa-eqktx.
brkd_disp-nodesc = wa-qmtxt.
brkd_disp-hrs = duration.
APPEND brkd_disp.
ENDLOOP.
MOVE : v_ftd_h1 TO disp_ftd_h1,
v_ftd_h2 TO disp_ftd_h2,
v_ftd_h3 TO disp_ftd_h3,
v_ftd_h4 TO disp_ftd_h4,
v_ftd_h5 TO disp_ftd_h5,
v_ftd_o1 TO disp_ftd_o1,
v_ftd_o2 TO disp_ftd_o2,
v_ftd_o4 TO disp_ftd_o4,
v_ftd_o5 TO disp_ftd_o5,
v_***_o1 TO disp_***_o1,
v_***_o2 TO disp_***_o2,
v_***_o4 TO disp_***_o4,
v_***_o5 TO disp_***_o5,
l_bptarget TO disp_bptarget,
l_act_d TO disp_act_d,
l_act_c TO disp_act_c,
l_rec_con_d_kwh TO disp_d_kwh,
l_rec_con_c_kwh TO disp_c_kwh,
l_rec_con_d_mw TO disp_d_mw,
l_rec_con_c_mw TO disp_c_mw,
tot_kah TO disp_tot_kah,
avg_kah TO disp_avg_kah,
l_pow_gen TO disp_pow_gen,
l_pow_gen_d TO disp_pow_gen_d,
l_pow_gen_c TO disp_pow_gen_c,
v_cath_d TO disp_cath_d,
v_cath_c TO disp_cath_c,
v_anode_d TO disp_anode_d,
v_anode_c TO disp_anode_c.
wa_output_options-tdimmed = 'X'.
wa_control_parameters-device = 'PRINTER'.
wa_control_parameters-preview = 'X'.
IF rb3 = 'X'.
wa_control_parameters-getotf = 'X'.
wa_control_parameters-no_dialog = 'X'.
ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZHZLPP_CLZSN_DAILY_MIS'
IMPORTING
fm_name = v_form_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION v_form_name
EXPORTING
control_parameters = wa_control_parameters
output_options = wa_output_options
user_settings = 'X'
header = v_header
date = p_repdt
l_bptarget = disp_bptarget
l_act_d = disp_act_d
l_act_c = disp_act_c
disp_d_kwh = disp_d_kwh
disp_c_kwh = disp_c_kwh
disp_d_mw = disp_d_mw
disp_c_mw = disp_c_mw
disp_tot_kah = disp_tot_kah
disp_avg_kah = disp_avg_kah
disp_d_kwh_mt = disp_d_kwh_mt
disp_m_kwh_mt = disp_m_kwh_mt
disp_d_mt_mw = disp_d_mt_mw
disp_m_mt_mw = disp_m_mt_mw
disp_pow_gen = disp_pow_gen
disp_pow_gen_d = disp_pow_gen_d
disp_pow_gen_c = disp_pow_gen_c
disp_ftd_h1 = disp_ftd_h1
disp_ftd_h2 = disp_ftd_h2
disp_ftd_h3 = disp_ftd_h3
disp_ftd_h4 = disp_ftd_h4
disp_ftd_h5 = disp_ftd_h5
disp_ftd_o1 = disp_ftd_o1
disp_ftd_o2 = disp_ftd_o2
disp_ftd_o4 = disp_ftd_o4
disp_ftd_o5 = disp_ftd_o5
disp_***_o1 = disp_***_o1
disp_***_o2 = disp_***_o2
disp_***_o4 = disp_***_o4
disp_***_o5 = disp_***_o5
disp_cath_d = disp_cath_d
disp_cath_c = disp_cath_c
disp_anode_d = disp_anode_d
disp_anode_c = disp_anode_c
IMPORTING
job_output_info = w_return " .
TABLES
prod_tab = prod_disp
keyp_tab = keyp_disp
remk_tab = it_remarks
rmat_tab = rmat_disp
rwip_tab = it_disp4
rfng_tab = it_disp_fg
rcur_tab = rcur_disp
rhrs_tab = rhrs_disp
brkd_tab = brkd_disp
keyp_tab1 = keyp_dis1
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5
IF sy-subrc <> 0.
MESSAGE 'Error in printing form' TYPE 'I'.
ENDIF.
********Downloading in pdf format.
IF rb3 = 'X'.
IF l_usract <> 9.
MOVE fullpath TO l_path.
i_otf[] = w_return-otfdata[].
CALL FUNCTION 'CONVERT_OTF' "
EXPORTING
format = 'PDF'
max_linewidth = 132
IMPORTING
bin_filesize = v_len_in
TABLES
otf = i_otf
lines = i_tline
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
bin_filesize = v_len_in
filename = l_path
filetype = 'BIN'
IMPORTING
filelength = w_filesize
TABLES
data_tab = i_tline
EXCEPTIONS
file_open_error = 1
file_write_error = 2
invalid_filesize = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc = 0.
MESSAGE 'File downloaded successfully' TYPE 'S'.
ENDIF.
ENDIF.
ENDIF.
IF sy-batch = 'X'. " SENDING MAILS IF SCHEDULED IN BACKGROUND
DATA: formname TYPE tdsfname,
fm_name TYPE rs38l_fnam,
control_parameters TYPE ssfctrlop,
output_options TYPE ssfcompop,
job_output_info TYPE ssfcrescl,
otf_data TYPE tsfotf.
DATA: otf TYPE TABLE OF itcoo WITH HEADER LINE,
doctab_archive TYPE TABLE OF docs WITH HEADER LINE,
lines TYPE TABLE OF tline WITH HEADER LINE,
bin_filesize TYPE i.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZHZLPP_CLZSN_DAILY_MIS'
IMPORTING
fm_name = v_form_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc <> 0.
ENDIF.
control_parameters-no_dialog = 'X'.
control_parameters-getotf = 'X'.
CALL FUNCTION v_form_name
EXPORTING
control_parameters = control_parameters
header = v_header
date = p_repdt
l_bptarget = disp_bptarget
l_act_d = disp_act_d
l_act_c = disp_act_c
disp_d_kwh = disp_d_kwh
disp_c_kwh = disp_c_kwh
disp_d_mw = disp_d_mw
disp_c_mw = disp_c_mw
disp_tot_kah = disp_tot_kah
disp_avg_kah = disp_avg_kah
disp_d_kwh_mt = disp_d_kwh_mt
disp_m_kwh_mt = disp_m_kwh_mt
disp_d_mt_mw = disp_d_mt_mw
disp_m_mt_mw = disp_m_mt_mw
disp_pow_gen = disp_pow_gen
disp_pow_gen_d = disp_pow_gen_d
disp_pow_gen_c = disp_pow_gen_c
disp_ftd_h1 = disp_ftd_h1
disp_ftd_h2 = disp_ftd_h2
disp_ftd_h3 = disp_ftd_h3
disp_ftd_h4 = disp_ftd_h4
disp_ftd_h5 = disp_ftd_h5
disp_ftd_o1 = disp_ftd_o1
disp_ftd_o2 = disp_ftd_o2
disp_ftd_o4 = disp_ftd_o4
disp_ftd_o5 = disp_ftd_o5
disp_***_o1 = disp_***_o1
disp_***_o2 = disp_***_o2
disp_***_o4 = disp_***_o4
disp_***_o5 = disp_***_o5
disp_cath_d = disp_cath_d
disp_cath_c = disp_cath_c
disp_anode_d = disp_anode_d
disp_anode_c = disp_anode_c
IMPORTING
job_output_info = job_output_info
TABLES
prod_tab = prod_disp
keyp_tab = keyp_disp
remk_tab = it_remarks
rmat_tab = rmat_disp
rwip_tab = it_disp4
rfng_tab = it_disp_fg
rcur_tab = rcur_disp
rhrs_tab = rhrs_disp
brkd_tab = brkd_disp
keyp_tab1 = keyp_dis1
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
IF sy-subrc = 0.
otf_data = job_output_info-otfdata[].
CALL FUNCTION 'CONVERT_OTF_2_PDF'
IMPORTING
bin_filesize = bin_filesize
TABLES
otf = otf_data[]
doctab_archive = doctab_archive[]
lines = lines[]
EXCEPTIONS
err_conv_not_possible = 1
err_otf_mc_noendmarker = 2
OTHERS = 3.
IF sy-subrc = 0.
SUBMIT rsconn01 with mode = 'INT' AND RETURN.
* ----<<distrubution list>>----
PERFORM mail_users TABLES lines USING 'MIS-HY1A' v_header. " Donot put more than 8 email-ids
PERFORM mail_users TABLES lines USING 'MIS-HY1B' v_header. " in a distribution list
PERFORM mail_users TABLES lines USING 'MIS-HY1C' v_header.
PERFORM mail_users TABLES lines USING 'MIS-HY1D' v_header.
PERFORM mail_users TABLES lines USING 'MIS-HY1E' v_header.
PERFORM mail_users TABLES lines USING 'MIS-HY1F' v_header.
PERFORM mail_users TABLES lines USING 'MIS-HY1G' v_header.
PERFORM mail_users TABLES lines USING 'MIS-HY1H' v_header.
PERFORM mail_users TABLES lines USING 'MIS-HY1I' v_header.
PERFORM mail_users TABLES lines USING 'MIS-HY1J' v_header.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " print
*& Form get_download_path
* text
* --> p1 text
* <-- p2 text
FORM get_download_path .
CALL FUNCTION 'GUI_FILE_SAVE_DIALOG'
EXPORTING
window_title = 'Download as pdf file'
default_extension = 'pdf'
IMPORTING
fullpath = fullpath
user_action = l_usract.
IF l_usract = '9'.
STOP.
ENDIF.
ENDFORM. " get_download_path
*& Form mail_users
* text
* -->P_LINES text
* -->P_2153 text
* -->P_V_HEADER text
FORM mail_users TABLES p_lines STRUCTURE tline
USING p_dist_list
p_v_header.
CONSTANTS: c_raw TYPE so_obj_tp VALUE 'RAW',
c_pdf TYPE so_obj_tp VALUE 'PDF',
c_255 TYPE i VALUE 255,
c_134 TYPE i VALUE 134,
c_x TYPE c VALUE 'X'.
DATA: document_data LIKE sodocchgi1 ,
tab_lines TYPE i,
contents_txt TYPE TABLE OF solisti1 WITH HEADER LINE,
contents_bin TYPE TABLE OF solisti1 WITH HEADER LINE,
packing_list TYPE TABLE OF sopcklsti1 WITH HEADER LINE,
object_header TYPE TABLE OF solisti1 WITH HEADER LINE,
receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
l_str(255) ,
v1 TYPE i,
v2 TYPE i,
v3 TYPE i.
document_data-obj_name = 'EMAIL'.
document_data-obj_descr = p_v_header. " SUBJECT LINE
CONCATENATE 'Please find the attached SAP generated Daily Production Report for the day'
p_repdt+6(2)
p_repdt+4(2)
'.' p_repdt+0(4)
INTO contents_txt.
APPEND contents_txt.
CLEAR contents_txt.
APPEND contents_txt.
APPEND contents_txt.
DESCRIBE TABLE contents_txt LINES tab_lines.
READ TABLE contents_txt INDEX tab_lines.
document_data-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( contents_txt ).
document_data-doc_size = tab_lines .
CLEAR packing_list-transf_bin.
packing_list-head_start = 1.
packing_list-head_num = 0.
packing_list-body_start = 1.
packing_list-body_num = tab_lines.
packing_list-doc_type = c_raw.
packing_list-doc_size = document_data-doc_size.
APPEND packing_list.
LOOP AT p_lines.
CLEAR l_str.
l_str+0(2) = p_lines-tdformat.
l_str+2(132) = p_lines-tdline.
v2 = v1 + c_134.
IF v2 LE c_255.
contents_bin-line+v1(c_134) = l_str. v1 = v2.
ELSE.
v3 = v2 - c_255.
v2 = c_255 - v1.
IF NOT v2 IS INITIAL.
contents_bin-line+v1(v2) = l_str+0(v2).
ENDIF.
APPEND contents_bin.
CLEAR contents_bin.
v1 = v3.
v3 = 134 - v1.
IF NOT v1 IS INITIAL.
contents_bin-line+0(v1) = l_str+v3(v1).
ENDIF.
ENDIF.
ENDLOOP.
APPEND contents_bin.
CLEAR contents_bin.
DESCRIBE TABLE contents_bin LINES tab_lines.
READ TABLE contents_bin INDEX tab_lines.
CONCATENATE 'Hy-I Report'
p_repdt+6(2)
p_repdt+4(2)
'.' p_repdt+0(4)
'.pdf'
INTO object_header.
APPEND object_header.
packing_list-transf_bin = c_x.
packing_list-head_start = 1.
packing_list-head_num = 1.
packing_list-body_start = 1.
packing_list-body_num = tab_lines.
packing_list-doc_type = c_pdf.
packing_list-obj_name = 'text1'.
packing_list-obj_descr = 'Production report'.
packing_list-doc_size = tab_lines * 255 + STRLEN( contents_bin ).
APPEND packing_list.
receivers-receiver = p_dist_list.
receivers-rec_type = 'C'.
APPEND receivers.
CLEAR receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = document_data
put_in_outbox = ' '
SENDER_ADDRESS = 'CZPPPLG'
SENDER_ADDRESS_TYPE = 'B'
commit_work = 'X'
TABLES
packing_list = packing_list
object_header = object_header
contents_bin = contents_bin
contents_txt = contents_txt
receivers = receivers
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
IF sy-subrc = 0.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 with mode = 'INT' AND RETURN.
ENDIF.
ENDFORM. " mail_users -
Authorization object for running a report in background
Good day experts,
I tried running a report in background, I choose immediately so that it doesn't have to be scheduled. But when I checked it in my own jobs, It remains at scheduled status. When I tried it on my admin account, It works and with status finished. It seems to be an authorization problem. What object could I be missing with my user account? I tried S_TCODE SMX and SP02 but still not working.
Thanks in advance!Hi karshbax,
What you're looking for is authorization object S_BTCH_JOB. You need authorization for field JOBACTION = RELE.
In future use transaction SU53. It shows last error authorization error, so if this is authorization problem then after try of manual releasing of job you'll find in SU53 precise info what went wrong.
Best Regards
Marcin Cholewczuk -
Need a program for Y/Z report (extended report ) in START_REPORT
Hi,
Am trying to execute a Y transaction (report ) which is called by start_report transaction. Pls find the details below.
D_SREPOVARI-REPORTTYPE= RE
D_SREPOVARI-REPORT=
D_SREPOVARI-EXTDREPORT= KP 01RPSCO_X Z12KST1D4
I want to execute this by using SUBMIT statement, for that need a program name of Y report . Let me know the prog name / How to execute this type of reports ?
Thanks in advance.
Best regards,
Shasidhar.CHi ,
Am trying to execute a Y/S transaction ( extended reports S_ALR_87013559 / S_ALR_87013557 / Y_DVE_38000074 / Y_DVE_38000044 ) in a custom report. The transactions are related to budget/cost/planing reports in PS module. In se 93, that is called by START_REPORT transaction with the below mentioned details.
D_SREPOVARI-REPORTTYPE= RE "report type
D_SREPOVARI-REPORT=
D_SREPOVARI-EXTDREPORT= KP 01RPSCO_X Z12KST1D4 "extended report
The Y/S transaction program is varying from client to client. We are using ECC6.0 version.
Thanks & Regards,
Shasidhar.C -
Need a Demo for creating a report painter
Hi,
I am new to report painter. i have already gone through some documents but i dint get a clear idea.
Can anyone give a demo for creating a Report Painter?
Thanks in advance.
Regards.hi
you can refer to following links
http://help.sap.com/saphelp_47x200/helpdata/en/eb/1377e443c411d1896f0000e8322d00/frameset.htm
For Report Painter
http://help.sap.com/saphelp_47x200/helpdata/en/66/bc7d2543c211d182b30000e829fbfe/content.htm
For Report Writer
http://help.sap.com/saphelp_47x200/helpdata/en/66/bc7dc143c211d182b30000e829fbfe/content.htm
Refer the following links :
http://www.virtuosollc.com/PDF/Get_Reporter.pdf
http://sap.ittoolbox.com/groups/technical-functional/sap-r3-other/accessing-tables-using-report-painterwriter-98766
http://help.sap.com/saphelp_47x200/helpdata/en/da/6ada3889432f48e10000000a114084/frameset.htm
http://help.sap.com/saphelp_bw31/helpdata/en/66/bc7d2543c211d182b30000e829fbfe/frameset.htm
this may help you
regards -
I need a code for VENDOR AGEING REPORT
plz help me i am in urgent need of source code of
VENDOR AGEING REPORT.
if any body help me regarding this above report i will be
great ful to him/her.
bcoz deadline is today.
i need ur urgent help, i treid very much but i failed,
so hope help from anybody there.REPORT zvender_os NO STANDARD PAGE HEADING
LINE-SIZE 132
LINE-COUNT 65.
Tables
TABLES: bsik, "open items (A/C: Secondary Index for Customers)
lfa1, "customer master
lfb1,
rf140, "temp stru (Work Fields for Corrence(SAPF140*))
bsak, "cleared items (A/c Secnd Index for Cust(Clrms))
skat.
constants and variables
TYPE-POOLS: slis.
DATA: fieldcat TYPE slis_t_fieldcat_alv,
fieldcat1 TYPE slis_t_fieldcat_alv,
fieldcat_ln TYPE slis_fieldcat_alv,
layout_in TYPE slis_layout_alv,
layout_in1 TYPE slis_layout_alv,
sortcat TYPE slis_t_sortinfo_alv,
sortcat1 TYPE slis_t_sortinfo_alv,
sortcat_ln LIKE LINE OF sortcat,
eventcat1 TYPE slis_t_event,
eventcat TYPE slis_t_event,
eventcat_ln LIKE LINE OF eventcat,
col_pos TYPE i.
DATA: targ_month(2) TYPE n, "0001
targ_year(4) TYPE n, "0001
targ_mth_abs TYPE p, "0001
doc_month(2) TYPE n, "0001
doc_year(4) TYPE n, "0001
doc_mth_abs TYPE p, "0001
mth_result TYPE p, "0001
doc_days TYPE p,
targ_days TYPE p,
addl_days TYPE p,
ext_days TYPE p,
v_days(3) TYPE c,
v_kkber LIKE knkk-kkber.
DATA:
BEGIN OF inrec OCCURS 1000, "0001
lifnr LIKE bsik-lifnr,
belnr LIKE bsik-belnr,
gjahr LIKE bsik-gjahr,
bldat LIKE bsik-bldat,
xblnr LIKE bsik-xblnr,
blart LIKE bsik-blart,
sgtxt LIKE bsik-sgtxt,
shkzg LIKE bsik-shkzg,
dmbtr LIKE bsik-dmbtr,
zfbdt LIKE bsik-zfbdt,
zbd1t LIKE bsik-zbd1t,
zbd2t LIKE bsik-zbd2t,
zbd3t LIKE bsik-zbd3t,
zuonr LIKE bsik-zuonr,
END OF inrec.
DATA:
BEGIN OF inrect OCCURS 1000, "0001
lifnr LIKE bsik-lifnr,
belnr LIKE bsik-belnr,
gjahr LIKE bsik-gjahr,
bldat LIKE bsik-bldat,
xblnr LIKE bsik-xblnr,
blart LIKE bsik-blart,
sgtxt LIKE bsik-sgtxt,
shkzg LIKE bsik-shkzg,
dmbtr LIKE bsik-dmbtr,
zfbdt LIKE bsik-zfbdt,
zbd1t LIKE bsik-zbd1t,
zbd2t LIKE bsik-zbd2t,
zbd3t LIKE bsik-zbd3t,
zuonr LIKE bsik-zuonr,
END OF inrect,
BEGIN OF t_item OCCURS 1000, " 0001
lifnr LIKE bsik-lifnr,
belnr LIKE bsik-belnr,
gjahr LIKE bsik-gjahr,
bldat LIKE bsik-bldat,
xblnr LIKE bsik-xblnr,
blart LIKE bsik-blart,
sgtxt LIKE bsik-sgtxt,
zfbdt LIKE bsik-zfbdt,
dmbtr LIKE bsik-dmbtr,
days(3) TYPE c,
zuonr LIKE bsik-zuonr,
END OF t_item,
t_line LIKE t_item OCCURS 1000 WITH HEADER LINE, " 0001
BEGIN OF itab OCCURS 1000,
lifnr LIKE lfa1-lifnr,
total LIKE bsik-dmbtr,
zfuture LIKE bsik-dmbtr,
zcurrent LIKE bsik-dmbtr,
crbal LIKE bsik-dmbtr,
30days LIKE bsik-dmbtr,
60days LIKE bsik-dmbtr,
90days LIKE bsik-dmbtr,
99days LIKE bsik-dmbtr,
120days LIKE bsik-dmbtr,
180days LIKE bsik-dmbtr,
365days LIKE bsik-dmbtr,
bzirk LIKE knvv-bzirk,
vkbur LIKE knvv-vkbur,
vwerk LIKE knvv-vwerk,
vkgrp LIKE knvv-vkgrp,
klimk LIKE knkk-klimk,
cashd LIKE knkk-cashd,
grupp LIKE knkk-grupp,
erdat LIKE lfa1-erdat,
name1 LIKE lfa1-name1,
name2 LIKE lfa1-name2,
stras LIKE lfa1-stras,
ort01 LIKE lfa1-ort01,
telf1 LIKE lfa1-telf1,
psort(10),
sperr LIKE lfa1-sperr,
totsal LIKE bsik-dmbtr,
txt50 LIKE skat-txt50,
gsber LIKE bsik-gsber,
END OF itab.
DATA: sel_tab TYPE TABLE OF rsparams WITH HEADER LINE,
p_debit(1) TYPE c,
p_credit(1) TYPE c.
DATA: t_variant LIKE disvariant OCCURS 0 WITH HEADER LINE.
parameters and select-options
SELECTION-SCREEN BEGIN OF BLOCK blck0 WITH FRAME TITLE text-002.
PARAMETERS: stida LIKE sy-datum DEFAULT sy-datum OBLIGATORY,
p_bukrs LIKE t001-bukrs DEFAULT 'PIIL' MEMORY ID buk
OBLIGATORY.
P_BUKRS LIKE T001-BUKRS DEFAULT 'CC01' OBLIGATORY. "0003
SELECT-OPTIONS: s_lifnr FOR bsik-lifnr ,
s_vkbur FOR knvv-vkbur,
s_vkgrp FOR knvv-vkgrp,
s_bzirk FOR knvv-bzirk,
s_konda FOR knvv-konda,
s_kdgrp FOR knvv-kdgrp NO-DISPLAY ,
s_kvgr2 FOR knvv-kvgr2 NO-DISPLAY ,
s_kkber FOR knkk-kkber NO-DISPLAY ,
s_grupp FOR knkk-grupp NO-DISPLAY ,
s_ctlpc FOR knkk-ctlpc,
s_akont FOR lfb1-akont,
s_gsber FOR bsik-gsber.
PARAMETERS: p_future AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK blck0.
SELECTION-SCREEN BEGIN OF BLOCK blck1 WITH FRAME TITLE text-002.
PARAMETERS: p_abs RADIOBUTTON GROUP zrad,
p_due RADIOBUTTON GROUP zrad DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK blck1.
*SELECTION-SCREEN BEGIN OF BLOCK blck2 WITH FRAME TITLE text-003.
*PARAMETERS: c_run RADIOBUTTON GROUP zrac DEFAULT 'X',
c_blk RADIOBUTTON GROUP zrac,
c_all RADIOBUTTON GROUP zrac.
*SELECTION-SCREEN END OF BLOCK blck2.
*SELECTION-SCREEN BEGIN OF BLOCK blck3 WITH FRAME TITLE text-004.
*PARAMETERS: p_debit AS CHECKBOX DEFAULT 'X' ,
p_credit AS CHECKBOX DEFAULT 'X' NO-DISPLAY,
*selection-screen end of block blck3.
start-of-selection.
START-OF-SELECTION.
PERFORM BUILD_EVENTCAT.
p_debit = 'X'.
p_credit = 'X'.
PERFORM get_customer_invoices.
filter records based on selection criteria
PERFORM filter_records.
END-OF-SELECTION.
PERFORM add_sort_field.
PERFORM modify_field.
PERFORM write_report.
*& Form FILTER_RECORDS
To collect all the required data from DB and store them in
internal table.
--> p1 text
<-- p2 text
FORM filter_records.
delete records based on selection criteria
LOOP AT itab.
SELECT vkbur vkgrp vwerk erdat konda kdgrp bzirk kvgr2
INTO (itab-vkbur, itab-vkgrp, itab-vwerk, knvv-erdat,
knvv-konda, knvv-kdgrp,itab-bzirk,knvv-kvgr2)
FROM knvv WHERE lifnr = itab-lifnr
ORDER BY erdat DESCENDING.
AKS :- Not Required for PI
CASE itab-vkbur.
WHEN 'SA1'.
itab-vkbur = 'SF25'.
WHEN 'QLD1'.
itab-vkbur = 'SF23'.
WHEN 'WA1'.
itab-vkbur = 'SF26'.
ENDCASE.
AKS.
EXIT.
ENDSELECT.
IF itab-vkbur IN s_vkbur AND
itab-vkgrp IN s_vkgrp AND
knvv-konda IN s_konda AND
knvv-kdgrp IN s_kdgrp AND
itab-bzirk IN s_bzirk AND
knvv-kvgr2 IN s_kvgr2.
ELSE.
DELETE itab.
CONTINUE.
ENDIF.
SELECT SINGLE klimk grupp cashd
INTO (itab-klimk, itab-grupp, itab-cashd)
FROM knkk WHERE lifnr = itab-lifnr
AND kkber IN s_kkber
AND ctlpc IN s_ctlpc
AND grupp IN s_grupp.
IF SY-SUBRC NE 0.
DELETE ITAB.
CONTINUE.
ENDIF.
SELECT SINGLE skat~txt50
INTO (itab-txt50)
FROM lfb1 INNER JOIN skat
ON lfb1akont EQ skatsaknr
WHERE lfb1~lifnr = itab-lifnr
AND lfb1~akont IN s_akont
AND skat~spras EQ 'EN'.
IF sy-subrc NE 0.
DELETE itab.
CONTINUE.
ENDIF.
SELECT SINGLE name1 name2 telf1 erdat stras ort01 sperr
INTO (itab-name1, itab-name2, itab-telf1,
itab-erdat, itab-stras, itab-ort01, itab-sperr )
FROM lfa1
WHERE lifnr = itab-lifnr
IF sy-subrc NE 0 .
DELETE itab.
CONTINUE.
ENDIF.
AKS For Filteration of Customer base on Block Area.
IF c_all NE 'X'.
IF c_run EQ 'X' AND itab-sperr EQ 'X'.
DELETE itab.
CONTINUE.
ELSE.
IF c_blk EQ 'X' AND itab-sperr NE 'X'.
DELETE itab.
CONTINUE.
ENDIF.
ENDIF.
ENDIF.
MODIFY itab.
ENDLOOP.
ENDFORM. " FILTER_RECORDS
*& Form GET_CUSTOMER_INVOICES
text
--> p1 text
<-- p2 text
FORM get_customer_invoices.
DATA:ztotcre LIKE bsik-dmbtr.
DATA:ztotsal LIKE bsik-dmbtr.
DATA: fsdate LIKE sy-datum.
DATA: l_perio(4) TYPE c.
MOVE stida TO rf140-stida.
MOVE rf140-stida+4(2) TO targ_month.
MOVE rf140-stida+0(4) TO targ_year.
MOVE rf140-stida+6(2) TO targ_days.
targ_mth_abs = ( targ_year * 12 ) + targ_month.
CALL FUNCTION 'ZGET_PERIOD_FROM_DATE'
EXPORTING
i_date = stida
IMPORTING
e_perio = l_perio.
CONCATENATE l_perio '0401' INTO fsdate.
select open items.
IF p_due EQ 'X'.
SELECT lifnr belnr gjahr bldat xblnr blart sgtxt " 0001
shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
zuonr
FROM bsik INTO TABLE inrect
WHERE bukrs = p_bukrs
AND budat LE stida
AND lifnr IN s_lifnr
AND gsber IN s_gsber
AND umskz NE 'T'
AND umskz NE 'F'
AND umskz NE 'R'
AND umskz NE 'P'
AND umskz NE 'J'
AND umskz NE 'L'.
LOOP AT INREC.
IF INREC-SHKZG = 'H'.
INREC-DMBTR = INREC-DMBTR * -1.
ENDIF.
MOVE-CORRESPONDING INREC TO T_ITEM. " 0001
PERFORM COLLECT_INVOICE USING INREC-lifnr INREC-DMBTR
INREC-ZFBDT INREC-ZBD1T
INREC-ZBD2T INREC-ZBD3T.
APPEND T_ITEM.
CLEAR T_ITEM.
ENDLOOP.
LOOP AT inrect.
inrec-lifnr = inrect-lifnr.
inrec-belnr = inrect-belnr.
inrec-gjahr = inrect-gjahr.
inrec-bldat = inrect-bldat.
inrec-xblnr = inrect-xblnr.
inrec-blart = inrect-blart.
inrec-sgtxt = inrect-sgtxt.
inrec-shkzg = inrect-shkzg.
inrec-dmbtr = inrect-dmbtr.
CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
EXPORTING
date = inrect-zfbdt
days = inrect-zbd1t
months = 00
signum = '+'
years = 00
IMPORTING
calc_date = inrec-zfbdt.
inrec-zbd1t = inrect-zbd1t.
inrec-zbd2t = inrect-zbd2t.
inrec-zbd3t = inrect-zbd3t.
inrec-zuonr = inrect-zuonr.
APPEND inrec.
CLEAR inrec.
ENDLOOP.
ELSE.
SELECT lifnr belnr gjahr bldat xblnr blart sgtxt " 0001
shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
zuonr
FROM bsik INTO TABLE inrec
WHERE bukrs = p_bukrs
AND budat LE stida
AND lifnr IN s_lifnr
AND gsber IN s_gsber
AND umskz NE 'T'
AND umskz NE 'F'
AND umskz NE 'R'
AND umskz NE 'P'
AND umskz NE 'J'
AND umskz NE 'L'.
ENDIF.
SORT inrec BY lifnr shkzg zfbdt .
LOOP AT inrec.
AT NEW lifnr.
For Customers Credit Balance Transaction to be display in Report
End of Credit Balance
ztotcre = 0.
ztotsal = 0.
ENDAT.
IF inrec-shkzg = 'H'.
inrec-dmbtr = inrec-dmbtr * -1.
ztotcre = ztotcre + inrec-dmbtr.
ELSE.
IF inrec-blart = 'RV'.
IF inrec-bldat GE fsdate.
ztotsal = ztotsal + inrec-dmbtr.
ENDIF.
ENDIF.
ztotcre = ztotcre + inrec-dmbtr.
endif.
IF p_debit EQ 'X'.
IF ztotcre > 0.
MOVE-CORRESPONDING inrec TO t_item. " 0001
PERFORM collect_invoice USING inrec-lifnr ztotcre
inrec-zfbdt inrec-zbd1t
inrec-zbd2t inrec-zbd3t
ztotsal.
APPEND t_item.
CLEAR t_item.
ztotcre = 0.
ztotsal = 0.
ENDIF.
ENDIF.
ENDIF.
IF p_credit EQ 'X'.
AT END OF lifnr.
IF ztotcre < 0.
MOVE-CORRESPONDING inrec TO t_item. " 0001
PERFORM collect_invoice USING inrec-lifnr ztotcre
inrec-zfbdt inrec-zbd1t
inrec-zbd2t inrec-zbd3t
ztotsal.
APPEND t_item.
CLEAR t_item.
ztotcre = 0.
ztotsal = 0.
APPEND t_item.
CLEAR t_item.
ENDIF.
ENDAT.
ENDIF.
ENDLOOP.
select cleared items
IF p_due EQ 'X'.
REFRESH inrect. CLEAR inrect.
SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
zuonr
FROM bsak INTO TABLE inrect
WHERE bukrs = p_bukrs
AND budat LE stida
AND augdt > stida
AND lifnr IN s_lifnr
AND gsber IN s_gsber
REFRESH inrec. CLEAR inrec.
LOOP AT inrect.
inrec-lifnr = inrect-lifnr.
inrec-belnr = inrect-belnr.
inrec-gjahr = inrect-gjahr.
inrec-bldat = inrect-bldat.
inrec-xblnr = inrect-xblnr.
inrec-blart = inrect-blart.
inrec-sgtxt = inrect-sgtxt.
inrec-shkzg = inrect-shkzg.
inrec-dmbtr = inrect-dmbtr.
CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
EXPORTING
date = inrect-zfbdt
days = inrect-zbd1t
months = 00
signum = '+'
years = 00
IMPORTING
calc_date = inrec-zfbdt.
inrec-zbd1t = inrect-zbd1t.
inrec-zbd2t = inrect-zbd2t.
inrec-zbd3t = inrect-zbd3t.
inrec-zuonr = inrect-zuonr.
APPEND inrec.
CLEAR inrec.
ENDLOOP.
ELSE.
REFRESH inrec. CLEAR inrec.
SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
zuonr
FROM bsak INTO TABLE inrec
WHERE bukrs = p_bukrs
AND budat LE stida
AND augdt > stida
AND lifnr IN s_lifnr
AND gsber IN s_gsber
ENDIF.
SORT inrec BY lifnr shkzg zfbdt .
LOOP AT inrec.
AT NEW lifnr.
ztotcre = 0.
ztotsal = 0.
ENDAT.
IF inrec-shkzg = 'H'.
inrec-dmbtr = inrec-dmbtr * -1.
ztotcre = ztotcre + inrec-dmbtr.
ELSE.
IF inrec-blart = 'RV'.
IF inrec-bldat GE fsdate.
ztotsal = ztotsal + inrec-dmbtr.
ENDIF.
ENDIF.
ztotcre = ztotcre + inrec-dmbtr.
endif.
IF p_debit EQ 'X'.
IF ztotcre > 0.
MOVE-CORRESPONDING inrec TO t_item. " 0001
PERFORM collect_invoice USING inrec-lifnr ztotcre
inrec-zfbdt inrec-zbd1t
inrec-zbd2t inrec-zbd3t
ztotsal.
APPEND t_item.
CLEAR t_item.
ztotcre = 0.
ztotsal = 0.
ENDIF.
ENDIF.
ENDIF.
IF p_credit EQ 'X'.
AT END OF lifnr.
IF ztotcre < 0.
MOVE-CORRESPONDING inrec TO t_item. " 0001
PERFORM collect_invoice USING inrec-lifnr ztotcre
inrec-zfbdt inrec-zbd1t
inrec-zbd2t inrec-zbd3t
ztotsal.
APPEND t_item.
CLEAR t_item.
ztotcre = 0.
ztotsal = 0.
APPEND t_item.
CLEAR t_item.
ENDIF.
ENDAT. " 0001
ENDIF.
ENDLOOP.
ENDFORM. " GET_CUSTOMER_INVOICES
*& Form COLLECT_INVOICE
text
-->P_bsik_lifnr text
-->P_bsik_DMBTR text
-->P_bsik_ZFBDT text
-->P_bsik_ZFBDT1 text
-->P_bsik_ZFBDT2 text
-->P_bsik_ZFBDT3 text
FORM collect_invoice USING pp_lifnr
pp_dmbtr
pp_zfbdt
pp_zbd1t
pp_zbd2t
pp_zbd3t
pp_ztotsal.
doc_month = pp_zfbdt+4(2).
doc_year = pp_zfbdt+0(4).
doc_mth_abs = ( doc_year * 12 ) + doc_month.
mth_result = ( targ_mth_abs - doc_mth_abs ).
logic given by Mr. Ashok Singhvi
doc_days = pp_zfbdt+6(2).
addl_days = ( doc_days - targ_days ).
IF addl_days <= 0.
ADD 1 TO mth_result.
ENDIF.
IF NOT pp_zbd3t IS INITIAL.
MOVE pp_zbd3t TO ext_days.
ELSEIF NOT pp_zbd2t IS INITIAL.
MOVE pp_zbd2t TO ext_days.
ELSEIF NOT pp_zbd1t IS INITIAL.
MOVE pp_zbd1t TO ext_days.
ELSE.
CLEAR ext_days.
ENDIF.
CHECK with Andrew whether this is working or not
if extended payment terms exist, subtract no of mths from mth_result
IF NOT ext_days IS INITIAL.
CASE ext_days.
WHEN 30.
SUBTRACT 1 FROM mth_result.
WHEN 60.
SUBTRACT 2 FROM mth_result.
WHEN 90.
SUBTRACT 3 FROM mth_result.
WHEN 120.
SUBTRACT 4 FROM mth_result.
ENDCASE.
ENDIF.
change to key date
IF pp_dmbtr > 0.
IF p_future = 'X'. " 0001
IF mth_result <= 0.
itab-zcurrent = pp_dmbtr.
t_item-days = 'CUR'.
ELSEIF mth_result = 1.
itab-30days = pp_dmbtr.
t_item-days = '30D'.
ELSEIF mth_result = 2.
itab-60days = pp_dmbtr.
t_item-days = '60D'.
ELSEIF mth_result = 3.
itab-90days = pp_dmbtr.
t_item-days = '90D'.
ELSEIF mth_result > 3 AND mth_result <= 4 .
itab-99days = pp_dmbtr.
t_item-days = '99D'.
ELSEIF mth_result > 4 AND mth_result <= 6 .
itab-120days = pp_dmbtr.
t_item-days = '120D'.
ELSEIF mth_result > 6 AND mth_result <= 12 .
itab-180days = pp_dmbtr.
t_item-days = '180D'.
ELSEIF mth_result > 12 .
itab-365days = pp_dmbtr.
t_item-days = '365D'.
ENDIF.
ELSE.
IF mth_result < 0.
itab-zfuture = pp_dmbtr.
t_item-days = 'FUT'.
ELSEIF mth_result = 0.
itab-zcurrent = pp_dmbtr.
t_item-days = 'CUR'.
ELSEIF mth_result = 1.
itab-30days = pp_dmbtr.
t_item-days = '30D'.
ELSEIF mth_result = 2.
itab-60days = pp_dmbtr.
t_item-days = '60D'.
ELSEIF mth_result = 3.
itab-90days = pp_dmbtr.
t_item-days = '90D'.
ELSEIF mth_result > 3 AND mth_result <= 4 .
itab-99days = pp_dmbtr.
t_item-days = '99D'.
ELSEIF mth_result > 4 AND mth_result <= 6 .
itab-120days = pp_dmbtr.
t_item-days = '120D'.
ELSEIF mth_result > 6 AND mth_result <= 12 .
itab-180days = pp_dmbtr.
t_item-days = '180D'.
ELSEIF mth_result > 12 .
itab-365days = pp_dmbtr.
t_item-days = '365D'.
ENDIF.
ENDIF. " 0001
itab-crbal = 0.
itab-total = pp_dmbtr.
ELSE.
IF p_future = 'X'. " 0001
IF mth_result <= 0.
itab-zcurrent = pp_dmbtr.
t_item-days = 'CUR'.
ELSEIF mth_result = 1.
itab-30days = pp_dmbtr.
t_item-days = '30D'.
ELSEIF mth_result = 2.
itab-60days = pp_dmbtr.
t_item-days = '60D'.
ELSEIF mth_result = 3.
itab-90days = pp_dmbtr.
t_item-days = '90D'.
ELSEIF mth_result > 3 AND mth_result <= 4 .
itab-99days = pp_dmbtr.
t_item-days = '99D'.
ELSEIF mth_result > 4 AND mth_result <= 6 .
itab-120days = pp_dmbtr.
t_item-days = '120D'.
ELSEIF mth_result > 6 AND mth_result <= 12 .
itab-180days = pp_dmbtr.
t_item-days = '180D'.
ELSEIF mth_result > 12 .
itab-365days = pp_dmbtr.
t_item-days = '365D'.
ENDIF.
ELSE.
IF mth_result < 0.
itab-zfuture = pp_dmbtr.
t_item-days = 'FUT'.
ELSEIF mth_result = 0.
itab-zcurrent = pp_dmbtr.
t_item-days = 'CUR'.
ELSEIF mth_result = 1.
itab-30days = pp_dmbtr.
t_item-days = '30D'.
ELSEIF mth_result = 2.
itab-60days = pp_dmbtr.
t_item-days = '60D'.
ELSEIF mth_result = 3.
itab-90days = pp_dmbtr.
t_item-days = '90D'.
ELSEIF mth_result > 3 AND mth_result <= 4 .
itab-99days = pp_dmbtr.
t_item-days = '99D'.
ELSEIF mth_result > 4 AND mth_result <= 6 .
itab-120days = pp_dmbtr.
t_item-days = '120D'.
ELSEIF mth_result > 6 AND mth_result <= 12 .
itab-180days = pp_dmbtr.
t_item-days = '180D'.
ELSEIF mth_result > 12 .
itab-365days = pp_dmbtr.
t_item-days = '365D'.
ENDIF.
ENDIF. " 0001
itab-total = pp_dmbtr.
itab-crbal = 0.
ENDIF.
itab-lifnr = pp_lifnr.
itab-totsal = pp_ztotsal.
COLLECT itab.
CLEAR itab.
ENDFORM. " COLLECT_INVOICE
*& Form ADD_SORT_FIELD
text
--> p1 text
<-- p2 text
FORM add_sort_field.
DATA: l_amount(9) TYPE n.
IF p_future = 'X'.
LOOP AT itab.
l_amount = 999999999.
IF itab-365days > 0.
l_amount = l_amount - itab-365days.
CONCATENATE 'A' l_amount INTO itab-psort.
ELSEIF itab-180days > 0.
l_amount = l_amount - itab-180days.
CONCATENATE 'B' l_amount INTO itab-psort.
ELSEIF itab-120days > 0.
l_amount = l_amount - itab-120days.
CONCATENATE 'C' l_amount INTO itab-psort.
ELSEIF itab-99days > 0.
l_amount = l_amount - itab-99days.
CONCATENATE 'D' l_amount INTO itab-psort.
ELSEIF itab-90days > 0.
l_amount = l_amount - itab-90days.
CONCATENATE 'E' l_amount INTO itab-psort.
ELSEIF itab-60days > 0.
l_amount = l_amount - itab-60days.
CONCATENATE 'F' l_amount INTO itab-psort.
ELSEIF itab-30days > 0.
l_amount = l_amount - itab-30days.
CONCATENATE 'G' l_amount INTO itab-psort.
ELSEIF itab-zcurrent > 0.
l_amount = l_amount - itab-zcurrent.
CONCATENATE 'H' l_amount INTO itab-psort.
ELSEif itab-zfuture > 0.
L_AMOUNT = L_AMOUNT - ITAB-zfuture.
CONCATENATE 'F' L_AMOUNT INTO ITAB-PSORT.
ELSE.
l_amount = ABS( itab-total ).
CONCATENATE 'I' l_amount INTO itab-psort.
ENDIF.
MODIFY itab.
ENDLOOP.
ELSE.
LOOP AT itab.
l_amount = 999999999.
IF itab-365days > 0.
l_amount = l_amount - itab-365days.
CONCATENATE 'A' l_amount INTO itab-psort.
ELSEIF itab-180days > 0.
l_amount = l_amount - itab-180days.
CONCATENATE 'B' l_amount INTO itab-psort.
ELSEIF itab-120days > 0.
l_amount = l_amount - itab-120days.
CONCATENATE 'C' l_amount INTO itab-psort.
ELSEIF itab-99days > 0.
l_amount = l_amount - itab-99days.
CONCATENATE 'D' l_amount INTO itab-psort.
ELSEIF itab-90days > 0.
l_amount = l_amount - itab-90days.
CONCATENATE 'E' l_amount INTO itab-psort.
ELSEIF itab-60days > 0.
l_amount = l_amount - itab-60days.
CONCATENATE 'F' l_amount INTO itab-psort.
ELSEIF itab-30days > 0.
l_amount = l_amount - itab-30days.
CONCATENATE 'G' l_amount INTO itab-psort.
ELSEIF itab-zcurrent > 0.
l_amount = l_amount - itab-zcurrent.
CONCATENATE 'H' l_amount INTO itab-psort.
ELSEIF itab-zfuture > 0.
l_amount = l_amount - itab-zfuture.
CONCATENATE 'I' l_amount INTO itab-psort.
ELSE.
l_amount = ABS( itab-total ).
CONCATENATE 'J' l_amount INTO itab-psort.
ENDIF.
MODIFY itab.
ENDLOOP.
ENDIF.
ENDFORM. " ADD_SORT_FIELD
*& Form WRITE_REPORT
text
--> p1 text
<-- p2 text
FORM write_report.
PERFORM build_fieldcat.
PERFORM build_sortcat.
PERFORM build_eventcat.
PERFORM build_layout.
PERFORM start_list_viewer.
ENDFORM. " WRITE_REPORT
*& Form BUILD_FIELDCAT
text
--> p1 text
<-- p2 text
FORM build_fieldcat.
lifnr
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'lfa1'.
fieldcat_ln-fieldname = 'LIFNR'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
APPEND fieldcat_ln TO fieldcat.
Name1
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'lfa1'.
fieldcat_ln-fieldname = 'NAME1'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = 'Name'.
APPEND fieldcat_ln TO fieldcat.
City Details
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'lfa1'.
fieldcat_ln-fieldname = 'ORT01'.
fieldcat_ln-seltext_l = 'City'.
fieldcat_ln-col_pos = col_pos.
APPEND fieldcat_ln TO fieldcat.
Credit Limit
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'KNKK'.
fieldcat_ln-fieldname = 'KLIMK'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-emphasize = 'C41'.
APPEND fieldcat_ln TO fieldcat.
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = 'CRBAL'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-seltext_l = 'Cr. Bal.'.
fieldcat_ln-seltext_m = 'Cr. Bal.'.
fieldcat_ln-seltext_s = 'Cr. Bal.'.
APPEND fieldcat_ln TO fieldcat.
Total Amount
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-fieldname = 'TOTAL'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-seltext_l = 'Out.St.Amt.'.
fieldcat_ln-seltext_m = 'Out.St.Amt.'.
fieldcat_ln-seltext_s = 'Out.St.Amt.'.
fieldcat_ln-ref_tabname = 'zbsik'.
fieldcat_ln-ref_fieldname = 'ZDMBTR'.
APPEND fieldcat_ln TO fieldcat.
IF p_future NE 'X'.
Future
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = 'ZFUTURE'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = 'Future Due'.
fieldcat_ln-seltext_m = 'Future Due'.
fieldcat_ln-seltext_s = 'Future Due'.
APPEND fieldcat_ln TO fieldcat.
ENDIF.
Current
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = 'ZCURRENT'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = 'Normal Due'.
fieldcat_ln-seltext_m = 'Normal Due'.
fieldcat_ln-seltext_s = 'Normal Due'.
APPEND fieldcat_ln TO fieldcat.
30 Days
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = '30DAYS'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = '0-30 Days'.
fieldcat_ln-seltext_m = '0-30 Days'.
fieldcat_ln-seltext_s = '0-30 Days'.
APPEND fieldcat_ln TO fieldcat.
60 Days
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = '60DAYS'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = '31-60 Days'.
fieldcat_ln-seltext_m = '31-60 Days'.
fieldcat_ln-seltext_s = '31-60 Days'.
APPEND fieldcat_ln TO fieldcat.
90 Days
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = '90DAYS'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = '61-90 Days'.
fieldcat_ln-seltext_m = '61-90 Days'.
fieldcat_ln-seltext_s = '61-90 Days'.
APPEND fieldcat_ln TO fieldcat.
99 Days
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = '99DAYS'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = '91-120 Days'.
fieldcat_ln-seltext_m = '91-120 Days'.
fieldcat_ln-seltext_s = '91-120 Days'.
APPEND fieldcat_ln TO fieldcat.
*120Days
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = '120DAYS'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = '121-180 Days'.
fieldcat_ln-seltext_m = '121-180 Days'.
fieldcat_ln-seltext_s = '121-180 Days'.
APPEND fieldcat_ln TO fieldcat.
*180 Days
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = '180DAYS'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = '181-365 Days'.
fieldcat_ln-seltext_m = '181-365 Days'.
fieldcat_ln-seltext_s = '181-365 Days'.
APPEND fieldcat_ln TO fieldcat.
*365 Days
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'bsik'.
fieldcat_ln-ref_fieldname = 'DMBTR'.
fieldcat_ln-fieldname = '365DAYS'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-do_sum = 'X'.
fieldcat_ln-hotspot = 'X'.
fieldcat_ln-emphasize = 'C41'.
fieldcat_ln-seltext_l = '>365 Days'.
fieldcat_ln-seltext_m = '>365 Days'.
fieldcat_ln-seltext_s = '>365 Days'.
APPEND fieldcat_ln TO fieldcat.
Last Payment Date
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'KNKK'.
fieldcat_ln-fieldname = 'CASHD'.
fieldcat_ln-col_pos = col_pos.
APPEND fieldcat_ln TO fieldcat.
Street Name
ADD 1 TO COL_POS.
CLEAR FIELDCAT_LN.
FIELDCAT_LN-REF_TABNAME = 'lfa1'.
FIELDCAT_LN-FIELDNAME = 'STRAS'.
FIELDCAT_LN-COL_POS = COL_POS.
APPEND FIELDCAT_LN TO FIELDCAT.
Telephone
ADD 1 TO COL_POS.
CLEAR FIELDCAT_LN.
FIELDCAT_LN-REF_TABNAME = 'lfa1'.
FIELDCAT_LN-FIELDNAME = 'TELF1'.
FIELDCAT_LN-COL_POS = COL_POS.
APPEND FIELDCAT_LN TO FIELDCAT.
Credit Group
ADD 1 TO COL_POS.
CLEAR FIELDCAT_LN.
FIELDCAT_LN-REF_TABNAME = 'KNKK'.
FIELDCAT_LN-FIELDNAME = 'GRUPP'.
FIELDCAT_LN-COL_POS = COL_POS.
APPEND FIELDCAT_LN TO FIELDCAT.
*Sales District
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'KNVV'.
fieldcat_ln-fieldname = 'BZIRK'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = 'S_Distt'.
fieldcat_ln-seltext_m = 'S_Distt'.
fieldcat_ln-seltext_s = 'S_Distt'.
APPEND fieldcat_ln TO fieldcat.
Sales Office
ADD 1 TO col_pos.
CLEAR fieldcat_ln.
fieldcat_ln-ref_tabname = 'KNVV'.
fieldcat_ln-fieldname = 'VKBUR'.
fieldcat_ln-col_pos = col_pos.
fieldcat_ln-seltext_l = 'S_Off'.
fieldcat_ln-seltext_m = 'S_Off'.
fieldcat_ln-seltext_s = 'S_Off'.
APPEND fieldcat_ln TO fieldcat.
Cust Creat Date
ADD 1 TO COL_POS.
CLEAR FIELDCAT_LN.
FIELDCAT_LN-REF_TABNAME = 'lfa1'.
FIELDCAT_LN-FIELDNAME = 'ERDAT'.
FIELDCAT_LN-COL_POS = COL_POS.
APPEND FIELDCAT_LN TO FIELDCAT. -
Needs a solution for loading Crystal Report
Hi.....
I have already desiged & loaded crystal reports through SAP B1 Main Menu.
But I need help (Code in C#.Net) for loading a crystal report template(already created) for a System form (eg; A/R Invoice) immediately after the form load by a menu click(means through UI interface)
and report generated by identifying the Forms Document Number.HI...
See this following link
https://www.sdn.sap.com/irj/sdn/businessone?rid=/webcontent/uuid/807d22cb-cb1d-2b10-8794-fb76d7feca88#section2
Regards
Billa 2007 -
Need authorization object for relaese of Invoice to accounting
Dear Folks,
Could you please let me know the authorization object which is available in standard SAP which restricts users from release of invoice to accounting and should have authorization to change the invoice....Pls don't forward generic reply's...tried with available authorization objects using tcode SU24...for tcode VF02.
Regards,
KishoreHi,
See the program : MV60AF0V_VBRK_BEARBEITEN
Freigabe für Buchhaltung ( Accounting for release)
ENHANCEMENT 65 OIC_SDP_SAPMV60A. "active version
*Coding for Invoice Approval Process. "SDP-BILLING
IF TVFK-OIINVAPP EQ CHARX.
PERFORM RELE_AUTH_CHECK.
ENDIF.
ENDENHANCEMENT.
Here incorporate your Z authorisation object or you can use any of the standard one.
So that it will check the authorisation object before posting the same.
Hope this will resolve your problem.
regards, -
Archive Link Authorization problem for Business Partner.
Hi Experts,
Currently we are attaching documents to respective objects through Tr. OAWD & these documents are available in service for object as attachment, until this it is working fine.
But we are facing problem of authorization for archive link of ISU- Business Partner. Letu2019s say we had two users USER-A & USER-B responsible to upload documents of Business partners started with 1 & 2 respectively.
We needed authorization control for USER A&B so that,
USER-A should upload documents for Business Partner 1001 to 1999
& USER-B should upload documents for Business Partner 2001 to 2999
we need to know can we restrict USER A&B so that they can not upload documents for Business Partner for which they are not responsible. we allready checked the roles "SAP_BC_SRV_ARL_* " but not found useful to restrict USER A&B.
Thanks in advance....Hi Sam,
as this sounds like you search for suitable authorization objects I think that the authorization trace in transaction ST01 could be useful for you. For further information please see the following link: http://wiki.sdn.sap.com/wiki/display/PLM/AuthorizationTraceintransactionST01
Best regards,
Christoph -
Steps for Creating a Report in Oracle Apps
I need the steps for creating a Report 2.5 in Oracle Apps.
Please let me know the steps involved in detail
Regards
ChoudaryFirst you create the report using reports 2.5. (You need to refer Application Developer's User Guide to understand Apps standards for customization)
Then register the report in Apps:
1) Define the executable
2) Place the executable in the appropriate directory (You need to refer Apps installation guide to find the directory structure for placing reports)
3) Define the concurrent program (Pay attention when you define program parameters and value sets associated)
4) Attach your report to the request group attached to your responsibility
5) Run the concurrent program using SRS (you will not see the report when you open Submit Requests Form, if you do have permission)
The above procedure is applicable if you are defining the report directly in your instance. If you are using chain link, then you may have to migrate the objects appropriately.
Some of the above activities are usually done by System Administrator and users are not given permissions. -
I had to re install My OS and need Authorization code for my adobe acrobat 8.1.0 professional. Please Help.
Hi Gary ,
I would request you to connect with the Adobe support team to get your query regarding Authorization code fixed .
http://helpx.adobe.com/x-productkb/global/service1.html
Please click the blue"Still need help" button on the chat support page .
Regards
Sukrit Dhingra -
Help for asset aqusition report
hi,
here i am sending my code for asset aqusition report but not getting right output ie i am not able to get all the line items for particular asset no.
bcoz an asset has different line items with different doc no.
REPORT XXXXXX .
TABLES : sflight.
TYPE-POOLS: slis.
DATA : w_repid LIKE sy-repid.
w_repid = sy-repid.
DATA : BEGIN OF it_sflight OCCURS 0,
checkbox(1),
carrid LIKE sflight-carrid,
END OF it_sflight.
*layout
DATA: wa_layout TYPE slis_layout_alv.
*field catalog
DATA: it_fieldcatalog TYPE slis_t_fieldcat_alv,
wa_fieldcatalog TYPE slis_fieldcat_alv.
START-OF-SELECTION.
SELECT carrid FROM sflight INTO CORRESPONDING FIELDS OF TABLE
it_sflight.
END-OF-SELECTION.
CLEAR it_fieldcatalog.
REFRESH it_fieldcatalog.
wa_fieldcatalog-fieldname = 'CHECKBOX'.
wa_fieldcatalog-outputlen = '3'.
wa_fieldcatalog-col_pos = '1'.
wa_fieldcatalog-seltext_m = 'Chk'.
wa_fieldcatalog-checkbox = 'X'.
wa_fieldcatalog-edit = 'X'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'CARRID'.
wa_fieldcatalog-outputlen = '10'.
wa_fieldcatalog-col_pos = '2'.
wa_fieldcatalog-seltext_m = 'Carrid'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
is_layout = wa_layout
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = it_fieldcatalog
TABLES
t_outtab = it_sflight
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form USER_COMMAND
FORM user_command USING p_ucomm TYPE sy-ucomm
p_selfld TYPE slis_selfield.
CASE p_ucomm.
WHEN '&DATA_SAVE'.
DATA ref1 TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.
CALL METHOD ref1->check_changed_data.
LOOP AT it_sflight WHERE checkbox = 'X'.
DELETE it_sflight INDEX sy-tabix.
ENDLOOP.
p_selfld-refresh = 'X'.
ENDCASE.
ENDFORM. "user_command
Check the following code...
DATA: BEGIN OF itab OCCURS 0,
check,
value(20),
END OF itab.
SET PF-STATUS 'TEST1'.
itab-value = 'ETSAT'.
APPEND itab.
itab-value = 'ETSATADSF'.
APPEND itab.
itab-value = 'ETSAT'.
APPEND itab.
LOOP AT itab.
WRITE: / itab-check AS CHECKBOX,
itab-value.
ENDLOOP.
AT USER-COMMAND.
DATA: wa LIKE itab.
DATA: itab_download LIKE itab OCCURS 0 WITH HEADER LINE.
IF sy-ucomm = 'DOWNLOAD'.
DESCRIBE TABLE itab.
DO sy-tfill TIMES.
READ LINE sy-index FIELD VALUE itab-check.
IF sy-subrc <> 0.
EXIT.
ENDIF.
CHECK itab-check = 'X'.
itab_download-value = itab-value.
APPEND itab_download.
ENDDO.
DOWNLOAD
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = 'C:\TEST.XLS '
TABLES
data_tab = itab_download.
ENDIF.
Thanks
ShobiHi,
One the guy has same report as problem, ok, my friend Eswar as given the code for that, i will send you that, hope it is helpful
<b>Please check with this code now:
TYPE-POOLS : SLIS.
TABLES : ANLA, "ASSET MASTER RECORD-SEGMENT
ANLZ. "time dependent asset allocations
DATA : BEGIN OF T_ANLA OCCURS 0,
BUKRS LIKE ANLA-BUKRS,
ANLN1 LIKE ANLA-ANLN1,
ANLN2 LIKE ANLA-ANLN2,
AKTIV LIKE ANLA-AKTIV,
TXT50 LIKE ANLA-TXT50,
ZUGDT LIKE ANLA-ZUGDT,
MENGE LIKE ANLA-MENGE,
MEINS LIKE ANLA-MEINS,
END OF T_ANLA.
DATA : BEGIN OF T_ANLZ OCCURS 0,
BUKRS LIKE ANLZ-BUKRS,
ANLN1 LIKE ANLZ-ANLN1,
ANLN2 LIKE ANLZ-ANLN2,
GSBER LIKE ANLZ-GSBER,
KOSTL LIKE ANLZ-KOSTL,
STORT LIKE ANLZ-STORT,
RAUMN LIKE ANLZ-RAUMN,
KFZKZ LIKE ANLZ-KFZKZ,
END OF T_ANLZ.
DATA : BEGIN OF T_ANEK OCCURS 0,
BUKRS LIKE ANEK-BUKRS,
ANLN1 LIKE ANEK-ANLN1,
ANLN2 LIKE ANEK-ANLN2,
BELNR LIKE ANEK-BELNR,
BUDAT LIKE ANEK-BUDAT,
XBLNR LIKE ANEK-XBLNR,
SGTXT LIKE ANEK-SGTXT,
END OF T_ANEK.
DATA : BEGIN OF T_ANLC OCCURS 0,
BUKRS LIKE ANLC-BUKRS,
ANLN1 LIKE ANLC-ANLN1,
ANLN2 LIKE ANLC-ANLN2,
KANSW LIKE ANLC-KANSW,
KNAFA LIKE ANLC-KNAFA,
AAFAP LIKE ANLC-AAFAP,
AFABE LIKE ANLC-AFABE,
GJAHR LIKE ANLC-GJAHR,
END OF T_ANLC.
DATA : BEGIN OF IT_FINAL OCCURS 0,
ANLN1 LIKE ANLA-ANLN1,
ANLN2 LIKE ANLA-ANLN2,
AKTIV LIKE ANLA-AKTIV,
TXT50 LIKE ANLA-TXT50,
ZUGDT LIKE ANLA-ZUGDT,
MENGE LIKE ANLA-MENGE,
MEINS LIKE ANLA-MEINS,
GSBER LIKE ANLZ-GSBER,
KOSTL LIKE ANLZ-KOSTL,
STORT LIKE ANLZ-STORT,
RAUMN LIKE ANLZ-RAUMN,
KFZKZ LIKE ANLZ-KFZKZ,
BELNR LIKE ANEK-BELNR,
BUDAT LIKE ANEK-BUDAT,
XBLNR LIKE ANEK-XBLNR,
SGTXT LIKE ANEK-SGTXT,
KANSW LIKE ANLC-KANSW,
KNAFA LIKE ANLC-KNAFA,
AAFAP LIKE ANLC-AAFAP,
GJAHR LIKE ANEK-GJAHR,
END OF IT_FINAL.
DATA : LINE_COLOR(4) TYPE C.
DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
SELECTION-SCREEN : BEGIN OF BLOCK B_FA WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_BUKRS FOR ANLA-BUKRS DEFAULT 'ML',
S_ANLN1 FOR ANLA-ANLN1,
S_ANLN2 FOR ANLA-ANLN2.
s_gjahr FOR anlc-gjahr.
SELECTION-SCREEN : END OF BLOCK B_FA.
*SELECT-OPTIONS : s_belnr FOR anek-belnr.
SELECT BUKRS ANLN1 ANLN2 AKTIV TXT50 ZUGDT MENGE MEINS
FROM ANLA
INTO CORRESPONDING FIELDS OF TABLE T_ANLA
WHERE ANLN1 IN S_ANLN1
AND ANLN2 IN S_ANLN2
AND BUKRS IN S_BUKRS.
CHECK: NOT T_ANLA[] IS INITIAL.
SELECT BUKRS ANLN1 ANLN2 GSBER KOSTL STORT RAUMN KFZKZ
FROM ANLZ
INTO CORRESPONDING FIELDS OF TABLE T_ANLZ
FOR ALL ENTRIES IN T_ANLA
WHERE ANLN1 = T_ANLA-ANLN1
AND ANLN2 = T_ANLA-ANLN2
AND BUKRS = T_ANLA-BUKRS.
*IF sy-subrc EQ 0.
SELECT BUKRS ANLN1 ANLN2 BELNR BUDAT XBLNR SGTXT GJAHR
FROM ANEK
INTO CORRESPONDING FIELDS OF TABLE T_ANEK
FOR ALL ENTRIES IN T_ANLA
WHERE ANLN1 = T_ANLA-ANLN1
AND ANLN2 = T_ANLA-ANLN2
AND BUKRS = T_ANLA-BUKRS.
AND gjahr = t_anek-gjahr.
*ENDIF.
SELECT BUKRS ANLN1 ANLN2 KANSW KNAFA AAFAP AFABE GJAHR
FROM ANLC
INTO CORRESPONDING FIELDS OF TABLE T_ANLC
FOR ALL ENTRIES IN T_ANLA
WHERE ANLN1 = T_ANLA-ANLN1
AND ANLN2 = T_ANLA-ANLN2
AND BUKRS = T_ANLA-BUKRS
AND GJAHR = T_ANLC-GJAHR.
AND afabe = '01'.
LOOP AT T_ANLA.
MOVE : T_ANLA-ANLN1 TO IT_FINAL-ANLN1,
T_ANLA-ANLN2 TO IT_FINAL-ANLN2,
T_ANLA-AKTIV TO IT_FINAL-AKTIV,
T_ANLA-TXT50 TO IT_FINAL-TXT50,
T_ANLA-ZUGDT TO IT_FINAL-ZUGDT,
T_ANLA-MENGE TO IT_FINAL-MENGE,
T_ANLA-MEINS TO IT_FINAL-MEINS.
READ TABLE T_ANLZ WITH KEY BUKRS = T_ANLA-BUKRS
ANLN1 = T_ANLA-ANLN1
ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE : T_ANLZ-GSBER TO IT_FINAL-GSBER,
T_ANLZ-KOSTL TO IT_FINAL-KOSTL,
T_ANLZ-STORT TO IT_FINAL-STORT,
T_ANLZ-RAUMN TO IT_FINAL-RAUMN,
T_ANLZ-KFZKZ TO IT_FINAL-KFZKZ.
ENDIF.
READ TABLE T_ANLC WITH KEY BUKRS = T_ANLA-BUKRS
ANLN1 = T_ANLA-ANLN1
ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE : T_ANLC-KANSW TO IT_FINAL-KANSW,
T_ANLC-KNAFA TO IT_FINAL-KNAFA,
T_ANLC-AAFAP TO IT_FINAL-AAFAP.
ENDIF.
*SORT t_anla.
*READ TABLE T_ANEK WITH KEY BUKRS = T_ANLA-BUKRS
ANLN1 = T_ANLA-ANLN1
ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
*IF SY-SUBRC EQ 0.
LOOP AT T_ANEK WHERE BUKRS = T_ANLA-BUKRS AND ANLN1 = T_ANLA-ANLN1 AND
ANLN2 = T_ANLA-ANLN2.
MOVE : T_ANEK-BELNR TO IT_FINAL-BELNR,
T_ANEK-BUDAT TO IT_FINAL-BUDAT,
T_ANEK-XBLNR TO IT_FINAL-XBLNR,
T_ANEK-SGTXT TO IT_FINAL-SGTXT.
*ENDIF.
APPEND IT_FINAL.
ENDLOOP.
ENDLOOP.
*ENDIF.
PERFORM BUILD_FIELDCATALOG.
PERFORM DISPLAY_ALV_REPORT.
PERFORM BUILD_LAYOUT.
FORM BUILD_FIELDCATALOG *
FORM BUILD_FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ANLN1'.
FIELDCATALOG-SELTEXT_M = 'ASSET MAIN NO'.
FIELDCATALOG-COL_POS = 0.
FIELDCATALOG-OUTPUTLEN = 14.
FIELDCATALOG-EMPHASIZE = 'X'.
FIELDCATALOG-KEY = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ANLN2'.
FIELDCATALOG-SELTEXT_M = 'SUB NO'.
FIELDCATALOG-COL_POS = 1.
FIELDCATALOG-OUTPUTLEN = 7.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AKTIV'.
FIELDCATALOG-SELTEXT_M = 'CAP.DATE'.
FIELDCATALOG-COL_POS = 2.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TXT50'.
FIELDCATALOG-SELTEXT_M = 'NAME'.
FIELDCATALOG-COL_POS = 3.
FIELDCATALOG-OUTPUTLEN = 50.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ZUGDT'.
FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.
FIELDCATALOG-COL_POS = 4.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'MENGE'.
FIELDCATALOG-SELTEXT_M = 'QTY'.
FIELDCATALOG-COL_POS = 5.
FIELDCATALOG-OUTPUTLEN = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'MEINS'.
FIELDCATALOG-SELTEXT_M = 'UNITS'.
FIELDCATALOG-COL_POS = 6.
FIELDCATALOG-OUTPUTLEN = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GSBER'.
FIELDCATALOG-SELTEXT_M = 'BA'.
FIELDCATALOG-COL_POS = 7.
FIELDCATALOG-OUTPUTLEN = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KOSTL'.
FIELDCATALOG-SELTEXT_M = 'COST CENTER'.
FIELDCATALOG-COL_POS = 8.
FIELDCATALOG-OUTPUTLEN = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'STORT'.
FIELDCATALOG-SELTEXT_M = 'LOCATION'.
FIELDCATALOG-COL_POS = 9.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'RAUMN'.
FIELDCATALOG-SELTEXT_M = 'ROOM'.
FIELDCATALOG-COL_POS = 10.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KFZKZ'.
FIELDCATALOG-SELTEXT_M = 'LICENSE PLATE NO'.
FIELDCATALOG-COL_POS = 11.
FIELDCATALOG-OUTPUTLEN = 20.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BELNR'.
FIELDCATALOG-SELTEXT_M = 'DOC NO'.
FIELDCATALOG-COL_POS = 12.
FIELDCATALOG-OUTPUTLEN = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUDAT'.
FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.
FIELDCATALOG-COL_POS = 13.
FIELDCATALOG-OUTPUTLEN = 15.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'XBLNR'.
FIELDCATALOG-SELTEXT_M = 'REF NO'.
FIELDCATALOG-COL_POS = 14.
FIELDCATALOG-OUTPUTLEN = 25.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'TEXT'.
FIELDCATALOG-COL_POS = 15.
FIELDCATALOG-OUTPUTLEN = 50.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. "BUILD_FIELDCATALOG
FORM BUILD_LAYOUT *
FORM BUILD_LAYOUT.
GD_LAYOUT-ZEBRA = 'X'.
GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
ENDFORM. "BUILD_LAYOUT
FORM DISPLAY_ALV_REPORT *
FORM DISPLAY_ALV_REPORT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = ' '
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
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 = IT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. "DISPLAY_ALV_REPORT
Thanks & Regards
Eswar. B
Tel: +65 6544 7449
mailto: [email protected]
From: [email protected] [mailto:[email protected]]
Sent: Tuesday, November 28, 2006 7:36 PM
To: Boddeti, Eswar Rao
Subject: Re: need ur help for asset aqusition report
Hai,
Sorry sorry this is the right Code.
Z_FA_ACQ NO STANDARD PAGE HEADING
LINE-SIZE 400
LINE-COUNT 65(3).
TYPE-POOLS : SLIS.
TABLES : ANLA, "ASSET MASTER RECORD-SEGMENT
ANLZ. "time dependent asset allocations
DATA : BEGIN OF T_ANLA OCCURS 0,
BUKRS LIKE ANLA-BUKRS,
ANLN1 LIKE ANLA-ANLN1,
ANLN2 LIKE ANLA-ANLN2,
AKTIV LIKE ANLA-AKTIV,
TXT50 LIKE ANLA-TXT50,
ZUGDT LIKE ANLA-ZUGDT,
MENGE LIKE ANLA-MENGE,
MEINS LIKE ANLA-MEINS,
END OF T_ANLA.
DATA : BEGIN OF T_ANLZ OCCURS 0,
BUKRS LIKE ANLZ-BUKRS,
ANLN1 LIKE ANLZ-ANLN1,
ANLN2 LIKE ANLZ-ANLN2,
GSBER LIKE ANLZ-GSBER,
KOSTL LIKE ANLZ-KOSTL,
STORT LIKE ANLZ-STORT,
RAUMN LIKE ANLZ-RAUMN,
KFZKZ LIKE ANLZ-KFZKZ,
END OF T_ANLZ.
DATA : BEGIN OF T_ANEK OCCURS 0,
BUKRS LIKE ANEK-BUKRS,
ANLN1 LIKE ANEK-ANLN1,
ANLN2 LIKE ANEK-ANLN2,
BELNR LIKE ANEK-BELNR,
BUDAT LIKE ANEK-BUDAT,
XBLNR LIKE ANEK-XBLNR,
SGTXT LIKE ANEK-SGTXT,
END OF T_ANEK.
DATA : BEGIN OF T_ANLC OCCURS 0,
BUKRS LIKE ANLC-BUKRS,
ANLN1 LIKE ANLC-ANLN1,
ANLN2 LIKE ANLC-ANLN2,
KANSW LIKE ANLC-KANSW,
KNAFA LIKE ANLC-KNAFA,
AAFAP LIKE ANLC-AAFAP,
AFABE LIKE ANLC-AFABE,
GJAHR LIKE ANLC-GJAHR,
END OF T_ANLC.
DATA : BEGIN OF IT_FINAL OCCURS 0,
ANLN1 LIKE ANLA-ANLN1,
ANLN2 LIKE ANLA-ANLN2,
AKTIV LIKE ANLA-AKTIV,
TXT50 LIKE ANLA-TXT50,
ZUGDT LIKE ANLA-ZUGDT,
MENGE LIKE ANLA-MENGE,
MEINS LIKE ANLA-MEINS,
GSBER LIKE ANLZ-GSBER,
KOSTL LIKE ANLZ-KOSTL,
STORT LIKE ANLZ-STORT,
RAUMN LIKE ANLZ-RAUMN,
KFZKZ LIKE ANLZ-KFZKZ,
BELNR LIKE ANEK-BELNR,
BUDAT LIKE ANEK-BUDAT,
XBLNR LIKE ANEK-XBLNR,
SGTXT LIKE ANEK-SGTXT,
KANSW LIKE ANLC-KANSW,
KNAFA LIKE ANLC-KNAFA,
AAFAP LIKE ANLC-AAFAP,
GJAHR LIKE ANEK-GJAHR,
END OF IT_FINAL.
DATA : LINE_COLOR(4) TYPE C.
DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
SELECTION-SCREEN : BEGIN OF BLOCK B_FA WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_BUKRS FOR ANLA-BUKRS DEFAULT 'ML',
S_ANLN1 FOR ANLA-ANLN1,
S_ANLN2 FOR ANLA-ANLN2.
s_gjahr FOR anlc-gjahr.
SELECTION-SCREEN : END OF BLOCK B_FA.
*SELECT-OPTIONS : s_belnr FOR anek-belnr.
SELECT BUKRS ANLN1 ANLN2 AKTIV TXT50 ZUGDT MENGE MEINS
FROM ANLA
INTO CORRESPONDING FIELDS OF TABLE T_ANLA
WHERE ANLN1 IN S_ANLN1
AND ANLN2 IN S_ANLN2
AND BUKRS IN S_BUKRS.
SELECT BUKRS ANLN1 ANLN2 GSBER KOSTL STORT RAUMN KFZKZ
FROM ANLZ
INTO CORRESPONDING FIELDS OF TABLE T_ANLZ
FOR ALL ENTRIES IN T_ANLA
WHERE ANLN1 = T_ANLA-ANLN1
AND ANLN2 = T_ANLA-ANLN2
AND BUKRS = T_ANLA-BUKRS.
*IF sy-subrc EQ 0.
SELECT BUKRS ANLN1 ANLN2 BELNR BUDAT XBLNR SGTXT GJAHR
FROM ANEK
INTO CORRESPONDING FIELDS OF TABLE T_ANEK
FOR ALL ENTRIES IN T_ANLA
WHERE ANLN1 = T_ANLA-ANLN1
AND ANLN2 = T_ANLA-ANLN2
AND BUKRS = T_ANLA-BUKRS.
AND gjahr = t_anek-gjahr.
*ENDIF.
SELECT BUKRS ANLN1 ANLN2 KANSW KNAFA AAFAP AFABE GJAHR
FROM ANLC
INTO CORRESPONDING FIELDS OF TABLE T_ANLC
FOR ALL ENTRIES IN T_ANLA
WHERE ANLN1 = T_ANLA-ANLN1
AND ANLN2 = T_ANLA-ANLN2
AND BUKRS = T_ANLA-BUKRS
AND GJAHR = T_ANLC-GJAHR.
AND afabe = '01'.
LOOP AT T_ANLA.
MOVE : T_ANLA-ANLN1 TO IT_FINAL-ANLN1,
T_ANLA-ANLN2 TO IT_FINAL-ANLN2,
T_ANLA-AKTIV TO IT_FINAL-AKTIV,
T_ANLA-TXT50 TO IT_FINAL-TXT50,
T_ANLA-ZUGDT TO IT_FINAL-ZUGDT,
T_ANLA-MENGE TO IT_FINAL-MENGE,
T_ANLA-MEINS TO IT_FINAL-MEINS.
READ TABLE T_ANLZ WITH KEY BUKRS = T_ANLA-BUKRS
ANLN1 = T_ANLA-ANLN1
ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE : T_ANLZ-GSBER TO IT_FINAL-GSBER,
T_ANLZ-KOSTL TO IT_FINAL-KOSTL,
T_ANLZ-STORT TO IT_FINAL-STORT,
T_ANLZ-RAUMN TO IT_FINAL-RAUMN,
T_ANLZ-KFZKZ TO IT_FINAL-KFZKZ.
ENDIF.
READ TABLE T_ANLC WITH KEY BUKRS = T_ANLA-BUKRS
ANLN1 = T_ANLA-ANLN1
ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE : T_ANLC-KANSW TO IT_FINAL-KANSW,
T_ANLC-KNAFA TO IT_FINAL-KNAFA,
T_ANLC-AAFAP TO IT_FINAL-AAFAP.
ENDIF.
*SORT t_anla.
READ TABLE T_ANEK WITH KEY BUKRS = T_ANLA-BUKRS
ANLN1 = T_ANLA-ANLN1
ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE : T_ANEK-BELNR TO IT_FINAL-BELNR,
T_ANEK-BUDAT TO IT_FINAL-BUDAT,
T_ANEK-XBLNR TO IT_FINAL-XBLNR,
T_ANEK-SGTXT TO IT_FINAL-SGTXT.
ENDIF.
APPEND IT_FINAL.
*ENDLOOP.
ENDLOOP.
*ENDIF.
PERFORM BUILD_FIELDCATALOG.
PERFORM DISPLAY_ALV_REPORT.
PERFORM BUILD_LAYOUT.
FORM BUILD_FIELDCATALOG *
FORM BUILD_FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ANLN1'.
FIELDCATALOG-SELTEXT_M = 'ASSET MAIN NO'.
FIELDCATALOG-COL_POS = 0.
FIELDCATALOG-OUTPUTLEN = 14.
FIELDCATALOG-EMPHASIZE = 'X'.
FIELDCATALOG-KEY = 'X'.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ANLN2'.
FIELDCATALOG-SELTEXT_M = 'SUB NO'.
FIELDCATALOG-COL_POS = 1.
FIELDCATALOG-OUTPUTLEN = 7.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AKTIV'.
FIELDCATALOG-SELTEXT_M = 'CAP.DATE'.
FIELDCATALOG-COL_POS = 2.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'TXT50'.
FIELDCATALOG-SELTEXT_M = 'NAME'.
FIELDCATALOG-COL_POS = 3.
FIELDCATALOG-OUTPUTLEN = 50.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ZUGDT'.
FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.
FIELDCATALOG-COL_POS = 4.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'MENGE'.
FIELDCATALOG-SELTEXT_M = 'QTY'.
FIELDCATALOG-COL_POS = 5.
FIELDCATALOG-OUTPUTLEN = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'MEINS'.
FIELDCATALOG-SELTEXT_M = 'UNITS'.
FIELDCATALOG-COL_POS = 6.
FIELDCATALOG-OUTPUTLEN = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GSBER'.
FIELDCATALOG-SELTEXT_M = 'BA'.
FIELDCATALOG-COL_POS = 7.
FIELDCATALOG-OUTPUTLEN = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KOSTL'.
FIELDCATALOG-SELTEXT_M = 'COST CENTER'.
FIELDCATALOG-COL_POS = 8.
FIELDCATALOG-OUTPUTLEN = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'STORT'.
FIELDCATALOG-SELTEXT_M = 'LOCATION'.
FIELDCATALOG-COL_POS = 9.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'RAUMN'.
FIELDCATALOG-SELTEXT_M = 'ROOM'.
FIELDCATALOG-COL_POS = 10.
FIELDCATALOG-OUTPUTLEN = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KFZKZ'.
FIELDCATALOG-SELTEXT_M = 'LICENSE PLATE NO'.
FIELDCATALOG-COL_POS = 11.
FIELDCATALOG-OUTPUTLEN = 20.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BELNR'.
FIELDCATALOG-SELTEXT_M = 'DOC NO'.
FIELDCATALOG-COL_POS = 12.
FIELDCATALOG-OUTPUTLEN = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUDAT'.
FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.
FIELDCATALOG-COL_POS = 13.
FIELDCATALOG-OUTPUTLEN = 15.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'XBLNR'.
FIELDCATALOG-SELTEXT_M = 'REF NO'.
FIELDCATALOG-COL_POS = 14.
FIELDCATALOG-OUTPUTLEN = 25.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'TEXT'.
FIELDCATALOG-COL_POS = 15.
FIELDCATALOG-OUTPUTLEN = 50.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM.
FORM BUILD_LAYOUT *
FORM BUILD_LAYOUT.
GD_LAYOUT-ZEBRA = 'X'.
GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
ENDFORM.
FORM DISPLAY_ALV_REPORT *
FORM DISPLAY_ALV_REPORT.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = ' '
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
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 = IT_FINAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.
Thanks
manju -
Create authorization check for a report
Hi,
I need to create an authorization check for a report. It means that I need to restrict the usage of the report to couple of users ( 'USER1' and 'USER2' ). How can I do that? I did read through a lot of threads regarding this piece got a bit confused and stuck while creating the authorization object.
Say the report name is ZHR_TIMEABC.
Can anyone explain how to create an authorization object and how are they tied to the object and call them in the abap code?
Thanks in advance,
VGHi,
Thanks. Here is my understanding, S_C_FUNCT calls a system generated function module to make an authority check. So, if different users say USER1 and USER2 have different authroization levels, defined in their user profile, just adding this piece code will take care of authroization check for the program OR do I need to take care of something else?
If so, when do we need to create the authorization objects using SU20 and assign the group and follo this process? When do we use this approach ( lot of threads on authority check have mentioned this procedure)?
Your inputs will be helpful to understand this concept.
Thanks,
VG
Maybe you are looking for
-
Can I change my verified primary email address that is currently associated with my apple id? I don't want to change my apple id because I have music and apps assoicated with it. I tired following some of the posts that shows going to an apple dial
-
How to download photos with broken display
I accidentally dropped my Lumia 820 and want to download my photos now. But the display is so broken that I cannot enter the PIN code and hence cannot connect the phone via USB to my laptop. Is there any way around entering the PIN? All my photos are
-
How can we align TOC and Navigation bar for Captivate 4 Aggregator Project?
Hi, Is there any way we can align the bottom of TOC and Navigation bar of Captivate 4 Aggregator project. Or can we give a background color so that they don't look like different entities. Thanks, Janhavi
-
Erratic connection to Snow since update to 10.4.7
Hi all, I have an airport snow which is connected to a DSL-Modem via Ethernet. The DSL-Modem itself has a WLAN ('Fritz' box) so I can switch back and forth, but I prefer Airport since my Appletalk-printer is connected to it via a bridge. The setting
-
Change Date Type Description and Re Arrange
Dear Expert, I would like to change description of each date type in block date and arrange date rows as new sequence in IC Web Client, I try to do it on t-code BSP_DLC_SDESIG_DL but I cannot, the transaction allow to adjust only field STRUCT.AP