WinForms.ReportViewer to display customerized item? - wpf

I am designing a reporting page using WinForms.ReportViewer and only process the data locally. It means we want to display some information from objects that we designed. For example, we have our own classes for date and time. However, in the report page this date and time information can not be displayed correctly (shows #ERROR). Is there any way to tell it how to show our information? Thanks!

With the newer ReportViewer versions, MS has introduced an error that disables the possibility for navigation within objecs.
They have corrected the error with the last service pack a little and if your objects support serialization, now navigation may work.
For my newer projects built with report viewer 2010, I have started to write a wrapper for each object/entity I have to render. I started with this during the time, no fix was available and now I'm very comfortable with this pattern. In the first moment, it gives a little more of work, but it has given me great flexibility and left my code clean. And if one day I dont have the patience to work further with report viewer anymore, it will make it easy to move my projects to another reporting engine.

Related

How to handle angularJS design time data?

Silverlight had a nice feature ("design time data") that allowed one to indicate data for use in views which was only used at design time. This allowed a designer to work with fleshed out screens that looked realistic rather than just a skeleton.
(for a bit of background on this feature in Silverlight, here's a random msdn post about it)
Is there a similar approach for doing this in angularjs?
I don't think that's possible w/ Angular. Angular populates the views as it's processed, so you see the "skeleton" until it's done processing. The design data you talk about would still have to be processed by Angular to be viewable.
You could always populate your scope with "design" data if you are waiting for API's to be built out, etc. You could then work with the view html/css in Chrome dev tools or with any other browser tool set. Not sure that's what you're looking for as it's still technically "runtime" development, but it might get you closer to what you are looking for.

display a calendar function on lots of different websites

first of all, please excuse my ignorance, this is an exploratory question, rather than a specific programming program that needs solving.
I have a number of clients that have unique websites, none of which I was involved in developing. I would like them to be able to display a calendar of common events, but which would also contain events unique to them.
Is it possible using something like Server Side Includes to be able to give them a few lines of code which they could insert into their website (on any particular page) which might display a calendar type display, which their users can then interact with?
I guess I am looking for something similar to a Google calendar but I do not want to use a Google calendar. The key thing would be that they would only need to insert the few lines of code on one of their webpages; they wouldn't have to install any software on their servers.
Any suggestions?
Thanks
Damien
There are are all sorts of web calendars that will allow you to include them on a web page (typically using javascript, not SSI). Some are targeted at specific platforms (ie, Wordpress) and some are more generic.
Try searching "web calendar widget" for examples.
You'd have to put some amount of content on their site. If you can do that, you can include some javascript that will load more javascript from the server side that can do the bulk of the calendaring work for you.
You wouldn't be able to just drop a few files on the server and have them work, you'd need some way to link to them by changing the existing content on at least one of the pages.
I may be misunderstanding your question though.
If you are looking for specific recommendations on web calendar widgets, Arshaw's fullcalendar is my favorite to date.
It displays a great calendar that can be easily styled with css or jquery ui themeroller and is very programmable. The website has great documentation and examples as well.
Per using it on different sites, it supports that easily.
Note, I'm not affiliated with that calendar at all, just a satisfied customer.

Best reporting solution on top of SQL Server?

I'm looking to build a reporting portal on top of our database which is SQL Server 2008 R2.
It's been suggested that I use SSRS, and I've played around with it for a few hours. I found it very easy to point it to a table and have it generate a table/graphs for you. It could all be done in a few minutes, and that's great.
I had a hard time customizing the report to make it look nice. I thought it was like using Word to design a website, the customization was pretty limited. I have experience in web development using ASP.NET with jQuery, and I'm currently thinking that I could make the portal much faster if I could use my experience with those technologies.
I'd like to get advice on which path is best for my project.
Queries to the db are fairly simple, but not trivial. I have no problem building the data and business layers myself by using Linq-to-Sql.
I do not need print support
I need an emailing system that sends out reports every day, which I can also build myself (it doesn't need to let users subscribe to reports)
Don't need the flexibility of having users create their own reports. This is only for 2-3 different reports.
I enjoy the development experience using web technologies and feel comfortable building a pleasant user experience with jQuery and plugins. I fear that using SSRS, I would be limited to something ugly and not "fun" to use.
I want this project to be up in 2-3 weeks. I can't afford to re-invent the wheel for everything, but I also don't want to spend most of my time asking questions like "how do I make a fade-in effect in ssrs?"
How easy is it to customize the UI? Are there good examples online of what can be achieved? Does SSRS have some advantage that I could hardly get by writing my custom solution? I'm thinking in terms of application performance and overall functionality.
Thanks for your input.
I have built custom web interface to a suite of SSRS reports. You can easily do this, and submit the gathered report parameters to Reporting Services, and have it render the generated report to a web page, all as if the user had used the SSRS interface to begin with.
Some comments i would make:
let SSRS handle the reporting side of things. It has all the power and features you could need. And its free. And tested. And extensible. And renders to multiple (printable) formats.
you could maybe look at buying a set of controls designed to be used with SSRS to get even nicer chart output
you can build your own (parameter gathering & report triggering) interface within three weeks, but the schedule will be tight
you can't use jQuery within the rendered reports. A lot of the HTML within the rendered report is hardcoded template type code (styles etc are embedded into the report rather than linking to an external file)
you don't need jQuery fade-in panels to make your reports pretty :)
So, as you know SSRS allows web and winforms output, printing, and all that. But your users will undoubtedly end up bugging your for PDF and Excel exporting, which is also built-in.
It's also a lot easier to edit the reports without having to alter your app and as you mentioned it has the emailing built in.
SSRS is quite powerful if you play around with the grouping and parameterization. The designer is a little clunky as you make more complicated reports, but I've always been able to design what I want. I've not used Crystal Reports but presumably it's even more powerful but it is another thing to learn and obtain.
I use 2 main reporting tools (Business Objects and SSRS) and also Microsoft Access. I can honestly say that I prefer SSRS for 95% of the work I do. The users really like all the drill through options you can do. For example lets say you have a chart showing widgets sold, you can click on that bar of the bar graph and have it drill to a report showing a breakdown of which widgets were sold.
This ability of going from a “high level” to low level detail is really powerful to the users. As for looks, I quite like the default controls that ship with report builder 3.0, they have come a long way and just look what is around the corner with project crescent
http://blogs.msdn.com/b/sqlrsteamblog/archive/2010/11/09/a-glimpse-at-project-crescent.aspx
I know it's probably not a WEB-BASED technology but I would definitely give Crystal Reports a try. Specially considering your time constraints...

using silverlight for user interface only

I am planning to make a web application, using silverlight for frontend. requirement is: this frontend will be just an empty shell, and it must be language independent. it will get everything it needs to display and use from server, therefore making it language independent.
i tried to find tutorials, but there is nothing.
as far as i understand, silverlight uses xaml for all its data, so just generating it with whatever language i want shouldn't be a problem. but i don't have any silverlight experience or knowledge, so i'm not sure what is the best way to do this. for example, i don't know how will new content be generated, and what kind of structure silverlight requires.
can anyone give me some starting points?
Your requirements are rather demanding. If i can summarise:
silverlight will be the front end (or container)
you don't know what it will be showing
the content may be dynamically generated
everything, including the visual content, will be retrieved from the server
If i have misunderstood then by all means correct me or adjust your question.
Those requirements are not trivial, especially when you have no prior experience in Silverlight. Fetching data from the server is a normal behaviour in Silverlight, but fetching any generated UI content will be a slow and inefficient use of the technology platform. Silverlight is delivered via the browser, and runs on the client. If you are going to have generated UI, then you may want to consider using straight HTML instead (you can generate the contents using ASP.Net or a scripting language such as PHP). Alternatively, you can generate your required UI views from within the Silverlight app itself by either swapping in and out the appropriate pre-built piece of UI (or controls), programmatically adding new controls into the visual tree, or by loading XAML using the XamlReader class.
This answer may or may not help you much, but like i said before - put some more specific details into your question and you will get more specific answers (either add comments under your question, or post a new more specific question if you cannot edit your current one).
Edit: i have just come across this blog article from Jeff Prosise explaining the use of the INavigationContentLoader interface in Silverlight 4 to dynamically load pages from either remotely or locally. It is a detailed write-up, with a lot of code samples, it may be of use to you.
I would suggest you start at http://Silverlight.net
The "Learn" section has lots of videos that can get you started. http://www.silverlight.net/learn/

Dynamic data for winforms

i have played around with dynamic data website. is there something similar for winforms.
if there isn't anything out there for doing the same with winforms than the question would be why not? we have a massive ERP application that we want to migrate from AS400 to .Net
Winform application. my initial thoughts were to have all the maintenances be as simple as Dynamic Data Website project.
I would think that WPF would be a better starting point then WinForms, as it has support for style to say how item of data are displayed.
Dynamic Data makes it easy to edit your DB on the web. For desktop (and web) apps take a look at the new Microsoft LightSwitch:
http://msdn.microsoft.com/en-us/lightswitch/gg441300
LightSwitch doesn't use Windows Forms. Rather it creates a Silverlight App that can run both on the desktop and the web. Pretty cool.
Dynamic data is using the routing functionality of the MVC framework. In Windows forms we don't have this approach of fetching data with URLs from a server.
I am not sure how this model could fit into Windows forms.
I think it's pretty hard to create something like dynamic data for Windows Forms.
My biggest concern is here, once you created that Framework, how do you configure it? I mean if you want to change 1 form to be a bit different than the others :-)
I think its better to generate Forms for the various tables in the Database context, using a powerful Grid control from one of the big vendors. And then you can configure those.
Remember this is a different approach then the dynamic data one, where no code is generated before compile time
I think the reason you don't see something like this in winform applications is because it's much easier to store a HTML page inside a database and then display it on the screen formatted properly when using a web application because your browser knows how to format the HTML.
You would have to, stored in the database, know where each label and field would go on the form in some sort of co-ordinates fashion (or you could use a layout 3rd party control) but the amount of work that would take might be tedious to do properly.
The dynamic data website I worked on did not take input from the user. It only displayed different web pages to the user and allowed the admin person to easily make changes to the content. If you wanted a user to beable to save data then that would even be more complex because you have to worry about validation, required fields, etc.
If you have lots of users that need to see different information based on their access level then I would just suggest having a table in the database that tells the system whether or not they should see the field on the form. Then use a 3rd party layout panel to format the visible fields.
my 2 cents
As much as Dynamic Data looks simple and cheap enough to access a database it wouldn't work for an ERP system anyways. Business systems are more than moving data between database and the user interface, they require business rule actions when saving data and while retrieving the may require some massaging to ensure meaningful presentation of storage optimized data.
If you still like to pursue this option it would be very easy to create an application that is build on top of Entity Framework.
I'm not aware of a Dynamic-Data-alike, but (having written one before, years ago, for ASP) I don't actually think it would be that hard, particularly with WPF and its templating support.
Actually if you were really clever you could probably 'borrow' the backend from Dynamic Data, and just reimplement the UI as WPF.
Would make a fun little project actually.
Alternative answer: Use Microsoft Access. No really.
Alternative answer #2: So why not just use Dynamic Data then?

Resources