Reports6i:hiding frame outlines in report output
i'am a newbie .
stuck up in creating the reports.
after i compile, in the report output ,i;am still able to see the frame outlines and repeating frame outlines,text oulines.data is fetched correctly.
pls suggest me wht to do, to avoid this
thx
pls help me
Go to Report Layout. Select the frame . There will be three buttons with color palettes on the left (Fill color, line color and text color). Click on the Line color (second one) and Press No Line Button. Now the frame lines will not appear on the output
Thanks
V Viswanathan
Similar Messages
-
Product for presenting ABAP report output in Dashboard Presentation
<u>Background</u>
Monash University environment is SAP ERP ECC6 - no BW. The University has undertaken considerable analysis of spend as part of developing a strategic approach to procurement. The data used to undertake this analysis was extracted from SAP MM and FI using a developed ABAP report which collates, categorizes and consolidates all spend information from MM (for our Purchase Order based commitment and expenditure) and FI (for direct invoices and Corporate Credit Card expenditure). This information is then currently exported to MS-Excel to produce a report containing graphs, pie charts etc.
<u>Requirement</u>
To present output from our Spend Analysis Report in a more readable dashboard type presentation. This facility should allow easy manipulation (slice and dice) and drill down of the data.. Our requirement is to have something operating within a very short time-frame, say within a month or two. Although you might suggest Web Dynpro Business Graphic or SEM /BW (as the optimal solution) we understand the set up time for either of these solutions is prohibitive. Visual Composer has been suggested as another option but we have no in-house expertise to determine if this is a viable solution.
Some colleagues visited a conference a couple of weeks ago and saw a demonstration of a product call XenoCube http://www.inlogik.com/downloads/XenoCube_Brochure.pdf
which was proposed as a quick way to present SAP 'raw' report output in a more readable form. Other solutions in this space that have been suggested include:-
Zycus - Actionable Spend Analysis Zycus.com
Emptoris Spend Analysis - emptoris.com
ONIQUA Enterprise Analytics oniqua.com.au
Ariba Buyer ariba.com
SAS Spend Analysis sas.com
Etesius SpendGuardian etesius.com
Can anyone provide advice as to their experience of SAP solution, integrated partner products or any of the about products to satisfy a similar requirement to that which I have outlined? The main selection criteria will include a product which is:
a) quick & easy to implement,
b) presentation and manipulation of ABAP extracted data
c) is scalable and
d) is reasonably priced.
Grateful for any advice regarding a solution .
Thank-youHi,
This development writes to mapped network drive in Unix. The concept will be similar.
[http://wiki.sdn.sap.com/wiki/display/SCM/APOtoMappedNetworkDrive]
cheers
Aveek -
Options for ABAP report output in Dashboard type presentation
Background
Monash University environment is SAP ERP ECC6 - no BW. The University has undertaken considerable analysis of spend as part of developing a strategic approach to procurement. The data used to undertake this analysis was extracted from SAP MM and FI using a developed ABAP report which collates, categorizes and consolidates all spend information from MM (for our Purchase Order based commitment and expenditure) and FI (for direct invoices and Corporate Credit Card expenditure). This information is then currently exported to MS-Excel to produce a report containing graphs, pie charts etc.
Requirement
To present output from our Spend Analysis Report in a more readable dashboard type presentation. This facility should allow easy manipulation (slice and dice) and drill down of the data.. Our requirement is to have something operating within a very short time-frame, say within a month or two. Although you might suggest Web Dynpro Business Graphic or SEM /BW (as the optimal solution) we understand the set up time for either of these solutions is prohibitive. Visual Composer has been suggested as another option but we have no in-house expertise to determine if this is a viable solution.
Some colleagues visited a conference a couple of weeks ago and saw a demonstration of a product call XenoCube http://www.inlogik.com/downloads/XenoCube_Brochure.pdf
which was proposed as a quick way to present SAP 'raw' report output in a more readable form. Other solutions in this space that have been suggested include:-
Zycus - Actionable Spend Analysis Zycus.com
Emptoris Spend Analysis - emptoris.com
ONIQUA Enterprise Analytics oniqua.com.au
Ariba Buyer ariba.com
SAS Spend Analysis sas.com
Etesius SpendGuardian etesius.com
Can anyone provide advice as to their experience of SAP solution, integrated partner products or any of the about products to satisfy a similar requirement to that which I have outlined? The main selection criteria will include a product which is:
a) quick & easy to implement,
b) presentation and manipulation of ABAP extracted data
c) is scalable and
d) is reasonably priced.
Grateful for any advice regarding a solution .
Thank-youHi,
This development writes to mapped network drive in Unix. The concept will be similar.
[http://wiki.sdn.sap.com/wiki/display/SCM/APOtoMappedNetworkDrive]
cheers
Aveek -
ABAP Dump while Changing the Layout fields in Report output - RCOPCA02
Hi,
I Copied the Standard Program RCOPCA02 to ZRCOPCA02. I added two new fields(AUART, AUGRU) in the report output. It is executing correctly with default layout, While Changing the layout for displaying new fields it is dumping.
I am not understanding, What should i do...
Here is the Code.
report ZRCOPCA02 no standard page heading message-id km
line-count (2) line-size 81.
type-pools: slis, ecarc.
DDIC-Tabellen *******************************************************
tables: glpca, "Einzelposten / Ist
glu1, "Übergabestruktur FI-SL-Anzeige
t000,
tka01,
sscrfields,
vbak.
Variablen und int. Tabellen *****************************************
data: l_vbeln like vbak-vbeln,
l_auart like vbak-auart,
l_augru like vbak-augru.
data: afield type slis_fieldcat_alv,
sp_group type slis_sp_group_alv,
t_listheader type slis_t_listheader with header line,
t_layout type slis_layout_alv,
t_fieldcat type slis_t_fieldcat_alv,
t_spec_groups type slis_t_sp_group_alv,
event type slis_alv_event,
t_events type slis_t_event,
g_variant like disvariant,
gx_variant like disvariant,
g_exit(1) type c,
g_save(1) type c,
g_repid like sy-repid,
msgtyp like sy-msgty,
lt_dynpread like dynpread occurs 1 with header line,
ls_rpcak like rpcak, "note 0310592
packsize type i value 1000,
text1(60) type c,
text2(60) type c,
oldkokrs like glpca-kokrs,
oldracct like glpca-racct.
data: whr_size type i value 50,"Maximum of single values per MIC 46a
"charact. in the where-clause of the select-statement
lines type i, "number of lines of range table MIC 46a
cnt_rldnr type i, "Zähler Anzahl selektierter Ledger
cnt_kokrs type i, "Zähler Anzahl selektierter KoReKreise
cnt_poper type i, "Zähler Anzahl selektierter Perioden
cnt_ryear type i, "Zähler Anzahl selektierter GeschJahre
cnt_rvers type i, "Zähler Anzahl selektierter Versionen
cnt_bukrs type i, "Zähler Anzahl selektierter BuKreise
empge like dkobr-empge,
ksl_curr like tka01-pcacur,
hsl_curr like t001-waers,
a_rec like rstirec.
data: begin of dim_data.
include structure rgcdi. "data for dimensions
data: end of dim_data.
data: begin of tab_fields occurs 80,
name like dntab-fieldname, "fields in table i_glpca
end of tab_fields.
data: begin of i_glpca occurs 0.
include structure rpca2.
data: racct_ktext like rpcak-ktext,
psppp like prps-posid,
v_auart like vbak-auart,
v_augru like vbak-augru,
end of i_glpca.
data: rw_subrc like sy-subrc, "Flag: Report-Writer-Schnittstelle
re_subrc like sy-subrc, "Flag: Recherche-Schnittstelle
subrc like sy-subrc.
data: set_id like sethier-setid, "Set-ID "RDI_SETS_4.0
set_class like sethier-setclass, "Setklasse "RDI_SETS_4.0
set_sname like sethier-shortname."Setname (24) "RDI_SETS_4.0
data: authorised(1),
s_message(1),
auth_dbcount like sy-tabix,
Hex-Konstanten für Minimum/Maximum-Werte
begin of hex00,
x1(12) type c,
x2(12) type c,
end of hex00,
begin of hexff,
x1(12) type c,
x2(12) type c,
end of hexff.
ranges rclnt for glpca-rclnt.
field-symbols: type ecarc_glpca_curr.
Selektionsoptionen *************************************************
select-options:
rldnr for glpca-rldnr default '8A' no-display,
rassc for glpca-rassc no-display,
rrcty for glpca-rrcty default 0,
rrcty for glpca-rrcty,
rvers for glpca-rvers default '000',
kokrs for glpca-kokrs memory id cac,
bukrs for glpca-rbukrs memory id buk,
poper for glpca-poper default sy-datlo+4(2),
ryear for glpca-ryear default sy-datlo,
poper for glpca-poper,
ryear for glpca-ryear,
prctr for glpca-rprctr matchcode object prct,
pprctr for glpca-sprctr matchcode object prct,
RACCT FOR GLPCA-RACCT MATCHCODE OBJECT KART, "RD_P30K128304
racct for glpca-racct, "RD_P30K128304
drcrk for glpca-drcrk,
activ for glpca-activ,
rhoart for glpca-rhoart,
rfarea for glpca-rfarea,
stagr for glpca-stagr,
rtcur for glpca-rtcur,
runit for glpca-runit,
versa for glpca-versa no-display,
eprctr for glpca-eprctr no-display,
afabe for glpca-afabe no-display,
rmvct for glpca-rmvct no-display,
hrkft for glpca-hrkft no-display, "note 550972
sbukrs for glpca-sbukrs no-display, "note 550972
shoart for glpca-shoart no-display, "note 550972
sfarea for glpca-sfarea no-display, "note 550972
docct for glpca-docct,
docnr for glpca-docnr,
refdocct for glpca-refdocct,
refdocnr for glpca-refdocnr,
werks for glpca-werks,
repmatnr for glpca-rep_matnr matchcode object pca_shlp_rep_matnr,
rscope for glpca-rscope.
parameters: no_rrint no-display default ' '." skip "MICP40K066037
" report-report-interface
display variant ">>MICP40K039857
selection-screen begin of block 0 with frame title text-e01.
parameters: p_vari like disvariant-variant.
selection-screen comment 47(40) varname for field p_vari.
selection-screen end of block 0.
parameters log_grp(4) type c no-display default 'KE5Z'.
"<<MICP40K039857
ranges: v_racct for glpca-racct,
v_prctr for glpca-rprctr,
v_pprctr for glpca-sprctr.
Tabelle mit Werten aus den Berichts-Set vom Report-Writer *
data begin of val_tab occurs 50.
include structure rgciv.
data end of val_tab.
MICP30K166368
feldkatalog und interface für bb-schnittstelle rw MICP30K166368
MICP30K166368
"MICP30K166368
data begin of bbs_fieldtab occurs 20. "MICP30K166368
include structure rstifields. "MICP30K166368
data end of bbs_fieldtab. "MICP30K166368
archiv
type-pools: rsds.
types: begin of ty_archive_objects,
object like arch_obj-object,
end of ty_archive_objects,
ty_t_archive_objects type ty_archive_objects occurs 2.
constants: lc_set type c value 'X',
lc_report type progname value 'KE5Z',
lc_reporttype type reporttype value 'TR'.
tables: admi_files.
select-options lr_files for admi_files-archiv_key no-display.
parameter: read_db type c default 'X' no-display,
read_ar type c no-display,
arc_obj like arch_obj-object no-display,
read_as type c default 'X' no-display.
data : lt_arch_obj type ty_t_archive_objects with header line,
ls_selections type rsds_frange,
lt_selections type rsds_frange_t,
ls_selopt type rsdsselopt,
lt_glpca_archiv type ecarc_t_glpca_curr.
*********************************************************>>MICP40K039857
INITIALIZATION
initialization.
Diverse Initialisierungen
perform init_vars.
g_repid = sy-repid.
Set default values for record type
rrcty-sign = 'I'.
rrcty-option = 'EQ'.
rrcty-low = '0'.
append rrcty.
rrcty-low = '2'.
append rrcty.
Set default values for period and year (if kokrs or bukrs is known)
get parameter id 'BUK' field bukrs-low.
get parameter id 'CAC' field kokrs-low.
if kokrs-low is initial "get contr. area from company code
and not bukrs-low is initial.
call function 'KOKRS_GET_FROM_BUKRS'
exporting
i_bukrs = bukrs-low
importing
e_kokrs = kokrs-low
exceptions
no_kokrs_found = 1
others = 2.
if sy-subrc <> 0.
clear kokrs-low.
endif.
endif.
if not kokrs-low is initial.
call function 'K_KOKRS_READ' "get fiscal year variant
exporting
kokrs = kokrs-low
importing
e_tka01 = tka01
exceptions
not_found = 1
not_found_gjahr = 2
others = 3.
if sy-subrc = 0.
call function 'G_PERIOD_GET'
exporting
date = sy-datlo
variant = tka01-lmona
importing
period = poper-low
year = ryear-low
exceptions
ledger_not_assigned_to_company = 1
period_not_defined = 2
variant_not_defined = 3
others = 4.
if sy-subrc = 0.
poper-sign = 'I'.
poper-option = 'EQ'.
append poper.
ryear-sign = 'I'.
ryear-option = 'EQ'.
append ryear.
endif.
endif.
endif.
Settings for display variants
g_save = 'A'. "Schalter Varianten benutz./allg. speichern
clear g_variant.
g_variant-report = g_repid.
g_variant-log_group = log_grp.
g_variant-username = sy-uname.
Get default variant
gx_variant = g_variant.
call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
exporting
i_save = g_save
changing
cs_variant = gx_variant
exceptions
not_found = 2.
if sy-subrc = 0.
p_vari = gx_variant-variant.
endif.
Set variant
if p_vari is initial.
p_vari = '1SAP'.
move p_vari to gx_variant-variant.
call function 'REUSE_ALV_VARIANT_EXISTENCE'
exporting
i_save = g_save
changing
cs_variant = gx_variant
exceptions
not_found = 1.
if sy-subrc ne 0.
clear p_vari.
clear gx_variant-variant.
endif.
endif.
varname = gx_variant-text.
"<<MICP40K039857
archiv
call function 'KARL_DATA_INPUT_INIT'
exporting
i_report = lc_report
i_reporttype = lc_reporttype
importing
e_xusedb = read_db
e_xusear = read_ar
e_archobj = arc_obj
e_infosys = read_as
tables
t_arch_sel = lr_files.
data: lt_excluding like sy-ucomm occurs 0 with header line.
call function 'RS_SET_SELSCREEN_STATUS'
exporting
p_status = 'SELSCREEN'
p_program = 'RCOPCA02'
tables
p_exclude = lt_excluding.
Initialisieren der Bericht/Bericht-Schnittstellen *
data: ld_no_rrint type boole_d. "note 490484 begin
import rri = ld_no_rrint from memory id 'RCOPCA02_NO_RRI'.
if ld_no_rrint = 'X'.
free memory id 'RCOPCA02_NO_RRI'.
else. "note 490484 end
call function 'G_REPORT_INTERFACE_INIT' "Report-Writer?
exporting "MICP30K166368
table = 'GLPCT' "MICP30K166368
importing
subrc = rw_subrc "MICP30K166368
tables "MICP30K166368
it_fieldr = bbs_fieldtab. "MICP30K166368
call function 'RSTI_APPL_STACK_POP'"oder Recherche?
importing
i_rec = a_rec
exceptions
appl_stack_not_initialized = 1.
re_subrc = sy-subrc.
if re_subrc = 0.
check Receiver is this report
if not ( ( a_rec-rtool = 'RT' and a_rec-ronam = 'RCOPCA02' )
or ( a_rec-rtool = 'TR' and a_rec-ronam = 'KE5Z' ) ) .
re_subrc = 2.
endif.
endif.
endif.
AT SELCTION-SCREEN on value request**********************************
*at selection-screen on value-request for racct-low. "RD "4.6a
"RD "4.6a
call function 'K_RACCT_VALUE_REQUEST' "RD "4.6a
importing "RD "4.6a
e_racct = racct-low. "RD "4.6a
"RD "4.6a
"RD "4.6a
*at selection-screen on value-request for racct-high. "RD "4.6a
"RD "4.6a
call function 'K_RACCT_VALUE_REQUEST' "RD "4.6a
importing "RD "4.6a
e_racct = racct-high. "RD "4.6a
at selection-screen on value-request for p_vari. "MICP40K039857
perform f4_for_variant. "MICP40K039857
at selection-screen on value-request for poper-low. "RD "4.6a
begin of insertion note 522715
call function 'K_KOKRS_READ'
exporting
kokrs = kokrs-low
exceptions
not_found = 1
not_found_gjahr = 2
others = 3.
if sy-subrc = 0.
end of insertion note 522715
call function 'ECPCA_RPMAX_VALUE_REQUEST' "RD "4.6a
exporting "RD "4.6a
i_kokrs = kokrs-low "RD "4.6a
i_ryear = ryear-low "RD "4.6a
importing "RD "4.6a
e_rpmax = poper-low "RD "4.6a
begin of insertion note 522715
exceptions
table_empty = 1.
endif.
end of insertion note 522715
at selection-screen on value-request for poper-high. "RD "4.6a
begin of insertion note 522715
call function 'K_KOKRS_READ'
exporting
kokrs = kokrs-low
exceptions
not_found = 1
not_found_gjahr = 2
others = 3.
if sy-subrc = 0.
end of insertion note 522715
call function 'ECPCA_RPMAX_VALUE_REQUEST' "RD "4.6a
exporting "RD "4.6a
i_kokrs = kokrs-low "RD "4.6a
i_ryear = ryear-low "RD "4.6a
importing "RD "4.6a
e_rpmax = poper-high "RD "4.6a
begin of insertion note 522715
exceptions
table_empty = 1.
endif.
end of insertion note 522715
AT SELCTION-SCREEN ***************************************************
at selection-screen.
perform pai_of_selection_screen.
begin of insertion note 522715
if not kokrs-low is initial.
call function 'K_KOKRS_READ'
exporting
kokrs = kokrs-low
exceptions
not_found = 1
not_found_gjahr = 2
others = 3.
if sy-subrc <> 0.
message e101(ki) with kokrs-low.
endif.
endif.
end of insertion note 522715
archiv
if sy-ucomm = 'FC01' or sy-ucomm = 'UCDS'
or sy-ucomm = 'ONLI' and read_ar = 'X'
and read_as is initial and lr_files[] is initial.
if lt_arch_obj[] is initial.
lt_arch_obj-object = 'PCA_OBJECT'. append lt_arch_obj.
lt_arch_obj-object = 'EC_PCA_ITM'. append lt_arch_obj.
endif.
call function 'KARL_DATA_INPUT_SELECT'
exporting
i_db_and_arc = lc_set
i_infosys_possible = lc_set
i_object_fixed = 'V'
i_documentation = 'KARL_DATA_INPUT_SEL_KE5YZ'
i_report = lc_report
i_reporttype = lc_reporttype
tables
t_objects = lt_arch_obj
t_arch_sel = lr_files
changing
c_xusedb = read_db
c_xusear = read_ar
c_archobj = arc_obj
c_infosys = read_as.
endif.
START-OF-SELECTION **************************************************
start-of-selection.
Default-Werte löschen, falls Aufruf über Recherche
oder Report-Writer erfolgt ist
if no_rrint is initial and ld_no_rrint is initial. "note 490484
if rw_subrc eq 0 or re_subrc eq 0.
refresh: rldnr, rrcty, rvers, kokrs, bukrs, poper, ryear,
racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
versa, afabe, eprctr,
v_racct, v_prctr, v_pprctr.
clear: rldnr, rrcty, rvers, kokrs, bukrs, poper, ryear,
racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
versa, afabe, eprctr,
v_racct, v_prctr, v_pprctr.
endif.
Parameter einlesen über Report-Writer-Schnittstelle *
if rw_subrc eq 0.
perform rw_get_parameters.
oder Parameter einlesen über Recherche-Schnittstelle *
elseif re_subrc eq 0.
perform re_get_parameters.
endif.
endif.
if read_db = 'X'. " read from DB (archiv)
Bewegungsdaten einlesen und puffern...................................
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = 'Einzelposten selektieren'(p10).
Use dirty trick to mislead DB-optimizer
call function 'DB_DO_NOT_USE_CLIENT_INDEX'
exporting
value = sy-mandt
tables
mandttab = rclnt.
select (tab_fields) from glpca
client specified
package size packsize
APPENDING CORRESPONDING FIELDS OF TABLE i_glpcaO
into corresponding fields of table i_glpca
where rldnr in rldnr
and rrcty in rrcty
and rvers in rvers
and kokrs in kokrs
and rbukrs in bukrs
and ryear in ryear
and rassc in rassc
and hrkft in hrkft "note 550972
and sbukrs in sbukrs "note 550972
and shoart in shoart "note 550972
and sfarea in sfarea "note 550972
and racct in racct
and rprctr in prctr
and sprctr in pprctr
and poper in poper
and drcrk in drcrk
and activ in activ
and rhoart in rhoart
and rfarea in rfarea
and versa in versa
and eprctr in eprctr
and afabe in afabe
and rmvct in rmvct
and docct in docct
and docnr in docnr
and stagr in stagr
and rtcur in rtcur
and runit in runit
and refdocct in refdocct
and refdocnr in refdocnr
and werks in werks
and rep_matnr in repmatnr "RDIP40K020663
and rscope in rscope "RDIP40K020663
and rclnt in rclnt. "dirty trick to mislead DB-optimizer
if sy-dbcnt > 1.
text1 = sy-dbcnt.
condense text1.
concatenate text1 text-m01 into text2 separated by space.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = text2. " ... Datensätze gelesen
endif.
endselect.
Entfernt nicht zugehörige Einträge....................................
loop at i_glpca where ( not rprctr in v_prctr )
or ( not sprctr in v_pprctr )
or ( not racct in v_racct ).
delete i_glpca.
endloop.
endif.
*archiv
if read_ar = 'X' and not
( read_as is initial and lr_files[] is initial ).
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = 'Lesen im Archiv'(p12).
define fill_lt_selections.
if not &2[] is initial.
clear ls_selections.
move &1 to ls_selections-fieldname.
loop at &2.
clear ls_selopt.
move-corresponding &2 to ls_selopt.
append ls_selopt to ls_selections-selopt_t.
endloop.
append ls_selections to lt_selections.
endif.
end-of-definition.
fill_lt_selections 'RLDNR' rldnr.
fill_lt_selections 'RRCTY' rrcty.
fill_lt_selections 'RVERS' rvers.
fill_lt_selections 'KOKRS' kokrs.
fill_lt_selections 'RBUKRS' bukrs.
fill_lt_selections 'POPER' poper.
fill_lt_selections 'RYEAR' ryear.
fill_lt_selections 'RPRCTR' prctr.
fill_lt_selections 'SPRCTR' pprctr.
fill_lt_selections 'RACCT' racct.
fill_lt_selections 'DRCRK' drcrk.
fill_lt_selections 'ACTIV' activ.
fill_lt_selections 'RHOART' rhoart.
fill_lt_selections 'RFAREA' rfarea. "note 401961
fill_lt_selections 'STAGR' stagr.
fill_lt_selections 'RTCUR' rtcur.
fill_lt_selections 'RUNIT' runit.
fill_lt_selections 'VERSA' versa.
fill_lt_selections 'EPRCTR' eprctr.
fill_lt_selections 'AFABE' afabe.
fill_lt_selections 'RMVCT' rmvct.
fill_lt_selections 'DOCCT' docct.
fill_lt_selections 'DOCNR' docnr.
fill_lt_selections 'REFDOCCT' refdocct.
fill_lt_selections 'REFDOCNR' refdocnr.
fill_lt_selections 'WERKS' werks.
fill_lt_selections 'REP_MATNR' repmatnr.
fill_lt_selections 'RSCOPE' rscope.
fill_lt_selections 'HRKFT' hrkft. "note 550972
fill_lt_selections 'SBUKRS' sbukrs. "note 550972
fill_lt_selections 'SHOART' shoart. "note 550972
fill_lt_selections 'SFAREA' sfarea. "note 550972
call function 'EC_PCA_SELECT_FROM_ARCHIVE'
exporting
i_selections = lt_selections[]
i_files_sequential_read = lr_files[]
importing
e_glpca = lt_glpca_archiv[]
exceptions
no_infostruc_found = 1.
if sy-subrc = 1.
message id sy-msgid type 'I' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
clear i_glpca.
loop at lt_glpca_archiv assigning to i_glpca.
append i_glpca.
endloop.
endif.
if i_glpca[] is initial. "Info,nichts gefunden
message s000.
exit.
endif.
get texts for accounts ...............................................
sort i_glpca by kokrs racct.
loop at i_glpca assigning -racct_ktext = ls_rpcak-ktext.
endloop.
Liste mit Einzelposten geeignet sortieren.............................
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = 'Einzelposten sortieren'(p30).
if show_ref is initial.
sort i_glpca by rldnr ryear rbukrs rrcty rvers
docct docnr docln.
else.
sort i_glpca by rldnr kokrs ryear rbukrs rrcty rvers poper
refdocct refdocnr refdocln.
endif.
Berechtigungsprüfung und gemerkte Belege aufbereiten .................
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = 'Berechtigungsprüfungen'(p40).
clear: cnt_rldnr, cnt_kokrs, cnt_ryear, cnt_rvers, cnt_bukrs.
loop at i_glpca assigning .
Berechtigungscheck
perform check_repo_authority changing authorised.
if authorised is initial.
delete i_glpca.
s_message = 'X'.
zählen der Sätze ohne Berechtigung
auth_dbcount = auth_dbcount + 1.
else. "Weitere Bearbeitung nur für berechtigte Belege...
Zusätzlich merken der Anzahl der Ausprägungen
bestimmter Dimensionen
on change of -rbukrs
ct = '10'
importing
currency = hsl_curr.
endon.
externe Immobilienbezeichnung "ww/kb
on change of i_glpca-imkey.
if ( not -dabrz
I_length = 20
importing
e_empge = -konty.
endif.
CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
endif.
endon.
on change of i_glpca-dabrz.
call function 'REMD_IMKEY_TO_EMPGE'
exporting
i_imkey = i_glpca-imkey
i_dabrz = i_glpca-dabrz
i_length = 20
importing
e_empge = i_glpca-empge
e_konty = i_glpca-konty.
CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
endon.
Konvertierungsproblem mit PSP-Nummer bereinigen
if not -psppp.
endif.
endif.
Währungen in Hilfsfeldern speichern
if -ksl_curr = ksl_curr.
endif.
modify i_glpca.
endif.
endloop.
Nachricht, wenn nicht alle Einzelposten angezeigt werden.
if not s_message is initial.
message s407(km) with auth_dbcount.
endif.
EP ausgeben...........................................................
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
text = 'Einzelposten ausgeben'(p50).
t_layout-detail_initial_lines = 'X'.
t_layout-detail_popup = 'X'.
t_layout-f2code = 'PIC1'. "MICP40K039857
t_layout-get_selinfos = 'X'.
t_layout-group_change_edit = 'X'. "note 576149
perform fill_listheader.
perform fieldcat_fill.
perform spec_groups_fill.
perform events_fill. "MICP40K039857
">>MICP40K039857
call function 'K_KKB_LIST_DISPLAY'
exporting
i_callback_program = 'RCOPCA02'
i_callback_user_command = 'USR_CMD'
i_callback_top_of_page = 'TOP_OF_PAGE'
I_CALLBACK_END_OF_PAGE =
I_CALLBACK_END_OF_LIST =
i_callback_pf_status_set = 'SET_PF_STATUS'
I_CALLBACK_LAYOUT_SAVE =
I_CALLBACK_FIELDCAT_SAVE =
i_tabname = 'I_GLPCA'
is_layout = t_layout
it_fieldcat = t_fieldcat
I_FCTYPE = 'R'
IT_EXCLUDING =
it_special_groups = t_spec_groups
IT_SORT =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
tables
t_outtab = i_glpca
exceptions
others = 1.
loop at i_glpca.
select single vbeln auart augru
into (l_vbeln, l_auart, l_augru)
from vbak where vbeln = i_glpca-aubel.
if sy-subrc = 0.
move l_auart to i_glpca-v_auart.
move l_augru to i_glpca-v_augru.
modify i_glpca.
endif.
endloop.
call function 'REUSE_ALV_GRID_DISPLAY'
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
i_callback_program = 'ZRCOPCA02'
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USR_CMD'
i_structure_name = 'I_GLPCA'
is_layout = t_layout
it_fieldcat = t_fieldcat
IT_EXCLUDING =
it_special_groups = t_spec_groups
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'X'
i_save = g_save
is_variant = g_variant
it_events = t_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 = i_glpca
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
"<<MICP40K039857
clear i_glpca.
*& Form CHECK_REPO_AUTHORITY
Check only new auth-object K_PCA *
--> p1 text
<-- p2 text
form check_repo_authority changing authorized like authorised.
fill structure for userexit in K_PCA_RESP_AUTHORITY_CHECK
data: auth like pca_i_auth. "46a MIC check K_PCA and G_GLTP
auth-bukrs = -rrcty.
clear authorized.
check PrCtr/account/activity
call function 'K_PCA_RESP_AUTHORITY_CHECK'
exporting
i_kokrs = -racct
i_vorgn = 'REPP'
i_actvt = '28'
i_auth = auth
i_no_dialog_message = 'X'
exceptions
no_authority = 1
data_missing = 2
others = 3.
if sy-subrc = 0. "ok
check ledger/version/record type
call function 'PCA_G_GLTP_AUTH_CHECK'
exporting
rldnr = -rrcty
exceptions
no_authorisation = 1
others = 2.
if sy-subrc = 0. "ok, User is authorized
authorized = 'X'.
endif.
endif.
endform. " CHECK_REPO_AUTHORITY
*& Form INIT_VARS
Initialisieren diverser Hilfsvariablen und -tabellen *
form init_vars.
data begin of nametab occurs 80. "Tabelle mit Feldern aus der RPCA2
include structure dntab.
data end of nametab.
select single * from t000
client specified
where mandt = sy-mandt.
refresh nametab.
call function 'NAMETAB_GET'
exporting
only = 'T'
tabname = 'RPCA2'
tables
nametab = nametab.
Übernehmen der Feldnamen, die auch in der GLPCA
vorkommen.
loop at nametab where fieldname ne 'KSL_CURR'
and fieldname ne 'HSL_CURR'
and fieldname ne 'EMPGE' "ww/kb
and fieldname ne 'KONTY'. "ww/kb
move nametab-fieldname to tab_fields-name.
append tab_fields.
endloop.
fill Fields of receiver for BBS "MIC46C
call function 'RSTI_REPORT_FIELDS_FIND'
exporting
e_repid = 'RCOPCA02'
e_type = 'R'
tables
it_fields = bbs_fieldtab.
correct fieldnames
read table bbs_fieldtab with key rfield = 'PRCTR'.
if sy-subrc = 0.
bbs_fieldtab-rfield = 'RPRCTR'.
modify bbs_fieldtab index sy-tabix.
endif.
read table bbs_fieldtab with key rfield = 'PPRCTR'.
if sy-subrc = 0.
bbs_fieldtab-rfield = 'SPRCTR'.
modify bbs_fieldtab index sy-tabix.
endif.
read table bbs_fieldtab with key rfield = 'BUKRS'.
if sy-subrc = 0.
bbs_fieldtab-rfield = 'RBUKRS'.
modify bbs_fieldtab index sy-tabix.
endif.
Unicode
class cl_abap_char_utilities definition load.
clear hex00 with cl_abap_char_utilities=>minchar.
clear hexff with cl_abap_char_utilities=>maxchar.
endform. " INIT_VARS
FORM FILL_LISTHEADER *
List-Header in Abhängigkeit der selektierten Daten *
form fill_listheader.
read table i_glpca index 1.
if sy-subrc ne 0.
exit.
endif.
t_listheader-typ = 'S'.
t_listheader-key = 'Ledger '(h01).
if cnt_rldnr <= 1.
t_listheader-info = i_glpca-rldnr.
else.
t_listheader-info = '*'.
endif.
append t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Kostenrechnungskreis'(h02).
if cnt_kokrs <= 1.
t_listheader-info = i_glpca-kokrs.
else.
t_listheader-info = '*'.
endif.
append t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Buchungskreis '(h03).
if cnt_bukrs <= 1.
t_listheader-info = i_glpca-rbukrs.
else.
t_listheader-info = '*'.
endif.
append t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Buchungsperiode '(h04).
if cnt_poper <= 1.
t_listheader-info = i_glpca-poper.
else.
t_listheader-info = '*'.
endif.
append t_listheader.
if cnt_ryear <= 1.
t_listheader-typ = 'S'.
t_listheader-key = 'Geschäftsjahr '(h05).
t_listheader-info = i_glpca-ryear.
append t_listheader.
endif.
t_listheader-typ = 'S'.
t_listheader-key = 'Version '(h06).
if cnt_rvers <= 1.
t_listheader-info = i_glpca-rvers.
else.
t_listheader-info = '*'.
endif.
append t_listheader.
endform. "fill_listheader
*& Form FIELDCAT_FILL
*& Aufbau des Feldkataloges für den K_KKB_LIST_DISPLAY, *
*& bzw REUSE_ALV_LIST_DISPLAY, *
*& weitere Infos enthält die FktBaustein-Doku *
form fieldcat_fill.
data: i type i value 0.
refresh t_fieldcat.
Ledger
if cnt_rldnr > 1.
add 1 to i.
clear afield.
afield-col_pos = i.
afield-fieldname = 'RLDNR'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-key = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '1'.
append afield to t_fieldcat.
endif.
Satzart
add 1 to i.
clear afield.
afield-col_pos = i.
afield-fieldname = 'RRCTY'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
append afield to t_fieldcat.
Version
if cnt_rvers > 1.
add 1 to i.
clear afield.
afield-col_pos = i.
afield-fieldname = 'RVERS'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
append afield to t_fieldcat.
endif.
Periode
if cnt_poper > 1.
add 1 to i.
clear afield.
afield-col_pos = i.
afield-fieldname = 'POPER'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
append afield to t_fieldcat.
endif.
Geschäftsjahr
if cnt_ryear > 1.
add 1 to i.
clear afield.
afield-col_pos = i.
afield-fieldname = 'RYEAR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
append afield to t_fieldcat.
endif.
Referenzbelegtyp
add 1 to i.
clear afield.
afield-col_pos = i.
afield-fieldname = 'REFDOCCT'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '2'.
afield-seltext_s = 'Typ'(t01).
afield-seltext_m = 'Belegtyp'(t02).
afield-seltext_l = 'Ref.Belegtyp'(t03).
afield-outputlen = 3. "Platz für die Sterne der Zwischensummen
if not show_ref is initial.
afield-key = 'X'.
else.
afield-no_out = 'X'.
endif.
append afield to t_fieldcat.
Referenzbelegnummer
add 1 to i.
clear afield.
afield-col_pos = i.
afield-fieldname = 'REFDOCNR'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '2'.
afield-seltext_s = 'Refbeleg'(t04).
afield-seltext_m = 'Refbelegnr'(t05).
afield-seltext_l = 'Ref.Belegnummer'(t06).
if not show_ref is initial.
afield-key = 'X'.
else.
afield-no_out = 'X'.
endif.
appendHi Prabhu,
You are right, problem is with Field Catalog...
When I use FM 'REUSE_ALV_GRID_DISPLAY' it is dumping...
When i tried with FM 'REUSE_ALV_LIST_DISPLAY' it is working perfectly....
how can i use FM 'REUSE_ALV_GRID_DISPLAY' without dumping????
do i need to pass any thing in FM????
Here is the dump:
Runtime Errors MESSAGE_TYPE_X
Occurred on 12/21/2006 at 01:03:24
The current application triggered a termination with a short dump.
What happened?
The current application program detected a situation which really
should not occur. Therefore, a termination with a short dump was
triggered on purpose by the key word MESSAGE (type X).
Error analysis
Short text of error message:
Technical information about the message:
Message classe...... "0K "
Number.............. 000
User, transaction...
Language key........ "E"
Transaction......... "SE38 "
Program............. "SAPLSLVC "
Screen.............. "SAPLSLVC_FULLSCREEN 0500"
Screen line......... 3
Information on where termination occurred
The termination occurred in the ABAP program "SAPLSLVC " in "LINE_OUT_NEW_2".
The main program was "ZRCOPCA02 ".
The termination occurred in line 918 of the source code of the (Include)
program "LSLVCF01 "
of the source code of program "LSLVCF01 " (when calling the editor 9180).
Source code extract
008880 gs_roid-row_id = rs_row-index * -1.
008890 endif.
008900 gs_roid-sub_row_id = rs_row-rowtype+7(10).
008910 gs_poid-row_id = gs_roid-row_id.
008920 gs_poid-sub_row_id = gs_roid-sub_row_id.
008930 gs_poid-rowtype = rs_row-rowtype.
008940 gs_poid-index = rs_row-index.
008950 insert gs_poid into table rt_poid.
008960 endif.
008970 append gs_roid to rt_roid.
008980
008990 loop at rt_fieldcat assigning <ls_fieldcat> where tech ne 'X' and
009000 no_out ne 'X'.
009010
009020 if gflg_invisible = 'X'.
009030 if <ls_fieldcat>-do_sum is initial.
009040 clear gflg_invisible.
009050 continue.
009060 else.
009070 clear g_col_counter.
009080 clear gflg_invisible.
009090 endif.
009100 endif.
009110
009120 clear gs_lvc_data.
009130 clear g_style.
009140
009150 assign component
009160 <ls_fieldcat>-fieldname of structure rt_data to <g_field>.
009170 if sy-subrc ne 0.
> message x000(0k).
009190 endif.
009200
009210 g_col_counter = g_col_counter + 1.
009220
009230 gs_lvc_data-row_pos = r_row_counter.
009240 gs_lvc_data-col_pos = g_col_counter.
009250 gs_lvc_data-row_id = gs_roid-row_id.
009260 gs_lvc_data-sub_row_id = gs_roid-sub_row_id.
009270
009280 * Endtotal and average
009290 if rs_row-rowtype(1) ca 'T' and <ls_fieldcat>-do_sum = 'C'.
009300 * save the actual grouplevel information
009310 gs_grouplevels = rs_grouplevels.
009320 clear g_lines.
009330
009340 * get number of lines of the collect table
009350 describe table rt_data lines g_lines.
009360 * if there is only one line or the field has no references so
009370 * that only the first line has to be considered
Thanks,
fractal
null -
Decimal upto 3 places in ALV report output
Hi Experts
My requirement is that User wants to have 3 decimal places in report output.I have used type P decimal 3,also have used field catalog Decimals_o = '3' .In the report output Lets say Previously it was 123 now after the changes its coming 123.000 but its only virtual when i try to edit that it takes only upto 4 characters like 123.???I think because the datatype defined is NUMC and its limited to 4 characters only so it is not allowing to enter more than 4 characters??Please suggest me a way?sud I change the NUMC to 6 characters as it is standard??sud I make changes in it??
Thanks & Regards
ShankarHi
i have tried that but still it takes 4 characters in output.pasting the code
1)The declaration part
DATA : gv_gjahr TYPE gjahr,
gv_plant TYPE cciht_ial-iaplant.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-003.
SELECT-OPTIONS: s_plant FOR gv_plant NO INTERVALS NO-EXTENSION OBLIGATORY,
s_gjahr FOR gv_gjahr NO INTERVALS NO-EXTENSION OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
CONSTANTS : c_x TYPE c VALUE 'X',
c_celltab(7) TYPE c VALUE 'CELLTAB',
c_gjahr(5) TYPE c VALUE 'GJAHR',
c_april(5) TYPE c VALUE 'APRIL',
c_may(3) TYPE c VALUE 'MAY',
c_june(4) TYPE c VALUE 'JUNE',
c_july(4) TYPE c VALUE 'JULY',
c_augus(5) TYPE c VALUE 'AUGUS',
c_septe(5) TYPE c VALUE 'SEPTE',
c_octob(5) TYPE c VALUE 'OCTOB',
c_novem(5) TYPE c VALUE 'NOVEM',
c_decem(5) TYPE c VALUE 'DECEM',
c_janua(5) TYPE c VALUE 'JANUA',
c_febru(5) TYPE c VALUE 'FEBRU',
c_march(5) TYPE c VALUE 'MARCH',
c_rw(2) TYPE c VALUE 'RW',
c_ro(2) TYPE c VALUE 'RO'.
TYPES : BEGIN OF ty_envtran,
envno TYPE numc3,
envlx TYPE zehenvlx,
plant TYPE ccihe_iaplant,
gjahr TYPE gjahr,
april TYPE numc4,
may TYPE numc4,
june TYPE numc4,
july TYPE numc4,
augus TYPE numc4,
septe TYPE numc4,
octob TYPE numc4,
novem TYPE numc4,
decem TYPE numc4,
janua TYPE numc4,
febru TYPE numc4,
march TYPE numc4,
END OF ty_envtran.
DATA: gt_envtran TYPE TABLE OF ty_envtran,
gs_envtran TYPE ty_envtran,
gt_envmast TYPE TABLE OF zehs_envmast,
gs_envmast TYPE zehs_envmast.
DATA: save_ok LIKE sy-ucomm,
g_container TYPE scrfname VALUE 'ZEHS_ENVIRONMENTS_CC1',
g_grid TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container,
gt_fieldcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo,
g_success TYPE c,
gv_success TYPE c,
gt_envtran3 TYPE TABLE OF ty_envtran,
gs_envtran3 TYPE ty_envtran, "#EC NEEDED
gt_envtran2 TYPE TABLE OF zehs_envtran,
gs_envtran2 TYPE zehs_envtran.
DATA: BEGIN OF gt_outtab OCCURS 0. "with header line
DATA: envlx TYPE zehenvlx,
gjahr TYPE gjahr,
april TYPE numc4,
may TYPE numc4,
june TYPE numc4,
july TYPE numc4,
augus TYPE numc4,
septe TYPE numc4,
octob TYPE numc4,
novem TYPE numc4,
decem TYPE numc4,
janua TYPE numc4,
febru TYPE numc4,
march TYPE numc4,
plant TYPE ccihe_iaplant,
envno TYPE numc3.
DATA: celltab TYPE lvc_t_styl.
DATA: END OF gt_outtab.
DATA: gs_outtab LIKE LINE OF gt_outtab.
2)The Field catalog part
LOOP AT pt_fieldcat INTO ls_fcat.
CASE ls_fcat-fieldname.
WHEN c_APRIL.
ls_fcat-scrtext_l = 'April'(c01).
ls_fcat-scrtext_m = 'Apr'(c13).
ls_fcat-scrtext_s = text-c13.
WHEN c_MAY.
ls_fcat-scrtext_l = 'May'(c02).
ls_fcat-scrtext_m = 'May'(c14).
ls_fcat-scrtext_s = text-c14.
WHEN c_JUNE.
ls_fcat-scrtext_l = 'June'(c03).
ls_fcat-scrtext_m = 'Jun'(c15).
ls_fcat-scrtext_s = text-c15.
WHEN c_JULY.
ls_fcat-scrtext_l = 'July'(c04).
ls_fcat-scrtext_m = 'Jul'(c16).
ls_fcat-scrtext_s = text-c16.
WHEN c_AUGUS.
ls_fcat-scrtext_l = 'August'(c05).
ls_fcat-scrtext_m = 'Aug'(c17).
ls_fcat-scrtext_s = text-c17.
WHEN c_SEPTE.
ls_fcat-scrtext_l = 'September'(c06).
ls_fcat-scrtext_m = 'Sep'(c18).
ls_fcat-scrtext_s = text-c18.
WHEN c_OCTOB.
ls_fcat-scrtext_l = 'October'(c07).
ls_fcat-scrtext_m = 'Oct'(c19).
ls_fcat-scrtext_s = text-c19.
WHEN c_NOVEM.
ls_fcat-scrtext_l = 'November'(c08).
ls_fcat-scrtext_m = 'Nov'(c20).
WHEN c_DECEM.
ls_fcat-scrtext_l = 'December'(c09).
ls_fcat-scrtext_m = 'Dec'(c21).
WHEN c_JANUA.
ls_fcat-scrtext_l = 'January'(c10).
ls_fcat-scrtext_m = 'Jan'(c22).
ls_fcat-scrtext_s = text-c22.
WHEN c_FEBRU.
ls_fcat-scrtext_l = 'February'(c11).
ls_fcat-scrtext_m = 'Feb'(c23).
ls_fcat-scrtext_s = text-c23.
WHEN c_MARCH.
ls_fcat-scrtext_l = 'March'(c12).
ls_fcat-scrtext_m = 'Mar'(c24).
ls_fcat-scrtext_s = text-c24.
Note: I have already tried giving DECIMALS_O,OUTPUTLEN,DATATYPE,FIELDCAT-REF_FIELD ,FIELDCAT-REF_TABLE BUT but still it takes upto 4 characters in output. -
Adding/Enabling Totals & Subtotals Button in ALV Report Output
Hi Guys,
I would like to know , how to add / enable Totals & Subtotals Button on the application tool bar in alv report output.
Regards,
Kishanok so here i am sending my code....its also interactive...
and in second list i am displaying quantity....
*& Report ZINT_ALV
REPORT zint_alv.
TYPE-POOLS:slis.
TABLES:mara,
makt,
mseg.
DATA:BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
END OF itab.
DATA:BEGIN OF itab1 OCCURS 0,
mblnr LIKE mseg-mblnr,
menge LIKE mseg-menge,
meins LIKE mseg-meins,
werks LIKE mseg-werks,
END OF itab1.
DATA:fcat TYPE slis_t_fieldcat_alv,
fcat1 TYPE slis_t_fieldcat_alv,
eve TYPE slis_t_event,
eve1 TYPE slis_t_event.
DATA:t_mat LIKE mara-matnr,
s_mat LIKE mara-matnr,
g_repid LIKE sy-repid.
SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:mat FOR mara-matnr OBLIGATORY.
SELECTION-SCREEN:END OF BLOCK blk1.
INITIALIZATION.
PERFORM build_fcat USING fcat.
PERFORM build_eve.
START-OF-SELECTION.
PERFORM get_data.
PERFORM dis_data.
*& Form build_fcat
text
-->T_FCAT text
FORM build_fcat USING t_fcat TYPE slis_t_fieldcat_alv.
DATA:wa_fcat TYPE slis_fieldcat_alv.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-ref_fieldname = 'MATNR'.
wa_fcat-ref_tabname = 'MARA'.
wa_fcat-seltext_m = 'Material'.
wa_fcat-input = ' '.
wa_fcat-edit = 'X'.
wa_fcat-input = 'X'.
APPEND wa_fcat TO t_fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'MAKTX'.
wa_fcat-seltext_m = 'Description'.
APPEND wa_fcat TO t_fcat.
CLEAR wa_fcat.
ENDFORM. "build_fcat
*& Form build_eve
text
FORM build_eve.
DATA:t_eve TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = eve
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "build_eve
*& Form get_data
text
FORM get_data.
SELECT maramatnr maktmaktx INTO CORRESPONDING FIELDS OF TABLE itab
FROM mara INNER JOIN makt
ON maramatnr = maktmatnr
WHERE mara~matnr IN mat.
ENDFORM. "get_data
*& Form dis_data
text
FORM dis_data.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "'ZINT_ALV'
i_callback_user_command = 'USER_COMMAND'
i_grid_title = 'Interactive ALV'
it_fieldcat = fcat
it_events = eve
TABLES
t_outtab = itab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "dis_data
*& Form user_command
text
-->U_COM text
FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.
CLEAR fcat1.
CASE u_com.
WHEN '&IC1'.
READ TABLE itab INDEX sel_field-tabindex.
IF sel_field-fieldname = 'MATNR'.
IF sy-subrc = 0.
t_mat = itab-matnr.
PERFORM build_cat1 USING fcat1.
PERFORM build_eve1.
PERFORM get_data1.
PERFORM dis_data1.
ENDIF.
ENDIF.
SET PARAMETER ID 'MAT' FIELD t_mat.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM. "user_command
*& Form build_fcat1
text
-->T_FCAT1 text
FORM build_cat1 USING t_fcat1 TYPE slis_t_fieldcat_alv.
DATA:wa_fcat1 TYPE slis_fieldcat_alv.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MBLNR'.
wa_fcat1-seltext_m = 'Material Doc.'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MENGE'.
wa_fcat1-seltext_m = 'Quantity'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MEINS'.
wa_fcat1-seltext_m = 'UOM'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'WERKS'.
wa_fcat1-seltext_m = 'Plant'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
ENDFORM. "build_fcat1
*& Form build_eve1
text
FORM build_eve1.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = eve1
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "build_eve1
*& Form get_data1
text
FORM get_data1.
SELECT mblnr menge meins werks FROM mseg
INTO CORRESPONDING FIELDS OF TABLE itab1
WHERE matnr = t_mat.
ENDFORM. "get_data1
*& Form dis_data1
text
FORM dis_data1.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "'ZINT_ALV'
i_callback_user_command = 'USER_COMMAND1'
it_fieldcat = fcat1
it_events = eve1
TABLES
t_outtab = itab1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "dis_data1 -
Event getting trigger after hiding columns in alv report
Hi All,
I having requirement like after hiding columns,i have to control some of the hard coded data in report output. Is there any event to know what all are the columns are selected to hide?You can use FM REUSE_ALV_LIST_LAYOUT_INFO_GET to read the fieldcat again.
Look at the parameter it_event_exit on the ALV FM to now user has press on some of the Layout buttons.
In the fieldcatalog, look for
- no_out = 'X'. " column is not displayed but can be choosen when changing the layout
-tech = 'X'.
" column is neither displayed nor availabe in the layout -
How to get blank records at the start of report output for label sheet?
Hello -
What is the best way to get an arbitrary # of blank records at the start of report output?
I am writing a report that will be printed out on label sheets -- some of which might already be used. For example, there might be 3 labels per page but the first 2 have been used the last time the report was run.. so the report needs to display 2 blank records first so that the first record that gets printed on a label is in the 3rd position on the page. (the user would indicate - through a parameter - what the starting postion would be)Hi Scott
Create a user parameter that reads in the number of blanks you need to 'print' before starting the actual printing.
In the Format trigger of the outermost frame of your report write code using SRW.SET_BEFORE_PRINTING_CODE.
Loop this method based on the user parameter and call this method with skip-line-command of your printer as its argument.
Regards
Sripathy -
Converting report output to a word document
Hi,
Can anyone pls help me by providing the program for converting displaying/inserting the internal table values along with the table frame aound the internal table(in the sense displaying the rows and columns lines) to the word document not in the excel format, instead of displaying in the report.
Thanks,
RaviHi Ravi,
see if this helps you in anyway:
REPORT OUTPUT IN WORD OR EXCEL
Re: OLE: ms word (Textbox)
Re: OLE and MS Word
Create MS-Word document (With format)
Regards,
Ravi -
Hi All,
My requirement is on execution of a report ,this report output should be downloaded as a file prompting the user to select the location.
Can any one help me in downloading the output format to a file. I need some inputs on the approach for doing this .
Thanks in advance .
PadmaHi
See the sample code in which the download to file is used
and do accordingly
instaed of the OLE..fun module you can use the GUI_DOWNLOAD also
report zesdr001
line-size 215
line-count 65
no standard page heading
message-id zv.
Tables Declaration
tables:vbrk, " Sales Document: Billing Header Data
mara, " Material Master Data
mbew, " Material Valuation data
mbewh, " Material Valuation: History Data
t001, " Company Codes
t001w, " Plants/Branches
konv, " Pricing Conditions Data
t179t, " Materials: Product hierarchies: Texts
tcurx, " Currency Conversion Table
vbuk, " Sales Document: Header Status data
tvko, " Organizational Unit: Sales Organizations
tvtw, " Organizational Unit: Dist.Channels
tspa, " Organizational Unit: Divisions
tvfk, " Billing Document Types
kna1. " Customer Master Data
Declaration of Data and Internal Tables
Internal table to store the Billing Details data.(VBRK,VBRP)
data: begin of itab_bill occurs 0,
vbeln like vbrk-vbeln, " Billing Document Number
fktyp like vbrk-fktyp, " Billing Category
vbtyp like vbrk-vbtyp, " Sales Doc Category
fkdat like vbrk-fkdat, " Billing doc date
fkart like vbrk-fkart, " Billing Doc type
bukrs like vbrk-bukrs, " Company Code
kurrf like vbrk-kurrf, " Exchange type
knumv like vbrk-knumv, " Condition Number
waerk like vbrk-waerk, " Currency
kunag like vbrk-kunag, " Sold to Party
vrkme like vbrp-vrkme, " sales Unit
posnr like vbrp-posnr, " Item Number
charg like vbrp-charg, " Batch Number
fkimg like vbrp-fkimg, " Billed quantity
werks like vbrp-werks, " Plant
matnr like vbrp-matnr, " Material Number
netwr like vbrp-netwr, " Net Value of the doc
wavwr like vbrp-wavwr, " Cost in Doc Currency
kdmat like vbap-kdmat, " Customer Material
end of itab_bill.
Internal table to write the report output when Customer Mode
Radiobutton is selected
data: begin of itab_out occurs 0,
kunag like vbrk-kunag, " Customer No
vbeln like vbrk-vbeln, " Billing Document Number
fkart like vbrk-fkart, " Billing Doc type
fktyp like vbrk-fktyp, " Billing Category
vbtyp like vbrk-vbtyp, " Sales Doc Category
fkdat like vbrk-fkdat, " Billing doc date
kunnr like kna1-kunnr, " Customer
bukrs like vbrk-bukrs, " Company Code
kurrf like vbrk-kurrf, " Exchange Rate
waerk like vbrk-waerk, " Currency
vrkme like vbrp-vrkme, " Sales Unit
posnr like vbrp-posnr, " Item Number
charg like vbrp-charg, " Batch Number
fkimg like vbrp-fkimg, " Billed quantity
werks like vbrp-werks, " Plant
matnr like vbrp-matnr, " Material NUmber
kdmat like vbap-kdmat, " Customer Material
bil_amt(16) type p decimals 2, " Bill Amount
mode(10), " Mode
density(10), " Density
sel_prc(16) type p decimals 2, " Selling Price
mvg_prs like mbew-verpr, " Moving Price
gp_mvp_amt like vbrp-netwr, " GrossProfit Amount(MVP)
gp_mvp_pr(6) type p decimals 2, " ,, percentage
end of itab_out.
Internal table to write the report output when Mode
Radiobutton is selected
data: begin of itab_out2 occurs 0,
mode(10),
vbeln like vbrk-vbeln, " Billing Document Number
fktyp like vbrk-fktyp, " Billing Category
vbtyp like vbrk-vbtyp, " Sales Doc Category
fkdat like vbrk-fkdat, " Billing doc date
kunag like vbrk-kunag, " Sold to party
kunnr like kna1-kunnr, " Customer
bukrs like vbrk-bukrs, " Company Code
kurrf like vbrk-kurrf, " Exchange Rate
waerk like vbrk-waerk, " Currency
vrkme like vbrp-vrkme, " Sales UNit
posnr like vbrp-posnr, " Item No
charg like vbrp-charg, " Batch Number
fkimg like vbrp-fkimg, " Billed quantity
werks like vbrp-werks, " Plant
matnr like vbrp-matnr, " Material Number
kdmat like vbap-kdmat, " Customer Material No
bil_amt(16) type p decimals 2, " Billing Amount
density(10), " density
sel_prc(16) type p decimals 4, " Selling Price
mvg_prs like mbew-verpr, " Moving Price
gp_mvp_amt like vbrp-netwr, " GrossProfit Amount(MVP)
gp_mvp_pr(6) type p decimals 2, " ,, percentage
end of itab_out2.
Internal table to write the report output when Density
Radiobutton is selected
data: begin of itab_out3 occurs 0,
mode(10),
density(10),
vbeln like vbrk-vbeln, " Billing Document Number
fktyp like vbrk-fktyp, " Billing Category
vbtyp like vbrk-vbtyp, " Sales Doc Category
fkdat like vbrk-fkdat, " Billing doc date
kunag like vbrk-kunag, " Sold to Party
kunnr like kna1-kunnr, " Customer
bukrs like vbrk-bukrs, " Company Code
kurrf like vbrk-kurrf, " Exchange Rate
waerk like vbrk-waerk, " Currency
vrkme like vbrp-vrkme, " Sales Unit
posnr like vbrp-posnr, " Item Number
charg like vbrp-charg, " Batch Number
fkimg like vbrp-fkimg, " Billed quantity
werks like vbrp-werks, " Plant
matnr like vbrp-matnr, " Material Number
kdmat like vbap-kdmat, " Customer Material
bil_amt(16) type p decimals 2, " Bill Amount
sel_prc(16) type p decimals 4, " Selling Price
mvg_prs like mbew-verpr, " Moving Price
gp_mvp_amt like vbrp-netwr, " GrossProfit Amount(MVP)
gp_mvp_pr(6) type p decimals 2, " ,, percentage
end of itab_out3.
*-Internal Table to Hold data to be downloaded to file
data: begin of itab_out1 occurs 0,
kunag(10), " Customer
vbeln(10), " Billing Doc No
fkdat(10), " Bill Date
posnr(6), " Item No
mode(6), " Mode
density(6), " Density
matnr(18), " Material
charg(10), " Batch Number
fkimg like vbrp-fkimg, " Billed quantity
vrkme(4), " Sales Unit
sel_prc(14), " Selling Price
bil_amt(15) type p decimals 2, " Billing Amount
waerk(4), " Currency
mvg_prs(15), " Moving Price
gp_mvp_amt like vbrp-netwr, " Gross profit Amount(MVP)
gp_mvp_pr(15), " ,, percentage
kdmat(35), " Customer Material
end of itab_out1.
*Internal Table
data: begin of fieldnames occurs 0,
title(25) type c,
table(5) type c,
field(5) type c,
type(1) type c,
end of fieldnames.
Declaration Of Variables
data: w_period like bapi0002_4-fiscal_period,
w_year like bapi0002_4-fiscal_year,
w_date like bsad-budat,
w_lin type i. "No.of lines in Internal Table
data: t_fkimg like vbrp-fkimg,
t_bil_amt(8) type p decimals 2,
t_gp_mvp_amt(8) type p decimals 2,
t_gr_fkimg like vbrp-fkimg,
t_gr_bil_amt(8) type p decimals 2,
t_gr_gp_mvp_amt(8) type p decimals 2,
t_efkimg like vbrp-fkimg,
t_ebil_amt(8) type p decimals 2,
t_egp_mvp_amt(8) type p decimals 2.
data:f_flg .
Select-Options
selection-screen: begin of block b with frame.
selection-screen : begin of block b1 with frame title text-001.
select-options:s_bukrs for t001-bukrs no intervals no-extension
obligatory,
s_vkorg for tvko-vkorg no intervals no-extension,
s_vtweg for tvtw-vtweg no intervals no-extension,
s_spart for tspa-spart no intervals no-extension,
s_werks for t001w-werks no intervals no-extension,
s_kunag for kna1-kunnr,
s_vbeln for vbuk-vbeln,
s_fkart for tvfk-fkart,
s_fkdat for vbrk-fkdat obligatory.
selection-screen begin of line.
selection-screen comment 1(20) text-008.
selection-screen end of line.
selection-screen begin of line.
parameters p_cust type c radiobutton group cust.
selection-screen comment 3(20) text-004 for field p_cust.
selection-screen end of line.
selection-screen begin of line.
parameters p_mode type c radiobutton group cust.
selection-screen comment 3(20) text-006 for field p_mode.
selection-screen end of line.
selection-screen begin of line.
parameters p_dens type c radiobutton group cust.
selection-screen comment 3(20) text-007 for field p_dens.
selection-screen end of line.
selection-screen: end of block b1.
selection-screen : begin of block b2 with frame title text-002.
parameters: p_dwnlod as checkbox,
p_file like rlgrap-filename. " default 'C:\zesdr001'.
selection-screen: end of block b2.
selection-screen: end of block b.
*******At Selection Screen********************************************
at selection-screen.
At Selection Screen on Value Request
at selection-screen on value-request for p_file.
perform f4_help.
Checking for the input values of selection screen.
perform screen_check.
Top Of Page***************************************************
top-of-page.
perform rep_headers.
*******Start of Selection*********************************************
start-of-selection.
Selecting data from the database tables
perform invoice_selection.
describe table itab_bill lines w_lin.
if w_lin = 0.
message i008. " No Data Found for the Given Selection Criteria
else.
Moving the data records into output internal table
perform bill_details.
When Customer Radio button is selected
if p_cust eq 'X'.
perform invoice_output_cust.
When Mode Radio button is selected
elseif p_mode eq 'X'.
perform invoice_output_mode.
When density Radio button is selected
elseif p_dens eq 'X'.
perform invoice_output_dens.
endif.
endif.
*******End of Selection***********************************************
end-of-selection.
perform init_fieldnames.
if p_dwnlod = 'X'.
perform read_data_for_dowlload.
perform down_load_to_file using p_file.
perform download_excel using p_file.
endif.
*& Form screen_check
Ckecking for Selection Screen fields Validation
form screen_check.
Validation of Sales Organization
clear tvko.
if not s_vkorg-low is initial.
select vkorg from tvko up to 1 rows
into tvko-vkorg
where vkorg in s_vkorg.
endselect.
if sy-subrc ne 0.
message e009. " Invalid Sales Organization
endif.
endif.
Validation of Distribution Channel
clear tvtw.
if not s_vtweg-low is initial.
select vtweg from tvtw up to 1 rows
into tvtw-vtweg
where vtweg in s_vtweg.
endselect.
if sy-subrc ne 0.
message e010. " Invalid Distribution Channel
endif.
endif.
Validation of Division
clear tspa.
if not s_spart-low is initial.
select spart from tspa up to 1 rows
into tspa-spart
where spart in s_spart.
endselect.
if sy-subrc ne 0.
message e011. " Invalid Division
endif.
endif.
Validation for company code
clear t001.
if not s_bukrs-low is initial.
select single bukrs from t001
into t001-bukrs
where bukrs in s_bukrs.
if sy-subrc <> 0.
message e007. " Enter valid Company Code
endif.
endif.
Validation of billing Document Type
clear tvfk.
if not s_fkart is initial.
select fkart from tvfk up to 1 rows
into tvfk-fkart
where fkart in s_fkart.
endselect.
if sy-subrc ne 0.
message e012. " Invalid Billing Document Type
endif.
endif.
Validation of Billing Document Number
clear vbuk.
if not s_vbeln is initial.
select vbeln from vbuk up to 1 rows
into vbuk-vbeln
where vbeln in s_vbeln and
vbtyp = 'M'.
endselect.
if sy-subrc ne 0.
message e013. " Invalid Billing Doc Number
endif.
endif.
Validation of Customer
clear kna1.
if not s_kunag is initial.
select kunnr from kna1 up to 1 rows
into kna1-kunnr
where kunnr in s_kunag.
endselect.
if sy-subrc ne 0.
message e014. " Invalid Customer Number
endif.
endif.
Validation of Plant
clear t001w.
if not s_werks is initial.
select werks from t001w up to 1 rows
into t001w-werks
where werks in s_werks.
endselect.
if sy-subrc ne 0.
message e004. " Invalid Plant Number
endif.
endif.
Validation for File path to download
if p_dwnlod = 'X'.
if p_file is initial.
message e006. " Enter the Valid file path to Download
endif.
endif.
endform. "screen_check
FORM invoice_selection *
Selecting data from the database tables
form invoice_selection.
select
a~vbeln " Billing Doc Number
a~fktyp " Billing Category
a~vbtyp " Sales Doc category
a~fkdat " Billing doc date
a~fkart " Billing doc type
a~bukrs " Company code
a~kurrf " Exchange rate
a~knumv " Condition record Number
a~waerk " Currency
a~kunag " Sold to Party
b~vrkme " Sales Unit
b~posnr " Item Number
b~charg " Batch Number
b~fkimg " Billed quantity
b~werks " Plant
b~matnr " Material Number
b~netwr " Net Value of Bill Doc
b~wavwr " Cost in Doc Currency
c~kdmat " Customer Material
into table itab_bill
from vbrk as a join vbrp as b
on bvbeln = avbeln
join vbap as c
on baubel = cvbeln and
baupos = cposnr
where a~vbeln in s_vbeln and
a~fkdat in s_fkdat and
a~bukrs in s_bukrs and
a~vtweg in s_vtweg and
a~vkorg in s_vkorg and
a~spart in s_spart and
a~fkart in s_fkart and
b~werks in s_werks and
a~kunag in s_kunag and
a~sfakn eq ' ' and
a~fksto eq ' ' .
endform .
FORM bill_details *
appending data into itab_out internal table
form bill_details.
sort itab_bill by vbeln.
select single waers from t001 into t001-waers
where bukrs in s_bukrs.
data:f_txt1(10),f_txt2(10),f_txt3(10).
loop at itab_bill.
itab_out-vbeln = itab_bill-vbeln.
itab_out-fktyp = itab_bill-fktyp.
itab_out-vbtyp = itab_bill-vbtyp.
itab_out-fkdat = itab_bill-fkdat.
itab_out-fkart = itab_bill-fkart.
itab_out-bukrs = itab_bill-bukrs.
itab_out-kurrf = itab_bill-kurrf.
itab_out-waerk = itab_bill-waerk.
itab_out-kunag = itab_bill-kunag.
itab_out-vrkme = itab_bill-vrkme.
itab_out-posnr = itab_bill-posnr.
itab_out-charg = itab_bill-charg.
itab_out-fkimg = itab_bill-fkimg.
itab_out-werks = itab_bill-werks.
itab_out-matnr = itab_bill-matnr.
itab_out-kdmat = itab_bill-kdmat.
select single currdec from tcurx into tcurx-currdec
where currkey eq itab_out-waerk.
if sy-subrc eq '0' .
if tcurx-currdec eq '0'.
itab_bill-netwr = itab_bill-netwr * 100.
itab_bill-wavwr = itab_bill-wavwr * 100.
endif.
endif.
itab_out-bil_amt = itab_bill-netwr.
clear : konv.
Pricing data from KONV table
select single kbetr kwert kpein from konv into
(konv-kbetr,konv-kwert,konv-kpein)
where knumv = itab_bill-knumv and
kposn = itab_bill-posnr and
kschl eq 'ZSP1' and
krech eq 'C' and
kinak eq ' '.
Currency conversion
select single currdec from tcurx into tcurx-currdec
where currkey eq itab_out-waerk.
if sy-subrc eq '0' .
if tcurx-currdec eq '0'.
konv-kbetr = konv-kbetr * 100.
endif.
endif.
Unit Price
itab_out-sel_prc = konv-kbetr.
Unit Price Calculation
if not konv-kpein is initial.
itab_out-sel_prc = itab_out-sel_prc / konv-kpein .
endif.
Call Function to get the Period for the given Billing date
and Company Code
perform get_period.
Selecting Material Valuation Data
clear:mbew.
if itab_out-fktyp eq 'L'.
select single
lfmon lfgja verpr stprs vmver vmstp
from mbew
into (mbew-lfmon,mbew-lfgja,mbew-verpr,
mbew-stprs,mbew-vmver,mbew-vmstp)
where matnr = itab_out-matnr
and bwkey = itab_out-werks.
if mbew-lfmon = w_period and mbew-lfgja = w_year.
select single currdec from tcurx into tcurx-currdec
where currkey eq t001-waers.
if sy-subrc eq '0' .
if tcurx-currdec eq '0'.
mbew-stprs = mbew-stprs * 100.
mbew-verpr = mbew-verpr * 100.
endif.
endif.
if itab_out-waerk eq t001-waers.
itab_out-mvg_prs = mbew-verpr ."/ itab_out-kurrf.
else.
itab_out-mvg_prs = mbew-verpr / itab_out-kurrf.
endif.
else.
clear:mbewh.
select single
lfmon lfgja verpr stprs
from mbewh
into (mbewh-lfmon,mbewh-lfgja,mbewh-verpr,
mbewh-stprs)
where matnr = itab_out-matnr
and bwkey = itab_out-werks
and lfmon = w_period
and lfgja = w_year.
select single currdec from tcurx into tcurx-currdec
where currkey eq t001-waers.
if sy-subrc eq '0' .
if tcurx-currdec eq '0'.
mbewh-verpr = mbewh-verpr * 100.
endif.
endif.
if itab_out-waerk eq t001-waers.
itab_out-mvg_prs = mbewh-verpr ."/ itab_out-kurrf.
else.
itab_out-mvg_prs = mbewh-verpr / itab_out-kurrf.
endif.
if itab_out-mvg_prs is initial.
select single
lfmon lfgja verpr stprs vmver vmstp
from mbew
into (mbew-lfmon,mbew-lfgja,mbew-verpr,
mbew-stprs,mbew-vmver,mbew-vmstp)
where matnr = itab_out-matnr
and bwkey = itab_out-werks.
select single currdec from tcurx
into tcurx-currdec
where currkey eq t001-waers.
if sy-subrc eq '0' .
if tcurx-currdec eq '0'.
mbew-verpr = mbew-verpr * 100.
endif.
endif.
if itab_out-waerk eq t001-waers.
itab_out-mvg_prs = mbew-verpr ."/ itab_out-kurrf.
else.
itab_out-mvg_prs = mbew-verpr / itab_out-kurrf.
endif.
endif.
endif.
endif.
To find Density and Mode from MARA and T179T tables
clear :mara,t179t.
select single prdha from mara
into mara-prdha
where matnr = itab_out-matnr.
select single vtext from t179t
into t179t-vtext
where spras = 'EN' and
prodh = mara-prdha(4).
split t179t-vtext at ' ' into f_txt1 f_txt2 f_txt3.
itab_out-mode = f_txt2.
itab_out-density = f_txt3.
if not itab_out-mvg_prs is initial.
if itab_out-fktyp eq 'L'.
itab_out-gp_mvp_amt = itab_out-bil_amt - itab_out-mvg_prs *
itab_out-fkimg.
else.
itab_out-gp_mvp_amt = '0'.
endif.
endif.
if not itab_out-mvg_prs is initial
and not itab_out-sel_prc is initial.
itab_out-gp_mvp_pr = ( itab_out-sel_prc - itab_out-mvg_prs )
/ itab_out-sel_prc * 100.
endif.
append itab_out.
clear itab_out.
endloop.
loop at itab_out.
if itab_out-vbtyp eq 'N' or itab_out-vbtyp eq 'O'.
itab_out-fkimg = itab_out-fkimg * -1.
itab_out-sel_prc = itab_out-sel_prc * -1.
itab_out-bil_amt = itab_out-bil_amt * -1.
itab_out-mvg_prs = itab_out-mvg_prs * -1.
itab_out-gp_mvp_amt = itab_out-gp_mvp_amt * -1.
itab_out-gp_mvp_pr = itab_out-gp_mvp_pr * -1.
If the bill amount is 0 then the quantity should also be 0.
if itab_out-bil_amt = 0.
itab_out-fkimg = 0.
endif.
Check if the Bill amount is Credit memo amount, then the gross profit
should also be the same bill amount irrespecitve of +ve or -ve.
if itab_out-gp_mvp_amt = 0.
move: itab_out-bil_amt to itab_out-gp_mvp_amt.
endif.
modify itab_out.
clear itab_out.
endif.
endloop.
endform.
*& Form get_period
Getting Document Period
form get_period.
clear :w_period,w_year,w_date.
concatenate itab_out-fkdat(4)
itab_out-fkdat+4(2)
itab_out-fkdat+6(2)
into w_date.
call function 'BAPI_COMPANYCODE_GET_PERIOD'
exporting
companycodeid = itab_out-bukrs
posting_date = w_date
importing
fiscal_year = w_year
fiscal_period = w_period.
endform. " get_period
*& Form invoice_output_cust
Report Output when customer is selected
form invoice_output_cust.
write at /1(214) sy-uline.
sort itab_out by kunag vbeln fkart posnr fkdat.
loop at itab_out.
if f_flg = 'X'.
format color col_normal intensified off.
f_flg = ' '.
else.
format color col_normal intensified on.
f_flg = 'X'.
endif.
at new kunag.
read table itab_out index sy-tabix.
endat.
write: /01 sy-vline, 2(10) itab_out-kunag,
12 sy-vline, 13(10) itab_out-vbeln,
23 sy-vline, 24(6) itab_out-posnr,
30 sy-vline, 31(10) itab_out-fkdat,
41 sy-vline, 42(6) itab_out-mode,
48 sy-vline, 49(7) itab_out-density,
56 sy-vline, 57(18) itab_out-matnr,
75 sy-vline, 76(10) itab_out-charg,
86 sy-vline,
87(13) itab_out-fkimg unit itab_out-vrkme no-sign,
102(3) itab_out-vrkme,
105 sy-vline,
106(14) itab_out-sel_prc currency konv-waers no-sign,
120 sy-vline,
121(15) itab_out-bil_amt currency vbrk-waerk no-sign,
138(3) itab_out-waerk,
141 sy-vline,
142(15) itab_out-mvg_prs currency vbrk-waerk no-sign,
157 sy-vline,
158(15) itab_out-gp_mvp_amt currency vbrk-waerk no-sign,
173 sy-vline,174(6) itab_out-gp_mvp_pr no-sign ,
180 sy-vline,181(33) itab_out-kdmat,
214 sy-vline.
t_fkimg = t_fkimg + itab_out-fkimg.
t_bil_amt = t_bil_amt + itab_out-bil_amt.
t_gp_mvp_amt = t_gp_mvp_amt + itab_out-gp_mvp_amt.
t_gr_fkimg = t_gr_fkimg + itab_out-fkimg.
t_gr_bil_amt = t_gr_bil_amt + itab_out-bil_amt.
t_gr_gp_mvp_amt = t_gr_gp_mvp_amt + itab_out-gp_mvp_amt.
at end of kunag.
format reset.
format color col_total intensified off.
write:/1(214) sy-uline.
write:/01 sy-vline,
02 'Sub Total of Customer:'(035), itab_out-kunag,
87(13) t_fkimg unit itab_out-vrkme no-sign,
121(15) t_bil_amt no-sign,
158(15) t_gp_mvp_amt no-sign,
214 ' ',
/1(214) sy-uline.
clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
endat.
at last.
write:/01 sy-vline,
02 'Grand Total :'(032),
87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
121(15) t_gr_bil_amt no-sign,
158(15) t_gr_gp_mvp_amt no-sign,
214 ' '.
endat.
format color off.
endloop.
write at /1(214) sy-uline.
endform. "invoice_output_cust
*& Form invoice_output_mode
Report Output
form invoice_output_mode.
loop at itab_out.
move-corresponding itab_out to itab_out2.
append itab_out2.
clear: itab_out2.
endloop.
write at /1(214) sy-uline.
sort itab_out2 by mode vbeln posnr fkdat.
loop at itab_out2.
if f_flg = 'X'.
format color col_normal intensified off.
f_flg = ' '.
else.
format color col_normal intensified on.
f_flg = 'X'.
endif.
at new mode.
read table itab_out2 index sy-tabix.
endat.
write: /01 sy-vline, 2(10) itab_out2-kunag,
12 sy-vline, 13(10) itab_out2-vbeln,
23 sy-vline, 24(6) itab_out2-posnr,
30 sy-vline, 31(10) itab_out2-fkdat,
41 sy-vline, 42(6) itab_out2-mode,
48 sy-vline, 49(7) itab_out2-density,
56 sy-vline, 57(18) itab_out2-matnr,
75 sy-vline, 76(10) itab_out2-charg,
86 sy-vline,
87(13) itab_out2-fkimg unit itab_out2-vrkme no-sign,
102(3) itab_out2-vrkme,
105 sy-vline,
106(14) itab_out2-sel_prc currency vbrk-waerk no-sign,
120 sy-vline,
121(15) itab_out2-bil_amt currency vbrk-waerk no-sign,
138(3) itab_out2-waerk,
141 sy-vline,
142(15) itab_out2-mvg_prs currency vbrk-waerk no-sign,
157 sy-vline,
158(15) itab_out2-gp_mvp_amt currency vbrk-waerk no-sign,
173 sy-vline,174(6) itab_out2-gp_mvp_pr no-sign,
180 sy-vline,181(33) itab_out2-kdmat,
214 sy-vline.
t_fkimg = t_fkimg + itab_out2-fkimg.
t_bil_amt = t_bil_amt + itab_out2-bil_amt.
t_gp_mvp_amt = t_gp_mvp_amt + itab_out2-gp_mvp_amt.
t_gr_fkimg = t_gr_fkimg + itab_out2-fkimg.
t_gr_bil_amt = t_gr_bil_amt + itab_out2-bil_amt.
t_gr_gp_mvp_amt = t_gr_gp_mvp_amt + itab_out2-gp_mvp_amt.
at end of mode.
format reset.
format color col_total intensified off.
write:/1(214) sy-uline.
write:/01 sy-vline,
02 'Sub Total of Mode :'(033), itab_out2-mode,
87(13) t_fkimg unit itab_out-vrkme no-sign,
121(15) t_bil_amt no-sign,
158(15) t_gp_mvp_amt no-sign,
214 ' ',
/1(214) sy-uline.
clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
endat.
at last.
write:/01 sy-vline,
02 'Grand Total :'(032),
87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
121(15) t_gr_bil_amt no-sign,
158(15) t_gr_gp_mvp_amt no-sign,
214 ' '.
endat.
format color off.
endloop.
write at /1(214) sy-uline.
endform. "invoice_output_mode
*& Form invoice_output_dens
Report Output
form invoice_output_dens.
loop at itab_out.
move-corresponding itab_out to itab_out3.
append itab_out3.
clear: itab_out3.
endloop.
write at /1(214) sy-uline.
sort itab_out3 by mode density vbeln posnr fkdat.
loop at itab_out3.
if f_flg = 'X'.
format color col_normal intensified off.
f_flg = ' '.
else.
format color col_normal intensified on.
f_flg = 'X'.
endif.
at new mode.
endat.
at new density.
read table itab_out3 index sy-tabix.
endat.
write: /01 sy-vline, 2(10) itab_out3-kunag,
12 sy-vline, 13(10) itab_out3-vbeln,
23 sy-vline, 24(6) itab_out3-posnr,
30 sy-vline, 31(10) itab_out3-fkdat,
41 sy-vline, 42(6) itab_out3-mode,
48 sy-vline, 49(7) itab_out3-density,
56 sy-vline, 57(18) itab_out3-matnr,
75 sy-vline, 76(10) itab_out3-charg,
86 sy-vline,
87(13) itab_out3-fkimg unit itab_out3-vrkme no-sign,
102(3) itab_out3-vrkme,
105 sy-vline,106(14) itab_out3-sel_prc no-sign,
120 sy-vline,
121(15) itab_out3-bil_amt currency vbrk-waerk no-sign,
138(3) itab_out3-waerk,
141 sy-vline,142(15) itab_out3-mvg_prs no-sign
currency vbrk-waerk,
157 sy-vline,158(15) itab_out3-gp_mvp_amt no-sign
currency vbrk-waerk,
173 sy-vline,174(6) itab_out3-gp_mvp_pr no-sign,
180 sy-vline,181(33) itab_out3-kdmat,
214 sy-vline.
t_efkimg = t_efkimg + itab_out3-fkimg.
t_ebil_amt = t_ebil_amt + itab_out3-bil_amt.
t_egp_mvp_amt = t_egp_mvp_amt + itab_out3-gp_mvp_amt.
t_fkimg = t_fkimg + itab_out3-fkimg.
t_bil_amt = t_bil_amt + itab_out3-bil_amt.
t_gp_mvp_amt = t_gp_mvp_amt + itab_out3-gp_mvp_amt.
t_gr_fkimg = t_gr_fkimg + itab_out3-fkimg.
t_gr_bil_amt = t_gr_bil_amt + itab_out3-bil_amt.
t_gr_gp_mvp_amt = t_gr_gp_mvp_amt + itab_out3-gp_mvp_amt.
at end of density.
format reset.
format color col_total intensified off.
write:/1(214) sy-uline.
write:/01 sy-vline,
02 'Sub Total of Density :'(034), itab_out3-density,
87(13) t_efkimg unit itab_out-vrkme no-sign,
121(15) t_ebil_amt currency vbrk-waerk no-sign,
158(15) t_egp_mvp_amt currency vbrk-waerk no-sign,
214 ' ',
/1(214) sy-uline.
clear: t_efkimg, t_ebil_amt,t_egp_mvp_amt.
endat.
at end of mode.
format reset.
format color col_total intensified off.
write:/01 sy-vline,
02 'Sub Total of Mode :'(033), itab_out3-mode,
87(13) t_fkimg unit itab_out-vrkme no-sign,
121(15) t_bil_amt no-sign,
158(15) t_gp_mvp_amt no-sign,
214 ' ',
/1(214) sy-uline.
clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
endat.
at last.
write:/01 sy-vline,
02 'Grand Total :'(032),
87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
121(15) t_gr_bil_amt no-sign,
158(15) t_gr_gp_mvp_amt no-sign,
214 ' '.
endat.
format color off.
endloop.
write at /1(214) sy-uline.
endform. "invoice_output_dens
*& Form f4_help
To Get F4 Help to Select File Name
form f4_help.
call function 'F4_FILENAME'
exporting
program_name = sy-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
importing
file_name = p_file.
endform. " f4_help
*& Form rep_headers
Report Header
form rep_headers.
format color col_heading on.
format color col_heading on.
select single butxt from t001 into t001-butxt
where bukrs = s_bukrs-low.
skip 2.
write: /2 t001-butxt, 92 'BILLING ANALYSIS'(003),
190 'Date :'(010),sy-datum.
write :/2 'Company Code :'(011), s_bukrs-low ,
85 'Billing Date :'(012) , s_fkdat-low , '-' ,s_fkdat-high ,
190 'Page :'(013), sy-pagno,
214 ' '.
write at /1(214) sy-uline.
write: /1 sy-vline, 2(10) 'Customer'(004) centered,
12 sy-vline, 13(10) 'Billing'(009) centered,
23 sy-vline, 24(6) 'Billing'(009) centered,
30 sy-vline, 31(10) 'Billing'(009) centered,
41 sy-vline, 42(6) 'Mode'(006) centered,
48 sy-vline, 49(7) 'Density'(014) centered,
56 sy-vline, 57(18) 'Material'(015) centered,
75 sy-vline, 76(10) 'Batch'(016) centered,
86 sy-vline, 87(13) 'Quantity'(017) centered,102(3) 'UOM'(027),
105 sy-vline, 106(14) 'Selling'(018) centered ,
120 sy-vline, 121(15) 'Billing'(009) centered,
138(3) 'Cur'(028),
141 sy-vline, 142(15) 'Mvg.Avg.Price'(020) centered,
157 sy-vline, 158(22) 'Gross Profit(MVP)'(022) centered,
180 sy-vline, 181(33) 'Customer Material'(023) centered,
214 sy-vline.
write: /1 sy-vline, 2(10) 'Code'(024) centered,
12 sy-vline, 13(10) 'Document'(025) centered,
23 sy-vline, 24(6) 'Item'(026) centered,
30 sy-vline, 31(10) 'Date'(036) centered,
41 sy-vline,
48 sy-vline,
56 sy-vline,
75 sy-vline,
86 sy-vline,
105 sy-vline, 106(14) 'Price'(030) centered ,
120 sy-vline, 121(15) 'Amount'(031) centered,
141 sy-vline, 142(15) '(per Unit)'(019) centered,
157 sy-vline, 158(15) 'Amount'(031) centered,
173 sy-vline, 174(6) ' % '(029) centered,
180 sy-vline,
214 sy-vline.
format color off.
endform. " rep_headers
*& Form init_fieldnames
Initialise all the fields to download in Excel Data File
form init_fieldnames.
perform append_fieldname using text-004 'itab_out1'
'KUNAG' 'X'.
perform append_fieldname using text-037 'itab_out1'
'VBELN' 'X'.
perform append_fieldname using text-036 'itab_out1'
'FKDAT' 'X'.
perform append_fieldname using text-038 'itab_out1'
'POSNR' 'X'.
perform append_fieldname using text-006 'itab_out1'
'MODE' 'X'.
perform append_fieldname using text-014 'itab_out1'
'DENSITY' 'X'.
perform append_fieldname using text-015 'itab_out1'
'MATNR' 'X'.
perform append_fieldname using text-016 'itab_out1'
'CHARG' 'X'.
perform append_fieldname using text-017 'itab_out1'
'FKIMG' 'X'.
perform append_fieldname using text-039 'itab_out1'
'VRKME' 'X'.
perform append_fieldname using text-040 'itab_out1'
'SEL_PRC' 'X'.
perform append_fieldname using text-041 'itab_out1'
'BIL_AMT' 'X'.
perform append_fieldname using text-028 'itab_out1'
'WAERK' 'X'.
perform append_fieldname using text-020 'itab_out1'
'MVG_PRS' 'X'.
perform append_fieldname using text-044 'itab_out1'
'GP_MVP_AMT' 'X'.
perform append_fieldname using text-045 'itab_out1'
'GP_MVP_PR' 'X'.
perform append_fieldname using text-023 'itab_out1'
'KDMAT' 'X'.
endform.
*& Form append_fieldname
Appending field Names
form append_fieldname using p_title p_table p_field p_type.
clear: fieldnames.
fieldnames-title = p_title.
fieldnames-table = p_table.
-
Hi All!
is it possible to get the report output in HTML based output?
if yes, can anyone send me the details?
thanks in advance
AlankaarHi,
Yes it is possible to do that.
You can go thru the program below. Hope it could help you.
REPORT ZSS_CODE_2_HTML LINE-SIZE 300 .
TABLES: D010INC.
Tabelle für die aufzunehmenden ABAP-Texte
DATA: BEGIN OF SOURCECODE OCCURS 0,
LINE(200),
END OF SOURCECODE.
Tabelle für den erzeugten HTMLCode
DATA: BEGIN OF HTMLCODE OCCURS 5000,
LINE(256),
END OF HTMLCODE.
DATA: BEGIN OF INCLUDETAB OCCURS 0,
NAME LIKE D010INC-INCLUDE,
END OF INCLUDETAB.
DATA: TEXTELEMENTETAB LIKE TEXTPOOL OCCURS 50 WITH HEADER LINE.
DATA: EINRUECK TYPE I, " Soweit im HTML einrücken
CHAR2(2).
Selektionsbild und Verarbeitung -
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME.
PARAMETERS: PROGNAME LIKE D010SINF-PROG
DEFAULT 'ZSS_CODE_2_HTML'.
PARAMETERS: HTMLFILE LIKE RLGRAP-FILENAME
DEFAULT 'c: emp est.html'.
PARAMETERS: MITINCLD AS CHECKBOX DEFAULT 'X',
MITTEXTL AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK BL1.
SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME.
PARAMETERS: MITZEILE AS CHECKBOX DEFAULT 'X',
ONSCREEN AS CHECKBOX DEFAULT 'X',
SAPINCLD AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK BL2.
Ein subtrivialer Tests
AT SELECTION-SCREEN.
READ REPORT PROGNAME INTO SOURCECODE.
IF SY-SUBRC <> 0.
MESSAGE E159(AT) WITH 'Programm konnte nicht eingelesen werden'.
ENDIF.
Programmanfang -
END-OF-SELECTION.
In der Tabelle sourcecode sollte hier schon der Quelltext stehen.
PERFORM ERZEUGE_KOPF.
PERFORM WRITE_SOURCE.
Includes falls erwünscht
IF MITINCLD = 'X'.
PERFORM WRITE_INCLUDES.
ENDIF.
Textelemente falls erwünscht
Includes falls erwünscht
IF MITTEXTL = 'X'.
PERFORM WRITE_TEXTELEMENTE.
ENDIF.
Und abschließen des Files
PERFORM ERZEUGE_SCHWANZ.
PERFORM ABSPEICHERN TABLES HTMLCODE
USING HTMLFILE.
Unterroutinen -
INCLUDE ZCD_SS_DEBUGROUTINEN.
FORM ABSPEICHERN *
--> FILENAME *
FORM ABSPEICHERN TABLES TEXT_ZU_SCHREIBEN
USING FILENAME LIKE RLGRAP-FILENAME.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
CODEPAGE = 'IBM'
FILENAME = HTMLFILE
FILETYPE = 'ASC'
MODE = ' '
TABLES
DATA_TAB = TEXT_ZU_SCHREIBEN
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TABLE_WIDTH = 4
INVALID_TYPE = 5
NO_BATCH = 6
UNKNOWN_ERROR = 7
GUI_REFUSE_FILETRANSFER = 8
OTHERS = 9.
IF ONSCREEN = 'X'.
LOOP AT TEXT_ZU_SCHREIBEN.
PERFORM SHOW_ANY_STRUC USING TEXT_ZU_SCHREIBEN.NEW-LINE.
ENDLOOP.
ENDIF.
ENDFORM.
*& Form ERZEUGE_KOPF
Erzeugt einen HTML-Rumpf bis zum Body
FORM ERZEUGE_KOPF.
HTMLCODE-LINE = ''.APPEND HTMLCODE.
HTMLCODE-LINE = ' '.APPEND HTMLCODE.
HTMLCODE-LINE = '
CLEAR HTMLCODE-LINE.
HTMLCODE-LINE+3 = PROGNAME.APPEND HTMLCODE.
HTMLCODE-LINE = ' '.APPEND HTMLCODE.
HTMLCODE-LINE = ' '.APPEND HTMLCODE.
CLEAR HTMLCODE-LINE.APPEND HTMLCODE.
HTMLCODE-LINE = ''.APPEND HTMLCODE.
EINRUECK = 2.
ENDFORM. " ERZEUGE_KOPF
*& Form ERZEUGE_SCHWANZ
Erzeugt die abschließenden HTML-Befehle
FORM ERZEUGE_SCHWANZ.
HTMLCODE-LINE = ' </body>'.APPEND HTMLCODE.
HTMLCODE-LINE = '</html>'.APPEND HTMLCODE.
ENDFORM. " ERZEUGE_SCHWANZ
*& Form WRITE_SOURCE
Schreibt den Sourcecode
FORM WRITE_SOURCE.
DATA: ROT.
Erstmal die Überschrift hinstellen
PERFORM ADDZEILE USING '>+' '
PERFORM ZEILEUMB USING '' PROGNAME.
PERFORM ADDZEILE USING '->' '
CLEAR HTMLCODE-LINE.APPEND HTMLCODE.
Link auf Includes
IF MITINCLD = 'X'.
PERFORM ADDZEILE USING '>+' '
PERFORM ZEILEUMB USING '' '[Includes | #Includes]'.
PERFORM ADDZEILE USING '->' '
ENDIF.
Link auf Textelemente
IF MITTEXTL = 'X'.
PERFORM ADDZEILE USING '>+' '
PERFORM ZEILEUMB USING ''
'[Textelemente | #Textelemente]'.
PERFORM ADDZEILE USING '->' '
ENDIF.
Und Linie zum Trennen gegen den Quellcode
PERFORM ADDZEILE USING '>+' ''.
Und jetzt der Quellcode
PERFORM CODELINES.
ENDFORM. " WRITE_SOURCE
*& Form ADDZEILE
Fügt eine Zeile in den HTML-Code ein und korrigiert Einrücktiefe
FORM ADDZEILE USING VALUE(EINRUECKEN) LIKE CHAR2
VALUE(TEXT).
DATA: ER.
ER = EINRUECKEN(1).
IF ER = '+'.
EINRUECK = EINRUECK + 1.
ELSEIF ER = '-'.
EINRUECK = EINRUECK - 1.
ENDIF.
CLEAR HTMLCODE.
HTMLCODE+EINRUECK = TEXT.
APPEND HTMLCODE.
ER = EINRUECKEN+1(1).
IF ER = '+'.
EINRUECK = EINRUECK + 1.
ELSEIF ER = '-'.
EINRUECK = EINRUECK - 1.
ENDIF.
ENDFORM. " ADDZEILE
*& Form SONDERZEICHEN
Sonderzeichen in HTML darstellen
FORM SONDERZEICHEN CHANGING ZEILE.
DATA: S LIKE SY-SUBRC,
LASTHIT LIKE SY-FDPOS,
DUMMY(256).
LASTHIT = 0.
DO.
DUMMY = ZEILE+LASTHIT.
IF DUMMY CA '&'.
REPLACE '&' WITH '&' INTO DUMMY.
ZEILE+LASTHIT = DUMMY.
LASTHIT = SY-FDPOS + LASTHIT + 1.
ELSE.
EXIT.
ENDIF.
ENDDO.
ÄÖÜäöüß<>"
DO.
S = 1.
REPLACE 'Ä' WITH 'Ä' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE 'Ö' WITH 'Ö' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE 'Ü' WITH 'Ü' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE 'ä' WITH 'ä' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE 'ö' WITH 'ö' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE 'ü' WITH 'ü' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE 'ß' WITH 'ß' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE '<' WITH '<' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE '>' WITH '>' INTO ZEILE. S = S * SY-SUBRC / 4.
REPLACE '"' WITH '"' INTO ZEILE. S = S * SY-SUBRC / 4.
IF S = 1.EXIT.ENDIF.
ENDDO.
ENDFORM. " SONDERZEICHEN
*& Form ZEILEUMB
text
FORM ZEILEUMB USING VALUE(EINRUECKEN) LIKE CHAR2
VALUE(TEXT).
CONCATENATE TEXT '
' INTO TEXT.
PERFORM ADDZEILE USING EINRUECKEN TEXT.
ENDFORM. " ZEILEUMB
*& Form CODELINES
Schiebt die Zeilen aus sourcecode ins HTML-Format
FORM CODELINES.
DATA ZEILE(5).
PERFORM ADDZEILE USING '>+' '
LOOP AT SOURCECODE.
Erst mal die Sonderzeichen ersetzen
PERFORM SONDERZEICHEN CHANGING SOURCECODE-LINE.
Bei einem Kommentar diesen Rot und kursiv darstellen
IF SOURCECODE-LINE(1) = '*'. " roter Kommentar
CONCATENATE '+'
SOURCECODE-LINE
'+'
INTO SOURCECODE-LINE.
ENDIF.
Bei Zeilennummerierung diese in dunkelblau dazustellen
IF MITZEILE = 'X'.
ZEILE = SY-TABIX.
SHIFT SOURCECODE-LINE RIGHT BY 35 PLACES.
CONCATENATE ''
ZEILE
INTO SOURCECODE-LINE(35).
ENDIF.
PERFORM ADDZEILE USING '' SOURCECODE-LINE.
ENDLOOP.
PERFORM ADDZEILE USING '->' '
ENDFORM. " CODELINES
*& Form WRITE_INCLUDES
Die ganzen Includesources anfügen
FORM WRITE_INCLUDES.
DATA: FIRSTTIME.
FIRSTTIME = 'X'.
SELECT * FROM D010INC WHERE MASTER = PROGNAME.
IF SAPINCLD = 'X'
AND D010INC-INCLUDE(1) = '<'.
CONTINUE.
ENDIF.
IF FIRSTTIME = 'X'.
PERFORM ADD_INCLUDES_HEADER.
CLEAR FIRSTTIME.
ENDIF.
Die Namen der Includes merken und nacher am Anfang in den Quellcode
als Navigationspunkte hinzufügen
APPEND D010INC-INCLUDE TO INCLUDETAB.
Namen und Quelltext schreiben
PERFORM ADD_INCLUDE_NAME USING D010INC.
READ REPORT D010INC-INCLUDE INTO SOURCECODE.
PERFORM CODELINES.
ENDSELECT.
ENDFORM. " WRITE_INCLUDES
*& Form ADD_INCLUDES_HEADER
Für den 1. Include eine kleine Sonderbehandlung
FORM ADD_INCLUDES_HEADER.
HTMLCODE-LINE = ''. APPEND HTMLCODE.
ENDFORM. " ADD_INCLUDES_HEADER
FORM ADD_INCLUDE_NAME *
--> UEBERGABE *
FORM ADD_INCLUDE_NAME USING UEBERGABE LIKE D010INC.
HTMLCODE-LINE = ' '. APPEND HTMLCODE.
ENDFORM. " ADD_INCLUDE_NAME
*& Form WRITE_TEXTELEMENTE
Textelemente des Hauptprogramms auch noch ausgeben
FORM WRITE_TEXTELEMENTE.
PERFORM TEXTELEMENTE_HEADER.
READ TEXTPOOL PROGNAME INTO TEXTELEMENTETAB.
PERFORM HTML_TEXTELEMENTE USING 'im Hauptprogramm'.
LOOP AT INCLUDETAB.
READ TEXTPOOL INCLUDETAB-NAME INTO TEXTELEMENTETAB.
CHECK SY-SUBRC = 0.
PERFORM HTML_TEXTELEMENTE USING INCLUDETAB-NAME.
ENDLOOP.
ENDFORM. " WRITE_TEXTELEMENTE
*& Form TEXTELEMENTE_HEADER
FORM TEXTELEMENTE_HEADER.
HTMLCODE-LINE = ''. APPEND HTMLCODE.
ENDFORM. " TEXTELEMENTE_HEADER
*& Form HTML_TEXTELEMENTE
text
FORM HTML_TEXTELEMENTE USING WOHER.
DATA: WOHERNAME(80),
TID(80),
TKEY(80),
TENTRY(80).
WOHERNAME = WOHER.
PERFORM SONDERZEICHEN CHANGING WOHERNAME.
Das Ganze als Tabelle rauswerfen
HTMLCODE-LINE = '
'.APPEND HTMLCODE.
CONCATENATE '
' WOHERNAME '' INTO HTMLCODE-LINE.APPEND HTMLCODE.
HTMLCODE-LINE = '
'.APPEND HTMLCODE.
LOOP AT TEXTELEMENTETAB.
TID = TEXTELEMENTETAB-ID.
TKEY = TEXTELEMENTETAB-KEY.
TENTRY = TEXTELEMENTETAB-ENTRY.
und HTML-Sonderzeichen ersetzen
PERFORM SONDERZEICHEN CHANGING TID.
PERFORM SONDERZEICHEN CHANGING TKEY.
PERFORM SONDERZEICHEN CHANGING TENTRY.
HTMLCODE-LINE = ''.APPEND HTMLCODE.
CONCATENATE '' INTO HTMLCODE-LINE.
APPEND HTMLCODE.
CONCATENATE '' INTO HTMLCODE-LINE.
APPEND HTMLCODE.
CONCATENATE '' INTO HTMLCODE-LINE.
APPEND HTMLCODE.
HTMLCODE-LINE = ''.APPEND HTMLCODE.
ENDLOOP.
HTMLCODE-LINE = '
' TID '
' TKEY '
' TENTRY '
'.APPEND HTMLCODE.
HTMLCODE-LINE = '
'.APPEND HTMLCODE.
ENDFORM. " HTML_TEXTELEMENTE
Regards
Rakesh -
hi
I have more than 20 columns in horizontal format.
How to set the report output including 20 columnsDear Rohit
When I print Arabic content text files from OS
the Arabic Characters are printing well. Also I have
the necessary Arabic Fonts. When I reduce the Printing
column size(for Repeated Frame)
the Arabic Characters are print. But after
print one page the junk characters are print. so pls
reply for this issue.
Ur's Shahul -
Calling html file within web.show document as a report output
/* this is blank html file included javascript for disabling mouse right click working fine*/
WEB.SHOW_DOCUMENT ('http://prod.artisticmilliners.com:8000/files/file.html','_blank');
/* this is oracle report output within model frame working fine*/
WEB.SHOW_DOCUMENT ('javascript:void(window.open("'|| URL || '","","location=no,toolbar=no,menubar=no,status=no,"));self.close()','_self');
I want to add show report output with right mouse click disable. Pleae guide how can i do it?Let me start by saying that disabling the right mouse will do nothing but frustrate users. It doesn't protect the page content from anything. There are various other ways to get the content from the page copied locally. And more importantly, this does not_ offer any kind of security.
Ok, so you have decided to do it anyway ;)
In order to make this happen, you would need to modify the report. I will assume that when you said "report" you meant Oracle Reports. Open the report file (.rdf) and edit the report's "Before Report Value".
The default value is:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=&Encoding">
</head>
<body dir=&Direction bgcolor="#ffffff">Change it to this:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=&Encoding">
</head>
<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
Function disableclick(e)
if(event.button==2)
alert(status);
return false;
</script>
<body oncontextmenu="return false" dir=&Direction bgcolor="#ffffff">Save the changes and retest. -
Output mismatch between BEx query output and WebI Report output
Hi All,
I have a BEx query in which there are only characteristics placed in rows.
There are combinations of the values of the characteristics giving different records in the query output.
Date is one of the characterisctics in the query output.
There is an output mismatch between the query output and the WebI report output in the following case:
When there are 'Not Assigned' or '#' or blank values, there are additional entries(rows) in the WebI report, giving repeating or wrong entries in the Date field. This is incorrect data.
Is this because of the 'Not Assigned' or '#' or blank values of the Characteristics or is there any other reason?
How do I fix this?
Please helo me with this.
Thanks and Regards,
Srilakshmi BHi Rajesh,
I need to verify the WebI report output for records with # and 'Not assigned' values for the cHracteristics in the report.
So I cannot check the WebI report by hiding the # or Not assigned values.
The problem is that in the Query output the records are like these shown below:
Char1 CHar2 CHar3 Date field
A B C Date1
#(Not assgined) #(Not assgined) #(Not assgined) No value
Where as the WebI report output is as below:
Char1 CHar2 CHar3 Date field
A B C Date1
#(Not assgined) #(Not assgined) #(Not assgined) Date1
As shown here, there are wrong/repeating entries for the Date field in the WebI report output.
Please check this and let me know what could be the issue and how do I fix it.
Thanks and Regards,
Srilakshmi B -
FM to display Selection screen on report output??
Hi Experts,
Is there an FM to display Selection screen on report output.
Thanks In Advance.Hi Ashwin,
Refer to below link
http://help.sap.com/saphelp_nw04/helpdata/en/2a/755b94ca5911d299af5c9604c10e27/content.htm
or
The easiest way is to define your selection screen in the TOP include of your module pool.
Then call the selection screen.
Selection Screen
selection-screen begin of screen 1010 as window title text-001.
selection-screen begin of block b1 with frame title text-002.
parameters: p_vornr type resb-vornr,
p_refno(20) type c,
p_plnid type zplcfg-plnid as listbox visible length 20,
p_sorts type c as listbox visible length 20.
selection-screen begin of line.
selection-screen comment (20) text-004.
selection-screen position 33.
parameters: p_order as checkbox default 'X'.
selection-screen end of line.
selection-screen end of block b1.
selection-screen end of screen 1010.
Now call the selection screen.
call selection-screen 1010.
if sy-subrc = 0.
perform get_production_orders.
perform process_orders.
endif.
Thanks!!
Maybe you are looking for
-
Importing Journals through DTW
Forum, I am having difficulties importing a journal through DTW. I get the initial message that it's unbalanced. I have performed a SUM of the Debit/Credit columns and these agree. I have also checked the field format and checked the decimal places i
-
Powering down external HDs on an iMac when shut down
Hi to all, hope you can help ..... I recently added two external WD Studio HDs to my iMac connected as a RAID1 array. This was done using the Mac disc utility and without any reference to the pre installed WD software. I also have a separate Studio
-
Post Author: clear_zero CA Forum: General I try to insert a group which I just want one page is one group. Can I do that? Thanks
-
Why is my ipad show to need active while im using it
why is my ipad show to need active while im using it
-
I bought songs of itunes an put my playlist on my usb. There all visible and play on my laptop but wont play in my car stereo usb port any suggestions please