Contributions and Events
Rereading - unsure if my other answer helps at all but will leave it for now. Price Sets may be more what you are after. I set one up here which you can see in action here

(note the above links will only be good till the site refreshes- but make a Price Set using "text/numeric", "Price = 1.00" and do not show 'Display Amount' - that will give you 3 fields where a person can enter the amount they want to give to each of the 3 parts - then set your Contribution Page to use the Price Set constructed above)

You can't use Campaigns on a per line item afaik so not sure that other suggestion helps but I think for reporting you can get what you need from  eileen@fuzion's Extended Report https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport which offers "Price Set Line Items" reports. HTH