Click here to Skip to main content
15,886,026 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

I'm trying to write a reporting app where reports can be added to the application on an ad hoc basis. So the application consists of an Exe that monitors a folder for report DLL's. My quandry is how to represent the data. I don't really want to include a presentation form in each DLL because they are all very similar. However, I don't think I can just send a dataset from the DLL to the exe because some of the reports are too complex. I also considered passing a form from the EXE to the DLL to be populated, but then the DLL is overly-dependent on the design of the external form remaining static.

Any ideas how this can be attained? I have the feeling there is some way to create a dataset-like object that isn't actually linked to a database (kind of like a collection or array of rows, but more memory-efficient).

Regards

Keith

[added]

Thank you both for your responses, I appreciate it. I could be wrong, but I thought sending back (possibly) thousands of rows of data within, say, an array of objects, might be a little heavy on the system - would that be right, or would it only take a similar amount of memory as a dataset?

The In-memory dataset sounds very similar to what I was thinking, but didn't really know how to implement, so thanks very much.
[/added]
Posted
Updated 25-Oct-10 22:46pm
v2
Comments
CPallini 26-Oct-10 4:49am    
Sending? Usually data doesn't travel from a DLL to an executable, since they share memory.
KeithThompson 26-Oct-10 5:03am    
Sorry, bad wording on my part, I meant "passing", as in the original title. However, I have to admit I'm not too sure on what would have a bigger overhead... a collection of objects, or a dataset...? I may well be thinking this is all more complicated than it really is...

You can create your own classes and use them to share the data between the dll and the exe.
 
Share this answer
 
Well you can create in-memory datasets, populate them with tables etc.

Here[^] is an example.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900