OK...this was an entire topic that I have been planning on posting on the upcoming knowledge base, but I will give you a preview here before you get too deep.We have already gone through all of this with our medical software and there is really only one really good way to go about this, and I also know for a fact that we have other developers using XtraReports with this logic.
You will want to create a BBS that wraps your BO and then attach that BBS as your datasource on your report. What we generally do is create a unique BO that inherits the parent BO for each report so that we can add custom properties, etc that are specific to that report. It is MUCH cleaner (and safer) than adding those properties on the base BO.
Step 1 - Create the Inherited Report BO
Namespace MyReportName
Public Class CustomersBO
Inherits MyApp.Business.CustomersBO
End Class
End Namespace
Step 2 - Create a BBS for the report that wraps the new BO
Here is a forum post that shows how to do this: http://forum.strataframe.net/FindPost12959.aspx
At this point, you are ready to map that BBS class as your datasource for your report. This is the ONLY way that I would recommend doing reports. If you go down the table adapter approach then you are starting to work outside of the framework as it relates to managing and gathering data and you lose strong-typing and the strength of using a BO.
I will be posting reporting samples when the KB is released and have a replete article on this very topic.