Is there a good reporting tool for c# that the programmer can pass the data table to the report and the user can dynamically design the report as he wants by dragging and dropping the collumns he want and the conditions he wants like wise?