Thursday, March 22, 2012
Crystal Reports and Objects
I then have an object called customer. which holds customers details
These are all in a project called project1 in visual studio 2005
I have another project project 2 with my forms etc and a crystal report.
This project has a reference to project1 however when in my crystal report is it possible for me to use the vehicle object and subsequent customer object as the source for the data and if so how is this done.If both points to same database then you can design the report having the data from those objects
Wednesday, March 7, 2012
Crystal Enterprise and massive report distribution to multiple destinations?
Before we have used Oracle Reports for our application.
Now, customer wants to move to Crystal Reports.
The Oracle Report Server provided a great and rather simple interface for printing many reports in short time and sending them to multiple destination.
So, we had a function to run report and provided report definition file (.rpt for crystal reports), a destination (printer, mail(s), pdf, etc.) and some auth information as parameters and started distribution easily.
Does Crystal Reports or Crystal Enterprise provides such an interface?!
I've looked into the documentation yesterday and this morning but couldn't find anything simple and appropriate. I see there's Report Job Server and Page Job Server, which I assume provide some kind of queueing, but what is the interface to these servers? Is it simple and easy to use for massive report distribution to different locations?
I'm not interested in preview at all. Just need a lot of 'End of day' reports to printer and to files/emails. Also, I would like to have a central reporting service in my application which would forward print requests to report server and I don't need to use UI controls in my clients (Win and Web Forms). I would like that clients only send the report, auth and destination details and that the central reporting service forward the request to report job server.
How can Crystal Reports/Enterprise help me?Enterprise is a WEB based report server
You can schedule as many reports you want, with different scope fo each of them.
You can add all your user to the enterprise server and decide if they can only view, generate, schedule reports they can access.
You can use Windows authentication or Enterprise authentication, create group, assign privileges per group ( in fact by objects... user, report, group, viewver, scheduler...)
ask your nearest dealer to show you an installed application, I think that's the best...
Luc
Friday, February 24, 2012
Cross-dimension Security Dilemma
Here are my simplified security requirements:
1. The cube has a Customer dimension (some 150,000 members) and Account dimension (over 1 mil members). A customer can have one or more accounts.
2. Complex security rules in the operational database dictate which customers the user can view based on her identity and application role membership. Therefore, I need to implement dynamic security to retrieve the allowed set of the customer members from the source database.
3. Instead of retrieving the allowed members for the other dimensions, I would like to propagate the security filter of the Customer dimension, e.g. to the Account dimension, so the user could only see the accounts of the allowed customers.
What’s the recommended approach to implement this? I tried EXISTS on the Account dimension but I still get all accounts.
EXISTS ([Customer].[Customer].[Customer].Members,
[Account].[ Account].[ Account].Members, 'Accounts')
However, if I use this expression in an MDX query, I get indeed the allowed accounts only. It seems like the security filter is applied before the Customer allowed set filter is constructed.
When expressions for dimension security are evaluated, they are evaluated in the context which doesn't have any restrictions. There is a very detailed blog which describes every step during cube initialization, including the context for dimension security - http://sqljunkies.com/WebLog/mosha/archive/2005/12/31/cube_init.aspx
You will have to do Exists with the allowed set of Accounts - sorry that's your only option here.
|||So sad to hear this. Essentially, with dynamic security this wil require several calls to security layer to get the allowed set filter. It could have been nice if there was [Hierarchy].AllowedMembers/[Hierarchy].DeniedMembers to address such scenarios. Even better, it could have been nice if there was an option to apply a global allowed set filter (similar to setting a filter in the cube browser) which will slice the cube across all dimensions.|||I think you should log this suggestion on connect. In the meantime, you may need to implement some caching inside your sprocs if perf of multiple calls becomes a problem.