Open PDF Outside of Browser

This question has passed my threshold of answering as forum posts, so it’s going on the blog:



Does anyone know how to export a crystal report into a seperate adobe reader instead of embedding the reader into the current browser window?

I am successful in exporting to pdf and excel, but it would be great if I could bring up a “save as or open” prompt.

Any ideas would be greatly appreciated.


The “save as or open” prompt is something the browser does automatically when it encounters a file type it can’t open itself (either unknown file type or viewer program unknown).  There is a setting in Acrobat Reader you can use to override this, but it’s one the clint has to make–you can’t script it.  For Reader 6, go to Edit >> Preferences >> Internet, and uncheck “Display PDF In Browser”.


If this doesn’t solve your problem, try reading CodeSnip: Opening Crystal Reports in a New Window in ASP.NET.

MP3 Driving Directions

IPoding reports on MaP3, which uses Text-to-Speech to convert driving directions into MP3 files.  From Map3’s website:



MaP3 will give you the best driving route to take between any two addresses in the United States and Canada. While there are other websites that give driving directions, MaP3 is the only website that gives them to you as spoken directions, delivered in MP3 format to your email inbox! Instead of reading your directions as you drive, you’ll be listening to them on your MP3 player or, by burning them to a CD, in your car’s stereo deck!


MaP3 provided a sample to IPoding you can listen to.  Definately a cool idea, but you’ll need cat-like reflexes to keep up with the spoken directions.

Thank You Mindsharp!

I received my free SharePoint posters today, and I can only say “Wow!  Thanks Mindsharp!”.  They are detailed and yet still nicely laid out.  My mental image of SPS configuration is no longer an endless maze with randomly moving walls (and no cheese).  The SPS poster very nicely turns the mess into a tree diagram.  If you plan on hanging them up, make sure you plenty of wall space available.  The WSS OM is big–about 4 feet wide (about 1.3m)!  The other two combined are just about as wide.

Free SharePoint Posters

Mindsharp is offering as set of SharePoint posters free if you register at their site.  There are three posters in the set:



Windows SharePoint Services Object Model Poster
The Windows SharePoint Services (WSS) object model consists of eighteen namespaces in nine assemblies. It is written in .NET managed code using C# so it is easily accessible via ASP.NET or any other server process. Anything that can be done using SharePoint’s application and administrative interfaces can also be done using it’s object model. Although the SharePoint SDK is helpful, it can be difficult to see the big picture.
Mindsharp’s FREE* WSS Object Model is a 3’x4′, color-coded, graphical depiction of the relationship between WSS collections, object, methods, fields (constants), properties, and enumerations in several core namespaces.


Windows SharePoint Services Administration Roadmap
Increase your productivity with Mindsharp’s FREE* Windows SharePoint Services (WSS) Administration Roadmap. This 2’x3′ poster presents the complex infrastructure of the administrative links presented by Windows SharePoint Services.


SharePoint Portal Server Administration Roadmap
Mindsharp’s FREE* Sharepoint Portal Server (SPS) Administration Roadmap is a 2’x3′ poster containing all Site Settings and Central Administration menus. This enables you to see the complex infrastructure of Portal’s administrative links.


*Note: One set of posters is available at no cost to residents of the US, UK, and Canada. Additional sets can be purchased for $20 (our cost to produce, package, process, and post). Electronic versions of the posters are also available for $45/each (entire set must be purchased).


You can get a good view of the WSS Object Model poster at http://MindsharpBlogs.com/Todd/archive/2005/02/23/330.aspx.


Mindsharp was founded by Bill English and Todd Bleeker, both of whom have blogs at www.mindsharpblogs.com, all of which I’ve found to be very interesting so far (some of the posts are deep topics–not so much for beginners).  Bill is also part of the new SharePoint Advisor magazine.

Deciphering Microsoft-ese

We’re all familiar with MS’s “marketecture”, and its coopting of whatever buzzwords are hot in the newspapers at the time of announcement into strange acronyms.  Generation X gave us “ActiveX”, the Human Genome Project gave us “Windows DNA” (WTF?), and the Internet gave us, well, Dot Net.  MS is also famous for its creative names for everyday items.  For the beginner, here’s an introduction to Microsoft speak, as deciphered by an outsider:








































Microsoft Term Real Life Translation
Guide Book
Resource Kit Big book with a CD
Book Guide published by someone else
Software Development Kit Guide, downloadable as CHM file only
Help file Confusion
Code Sample Don’t do it this way, but here’s some code to make you happy, unless you program in the other language
Demonstration Useful information in between technical difficulties
Level 100 Lots o’ Powerpoint Slides
Level 200 Less slides, some code samples (see above)
Level 300 Fewer slides, some code samples, and some demos (see above)
Level 400 One slide for the cover, and one slide to introduce 60 minutes of code samples and demonstrations


I am seriously of the opinion that Microsoft’s marketing group stands much bigger in the marketing world than MS’s programmers do in the programming world.

Color Picker w/ Colorblindness Settings

On my CAPTCHA Images post, Patrick Santry mentioned he ran into one he couldn’t decipher due to his colorblindness.  I’m also colorblind, but have yet to hit one I couldn’t figure out, and that may be due to luck, or varying degrees of colorblindness.  I do, however, master a website I can barely read.  It was designed by women (and targeted mainly for women), who claim they have no problems whatsoever.  Its frustrating for me, especially since I’m “in charge“ of the thing.


Color blindness affects about 15% of the overall population, nearly all of whom are males (sex linked trait–I’ll explain it in another post if you ned me to).  When choosing colors for a website, especially one where you’re likely to have a large numebr of male visitors, color selection can be important.  My favorite color picker allows you to choose web safe colors that take into account colorblindness.


http://www.pixy.cz/apps/barvy/index-en.html

Set Number Of Copies When Automatically Printing Crystal Reports .NET

These questions were received as a private comment in response to my Automatically Printing Crystal Reports in ASP.NET article:



Very useful and interesting article. Thanks a lot. I wanted to use this in a .Net app. Can we determine the number of copies to be printed dynamically using the second method(javascript)? Say If the user clicks on the print button (HTML submit button), the application would pre-determine how many copies can be printed for that user and automatically print them?
Also, the second window was opening in full size for me instead of 0 height and width. Please let me know what I’m doing wrong here?
Again…this is a wonderful article.


To the best of my knowledge, I don’t think you can set the number of copies to print through JavaScript.  When printing from a browser, all print settings are handled through the browser’s print dialog, and I don’t know of any way to script that without getting into ActiveX and trust permissions.


It’s tough to tell what’s going on in the second question because there are a couple of code snippets that open new windows.  My best guess would be that the script string isn’t being renered correctly.  View the source of the parent page, and look for the rendered script string.  Make sure it’s correct after it’s rendered.

what a good sharepoint consultant ought to know…

Tim Heuer has an interesting post today:



inspired by scott hanselmen’s post about What Great .NET Developers Ought to Know, as well as the rush of interviews i’ve been conducting lately to fill sharepoint positions, i started compiling a list of questions for what a sharepoint consultant ought to know…here it is…


It’s a challenging list of questions, check it out: http://timheuer.com/blog/archive/2005/02/24/1691.aspx


(hat tip: many other bloggers)

A Crystal Reports job failed because a free license could not be obtained in the time allocated.

“A Crystal Reports job failed because a free license could not be obtained in the time allocated. More licenses can be purchased direct from Crystal Decisions or through the Crystal Decisions Online Store.”


This error can be due to a number of factors.  If you have deployed your application on a server and get this message, it means you possibly entered the wrong keycode when you registered Crystal Reports .NET 2003.  You can follow these instructions from Business Objects to reset the keycode: http://support.businessobjects.com/library/kbase/articles/c2012716.asp.  You will have to register your CR .NET again when you open a report in Visual Studio.


Something else to check is that all the versions of the referenced components are correct.  In my recent case, I was preparing for a demonstration on my laptop.  I had installed CR 10 before installing Visual Studio 2003.  When I created my demo project in Visual Studio, all of the referenced Crystal Decisions components were 9.1.5000.0 except for CrystalDecisions.CrystalReports.Engine.  That component was version 10.0.3300.0.  By deleting this incorrect reference, and adding the correct version, the error was resolved.

Setting Parameters in Crystal Reports .NET

I see this question quite often in the Crystal Reports forum at ASP.NET.  My advice is always to download the web samples at:


Visual Basic .NET Web Samples


C# .NET Web Sample Applications


Then, follow the Readme file to install the “Discrete Parameters” example.  This has been my guide, and it works great.


Additional help and tutorials are in the CR SDK:


Crystal Reports .NET SDK – Additional Conceptual Documentation and Tutorials



This file contains additional conceptual information and tutorials for using Crystal Reports in Visual Studio .NET (including a developer reference). This documentation applies to Crystal Reports 9 & 10 and Crystal Reports for Visual Studio .NET 2002 & 2003. Sample applications built using these tutorials are available for download (cr_net_sdk_tutorial_samples_en.zip).


Crystal Reports .NET SDK – Sample Applications from Tutorials



This file contains C# and VB .NET Windows and web sample applications. These samples were built using the tutorials provided in the ‘Crystal Reports .NET SDK – Additional Documentation and Tutorials’ (cr_net_sdk_additional_en.zip). These sample applications applies to: Crystal Reports 9 & 10 and Crystal Reports for Visual Studio .NET 2002 & 2003.  


A number of methods out there use the CrystalReportViewer control to set parameters.  That’s great unless you need to export your report to PDF (or XLS or RTF).  This is a code snippet I use, which sets parameter values directly on the Report Document object:



  rptCount = New ReportDocument
  rptCount.Load(Server.MapPath(“reportname.rpt”))

  ”Get the collection of parameters from the report
  crParameterFieldDefinitions = rptCount.DataDefinition.ParameterFields
  ”Access the specified parameter from the collection
  crParameter1 = crParameterFieldDefinitions.Item(“Param1”)
  crParameter2 = crParameterFieldDefinitions.Item(“Param2″)


  ”Get the current values from the parameter field.  At this point
  ”there are zero values set.
  crParameter1Values = crParameter1.CurrentValues
  crParameter2Values = crParameter2.CurrentValues


  ”Set the current values for the parameter field
  crDiscrete1Value = New ParameterDiscreteValue
  crDiscrete1Value.Value = Request.Form(“param1value“)


  crDiscrete2Value = New ParameterDiscreteValue
  crDiscrete2Value.Value = Request.Form(“param2value“)


  ”Add the first current value for the parameter field
  crParameter1Values.Add(crDiscrete1Value)
  crParameter2Values.Add(crDiscrete2Value)


  ”All current parameter values must be applied for the parameter field.
  crParameter1.ApplyCurrentValues(crParameter1Values)
  crParameter2.ApplyCurrentValues(crParameter2Values)



Once you get used to working with parameters, you can “automagically” display them on your web pages.  This series of articles shows you how to get a list of parameters from your report file, and display them on your web form, where you can prompt for inputs:


Automagically displaying a Crystal Reports Parameters – Part I
Automagically displaying a Crystal Reports Parameters – Part II
Automagically displaying a Crystal Reports Parameters – Part III


If you’re new to Crystal Reports .NET, get this book:


Crystal Reports .NET Programming


It is both an introduction to Crystal Reports .NET, as well as a object model programming guide/reference.  Examples are in both VB.NET and C#.