Proc Report will not put vol and bud on separate lines, given the way that your data is currently structured.
One solution would be to "break apart" your observation so that report would give you one row for vol and another row for bud, within some other grouping variable.
A totally different solution would be to move to a custom Table Template, where you can stack multiple values in one cell. However, in that instance, your data would need to be restructured for the table template, because table templates, by themselves, will not automatically "flip" your data, as PROC REPORT does with the ACROSS usage.
There is a 3rd possibility, depending on what your destination of choice is. That would be to make a "big" character string to hold both vol and bud -- formatted the way you want -- and then you would insert a "line feed" character in between the 2 formatted values using ODS ESCAPECHAR.
I didn't look very closely at your data, but if you are -not- needing to compute any columns or customize the break line, you may want to try PROC TABULATE, which sometimes does better on slicing and dicing your data if all you need is a table. If there's nothing out of the ordinary about the kind of table you want, you might want to try the TABULATE road first.
Given your data, this is a TABULATE that puts VOL and BUD under each date and then summarizes them in a final Grand Total row. For more help with percents, you might consult the TABULATE documentation or work with Tech Support:
ods html file='c:\temp\mytable.html' style=sasweb;
proc tabulate data=mydata f=comma6.;
class product date;
var vol bud;
table (product all)*(vol bud),
keylabel sum=' ';
ods _all_ close;
Maybe this will give you an idea of computing a cumulative variable and a percent of total versus a percent of a group. We use an example similar to this in our report class.
** make some data with only a few products and regions;
proc sort data=sashelp.shoes out=shoes;
by region product;
where region in ('Asia', 'Canada', 'Pacific') and
product in ('Boot', 'Slipper', 'Sandal');
options missing = ' ';
ods html file='cum_grppct.html' style=sasweb;
proc report data=shoes nowd ;
title '2) Percent PROC REPORT';
title2 'Calculated with Temporary Variables';
product sales PctGrp cumsales sales=psal;
define region / group 'Region' f=$25.;
define product / group 'Product';
define sales / sum 'Sales' f=comma14.;
define cumsales / computed 'Cum Sales' f=comma14.;
define pctgrp / computed 'Percent of Region' f=percent9.2;
define psal / pctsum 'Percent of Total' f=percent9.2;
break after region / summarize;
rbreak after / summarize;
compute before region;
holdsales = 0;
In addition, some other documentation which you might find helpful are papers by Art Carpenter on PROC REPORT and the COMPUTE block or Technical Report P-258, about using PROC REPORT in "batch" on non-interactive mode: http://support.sas.com/documentation/onlinedoc/v82/techreport_p258.pdf (even though this is older documentation, it is still good PROC REPORT information.