Percentage in Totals / Grand Totals
I have 2 columns on a report (in reports builder) that have numbers - total touched & total count. I am calculating the percentage done with the following formula: ROUND(((PP_TOUCHED / PP_TOTAL) * 100),2). This works fine for the detail lines, but I can't get the correct percentage in the grand totals.
Also, when I use the above formula and one of the numbers is zero, I get an error.
Kris
I have 2 columns on a report (in reports builder)
that have numbers - total touched & total count. I
am calculating the percentage done with the following
formula: ROUND(((PP_TOUCHED / PP_TOTAL) * 100),2).
This works fine for the detail lines, but I can't
get the correct percentage in the grand totals.How are you calculating the percentage for grand total? Create a formula column at report level and use summary columns in the formula to calculate percentage.
Also, when I use the above formula and one of the
numbers is zero, I get an error.
It may help:
ROUND(decode(nvl(PP_TOTAL,0),0,((PP_TOUCHED / PP_TOTAL) * 100)),2)
Similar Messages
-
Percentage calculation at Grand Total Level
Hello,
I have issue in calculating the percentage at grand total level. I have three measures (A count, B count and Total count). These measures are defined in rpd with aggregation rule as sum. In answers i am calculating A % as 100*A count/Total Count. I have defined the aggregation rule for this percentage column as default. I am able to get correct % results for sub total level but getting wrong percentage values when Grand Total level is added. Going through some posts in this forum, people have suggested to enable this tag in instance config file.
<ReportAggregateEnabled>true</ReportAggregateEnabled>
After adding this tag, i am able to get correct results. The issue is when there is no data i am able to see table view with all columns having blank values even though i have defined the no result view.
Please HelpHI,
For your CKF set exception aggregation as summation based on the last most characteristic in the row in the reference(as per the example it is product)
Regds,
Shashank -
Percentage of Total Count of Category in Raw Data Column in Pivot Table
I have normalized my data in Excel and I have a column: "question 1" and then a column for "gender" which has values as "female" and "male". I have created a pivot table for these two variables, "Gender" and
"Question 1". My values for Females and Males from the Gender data are presented within my pivot table. I want to present these numbers as percentages of Total "Females" and "Males" that are in the "Gender" column in
my master dataset. Pivot tables will only allow me to do %'s of data already in the pivot table
I am attempting to use Calculated Fields within Pivot Tables to resolve this. I do not want to create a separate column in my master data set, but rather, complete all calculations within the pivot tableThank you very much,
The steps you provided use the total "gender" within the pivot table as the "grand total".
If I have a binomial variable, "gender" with "male" as one of the variables, I need the grand total be the total male in the raw data.
Example: if there are 100 total males in the raw data for the column "gender"
and I construct a pivot table with a dependent variable which is a survey question and "gender" and 30 males "agreed" with the survey question and 20 females "agreed" with the survey question, your instructions for % of grand total would show 60% for
males who agree [males + females who replied to the survey question],
when, what I need is the total males in the raw data, 100, used as the total so that the percentage of males who answered "agreed" to the survey question is 30% of all males.
Thank you very much -
Portfolio Report with percentages to Total Portfolio
Hi,
Can anyone please tell me is there a standard report which I can get product wise porthfolio with its percentages to total portfolio.
Thanks in advance
Regards
KumariHi,
I think that this is a perfect case of relative limit. You may ignore the limit part, if you are not interested in that. This is available from EhP3.
Keep product type as one of your characteristics.
In the customizing KLREL_LIMIT_***, you may assign a limit to every node representing each product relative to the whole portfolio.
After you Result Database run, you may execute transaction KLREL_LIMIT to see the comparison.
Regards,
Jitesh -
SSRS - % percentage ROW TOTALS don't calculate correctly in a Table Matrix
SSRS - Report Builder 3.0
I have created a report with a MATRIX table with a TOTAL ROW and a TOTAL COLUMN and the total column is calculating correctly but the ROW totals is not calculating correctly
The screen shot below is of the Matrix table in the Report Builder 3.0 "Designer view"
When I run the report the column totals the percentage is averaged correctly, but the ROW TOTALS do not, some are close but i need them to be accurate.
If you take the same data into excel the total percentage calculates correctly - if you compare the excel with the SSRS some rows do calculate close, but not accurate. the total column calculates correctly
FY13-Q4
FY14-Q1
FY14-Q2
FY14-Q3
Total
100%
89%
65%
68%
80%
50%
72%
43%
45%
52%
100%
91%
63%
69%
81%
10%
17%
29%
31%
22%
100%
96%
67%
76%
85%
70%
70%
53%
64%
64%
90%
93%
90%
82%
89%
74%
75%
59%
62%
68%
I Need the totals rows and columns to average the percentage correctly in the SSRS report.
Please help...
-IsaackHi Katherine Xiong,
The formula (SSRS Expression) i am using is the following
=Sum(IIf(Fields!AnswerText.Value = "Yes", 1, 0)) / (Sum(IIf(Fields!AnswerText.Value = "No", 1, 0)) + Sum(IIf(Fields!AnswerText.Value = "Yes", 1, 0)) + Sum(IIf(Fields!AnswerText.Value
= "n/a", 0, 0)))
Basically if field value = "YES" it counts, if the answer = "No" if the value is = "n/a" it should not count in the total score percentage
I get the correct PERCENTAGE on the 1st aggregate, but when the table has multiple aggregates the percentage is never accurate.
The Table below is using the above formula, the 1st aggregate is correct but if you get the average percentage from the 1st column it should be 86.2% is the accurate number, sometimes close but i want to report accurate numbers and not doubt SSRS reports
compared to excel reports.
TOTAL ROW (highlighted on the screenshot in Yellow) is incorrect aggregate averages %, the correct average are the following
[86.2%] [71.5%] [75.5%] [87.87%] [90.2%] [69.9%] [92.8%]
-Isaack -
Hi...
I would like to check if it is possible to add % calculation within a total rather than have to have a column with the percentage calculation.
Let me give an example of what I am trying to do:
NAME TOTAL AREA1 AREA2 AREA3
A 100 100
B 1000 1000
C 200 100 100
1300 100 1100 100
7.5% 85% 7.5%
I want to avoid having to have a seperate column with the % calculation like
NAME TOTAL AREA1 %AREA1 AREA2 AREA3
A 100 100 100
B 1000 1000
C 200 100 100
1300 100 7.5% 1100 100
I am using Disco 4.1
I'd be grateful for any advice.
ThanksHI
No ,u can not have % the way u want in 4.1 as well as 10.1.2
Lets hope for next release.
NP -
How to create a running percentage of total
New to Report Builder 3.0
I Have a column of values with the total at the bottom. I want to add a column with the percentage of the total alongside as below. How do I achieve this)
value
weight
19,564
54%
12,394
34%
1,336
4%
1,114
3%
1,887
5%
36,294
100%Hi cmcmac,
According to your description, you want to add a column to show the percentage value of the total values in the right of the value column. In this scenario, we can use division to get the result, and format the result to percentage format.
To achieve your requirement, we can refer to the following steps:
Right-click the value column to insert a column right of it.
Right-click the second cell to open the Text Box Properties dialog box in the new column.
Modify the expression of Value to like this:
=Fields!value.Value/Sum(Fields!value.Value,"DataSet_name")
Click the Number in the left pane, select Percentage format under Category, then type “0” as Decimal places.
Repeat from setp2 to step4 in the third cell in the new column, but modify the expression of Value as below:
=Sum(Fields!value.Value,"DataSet_name")/Sum(Fields!value.Value,"DataSet_name")
The following screenshot is for your reference:
If you have any more questions, please feel free to ask.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Tax as percentage of totaL order value
Hi,
In pricing i have a scenarios where the tax is calculated on the total sales order value.
If order has 2 items
10 mat1 net value 5000
20 mat2 net value 40000
The tax should be 1 per of 90000 ie RS 900
The client does not want it enter it manually and want to use condition records.
Best regards
JatinderHi
As per my knowledge tax is always calculated on the nett value of the sales order which is in line with your requirement
Make sure that in your pricing procedure that you are not giving from and to for that tax condition tye
Suppose in your PP you have a PR00 at step 10 ( first condition type)
Say a customer discount K007 at step 20
Say a material discount K020 at step 30
Material price is Rs100 and customer discount is 5 % thae it is 95 rupees and than a material discount another 5 % then the nett price becomes Rs 90
Now you want tax MWST to be 1 % on this Rs 90 that is 90 paise or .9 rs then in your PP mwst should be in step 40 without from and to and with its requirements and other things
You have to maintain condition record for MWST as 1 % for your domestic key combination
Regards
Raja -
Hi everyone,
I'm using ssh to connect to my ESXi server console. Using esxtop, I get the following result:
You can see below the CORE UTIL line, the CCPU line is not present here.
Is it missing? If not, how can I see percentages of CPU time (the "us", "sy", etc.)?
The ESXi version is VMware ESXi 5.5.0 build-2068190.
esxtop version is 5.5
Thanks in advance.8 CPUs, load average 4, runqueue 0 and usage 30-35%
Does this indicate any issue with system resourcesNO. Not at all.
However a poor schema design or inefficient SQL execution can mean that a query that should do 100 'consistent gets' is doing 10,000 'consistent gets' -- in the buffer cache, consuming CPU and not waiting for I/O. This is a scenario where you have idle CPU but CPU usage is inefficient. (Thus, for example, adding more CPUs will not help your users at all).
So you should look at the queries and see if queries can be improved.
If, on the other hand, users are not complaining of performance and all response times are within expectations, than you have no issue at all.
Hemant K Chitale -
% of calculation in GRAND TOTAL in PIVOT TABLE
Hi Gurus,
I have a requirement to calculate the percentage based on the grand total in pivot table,but in row wise i am getting the percentage while in grand total level i am not getting correct values.I have tried with all the options like:average,Sum,Default,Max,Min,count etc and also with the percent of row,column,parent column etc.
Please give me a solution for this ASAP.
view of my table is
Previous Value||Present Value||change between Pres & Prev||% of change(((pres - prev)/pres)*100)
10||20||10||50%
00||01||01||100%
10||05||-05||-50%
here i should get values in grand total like
20||26||06||23%
but i am getting values when giving sum for %of calc in measures values
20||26||06||100%
if i give avg for %of calc in measures values then i am geting
20||26||06||33%
how to solve this prob.Can any one give sol plzzzzzzzz
Thanks,
NaveenHi,
Refer : http://www.skurabigroup.com/blog/?p=579
Regards,
Srikanth -
Attempting to Display Total/Percentage in Answers when grouped by Attribute
Hi all,
I'm relatively new to BI and attempting the following setup. (I'm simplifying the model somewhat of course).
I have a Fact called Job which has an attribute called Type ( along with others such as Create Date , Delivered Date , Length , Score etc ).
What I need to display , is the following columns together in Answers.
Type | Count of Type | Percentage of Total Number of Jobs.
Count of Type is just the number of times the Type shows up for a specific type value.
I can easily do a "Count of Type" as a Logical Column in the Business Model and Mapping for the Fact Table using a Default Aggregation Rule of Count.
Percentage of Total Number of Jobs is supposed to be the Percentage that the specific Type Count is of the total number of jobs . i.e. Count of Type / Total number of all Jobs as %age.
This is where I have my issue. I can create a logical column called Total Number of Jobs using default aggregation rule of count on Job ID and create a Percentage using Calculation Wizard just fine.
But when I try to have this column in Answers against the first two columns I don't get the right result - I get 100% for every row in the third column - because of course it is grouping the results by Type so it is calculating the "Total Number of Jobs" and consequently the Percentage measure for each individual Type. Thus I get something like
Type | Count of Type | Percentage of Total Number of Jobs
1 | 5 | 100%
2 | 5 | 100%
When I really want to get
Type | Count of Type | Percentage of Total Number of Jobs
1 | 5 | 50%
2 | 5 | 50%
Is there any way I can "store" the total number of jobs in the Business Model and Mapping Layer as a logical column in the Job Fact so that it does not display the count aggregate for the grouping (Type) but instead just the total count ?
I'll be glad to clarify if this sounds too fuzzy.
Thanks in advance.
AB.Hi ,
Thanks for the reply , that is successful at getting past the issue of having 100% as the result in every row which would happen if we used a measure built in the Business Model and Mapping layer.
I'm running into some other minor issues but I think they are data row count related .. I will update this if they are not.
Additional clarification if it helps anyone else with similar issues.
Basically Type is an attribute of the Job Detail Fact ( 0 to many rows per job ) . There is also a Job Fact that is at a higher level of granularity ( one row per job ).
What I am trying to do is display the Percentage or even the Total Number of Jobs ( row count of Job Fact ) in each row along with the Type and Count of Type of Job Detail.
This is of course made complex because not all Jobs have a Job Detail row and some have many.
In my Job Detail logical table source , I have the Logical Table Job Detail mapped to both the Job and Job detail physical tables . ( I have tried connecting both via Inner and Left Outer joins) .
So ideally I would see something like
Type of Job Detail | Count of Type of Job Detail | Total Number of Jobs | Percentage of Total Number of Jobs
1 | 5 | 50 | 10%
2 | 5 | 50 | 10%
Where the percentage and total are of Jobs and the total is less than 100% . -
Hi,
In my ALV report,I have 4 fields
matnr
maktx
menge1
menge2
In the end of report (column of menge1), i want only total
end of menge2 i want the value in percentage as = (Total of menge2 / total of menge1) * 100
I am using Fm : Reuse_alv_grid_display.
Can anybody suggest me how to do.
Thanks
KumarUse the following code in a PBO module (after set for first display) or in an adequate event handler.
data: total type ref to data,
subtotal1 type ref to data.
field-symbols: <total> like gt_sflight,
<subtotal1> like gt_sflight.
call method grid1->get_subtotals
importing
ep_collect00 = total
ep_collect01 = subtotal1.
assign total->* to <total>.
assign subtotal1->* to <subtotal1>.
Then update the <total> internal tables.
Look at [ALV Grid Control (BC-SRV-ALE)|http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf]
NB: If you add a last row to the report, don't forget to disable sort options in the ALV menu.
Regards -
Hello, everyone
I have the following simple business question at hand: Show top ten merchants with the highest sales numbers in the region and their percentages of total sales in the region.
It looks simple, but I'm not sure if it's possible to implement in OBIEE short of writing direct query.
I would really appreciate some ideas because I am out of those at the moment.
I am using OBIEE 10 over Oracle 10g.
Thank you,
RitaPerfect! Thank you, David, this is exactly what I was looking for - how to calculate higher-level aggregates in a request. Is there any documentation on the OBIEE logical SQL, or these forums are the only source of information?
-
Query for calculation in ALV Total
HI All,
I am using Sub_tot = "X" & do_sum="X" to get the subtotals & Totals for different columns Using REUSE_ALV_LIST_DISPLAY.
I am calculating percentage in column "C" depending on result of Column "A" & Column "B", which is also achieved.
My requirement is, Percentage in Total column to be calculated with use of TOTAL OF COLUMN "A" & TOTAL OF COLUMN "B". Because simply totaling all the values of percentage column will not work.
Any Pointers will be helpful.
Thanks In advance.
Regards,
Siddhesh Sanghvi.hi ,
this is another example for displaying the subtotals in many times ...
report zvg_alv_slist2 .
type-pools: slis.
G L O B A L I N T E R N A L T A B L E S
data: gt_fieldcat type slis_t_fieldcat_alv,
gs_layout type slis_layout_alv,
gt_events type slis_t_event.
data: it_sort type slis_t_sortinfo_alv ,
wa_sort type slis_sortinfo_alv .
data: gs_print type slis_print_alv.
data: begin of it_sflight occurs 0,
carrid like sflight-carrid,
connid like sflight-connid,
fldate like sflight-fldate,
price like sflight-price,
planetype like sflight-planetype,
seatsmax like sflight-seatsmax,
seatsocc like sflight-seatsocc,
paymentsum like sflight-paymentsum,
end of it_sflight.
*DATA: GI_SFLIGHT LIKE STANDARD TABLE OF ST_SFLIGHT.
data: g_repid like sy-repid.
data: gt_list_top_of_page type slis_t_listheader.
data: v_total(5).
start-of-selection.
g_repid = sy-repid.
perform init_fieldcat using gt_fieldcat[].
perform build_eventtab using gt_events[].
perform build_comment using gt_list_top_of_page[].
perform get_data.
perform set_layout using gs_layout.
SORTING
clear wa_sort.
wa_sort-fieldname = 'CARRID'.
wa_sort-up = 'X'.
wa_sort-group = '*'.
wa_sort-subtot = 'X'.
append wa_sort to it_sort.
clear wa_sort.
wa_sort-fieldname = 'CONNID'.
wa_sort-up = 'X'.
wa_sort-group = 'UL'.
wa_sort-subtot = 'X'.
append wa_sort to it_sort.
DISPLAY LIST
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_interface_check = ' '
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_sort = it_sort[]
it_events = gt_events
is_print = gs_print
tables
t_outtab = it_sflight
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.
*& Form INIT_FIELDCAT
form init_fieldcat using p_gt_fieldcat type slis_t_fieldcat_alv.
data: ls_fieldcat type slis_fieldcat_alv,
l_index type sy-tabix.
data :rep like sy-repid.
rep = sy-repid.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = rep
i_internal_tabname = 'IT_SFLIGHT'
i_inclname = rep
changing
ct_fieldcat = gt_fieldcat
exceptions
inconsistent_interface = 1
program_error = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type 'S' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-subrc.
endif.
sort gt_fieldcat by col_pos.
loop at gt_fieldcat into ls_fieldcat.
l_index = sy-tabix.
if ls_fieldcat-fieldname = 'PRICE'.
ls_fieldcat-do_sum = 'X'.
ls_fieldcat-sp_group = 'X'.
modify gt_fieldcat from ls_fieldcat index l_index .
endif.
endloop.
endform. " INIT_FIELDCAT
*& Form BUILD_EVENTTAB
form build_eventtab using p_gt_events type slis_t_event.
data: ls_event type slis_alv_event.
clear ls_event.
ls_event-name = slis_ev_top_of_page.
ls_event-form = 'XTOP_OF_PAGE'.
append ls_event to p_gt_events.
clear ls_event.
ls_event-name = slis_ev_top_of_list.
ls_event-form = 'XTOP_OF_LIST'.
append ls_event to p_gt_events.
clear ls_event.
clear ls_event.
ls_event-name = slis_ev_end_of_page.
ls_event-form = 'XEND_OF_PAGE'.
append ls_event to p_gt_events.
ls_event-name = slis_ev_end_of_list.
ls_event-form = 'XEND_OF_LIST'.
append ls_event to p_gt_events.
clear ls_event.
endform. " BUILD_EVENTTAB
*& Form BUILD_COMMENT
form build_comment using p_gt_list_top_of_page type slis_t_listheader.
data: ls_line type slis_listheader.
ls_line-typ = 'H'." = Header, S = Selection, A = Action
ls_line-key = 'KEY'.
ls_line-info = 'INFO'.
append ls_line to p_gt_list_top_of_page.
endform. " BUILD_COMMENT
*& Form SELECTION
form get_data..
data: l_rows type i value 3.
Read data from table SFLIGHT
select carrid
connid
fldate
price
planetype
seatsmax
seatsocc
paymentsum
from sflight
into table it_sflight.
up to l_rows rows.
sort it_sflight.
endform. " SELECTION
*& Form SET_LAYOUT
form set_layout using p_gs_layout type slis_layout_alv.
* P_GS_LAYOUT-F2CODE = P_F2CODE.
p_gs_layout-zebra = 'X'.
p_gs_layout-colwidth_optimize = 'X'.
p_gs_layout-no_input = 'X'.
p_gs_layout-no_colhead = space.
p_gs_layout-totals_text = 'Total Price'.
p_gs_layout-subtotals_text = 'Sub Total'.
p_gs_layout-totals_only = 'X'.
p_gs_layout-key_hotspot = 'X'.
p_gs_layout-detail_popup = 'X'.
p_gs_layout-no_subtotals = space.
p_gs_layout-expand_all = 'X'.
p_gs_layout-group_buttons = 'X'."space.
endform. " SET_LAYOUT
FORM XTOP_OF_PAGE *
form xtop_of_page.
data : lv_page(5),
lv_text(20).
MOVE SY-PAGNO TO LV_PAGE.
write:/ 'X_TOP_OF_PAGE'.
endform. "xtop_of_page
FORM XTOP_OF_LIST *
form xtop_of_list.
write:/ 'X_TOP_OF_LIST'.
endform. "xtop_of_list
FORM XEND_OF_PAGE *
form xend_of_page.
write:/ 'X_END_OF_PAGE'.
endform. "xend_of_page
FORM XEND_OF_LIST *
form xend_of_list.
write:/ 'X_END_OF_LIST'.
data : lv_page(5),
lv_text(20).
data : l_lines type i,
l_line type i.
clear v_total.
write sy-pagno to v_total left-justified.
export v_total to memory id 'V_TOTAL'.
do sy-pagno times.
lv_page = sy-index.
concatenate 'Page' lv_page 'of' v_total
into lv_text separated by space.
if sy-index = 1.
read line 2 of page sy-index.
else.
read line 1 of page sy-index.
endif.
sy-lisel+60(20) = lv_text.
modify current line .
enddo.
endform. "xend_of_list
USER_COMMAND *
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
case r_ucomm.
when 'EXIT'.
leave to screen 0.
when '&IC1'.
data: text(256),text1(6),text2(5).
move rs_selfield-tabindex to text1.
move rs_selfield-sumindex to text2.
concatenate 'Double clicked on (field:'
rs_selfield-fieldname
'Value:'
rs_selfield-value
text1
text2
into text
separated by space.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
textline1 = text.
endcase.
endform. "user_command
regards,
venkat. -
Hi
Im trying to display the cost parts share in percent of the total cost. in normal cases i would use the Scope argument to divide the cost parts against total cost but this time i have no sumaraized level for total cost to use as Scope
parameter. Is it possible to open a new column where i divide the sum of landinvestment 1 768 with Total Project cost 16237 in some way and how the code for doing that?
Br Arne
Arne OlssonHi Arne,
According to your description, you want to calculate the cost percentage of total cost without having a total row in your tablix. Right?
In Reporting Service, we can specify scope (dataset/group) when using aggregation functions. In this Scenario, if we don’t have any scope to group that three items, it’s impossible to get the total cost of them. At least we should have a parent group/dataset
for that three items, so we can use the group/dataset name as scope in aggregation function. We tested this case in our local environment. Here are screenshots:
Reference:
Aggregate Function (Report Builder and SSRS)
If you have any question, please feel free to ask.
Best Regards,
Simon Hou
Maybe you are looking for
-
Deploying a JDeveloper 10.1.3 app to 10.1.2 Server
I am deploying a 10.1.3 JDev app to a 10.1.2 Oracle Application Server on Unix. I have changed the J2EE version to 1.3 and the JDK version to 1.4, setup my data source on the server and unchecked bundle data sources, setup a connection to the server,
-
ACR v 6.7.0.339 rebuilds previews for one folder repeatedly
I started having this situation after the 6.7 update to ACR, in the folder I was working on at the time of the update. The symptom is that after all the previews are built, any action (ex. display a preview) causes Thumbnails, Previews, and 100% prev
-
Why am I getting "Not Authorized" then when I sign in I get "This computer is already authorized"
Hello, I migrated from Snow Leopard to Mountain Lion on my new iMac. Why when I down load using iTunes 11.0.2 I get the following loop of windows: I click Authorize I enter my Apple ID and Password I click OK Then then after a co
-
PL/SQL with DBMS_HS_PASSTHROUGH Package
Hi, Can someone provide me a sample code on using DBMS_HS_PASSTHROUGH package? I have Oracle 10g installed on Windows XP Home and needs to extract some data from HP-UX(running Informix 8.32). Any help is highly appreciated. Thanks
-
How can I send a iBook as a gift
Help I need to gift an iBook and have no clue how to do so!