首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有条件地显示Crystal报表

有条件地显示Crystal报表
EN

Stack Overflow用户
提问于 2012-05-10 17:38:25
回答 3查看 673关注 0票数 -1

我想有条件地显示水晶报表。这意味着如果数据库表的字段值= 'true‘,则只显示报表,否则不显示报表。我想保护crystal reports文件不被未经授权的用户访问。如果我没有访问源代码的权限,我如何实现这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-10 19:42:36

您将无法限制对Crystal Report的访问,除非托管它的应用程序支持它。如果您有权访问其源代码,则可以编写所需的安全性代码。

否则,您所能做的最好的事情就是限制数据。但是,这可能会使用许可证。

我建议您阅读应用程序文档中的详细说明,看看查看报告是否真的使用了CR许可证。

**编辑**

由于您可以访问源代码,因此只需根据数据库字段的值隐藏/显示生成报告的UI元素。

票数 1
EN

Stack Overflow用户

发布于 2018-02-10 12:03:53

如果应用程序级别的解决方案不可用,请尝试创建一个SQL表达式字段以从数据库表中获取布尔值。No在每个节中放置一个隐藏公式当数据库值为false时,将禁止显示该节。

出于礼貌,您可能希望添加一个包含文本元素“此报告未获得许可”或类似内容的部分,该部分仅在数据库值为true时才会被隐藏。这样,用户就不会认为空白页有误。

票数 2
EN

Stack Overflow用户

发布于 2012-05-11 10:57:52

这可能不是一个答案,但是我们做了一些类似的事情。我们有不同的客户在使用我们的报告应用程序(在C#中完成并使用CR)。我们的大多数报告对我们的所有客户都是可用的,但也有一些客户有自己的报告,这些报告只针对他们的需求,对任何其他客户都没有意义。

我们通过在RPT上设置一些属性来控制这一点。这就是我们要做的。

1)右键单击xyz.rpt文件并转到高级选项卡2)将Keyword属性设置为Customer=123 (这是客户在我们的数据库中的唯一编号)。3)对于通用报表,不设置此属性并将其留空。4)我们的数据库中有一个Reports表,其中有一个名为Customer的列。这用于检查报告是通用的还是特定的。

我认为这不会有任何帮助,但我只是想分享。因为这是我们使用数据库值隐藏和显示报告所做的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10531282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档