1

Ok so I don't really know if this exists with some package somewhere, or if I need to roll my own (which I don't really want to do). Basically what I am looking for is a reporting type system that would almost reflect Task Manager, the best example I could think of.

I have a WCF service that communicates business logic back to subscribed clients when data changes. So I would like to have that report updated whenever the event hits the client.

I have created a new .rdlc and started building the thing but it seems very cumbersome with what I am actually trying to accomplish and heavy. Are the basic reports my only options?

Edit

My question might be a little misleading. I am looking for an alternative if it exists for reporting that can update in a live fashion.

Thanks

Edit 2

I do not want to use the reports inside visual studio....I am looking for alternatives to reports. Sorry for misleading.

4

1 回答 1

3

If you are using wsDualHttpBinding in WCF you can send your callbacks to the client. Then your client object can fire events off that other forms or objects can subscribe to to be notified of updates.

Even if you are using traditional binding, you can still fire off events from your client object that your forms or reports can subscribe to.

Edit:

I'll elaborate a bit more you since you don't understand what I'm saying.

  1. You appear to be using ReportViewer since you implied .rdlc in your question. You should make that explicit, especially if it is the focus of your question.
  2. You mention that your data is delivered from a WCF service. This is an important fact when you are asking about how to update a report.
  3. You said your client has subscribed to this service. Good, we got that out of the way.
  4. Your question was "is basic reports your only option?"

Therefore my answer remains, No, you can update basic reports (or any other object) very easily using events, here's how:

Once your callback gets called (or your client hits the server if you are not using dual communication) you need to fire an event that your form containing your ReportViewer object will subscribe to. When your form receives the notice of that event, you will need to force your report to refresh itself by calling reportViewer.RefreshReport();

于 2012-05-18T16:17:57.023 回答