Refactoring Crystal Reports: whether to, to what and why? - layout

Report design, generation and maintenance isn't hard, but it is dull. We have a number of legacy (to quite different degrees of legacy) reports in Crystal Reports XI. These are designed for A4/PDF - not necessarily printed, but to be of a predictable layout and there's no possibility of us retiring them any time soon.
All connect to existing stored procedures (SQL Server 2005) to acquire their data. A lot of time has been sunk in getting these reports to look just so. The actual creation of reports is mostly done via the .NET/C# API and exported to PDF. There are a number of locally developed and maintained applications that are stable and handle this process well.
So we like the fact that Crystal Reports is stable, that our apps produce these reports reliably, that the PDF output is consistent and that when the Crystal Reports template is approved and set, it just works.
There are some big problems with this situation though. The biggest being that any changes to the underlying report templates themselves are a huge pain; getting the Crystal Reports template to a point that users are happy is a royal hassle and can involve a long iteration of DTP/graphics/database/reconciliation and myriad other niggles.
Combine that with Crystal Reports being a relatively rare skill and not one people want to admit to, we are trying to think up alternative solutions.
Some thoughts I've started to consider - and any others welcome!
Does Crystal Reports 2008 offer any benefits over XI?
How have others managed a migration away from CR? And what to?
Given the data access layer is well formed, perhaps generate graphs via an Excel service and then import them as graphics to a framework template? Crystal, another - has anyone tried anything like this?
Is Reporting Services any better? (We have some RS skillz but again, another thing that people are loath to actually own up to knowing anything about.)
Are there any layout tools available (preferably with a .NET API) for what, in the old days, would be called Desktop Publishing? If we have graphics/tables/other objects as images that could then be rendering automatically,
Ideally I want to move to a solution where the users are in greater control of the underlying changes, and whether this can be handled programatically within tools that we can provide to them and so that I can be coding rather than editing Crystal Reports templates.

So what other problems are you having with Crystal? Sounds like you want the users to handle the reporting...(don't we all). The problem with that is they never want to use whatever data model is offered. Someone has to know how to query the database. You already have that by using stored procedures. Maybe let a couple users learn basic crystal principals (grouping, sorting, summing, etc) and you write the stored procedure and they format it with crystal. That way you bypass the biggest stumbling block with crystal, which is doing the table joins in crystal.
I have crystal knowledge and think it's fairly easy to use. I wouldn't call it skillz though, more like I know what it can and can't do, so I can save myself a lot of time.
I'm not trying to defend Crystal, but if it ain't broke...

We recently upgraded to VS 2008 on XP. Our users are still running the .NET 2.0 framework on Win2K, and a company-wide upgrade is not in our near future. What we didn't find out until we'd already upgraded from 2005 to 2008 is that the Crystal Reports redistributables that come with VS 2008 only work on XP or higher. Oops. So, we're now unable to edit our old reports because CR will automatically update it to the new version.
What I wound up doing is using our existing XMLSerializer, building a class that holds the report data (lots of string and List<T> properties, essentially), and serializing it to an XML file. Insert an XSL stylesheet declaration that transforms it to HTML/CSS, and open it in IE.
It's wound up being quite a bit faster than Crystal Reports, particularly for development, and I can typically have them just give me a Word document of whatever the hell they want the report to look like, export it as HTML, clean it up, and then use that as a template for what the XSL generates.
It's nowhere near as full-featured as Crystal Reports, but for what we need (XRay and Lab reports and work orders), it's perfect.

Related

Microstrategy - Dashboards and Documents

In Microstrategy 9.4.1 i created a dashboard from the web and then i tryed to edit it from the desktop and i got the following message
this analysis will be converted to a document and the change cannot be undone. are you sure?
I could read on the MSTR site that the difference between Dashboards and Documents is the following:
Document is a editing and formatting of report in a prescribed manner. where as Dashboard is a output result of Document. Dashboard is a Graphical view of Report in Flash mode and it is more interactive.
I want to say also that Documents and Dashboard are two different kind of object, they also have two different icons.
Why while editing a Document from the desktop suite i have more option than from the web?
Can I Edit a Dashboard from the desktop suite? If not, why?
Quite long, go to the end for the quick answers.
Probably there is a bit of confusion on the MicroStrategy documentation because of the history of the terms Documents and Dashboard and how they were used.
In the past, MicroStrategy had only Reports (also called Datasets when used to provide data for a Document or a Dashboard) and Documents.
A MicroStrategy Documents allowed to do more fancy stuff, use data from multiple Reports (or Datasets), more formatting options (headers and footers), show more graphs or grids on the same screen, use Autotext fields (like to automatically show the current date, the prompt answers used, the name of the user running the document), and other thing that I forget now, but I think you got the idea.
Documents could be used to generate those huge PDF reports that nobody was going to read. Then the Business Intelligence world went frenzy for the dashboard thing.
MicroStrategy Documents were perfect for that, you just needed to have the whole document in a single screen and you had a perfect dashboard done with MicroStrategy.
Of course we are talking now about the time when people started to look at their data without printing them, maybe publishing them on the company intranet or some primitive websites.
MicroStrategy embraced this internet revolution offering the possibility to create flash based Documents and the possibility to edit them directly in your browser. I do suspect that at this point MicroStrategy Desktop and the Web editor were quite aligned in terms of functionality (even if sometimes it was hard to find that specific thing: i.e. if you have to format a graph in web you can do it only in the editable mode?)
Release after release the two environments become two different beasts and now some options are available only in one of them (i.e. sorting selector values). Sometimes it seems to me they lost part of the source code of MicroStrategy Desktop so they can do new things only in web. I'm joking :)
Back to dashboards, some of them were nice, most of them were so so (and people started to write about how to show your data in a better way). The main problem is that they are very nice to show data to big bosses, but they have really little value for operation people.
To tackle this problem new tools started to show up, tools to do easily data discovery, data visualization, data analysis, you name it. There were a number of new companies (QliK, Tableau) with new solutions. Initially they were doing just a slice of what a big BI tool was doing but people could use them knowing little or nothing of SQL, Data Warehousing and ETL and they were also looking cool too.
After a while MicroStrategy realized that they needed a cool tool to do the same things if they didn't want to fall behind, so with version 9.2 MicroStrategy announced his own tool for data analysis: MicroStrategy Visual Insight.
MicroStrategy Visual Insight was included with the standard user licenses, had a flash based engine and it was working only on web (and mobile).
Finally in version 9.4 MicroStrategy renamed Visual Insight MicroStrategy Dashboard.
TL;DR:
It's true often you can do a thing in desktop, but you can't do it in MicroStrategy web, or vice versa. Unfortunately nobody knows why.
MicroStrategy Dashboards can be edited only in web because they are flash based.

SSRS 2008 vs SSRS 2012

I've been trying to figure out if it makes sense to use SSRS 2012 with PowerView vs using SSRS 2008.
I've following questions:
What's better in SSRS 2012 without PowerView(ie without using Sharepoint)?
What edition of SharePoint you need to make PowerView work for SSRS 2012?
Does it make sense to learn and use Sharepoint if you can barely utilize the pluses of SharePoint or PowerView instead of SSRS 2008 or SSRS 2012 without PowerView/SharePoint?
I can address the overall question but not the first two bullet points specifically as I have not used Sharepoint enough to give the version differences on it.
Powerview from everything I have ever done is a dll that allows a report like object to be created as an add on to Excel. These objects can then be hosted in Sharepoint in a library. The downside is you need to have the dll's and the add on to Sharepoint to use it. As far as I know you are committing to user's going to SharePoint with this option. They do make it kind of neat though as you generally make what I believe they call a 'PowerPivot' which is just like a client dataset made in the Excel file that you report off of. This option is good for a shop that works with Sharepoint Extensively. I have not heard of too many places using it for client facing front ends or external reporting.
SSRS's newest invocation is SSRS 2012 which from everything I have seen in development is the EXACT SAME THING as SSRS 2008R2 except they put a 2012 in the namespace. There may be minor tweaks on naming and intellisense and under the hood things but the langauge is almost identical. Saying that SSRS 2012 is free with advanced tools for SSRS now and can also port to most front ends you would want: HTML in a form talking to it's service, ASP.NET, a client app like WinForms or WPF. You basically created and host reports and you can access them anywhere.
The real question for most people is: "Which reports look cooler and are easier to use?" I would go with SSRS, but know it is more of learning curve of understanding SQL and a little bit of xml and Visual Studio(very light). However Powerview is more graphical with it's parameters and options to an end user and has highlighted some things it can do with mapping interactivity that SSRS cannot do. The biggest detractor for SSRS IMHO is two things:
It is not event based at all. This shows up whenever you are doing mapping or something you want to zoom or perform actions that then produce other actions or 'events'. It can do a 'click' do something but NOT on the same page necesarrily. Usually you trick it to open a new form for a 'drill through' or use javascript to trick it to do a cheap man's version of hover over reporting by opening a form when you click.
To continue off of one it is this way on default behaviors of values of parameters and passing them down. Everything with SSRS is made to happen once at execution and then anything else happens to leave the form, not stay there.
Saying all that I still like SSRS better. It tends to handle large datasets when PRESENTING them better. Not necessarily all the time at getting them as the PowerView optimizes the set locally but at the expense of huge excel files. Sort of like psuedo cubes. They are fast, but you have a big file size for that expense. But with a lot of data they tend to be clunky as they are Excel based. Yes the query at the end will return faster but you have a huge file. When in reality if you are skilled at SQL SERVER you could be creating a Report Warehouse that is well indexed off of metrics and a cube as well to do this stuff for MANY REPORTS. SSRS is more for developers of TSQL, versus PowerView is more for analysts that know a little SQL but love Excel. They want a 'Select * from (table)' and then form the data, not they know how to do advanced groupings on their set first and then want to present a finished product to someone.
To answer your questions one-by-one:
What's better in SSRS 2012 without PowerView(ie without using Sharepoint)?
In "native mode" SSRS, i.e. a non-Sharepoint installation, there's not an awful lot of new stuff. The renderer now supports Word/Excel 2007-2010 format (i.e. DOCX, XLSX) output and the addition of native mode Data Alerts seem to be the only real difference to 2008 R2.
What's new in SSRS 2012
What edition of SharePoint you need to make PowerView work for SSRS 2012?
Unfortunately, you need SharePoint Enterprise Edition.
Does it make sense to learn and use Sharepoint if you can barely utilize the pluses of SharePoint or PowerView instead of SSRS 2008 or SSRS 2012 without PowerView/SharePoint?
If you are only looking at SharePoint to host/share PowerView and SSRS, it's definitely not worth the investment, in my opinion. There are other alternatives now that are much more accessible to smaller organisations, or those who don't want to invest heavily in SharePoint infrastructure.
PowerView is built in to Excel 2013, which allows users to build their own PowerView reports. Until recently though, there was no way to share these other than passing the Excel files around. However, Microsoft have now released the preview of Power BI, which is an Office 365 based BI platform, essentially providing SMEs with a cheaper and easier alternative to setting up a SharePoint server, and allowing self-service BI. It enables users to upload their Excel files containing PowerViews and share them with their organisation. You can also share other creations, such as Power Query projects, and internal data sources. All without an on-site SharePoint installation.
If you really want to try out PowerView, I'd suggest getting yourself a trial of Excel 2013, or sign up to the Power BI preview and give it a shot. Personally, I wouldn't recommend upgrading to 2012 purely to upgrade your SSRS installation, the new native mode features aren't really worth the cost/effort. If you're looking at upgrading the rest of your infrastructure though, (SQL, SSAS, SSIS) then it's definitely worth doing.
also wanted to add that if your deploying from VS to sharepoint directly; you versions have to be close together i.e. 2008 ssrs on sharepoint 2009 etc. You may not be able to deploy a rdl built in 2008 on sharepoint 2012,13. We had similar issues at one of my previous projects.

Using SSRS instead of Crystal reports to generate admin forms

I'm looking into upgrading a .net 2.0 app. The app is used by the public authorities of a certain city to keep track of expenses and generate reports and forms.
The reports and forms were generated in VS2005 using Crystal report. They follow a well defined layout, like official documents usually do.
I am looking at options to upgrade the application and the main problem I have is in determining how to deal with the crystal report files.
I have successfully upgraded to VS2008, but any version after that doesn't have CR anymore, so my company would have to pruchase CR separately and because the client and my company are both tight, I'm looking at alternatives...
The obvious one is using SSRS. I have never touched it before in my life, but after playing around with it for a bit, I get the impression that it is not very well suited to generating forms with lots of non-tabular content and lots of formatting. Or am I wrong?
It seems that every line has to be drawn separately. There is no (that I can see) accurate way of positioning lines for formatting...
But I'm just a beginner, so I might be getting this all wrong?
If that is the case, are there any other alternatives to CR and SSRS?
I was thinking of maybe having a separate MVC web site project in the solution. Have that generate the layout in html and css with data from my entity model, then view the result in a (built-in or not) web browser. Am I overcomplicating on this?
I really need advice from somebody who's done that kind of thing before.
What SSRS is good for:
Talking to SQL Server, much faster than other products as it in many cases retains the database better when in other programs IMHO they repeat query at times.
Designing collapsable grids and chart objects from datasets. You can have 'groups' that can nest aggregates of collapsed values and can be un collapsed or collapsed on demand based on expressions, parameters, or a recusive parent set.
A web service for deployment ease where you can deploy one or many objects. You can also write add ons for this service with C# and the ReportingService.asmx web service.
You can talk to the web service directly in a 'form' object in HTML and manipulate it's output.
You can schedule reports to send out via email and file saves automatically to clients or internal users.
What SSRS IS NOT GOOD FOR:
It is not event driven hardly at all except for parameters. You cannot click on many things and get other parts on the form itself to update. You may do an 'action' that goes to another location, report, or site. But in essence you are calling a seperate object, not the same instance again.
Multiple layers of reporting. Beyond tweaking tool tips you cannot do 'hover over' reporting without hacking SSRS. You can make javascript windows show other reports but it is not baked in to SSRS. So you are either clicking into new reports or tab stops in a report but not getting hover over quick objects beyond text and expressions that are in tool tips.
What do you want before considering what you need to impement?
I want to input and export things while talking to my database - ASP.NET with potentially HTML 5 or MVC4 if you want to be very new. ASP.NET is made for actively talking to a server and taking commands IN as well as OUT.
I want a form to auto update periodically on a page as a landing site and dashboard - AJAX and Javascript on top of HTML, Java or ASP.NET.
I want to create reports that exist on a Server and can be hosted on a wide variety of platforms in .NET via web service calls - SSRS.
SSRS's biggest selling point to me is it's reusability once you dial a report in. They are pretty easy to create, easy to configure, easy to deploy, and if you get a little advanced in calling the webservice you can get SSRS report objects in other technologies if you want.
There is Crystal reports for VS2010 and VS2012. It is just not shipped with them. You can download the installation from here: http://scn.sap.com/docs/DOC-7824
I am running through the same decision process at this time. There is a .NET product from a company called "Windward" that will allow you to design your reports in Microsoft Office. If you are in the MS ecosystem already or want your users to design reports instead of always calling on you, this might help.
Their template design tool is called AutoTag and you can deploy these template to their .NET based engine in a few lines of code.
I know the question is regarding SSRS vs. Crystal comparison but thought you should know there are other alternatives and some can make life easier
Ryan

What would make development with SharePoint easier?

What would make development with SharePoint easier?
A better product.
Right now it is to many things that doesn't behave as a development environment should.
Dispose of objects
Performance of traversing small lists with 3000/4000 items
Lack of support of transactions
Hopefully next version will have the SQLServer based lists where you can have transactional support and better performance......
Bill G raised the question in feb 2008 that it is something strange with Sharepoint that you get problems when you have 3000 items in a list and SQL Server easily supports million of items....
The build and deployment process needs to be simplified. There are numerous tools available to create WSP files, but they are all decent at one thing another, but you ultimately need to extend or rework the solution WSP deployment package for you environment.
Standard HTML and better support for the DOM.
Informative error messages.
While easier debugging and less XML are very tempting (as people suggested), I would settle for something much more modest.
SharePoint usually "swallows" exceptions or other error messages. Very often when a customized page or a web part fails, you get an obscure 'page cannot be displayed' message. With luck, the designer will direct you to the problem, or you might find some details on the logs or the system event viewer. But in many cases you have nothing.
Examples - Business data catalog xml monstrosity that worked on the editor but not on the site, xml web parts that fail randomly, xsl typos or mistakes, etc. All take much longer to find than they should, and some are impossible to debug.
Remote Deployment:
- 1 central Sharepoint, and transparent remote debugging.
Less XML (schema.xml etc).
Making the dev process more like "traditional" asp.net development, in other words making the integration with VS better. You should develop against SharePoint from within VS not from within SharePoint (ie SPD).
SPVisualDev on codeplex has made that process better but I hope (an I say hope) for better support within VS2010 together with SP2010.
Should check out #SPDevWiki's page on this also http://www.sharepointdevwiki.com/pages/viewpage.action?pageId=7340352
Less people trying to abuse the product would make things a lot easier too ;)

Something Good & Something Bad about SharePoint [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I'm trying to wrap my head around SharePoint. Why is it good? Why is it bad?
At a glance it appears to offer some incredible collaboration tools. However, the cost looks astronomical and it seems to be rigid & difficult to customize.
To those who've worked with SharePoint; please describe something good and something bad about it.
Pros:
Document management is its most well-known
function and integrates extremely
well with Office 2007.
Create group calendars that can be
overlayed onto your personal Outlook
and managed on the web.
Notifications in response to certain
actions on the group website
Wiki-type functionality with full
integration into the Office stack.
Full database backend which gives
you the reliability and safety of a
true RDBMS.
Extremely customizable if you choose
to develop custom websites using
ASP.NET (not the built-in wizard/gui
editor).
Form-data collection
Cons:
Freebie version is somewhat limited
on customization.
How to handle multiple editors to a
single file is not obvious.
Workflow for offline editing of
documents is non-obvious.
Very steep learning curve to use it
the right way.
Getting people to use it is like
getting people to go to the dentist.
Out-of-the-box templates don't do a
lot.
Customizing without writing code
really limits your options.
Integration with older versions of
office is ugly
Mac integration is non-existant (has
this changed recently?)
It has pretty good Office 2007 integration. As an example, Excel understands when you have a file checked out and will let you check it in (with comments) when you close it. The document management features simplistic version control (although it's not required; you can go with a single version for each file).
In SharePoint, everything is essentially a list internally and it's very easy to create a custom one. On a related note, I haven't used either yet, but it supposedly works well with workflows and InfoPath.
On the downside, it's pretty much a resource beast. It requires multiple machines with powerful specs, particularly if you want to "really" use it for document management and to be the backbone of your intranet/internet site. It scales to an extent, but it's not pretty from my vantage point.
Customizing it presents it's own challenges. You really need people focused on it full time, as both administration and customization require their own impressive learning curves.
Lastly, some of the out of the box parts are poorly implemented. The wiki is a prime example; it's basically useless in my opinion. So one thing to keep in mind is that some may consider SharePoint as a whole package as "best in class" (not saying I do!), its individual features often are not.
Good
Out of the box, it offers a ton of functionality and power, even for the stock web parts. Just creating a library of documents that anyone can open/edit/upload to is simple...even for those non-web-savvy amongst us.
Bad
Pretty much everything else.
The "Discussion Board" is a glorified Outlook email chain.
The disconnect between achieving similar results in SharePoint Designer 2007 and using the web interface are jarring and annoying
Attempting to customize the look and feel of a SharePoint site usually ends in complete disaster. Especially with WSS 3.0.
The nickel & diming scheme between the WSS 3.0 and MOSS 2007 tiers is absolutely painful; WSS 3.0 is just barely functional enough to be extremely frustrating to use
Changing MS styles is almost impossible due to their horribly-laid-out and obnoxiously large CSS file.
IT IS 2009...GET RID OF THE TABLES FOR NON-TABULAR DATA ALREADY!
It's a beast to use. And handing two complete rebranding projects for two totally different areas of the company is driving me to the point of a nervous breakdown. Especially when opening the core.css file occasionally results in all the styles I've redefined getting reset to the defaults. Without anything done by me other than just OPENING the file. And there is no ability to undo these changes.
Good thing: Great communication tool. Instead of sending out a company wide email you can post an announcement to your SharePoint site. Users can subscribe to an RSS feed of the announcements or have a email alert sent to them when the list is updated.
Bad thing: Error messages displayed on a SharePoint site are generic and the link to help resolve the issue rarely is of any help.
Good:
It can be a great collaboration tool. Beginning developing for sharepoint is simple, assuming you are familar with ASP.NET webparts.
Bad:
The development lifecycle isn't fully implemented. There are no built-in facilities for testing, among other things.
SharePoint is evolving and becoming a better collaboration tool for Microsoft Office environments. It plays well in a small to medium sized business setting. It is critical to implement “best practices” on setup; otherwise it will quickly become a nightmare to maintain and to use.
For “best practices” here are two books that I recommend for SharePoint 2007:
Essential SharePoint 2007
Sharepoint 2007
A lot of the cool things in Sharepoint are avaialable in Windows Sharepoint Services 3.0, which is free with windows server 2003/2008. All you need extra is a license for SQL Server 2000 and later, which most mirosoft shops have. In WSS you can do document management, workflows, custom sites, blogs, wiki's, etc.
If you need Excel Services, Forms Server, CMS, or some of the other MOSS features, then that's another thing. And yes, it does cost a lot of money, but it' cheaper than doing it from scratch in most cases.
Pluses:
- Great object model.
- A lot of good features just come out of the box.
Minuses:
- Steap learning curve to do things the right way.
- It's very easy to hang yourself by doing things the wrong way.
- Debugging and deployment is about as pleasurable as root canal.
good :
A lot of things can be done. Wokflowks, InfoPath forms, Excel Services, Business Data Catalogs and etc.
Bad :
You won't be able to do these described easily. Must have sharepoint administrative and development skills for good solutions that don't improve quickly.
If you have a license for Microsoft Server 2003 then you can install the standalone version of Sharepoint for FREE!
Download Sharepoint
The install is very simple when using the internal database.
Microsoft Office Sharepoint Designer 2007 is a must have for any customization.
I have created a couple Company Intranets using Sharepoint and have been very pleased with its features.
Microsoft Office 2007 interfaces nicely with sharepoint.
I have found Sharepoint to be very powerful and easy to learn. There are lots of people developing sites using sharepoint. The level of customization is awesome. The simplest customization is done in your browser, the next level is using Microsoft Sharepoint Designer 2007, and finally using Visual Studio to create new apps(webparts).

Resources