views:

454

answers:

1

I'm having a terrible time managing RDLC reports. I couldn't find any comprehensive tutorials in the internet and MSDN isn't as helpful as I wish it could have been either.

Particularly, I've been having a problem trying to get a particular table/matrix to appear based on a client's requirement. It goes like this.

In the DB I have two tables: (substituted fake names for secrecy's sake)

  • Spaceship Info (contains prices for repairs, fuel, and other spaceship info)
  • Spare Parts (contains info for a variety of spare parts)

The table in the report should come out as something like this:

http://i53.photobucket.com/albums/g59/Sazabi02/Capture.png Table.

  • Blue Headers contain Spaceship Info
  • Purple Headers contain Spare Parts info
  • Red are totals

Things to take note of include:

  • Spare Parts columns have to be dynamic. There are numerous kinds of spare parts and hardcoding everything would be impractical.
  • The layout was explicitly specified to be that way. The dynamic columns are placed in
  • It's entirely possible that a spaceship would not have any spare parts. I LEFT OUTER JOINED it in the DB but it caused the column grouping in RDLC to produce a blank column for the spaceships that didn't have spare parts.

between non-dynamic columns. (having problems with this. AFAIK columns are automatically placed on the right side and there's no option to place them in between.

I've tried out a few things. Pounding my head on the keyboard didn't work after frustratingly trying to make the matrix work as I think it was intended to and Like separating it into three separate tables. One for the totals. One for the dynamics and one for the fixed columns. (Two actually because one fixed column should be before and the others after the dynamic ones.)

Can anyone provide some insights on how to do this in Visual Studio RDLC reports?

+1  A: 

Hi,
what you are trying to do is not very easy but it can be done i will give you few points to start. If you need some info more just ask. As far as dynamic columns for spear parts just do like this. Collect list of all possible parts for all ships that will be shown.Rdlc file is actually a xml file. You can open it with XmlDocument and generate as many column as you need. The you can pass the changed content of the XmlDocument directly to the report viewer.Adding column in xml is a little bit tricky. First create the rdlc report using designer, save and create copy the rdlc file with different name. Then open it again with designer and delete one column. Save and compare the two xml this will show you what you need to add in the xml in for new column. This way you will create the dynamic columns.The table you pass as datasource must to be created in such a way that it has all ship columns and column for every part.Every row in this table will be ship and only in the columns for the parts the ship has there will be values.This is for now if you need some more info just ask
Best Regarsd,
Iordan

IordanTanev
Thanks. I was about to lose hope and resorted to a few hardcoded queries that I'm not proud of. I was really looking for a non-designer approach to editing RDLC. Thanks. I'll try your suggestion.
Jonn
You can create or edit RDLC files without designer RDLC is acctualy a xml file. But to be able to create the RDLC file from scratch by hand you need good knowledge about the RDLC xml format. This is why i suggested creating the rdlc by designer and the opening it with notepad to see what xml is genereted.
IordanTanev