About flexible report
Hi.
I'm aware that by using lexical parameters and even a pl/sql function that returns a cursor variable, you can build very flexible reports: dynamic where clause, even dynamic select list, dynamic order by, etc. However, i'd like address some specifics issues and see if some feedback is provided:
1) I'd like to give users the abitlity to choose a summary function to apply to some columns: for example, given the amount and quantity columns, give users the option to dynamically select a summary function to be applied: i.e. sum, avg, max, min, etc. Is there a way to dynamically change a summary function?.
2) As flexible as data model can be, i find the layout model not that flexible: you have to use format triggers, anchors and so forth to get the job done. Consider these two situations:
- You allow the user to select the fields he wants in the report. On the data model size it's quite easy, if you use lexical parameters, on the layout side, you have to consider things like column size, spacing, labels, etc. These can get a bit tricky here.
- You want to give the user the ability to configure a let's say a receipt report: i mean he decides where in the paper he wants to place receipt number, customer name, code ,etc. I mean there isn't seem to exist an option such as a dynamic layout as far as i know. How flexible or dynamic a layout can be without having to write too much code?.
Any feedback will be greatly appreciated ... Thanks in advance ...!
1. If aggregate function is done in the SQL, the same lexical approach can be used to change the operation. If aggregation is done in the data model using summary column, you will need to create several summary columns for all possible summary functions that user can choose from. Then one more formula columns will be needed to pick one of the created summary columns based on the summary parameter value.
2.1 The layout can be flexible to some extent. It should be known in advance how many columns user can select, e.g. either 4, or 5, or 6. Then you can create different layouts for each case and switch between them, or you can even adjust the same layout using triggers, anchors, and frame elasicities, which is not too easy. For more user flexibility the Discoverer would be a better option, but you will trate flexibility for formatting and layout possibilities.
2.2 Offering the user more formatting options is also limited to what is envisaged in the layout. For example, you can ask user if he wants page numbers in the top, in the bottom, to the left, to the right, but you will have to place the page numbers in all the places and then suppress all of them except for what user has selected. For more end user freedom, XML Publisher can be the better option. The user will be able to create his own template in MS Word and move the fields as he likes.
Similar Messages
-
Flexible Report - choose the cols (and # of cols) on the fly - PDF
Hi
I have a user community who would like to be able to choose the columns in a "Flexible Report" when they want to run a report to output to the browser, and then to PDF.
Now, I've played around a bit with setting up a number of page items - say 5 - called COL1..COL5 and setting the values from list-boxes and then running a report SQL:-
Select :col1 COL1,
:col5 COL5
from my_table
etc.
This produces the data, but its pretty tacky and the column names are COL1, COL2.... - also tacky, and the number of columns is fixed.
Anyone got any slick ideas on how to do this so the column names and # are variable?
I have tried a javascript example (posted elsewhere in the forum) that runs the report with all it's columns, and allows the columns to be shown / hidden depending on the state of a ccheckbox. This is very cool but it doesn't translate the flexibility to PDF output.
For those who have used Discoverer - I need a mini-Discoverer reportwriter!!
Any input greatfully received - Thanks in anticipation.
Mike
Message was edited by:
Mike Machi
see this thread,it may help you...
column name/table name
regards
vally.s -
Hi Falks,
If any one knows about interactive report transaction code than plz give reply as well as send me one step by step example how to create interactive reports.
mail me on "[email protected]".
Thanx and regards,
Rahul TaleleHi,
There is separate Tcode for interactive reports ..
you can create a basic list report for one table data, and use the commands of intercative reports, like At line-selection, At user-command and write the code to display the another table records .
see the sample code:
report zf_rept_debtor_ageing
no standard page heading
message-id fb
line-count 65
line-size 230.
Purpose : This ABAP program will fetch the Account Receivables for
a Customer for the given period and display the due days.
tables: t001, " Company Codes
t005, " Countries
skb1, " GL Master
kna1. " Customer Master
Internal Tables
Internal table for BSID (Open Items) data
data: begin of it_bsid occurs 0,
kunnr like bsid-kunnr, " Customer Number
gjahr like bsid-gjahr, " Fiscal Year
belnr like bsid-belnr, " Acc.Document
buzei like bsid-buzei, " Item
budat like bsid-budat, " Posting Date
shkzg like bsid-shkzg, " Dr/Cr Indicator
dmbtr like bsid-dmbtr, " Amount(Local Curr)
wrbtr like bsid-wrbtr, " Amount(Doc Curr)
dmbe2 like bsid-dmbe2, " Amount(USD)
waers like bsid-waers, " Currency
zterm like bsid-zterm, " Payment Terms
vbeln like bsid-vbeln, " Billing Doc
zfbdt like bsid-zfbdt, " Baseline Date
zbd1t like bsid-zbd1t, " No of days
hkont like bsid-hkont, " GL Account
name1 like kna1-name1, " Customer Name
land1 like kna1-land1, " Country
end of it_bsid.
Internal table for BSAD (Closed Items) data
data: begin of it_bsad occurs 0,
kunnr like bsad-kunnr, " Customer Number
gjahr like bsad-gjahr, " Fiscal Year
belnr like bsad-belnr, " Acc.Document
buzei like bsad-buzei, " Item
budat like bsad-budat, " Posting Date
shkzg like bsad-shkzg, " Dr/Cr Indicator
dmbtr like bsad-dmbtr, " Amount(Local Curr)
wrbtr like bsid-wrbtr, " Amount(Doc Curr)
dmbe2 like bsad-dmbe2, " Amount(USD)
waers like bsad-waers, " Currency
zterm like bsid-zterm, " Payment Terms
vbeln like bsid-vbeln, " Billing Doc
zfbdt like bsid-zfbdt, " Baseline Date
zbd1t like bsid-zbd1t, " No of days
hkont like bsid-hkont, " GL Account
name1 like kna1-name1, " Customer Name
land1 like kna1-land1, " Country
end of it_bsad.
Internal table for Report Output
data: begin of it_report occurs 0,
kunnr like bsid-kunnr, " Customer Number
belnr like bsid-belnr, " Acc.Document
name1 like kna1-name1, " Customer Name
land1 like kna1-land1, " Country
shkzg like bsid-shkzg, " Dr/Cr Indicator
budat like bsid-budat, " Posting Date
dmbtr like bsid-dmbtr, " Amount(Local Curr)
wrbtr like bsid-wrbtr, " Amount(Doc Curr)
dmbe2 like bsid-dmbe2, " Amount(USD)
waers like bsid-waers, " Currency
due_amnt like bsid-dmbtr, " Amount(Over Due)
d_amnt1 like bsid-dmbtr, " Amount(0-30 Future Due)
d_amnt2 like bsid-dmbtr, " Amount(31-60 Future Due)
d_amnt3 like bsid-dmbtr, " Amount(61-90 Future Due)
d_amnt4 like bsid-dmbtr, " Amount(91-120 Future Due)
d_amnt5 like bsid-dmbtr, " Amount(more than 120)
due_date like bsid-budat, " Due date
zterm like bsid-zterm, " Payment Terms
vbeln like bsid-vbeln, " Billing Doc
end of it_report.
Declaration of Data and Variables
data: v_days type i, " Difference days
v_waers like t001-waers, " Co.Code Currency
v_sum1 like bsid-dmbtr, " Totals 1
v_sum2 like bsid-dmbtr, " Totals 2
v_sum3 like bsid-dmbtr, " Totals 3
v_sum4 like bsid-dmbtr, " Totals 4
v_sum5 like bsid-dmbtr, " Totals 5
v_sum6 like bsid-dmbtr, " Totals 6
v_sum7 like bsid-dmbtr, " Totals 7
v_sum8 like bsid-dmbe2. " Totals 8
Constants
constants: c_doc_waers(3) value 'USD',
c_mitkz type c value 'D'.
Selection Screen
selection-screen : begin of block b1 with frame title text-001.
parameters: p_bukrs like t001-bukrs obligatory. " Company Code
select-options:s_kunnr for kna1-kunnr, " Customer Number
s_land1 for t005-land1, " Country
s_hkont for skb1-saknr. " G/L Account
parameters: p_date like sy-datum obligatory. " Report Date
selection-screen: end of block b1.
selection-screen : begin of block b2 with frame title text-002.
selection-screen begin of line.
selection-screen comment 2(30) text-003 for field p_rb1.
parameters: p_rb1 radiobutton group rb.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 2(30) text-004 for field p_rb2.
parameters: p_rb2 radiobutton group rb.
selection-screen end of line.
selection-screen: end of block b2.
selection-screen : begin of block b4 with frame.
selection-screen begin of line.
selection-screen comment 2(29) text-038 for field p_chk1.
parameters: p_chk1 as checkbox.
selection-screen end of line.
selection-screen: end of block b4.
selection-screen : begin of block b3 with frame title text-030.
selection-screen begin of line.
selection-screen comment 2(30) text-031 for field p_rb3.
parameters: p_rb3 radiobutton group rb1.
selection-screen end of line.
selection-screen begin of line.
selection-screen comment 2(30) text-032 for field p_rb4.
parameters: p_rb4 radiobutton group rb1.
selection-screen end of line.
selection-screen: end of block b3.
*********Initialization**********************************************
initialization.
At Selection Screen
at selection-screen.
Checking for the input values of selection screen.
perform screen_check.
Top-Of-Page
top-of-page.
if p_rb3 = 'X'.
if p_chk1 = 'X'.
Write the Column Headings for detailed report(in Doc Currency)
perform col_heading2.
else.
Write the Column Headings for detailed report
perform col_heading.
endif.
else.
Write the Column Headings for summary report
perform col_heading1.
endif.
Start-Of-Selection
start-of-selection.
Get the Customer Open Items from BSID
perform get_open_data.
Get the Customer Closed Items from BSAD
perform get_close_data.
Get the data from BSID,BSAD and KNA1 into one int.table
perform process_data.
End-Of-Selection
end-of-selection.
if it_report[] is initial.
write : 'No Documents found'(005).
else.
if p_rb3 = 'X'.
Write the Detailed Report
perform write_report.
else.
Write the Summary Report
perform write_report1.
endif.
endif.
At Line-Selection
at line-selection.
When double clicked on BELNR leave to transaction FB03
perform line_sel.
*& Form SCREEN_CHECK
Checking for the input values of selection screen
form screen_check.
Validation of Company Code
clear t001.
if not p_bukrs is initial.
select bukrs from t001 up to 1 rows
into t001-bukrs
where bukrs = p_bukrs.
endselect.
if sy-subrc ne 0.
message e000 with 'Invalid Company Code'(006).
endif.
endif.
Validation of Customer Number
clear kna1.
if not s_kunnr is initial.
select kunnr from kna1 up to 1 rows
into kna1-kunnr
where kunnr in s_kunnr.
endselect.
if sy-subrc ne 0.
message e000 with 'Invalid Customer Number'(007).
endif.
endif.
Validation of Country
clear t005.
if not s_land1 is initial.
select land1 from t005 up to 1 rows
into t005-land1
where land1 in s_land1.
endselect.
if sy-subrc ne 0.
message e000 with 'Invalid Country'(036).
endif.
endif.
Validation of GL Account
clear skb1.
if not s_hkont is initial.
select saknr from skb1 up to 1 rows
into skb1-saknr
where saknr in s_hkont and
mitkz = c_mitkz.
endselect.
if sy-subrc ne 0.
message e000 with 'Invalid GL Reconciliation Account'(037).
endif.
endif.
endform. " SCREEN_CHECK
*& Form COL_HEADING
Write the Column Headings for detailed report
form col_heading.
skip .
write: /88 'DEBTOR AGEING REPORT AS AT:'(019) centered,
116 p_date centered, 198 sy-pagno.
skip .
write: /2 'CoCode:'(016),13(4) p_bukrs color 3.
if not s_kunnr is initial.
if not s_kunnr-high is initial.
write: 20 'Customer:'(041),33 s_kunnr-low color 3,
'-', s_kunnr-high color 3.
else.
write: 20 'Customer:'(041),33 s_kunnr-low color 3.
endif.
endif.
if not s_land1 is initial.
if not s_land1-high is initial.
write: /2 'Country:'(042),13(4) s_land1-low color 3,
'-', s_land1-high color 3.
else.
write: /2 'Country:'(042),13(4) s_land1-low color 3.
endif.
if not s_hkont is initial.
if not s_hkont-high is initial.
write: 20 'GL Account:'(043),33 s_hkont-low color 3,
'-', s_hkont-high color 3.
else.
write: 20 'GL Account:'(043),33 s_hkont-low color 3.
endif.
endif.
else.
if not s_hkont is initial.
if not s_hkont-high is initial.
write: /2 'GL Account:'(043),14 s_hkont-low color 3,
'-', s_hkont-high color 3.
else.
write: /2 'GL Account:'(043),14 s_hkont-low color 3.
endif.
endif.
endif.
write: 183 'Run Date:'(029), sy-datum.
format color col_heading.
write at /1(203) sy-uline .
write: / sy-vline, 2(10) 'Customer'(008) centered,
12 sy-vline, 13(30) 'Customer Name'(009),
43 sy-vline, 44(3) 'Cty'(014) centered,
47 sy-vline, 48(15) 'Amount'(013) right-justified,
63 sy-vline, 64(4) 'Curr'(011) centered,
68 sy-vline, 69(15) 'Overdue'(012) centered,
84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
100 sy-vline,101(15) '31 - 60 Days'(028) centered,
116 sy-vline,117(15) '61 - 90 Days'(021) centered,
132 sy-vline,133(15) '91 - 120 Days'(022) centered,
148 sy-vline,149(15) 'Above 120 Days'(023) centered,
164 sy-vline,165(10) 'Due Date'(024) centered,
175 sy-vline,176(5) 'PayT'(025) centered,
181 sy-vline,182(10) 'Bill.Doc.'(026) centered,
192 sy-vline,193(10) 'Doc.No.'(027) centered,
203 sy-vline.
write at /1(203) sy-uline.
format color off.
endform. " COL_HEADING
*& Form COL_HEADING1
Write the Column Headings for summary report
form col_heading1.
skip .
write: /54 'DEBTOR AGEING REPORT (SUMMARY) AS AT:'(033) centered,
92 p_date centered, 158 sy-pagno.
skip .
write: /2 'CoCode:'(016), 13(4) p_bukrs color 3.
if not s_kunnr is initial.
if not s_kunnr-high is initial.
write: 20 'Customer:'(041),33 s_kunnr-low color 3,
'-', s_kunnr-high color 3.
else.
write: 20 'Customer:'(041),33 s_kunnr-low color 3.
endif.
endif.
if not s_land1 is initial.
if not s_land1-high is initial.
write: /2 'Country:'(042),13(4) s_land1-low color 3,
'-', s_land1-high color 3.
else.
write: /2 'Country:'(042),13(4) s_land1-low color 3.
endif.
if not s_hkont is initial.
if not s_hkont-high is initial.
write: 20 'GL Account:'(043),33 s_hkont-low color 3,
'-', s_hkont-high color 3.
else.
write: 20 'GL Account:'(043),33 s_hkont-low color 3.
endif.
endif.
else.
if not s_hkont is initial.
if not s_hkont-high is initial.
write: /2 'GL Account:'(043),14 s_hkont-low color 3,
'-', s_hkont-high color 3.
else.
write: /2 'GL Account:'(043),14 s_hkont-low color 3.
endif.
endif.
endif.
write: 144 'Run Date:'(029), sy-datum.
format color col_heading.
write at /1(164) sy-uline .
write: / sy-vline, 2(10) 'Customer'(008) centered,
12 sy-vline, 13(30) 'Customer Name'(009),
43 sy-vline, 44(3) 'Cty'(014) centered,
47 sy-vline, 48(15) 'Amount'(013) right-justified,
63 sy-vline, 64(4) 'Curr'(011) centered,
68 sy-vline, 69(15) 'Overdue'(012) centered,
84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
100 sy-vline,101(15) '31 - 60 Days'(028) centered,
116 sy-vline,117(15) '61 - 90 Days'(021) centered,
132 sy-vline,133(15) '91 - 120 Days'(022) centered,
148 sy-vline,149(15) 'Above 120 Days'(023) centered,
164 sy-vline.
write at /1(164) sy-uline.
format color off.
endform. " COL_HEADING1
*& Form COL_HEADING2
Write the Column Headings for summary report(in Doc Curr)
form col_heading2.
skip .
write: /99 'DEBTOR AGEING REPORT AS AT:'(019) centered,
127 p_date centered, 220 sy-pagno.
skip .
write: /2 'CoCode:'(016),13(4) p_bukrs color 3.
if not s_kunnr is initial.
if not s_kunnr-high is initial.
write: 20 'Customer:'(041),33 s_kunnr-low color 3,
'-', s_kunnr-high color 3.
else.
write: 20 'Customer:'(041),33 s_kunnr-low color 3.
endif.
endif.
if not s_land1 is initial.
if not s_land1-high is initial.
write: /2 'Country:'(042),13(4) s_land1-low color 3,
'-', s_land1-high color 3.
else.
write: /2 'Country:'(042),13(4) s_land1-low color 3.
endif.
if not s_hkont is initial.
if not s_hkont-high is initial.
write: 20 'GL Account:'(043),33 s_hkont-low color 3,
'-', s_hkont-high color 3.
else.
write: 20 'GL Account:'(043),33 s_hkont-low color 3.
endif.
endif.
else.
if not s_hkont is initial.
if not s_hkont-high is initial.
write: /2 'GL Account:'(043),14 s_hkont-low color 3,
'-', s_hkont-high color 3.
else.
write: /2 'GL Account:'(043),14 s_hkont-low color 3.
endif.
endif.
endif.
write: 204 'Run Date:'(029), sy-datum.
format color col_heading.
write at /1(225) sy-uline .
write: / sy-vline, 2(10) 'Customer'(008) centered,
12 sy-vline, 13(30) 'Customer Name'(009),
43 sy-vline, 44(3) 'Cty'(014) centered,
47 sy-vline, 48(15) 'Amount'(013) right-justified,
63 sy-vline, 64(4) 'Curr'(011) centered,
68 sy-vline, 69(15) 'Overdue'(012) centered,
84 sy-vline, 85(15) '0 - 30 Days'(010) centered,
100 sy-vline,101(15) '31 - 60 Days'(028) centered,
116 sy-vline,117(15) '61 - 90 Days'(021) centered,
132 sy-vline,133(15) '91 - 120 Days'(022) centered,
148 sy-vline,149(15) 'Above 120 Days'(023) centered,
164 sy-vline,165(10) 'Due Date'(024) centered,
175 sy-vline,176(5) 'PayT'(025) centered,
181 sy-vline,182(10) 'Bill.Doc.'(026) centered,
192 sy-vline,193(10) 'Doc.No.'(027) centered,
203 sy-vline,204(16) 'Amount(Doc.Curr)'(039),
220 sy-vline,221(4) 'Curr'(040),
225 sy-vline.
write at /1(225) sy-uline.
format color off.
endform. " COL_HEADING2
*& Form GET_OPEN_DATA
Get the Customer Open Items from BSID
form get_open_data.
select a~kunnr " Customer Number
a~gjahr " Fiscal Year
a~belnr " Acc.Document
a~buzei " Item
a~budat " Posting Date
a~shkzg " Dr/Cr Indicator
a~dmbtr " Amount(Local Curr)
a~wrbtr " Amount(Doc Curr)
a~dmbe2 " Amount(USD)
a~waers " Currency
a~zterm " Payment Terms
a~vbeln " Billing Doc
a~zfbdt " Baseline Date
a~zbd1t " No of days
a~hkont " GL account
b~name1 " Customer Name
b~land1 " Country
into table it_bsid
from bsid as a join kna1 as b
on akunnr = bkunnr
where a~bukrs = p_bukrs and
a~kunnr in s_kunnr and
a~hkont in s_hkont and
b~land1 in s_land1 and
a~budat le p_date.
sort it_bsid by kunnr gjahr belnr buzei budat.
endform. " GET_OPEN_DATA
*& Form GET_CLOSE_DATA
Get the Customer closed Items from BSID
form get_close_data.
select a~kunnr " Customer Number
a~gjahr " Fiscal Year
a~belnr " Acc.Document
a~buzei " Item
a~budat " Posting Date
a~shkzg " Dr/Cr Indicator
a~dmbtr " Amount(Local Curr)
a~wrbtr " Amount(Doc Curr)
a~dmbe2 " Amount(USD)
a~waers " Currency
a~zterm " Payment Terms
a~vbeln " Billing Doc
a~zfbdt " Baseline Date
a~zbd1t " No of days
a~hkont " GL account
b~name1 " Customer Name
b~land1 " Country
into table it_bsad
from bsad as a join kna1 as b
on akunnr = bkunnr
where a~bukrs = p_bukrs and
a~kunnr in s_kunnr and
a~hkont in s_hkont and
b~land1 in s_land1 and
a~augdt > p_date and
a~budat le p_date.
sort it_bsad by kunnr gjahr belnr buzei budat.
endform. " GET_CLOSE_DATA
*& Form PROCESS_DATA
Get the data from BSID,BSAD and KNA1 into one int.table
form process_data.
*Move the data from BSID to final output int table
loop at it_bsid.
move-corresponding it_bsid to it_report.
it_report-due_date = it_bsid-zfbdt + it_bsid-zbd1t.
append it_report.
clear it_report.
endloop.
*Move the data from BSAD to final output int table
loop at it_bsad.
move-corresponding it_bsad to it_report.
it_report-due_date = it_bsad-zfbdt + it_bsad-zbd1t.
append it_report.
clear it_report.
endloop.
sort it_report by kunnr belnr.
loop at it_report.
if it_report-shkzg = 'H'. " Credit
it_report-dmbtr = it_report-dmbtr * -1.
it_report-dmbe2 = it_report-dmbe2 * -1.
endif.
v_days = it_report-due_date - p_date.
For Company Code Currency
if p_rb1 = 'X'.
if v_days le 0.
it_report-due_amnt = it_report-dmbtr.
elseif v_days between 1 and 30.
it_report-d_amnt1 = it_report-dmbtr.
elseif v_days between 31 and 60.
it_report-d_amnt2 = it_report-dmbtr.
elseif v_days between 61 and 90.
it_report-d_amnt3 = it_report-dmbtr.
elseif v_days between 91 and 120.
it_report-d_amnt4 = it_report-dmbtr.
elseif v_days > 120.
it_report-d_amnt5 = it_report-dmbtr.
endif.
For Group Currency
else.
if v_days le 0.
it_report-due_amnt = it_report-dmbe2.
elseif v_days between 1 and 30.
it_report-d_amnt1 = it_report-dmbe2.
elseif v_days between 31 and 60.
it_report-d_amnt2 = it_report-dmbe2.
elseif v_days between 61 and 90.
it_report-d_amnt3 = it_report-dmbe2.
elseif v_days between 91 and 120.
it_report-d_amnt4 = it_report-dmbe2.
elseif v_days > 120.
it_report-d_amnt5 = it_report-dmbe2.
endif.
endif.
modify it_report index sy-tabix.
endloop.
endform. " PROCESS_DATA
*& Form WRITE_REPORT
Write the Detailed Report Output
form write_report.
clear: v_sum1,v_sum2,v_sum3,v_sum4,v_waers,
v_sum5,v_sum6,v_sum7,v_sum8.
loop at it_report.
at new kunnr.
read table it_report index sy-tabix.
write: / sy-vline, 2(10) it_report-kunnr,
12 sy-vline, 13(30) it_report-name1,
43 sy-vline, 44(3) it_report-land1,
47 sy-vline.
endat.
if p_rb1 = 'X'.
select single waers from t001
into v_waers where bukrs = p_bukrs.
write: 1 sy-vline, 12 sy-vline,
43 sy-vline,
47 sy-vline,
48(15) it_report-dmbtr currency it_report-waers,
63 sy-vline, 64(4) v_waers,
68 sy-vline.
else.
write: 1 sy-vline, 12 sy-vline,
43 sy-vline,
47 sy-vline,
48(15) it_report-dmbe2 currency it_report-waers,
63 sy-vline,64(4) c_doc_waers,
68 sy-vline.
endif.
write: 69(15) it_report-due_amnt currency it_report-waers,
84 sy-vline,
85(15) it_report-d_amnt1 currency it_report-waers,
100 sy-vline,
101(15) it_report-d_amnt2 currency it_report-waers,
116 sy-vline,
117(15) it_report-d_amnt3 currency it_report-waers,
132 sy-vline,
133(15) it_report-d_amnt4 currency it_report-waers,
148 sy-vline,
149(15) it_report-d_amnt5 currency it_report-waers,
164 sy-vline,165(10) it_report-due_date,
175 sy-vline,176(5) it_report-zterm,
181 sy-vline,182(10) it_report-vbeln,
192 sy-vline,193(10) it_report-belnr,
203 sy-vline.
if p_chk1 = 'X'.
write: 204(16) it_report-wrbtr currency it_report-waers,
220 sy-vline, 221(4) it_report-waers,
225 sy-vline.
endif.
new-line.
Totals for end of each Customer
at end of kunnr.
if p_chk1 = 'X'.
write at /1(225) sy-uline.
else.
write at /1(203) sy-uline.
endif.
sum.
format color 4.
if p_rb1 = 'X'.
write: /1 sy-vline, 2 'Total:'(015),
12 sy-vline,
13(10) it_report-kunnr,
43 sy-vline,47 sy-vline,
48(15) it_report-dmbtr currency it_report-waers,
63 sy-vline, 64(3) v_waers,
68 sy-vline,
69(15) it_report-due_amnt currency it_report-waers,
84 sy-vline,
85(15) it_report-d_amnt1 currency it_report-waers,
100 sy-vline,
101(15) it_report-d_amnt2 currency it_report-waers,
116 sy-vline,
117(15) it_report-d_amnt3 currency it_report-waers,
132 sy-vline,
133(15) it_report-d_amnt4 currency it_report-waers,
148 sy-vline,
149(15) it_report-d_amnt5 currency it_report-waers,
164 sy-vline, 175 sy-vline,
181 sy-vline, 192 sy-vline,
203 sy-vline.
if p_chk1 = 'X'.
write: 220 sy-vline, 225 sy-vline.
endif.
else.
write: /1 sy-vline, 2 'Total:'(015),
12 sy-vline,
13(10) it_report-kunnr,
43 sy-vline,
47 sy-vline,
48(15) it_report-dmbe2 currency it_report-waers,
63 sy-vline, 64(3) c_doc_waers,
68 sy-vline,
69(15) it_report-due_amnt currency it_report-waers,
84 sy-vline,
85(15) it_report-d_amnt1 currency it_report-waers,
100 sy-vline,
101(15) it_report-d_amnt2 currency it_report-waers,
116 sy-vline,
117(15) it_report-d_amnt3 currency it_report-waers,
132 sy-vline,
133(15) it_report-d_amnt4 currency it_report-waers,
148 sy-vline,
149(15) it_report-d_amnt5 currency it_report-waers,
164 sy-vline, 175 sy-vline,
181 sy-vline, 192 sy-vline,
203 sy-vline.
if p_chk1 = 'X'.
write: 220 sy-vline, 225 sy-vline.
endif.
endif.
format color off.
if p_chk1 = 'X'.
write at /1(225) sy-uline.
else.
write at /1(203) sy-uline.
endif.
endat.
v_sum1 = v_sum1 + it_report-dmbtr.
v_sum2 = v_sum2 + it_report-due_amnt.
v_sum3 = v_sum3 + it_report-d_amnt1.
v_sum4 = v_sum4 + it_report-d_amnt2.
v_sum5 = v_sum5 + it_report-d_amnt3.
v_sum6 = v_sum6 + it_report-d_amnt4.
v_sum7 = v_sum7 + it_report-d_amnt5.
v_sum8 = v_sum8 + it_report-dmbe2.
Hiding the Acc doc no for interactic screen.
hide it_report-belnr.
hide it_report-budat.
clear:it_report-belnr, it_report-budat.
endloop.
Grand Totals for all customers
format color 3.
write: /1 sy-vline, 2 'Gr.Total'(034),
12 sy-vline,13 'As At:'(035),p_date,
43 sy-vline,
47 sy-vline.
For Company Code Currency
if p_rb1 = 'X'.
write: 48(15) v_sum1 currency it_report-waers,
63 sy-vline, 64(4) v_waers,
68 sy-vline.
For Group Currency (USD)
else.
write: 48(15) v_sum8 currency it_report-waers,
63 sy-vline, 64(3) c_doc_waers,
68 sy-vline.
endif.
write: 69(15) v_sum2 currency it_report-waers,
84 sy-vline,
85(15) v_sum3 currency it_report-waers,
100 sy-vline,
101(15) v_sum4 currency it_report-waers,
116 sy-vline,
117(15) v_sum5 currency it_report-waers,
132 sy-vline,
133(15) v_sum6 currency it_report-waers,
148 sy-vline,
149(15) v_sum7 currency it_report-waers,
164 sy-vline, 175 sy-vline,
181 sy-vline, 192 sy-vline,
203 sy-vline.
if p_chk1 = 'X'.
write: 220 sy-vline, 225 sy-vline.
endif.
format color off.
if p_chk1 = 'X'.
write at /1(225) sy-uline.
else.
write at /1(203) sy-uline.
endif.
endform. " WRITE_REPORT
*& Form WRITE_REPORT1
Write the Summary Report Output
form write_report1.
clear: v_sum1,v_sum2,v_sum3,v_sum4,v_waers,
v_sum5,v_sum6,v_sum7,v_sum8.
loop at it_report.
at new kunnr.
read table it_report index sy-tabix.
write: / sy-vline, 2(10) it_report-kunnr,
12 sy-vline, 13(30) it_report-name1,
43 sy-vline, 44(3) it_report-land1,
47 sy-vline.
endat.
at end of kunnr.
sum.
if p_rb1 = 'X'.
select single waers from t001
into v_waers where bukrs = p_bukrs.
write: 1 sy-vline, 12 sy-vline,
43 sy-vline, 47 sy-vline,
48(15) it_report-dmbtr currency it_report-waers,
63 sy-vline, 64(4) v_waers,
68 sy-vline,
69(15) it_report-due_amnt currency it_report-waers,
84 sy-vline,
85(15) it_report-d_amnt1 currency it_report-waers,
100 sy-vline,
101(15) it_report-d_amnt2 currency it_report-waers,
116 sy-vline,
117(15) it_report-d_amnt3 currency it_report-waers,
132 sy-vline,
133(15) it_report-d_amnt4 currency it_report-waers,
148 sy-vline,
149(15) it_report-d_amnt5 currency it_report-waers,
164 sy-vline.
else.
write: 1 sy-vline, 12 sy-vline,
43 sy-vline, 47 sy-vline,
48(15) it_report-dmbe2 currency it_report-waers,
63 sy-vline, 64(4) c_doc_waers,
68 sy-vline,
69(15) it_report-due_amnt currency it_report-waers,
84 sy-vline,
85(15) it_report-d_amnt1 currency it_report-waers,
100 sy-vline,
101(15) it_report-d_amnt2 currency it_report-waers,
116 sy-vline,
117(15) it_report-d_amnt3 currency it_report-waers,
132 sy-vline,
133(15) it_report-d_amnt4 currency it_report-waers,
148 sy-vline,
149(15) it_report-d_amnt5 currency it_report-waers,
164 sy-vline.
endif.
write at /1(164) sy-uline.
endat.
Totals
v_sum1 = v_sum1 + it_report-dmbtr.
v_sum2 = v_sum2 + it_report-due_amnt.
v_sum3 = v_sum3 + it_report-d_amnt1.
v_sum4 = v_sum4 + it_report-d_amnt2.
v_sum5 = v_sum5 + it_report-d_amnt3.
v_sum6 = v_sum6 + it_report-d_amnt4.
v_sum7 = v_sum7 + it_report-d_amnt5.
v_sum8 = v_sum8 + it_report-dmbe2.
Hiding the Acc doc no for interactic screen.
hide it_report-belnr.
hide it_report-budat.
clear: it_report-belnr,
it_report-budat.
endloop.
Calculation of Grand Totals
format color 3.
write: /1 sy-vline, 2 'Gr.Total'(034),
12 sy-vline,13 'As At:'(035),p_date,
43 sy-vline,
47 sy-vline.
For Company Code Currency
if p_rb1 = 'X'.
write: 48(15) v_sum1 currency it_report-waers,
63 sy-vline, 64(4) v_waers,
68 sy-vline.
For Group Currency (USD)
else.
write: 48(15) v_sum8 currency it_report-waers,
63 sy-vline, 64(3) c_doc_waers,
68 sy-vline.
endif.
write: 69(15) v_sum2 currency it_report-waers,
84 sy-vline,
85(15) v_sum3 currency it_report-waers,
100 sy-vline,
101(15) v_sum4 currency it_report-waers,
116 sy-vline,
117(15) v_sum5 currency it_report-waers,
132 sy-vline,
133(15) v_sum6 currency it_report-waers,
148 sy-vline,
149(15) v_sum7 currency it_report-waers,
164 sy-vline.
format color off.
write at /1(164) sy-uline.
endform. " WRITE_REPORT1
*& Form LINE_SEL
When double clicked on BELNR leave to transaction FB03
form line_sel.
data: lv_field(20),
lv_value(10),
lv_date(10),
lv_gjahr like bsad-gjahr.
get cursor field lv_field value lv_value.
if lv_field = 'IT_REPORT-BELNR'.
if not lv_value is initial.
read current line field value it_report-budat into lv_date.
lv_gjahr = lv_date+6(4).
set parameter id 'BUK' field p_bukrs.
set parameter id 'GJR' field lv_gjahr.
set parameter id 'BLN' field lv_value.
call transaction 'FB03' and skip first screen.
endif.
endif.
endform. " LINE_SEL
reward points if useful
regards,
Anji -
QM Sample archive process and Flexible Reports
Hi
I'm looking for help in QM, regarding.
1) QM Flexible Reports with t-codes please.
2) Sample archive process with t-codes please.
Thank you.Few QM reoprts:
QA33,QGA1,QGA2,QGP1,QS58,QDH2,QM11,QI06.
Archiving tcode:SARA.
Hope this will help. -
QM Flexible Reports and Sample Archive
Hi
I'm looking for help in QM, regarding.
1) QM Flexible Reports with t-codes please.
2) Sample archive process with t-codes please.
Thank you.Few QM reoprts:
QA33,QGA1,QGA2,QGP1,QS58,QDH2,QM11,QI06.
Archiving tcode:SARA.
Hope this will help. -
My ipad was stolen today in China today. Any suggestions about police report?
They haven been connected to a wireless network. Ialready sent the wipe order. Any suggestions about police report with serial ?
It's doubtful you'll get it back.
Report to police along with serial number. Change all your passwords.
These links may be helpful.
How to Track and Report Stolen iPad
http://www.ipadastic.com/tutorials/how-to-track-and-report-stolen-ipad
Reporting a lost or stolen Apple product
http://support.apple.com/kb/ht2526
Report Stolen iPad Tips and iPad Theft Prevention
http://www.stolen-property.com/report-stolen-ipad.php
How to recover a lost or stolen iPad
http://ipadhelp.com/ipad-help/how-to-recover-a-lost-or-stolen-ipad/
How to Find a Stolen iPad
http://www.ehow.com/how_7586429_stolen-ipad.html
Apple Product Lost or Stolen
http://sites.google.com/site/appleclubfhs/support/advice-and-articles/lost-or-st olen
Oops! iForgot My New iPad On the Plane; Now What?
http://online.wsj.com/article/SB10001424052702303459004577362194012634000.html
If you don't know your lost/stolen iPad's serial number, use the instructions below. The S/N is also on the iPad's box.
How to Find Your iPad Serial Number
http://www.ipadastic.com/tutorials/how-to-find-your-ipad-serial-number
iOS: How to find the serial number, IMEI, MEID, CDN, and ICCID number
http://support.apple.com/kb/HT4061
Cheers, Tom -
Hi, evrybody!
Can you share me document about xl reporter if you have
I need document about get other data, macro,..
My email:[email protected]
Thank you vey much!Hi Tien,
Check in the SAP B1 Customer Portal under "Documentation." Choose your release version and look under "SAP Addons." There are several pdf files about XL Reporter, including one about applying macros. Hope that helps! -
I have question about oracle reports. I have 10 reports user has to run everyday. Is there any way user can run all these reports by pressing single button.
Thanks
VKHi,
In any of the report, in the 'Before report Trigger' add the following code to execute any number of reports.
srw.run_report('report=test1.rdf destype=file desformat=pdf desname=test1.pdf');
srw.run_report('report=test2.rdf destype=file desformat=pdf desname=test2.pdf');.....
Like this, you can add any number srw.run_report (this built-in package will run the report with the given parameters), so that you can able to run any number of reports by running a single report.
Thanks,
Vidya Viswanathan,
Reports Development Team. -
I have had Firefox for years and in the last 2 weeks, I am getting all of these stupid Pop ups about credit reports and some Epic Play thing. How can I make sure I do not get them and why all of a sudden?
Identify and remove adware/malware
http://www.thesafemac.com/arg/ -
hello guys...im john from the phillippines and im just new to sap business one...ryt now my boss tasked me to research about crystal reports and he is making a demand of report for customer recievables ageing.......i find it hard to look at on the part which corresponds to value dates of customer like their lapses in payments for the previous months....anyone who could help me?thanks
hello guys...im john from the phillippines and im just new to sap business one...ryt now my boss tasked me to research about crystal reports and he is making a demand of report for customer recievables ageing.......i find it hard to look at on the part which corresponds to value dates of customer like their lapses in payments for the previous months....anyone who could help me?thanks
-
How do I make a flexible report model
we are migrating all our reports from cognos to ssrs. most of our cognos reports are using catalog which is equivalent with a report model. in cognos, we don't define any relationship between the tables on the catalog files to make it flexible tochanges
on the underlying database tables. all the relationships are defined in the cognos reports. i find that you can't do this in ssrs. ssrsstrictly enforce you to define the relationship in the model. how do i make a report model to be flexible?Hi Blusil,
I don’t know much about Cognos, but for Report Model in Reporting Services I have something to say. A report model is a user-friendly description of an underlying database, with pre-established data relationships and auto-generated queries. Report models
can be used as data sources for reports created in Report Designer and Report Builder 3.0.
We can set up connection information, define a view of the data source, define a report model, and publish the model to a report server. Then we can use the report model to build reports using Report Builder. For more details about Creating a Report Model,
please see the following tutorial:
http://technet.microsoft.com/en-us/library/ms167048(v=sql.105).aspx
Hope this helps.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Problem about getting report!
Hi,all:
I am trying to get Report which is the query result from the previous canvas, but I don't know how to do it. For example, I put a button called "get transcript" on one canvas, and I set this button's trigger to next block. However, I have no idea about how to attach the previous result to this block. Please help me to solve this problem. Thank you!
nullYou could try doing it from your purchase history : log into your account on your computer's iTunes via Store > View My Account and you should then see a Purchase History section with a 'see all' link to the right of it ; click on that and you should see a list of your purchases ; find that app and use the 'Report a Problem' link.
If that doesn't work then try contacting iTunes support : http://www.apple.com/support/itunes/contact/ - click on Express Lane, then iTunes > iTunes Store -
Quick question about bug reports
Hi all,
I was just reading the reporting bug guidelines (https://wiki.archlinux.org/index.php/Re … Guidelines) and was wondering about the section "Upstream or Arch?".
I'm not an expert on the particular package I want to file a bug against, so I have no idea whether the problem is upstream or Arch. Should I just go ahead anyway? I cannot find a similar bug on any upstream bug trackers.eggplantbren wrote:
Hi all,
I was just reading the reporting bug guidelines (https://wiki.archlinux.org/index.php/Re … Guidelines) and was wondering about the section "Upstream or Arch?".
I'm not an expert on the particular package I want to file a bug against, so I have no idea whether the problem is upstream or Arch. Should I just go ahead anyway? I cannot find a similar bug on any upstream bug trackers.
If you're not sure, try a quick post on the forums.
In general, once you've used your google-fu you should know whether the problem is distro-specific. Its normally highly unlikely that you'd be the first in the world to run into a real bug (if no-one else has reported anything, its likely user error, especially if you're not using [testing]). -
About displaying report in web ?
Will everything be displayed in web using oracle 10g ?
Do I need to install any software on the client machine if I want to generate paper report ?
The report format displayed in web and paper layout are different, can I adjust the web layout to display the same as paper layout ?
Thanks.Since Oracle Application Server 9i Rel2 (9.0.2) everything is web only. For a user to get his Reports he only needs a browser, and Acrobat Reader if he wants PDF Reports.
Paper Layout = html, htmlcss, PDF, file, printer etc
Web Layout is programmed in jsp and is most bound to html
For more information about Reports:
http://www.oracle.com/technology/products/reports/
Regards,
Martin -
About a report's performance.
Hi , i use Report Builder 9.0.4.0.33 , i have here a sample query that i put in about 6 or 7 Formulas to return different values based on different parameters , when the client runs this reports through the browser it takes forever to show .... is there any way to increase the performance of this report ?
select sum(nvl(invoice_commission,0))
into v_comm
from invoice
where trunc(invoice_date) between :date1 and :date2
and currency_code = '$' -- sometimes 'euro' and so no
and ISSUE_PLACE <> = 'xx'
and investor_code = :investor_code;
return(v_comm*5.5137);One performance consideration I'd do is try to avoid multiple similar queries or even repeats of the same query.
Is
from invoice
where trunc(invoice_date) between :date1 and :date2
and currency_code = '$' -- sometimes 'euro' and so no
and ISSUE_PLACE = 'xx'
and investor_code = :investor_code;
return(v_comm*5.5137);
in main query? Can those Formulas be included/replaced into the main query? Are appropriate Indexes created for the joins?
Maybe you are looking for
-
I cannot open Firefox anymore on my MacBook Pro. When I try to open Firefox, the start page appears during 7 seconds and then Firefox closes and opens a crash report. During these 7 seconds I can't use any button in Firefox. I deleted everything From
-
Can't relink more than 1 file at a time
I'm trying to relink media I have on an external firewire drive, but when I click Relink, FCP only relinks the first file in my list. The files are all there, in the same location, and have not had any name or reel changes - each one relinks fine ind
-
How do i save a graph for a specific length of time
Dear All, I am using a magnetic field sensor on a mine detector. Lets say the minedetector sweeps the sector for 10 secs. i want your help on the following 1) how do i save the waveform chart for the whole ten sec. All i know is that i came across an
-
How is the new timestretch you lucky people, im still waiting for my upgrade.
-
Handling large projects in FCPX
I am working on a documentary which in the end will take about 60 minutes of HD quality. The project is now about 25 min. Working with it becomes progressively slower since the files becomes to big. So the background jobs take too much time. I am con