如何防止用户在报表资源管理器中添加/修改/删除DataSource / DataSet

时间:2013-02-08 18:48:07

标签: activereports

据我所知,ReportExplorer似乎没有任何属性可以让我控制这个功能..我使用反射来遍历控件,似乎ReportExplorer继承自UserControl然后有1对它的控制,其类型是ReportExplorer的受保护类成员(称为GeneralExplorer),我试着查看通用资源管理器包含的TreeView,我可以得到一个treenodes,但问题是我似乎无法看到找到一种方法来确定我在哪个节点,并且所有treenode都有一个Tag项目,这又是一些受保护的“常规”包装类..我需要报告资源管理器,因为我的用户必须能够导航他们的文档并拖动/删除列等。我似乎创建我的“自己的”报告资源管理器树是因为我无法获得正确的拖放项目,以使设计师行为正常...任何想法?我是这样努力的吗?

1 个答案:

答案 0 :(得分:1)

我认为从长远来看,编写自己的ReportExplorer是最佳选择,因为您可以最大限度地控制事物。处理阻力&在旧版本的AR中曾经有过这种情况。有关其工作原理的详细信息,请参阅this article。您可以尝试使用此版本的方法(即自己处理DragOver事件)。

如果这些事件不起作用,请拖动& Drop非常重要,请联系ComponentOne支持,看看他们是否会为您提供有关什么样的拖放信息的信息。删除您需要放入拖动事件的数据以使设计表面响应。和/或询问他们是否会恢复上述文章中的行为。

另一种选择是在应用程序中添加一些按钮,例如“插入文本框”,当用户单击它时,您可以通过编程方式将该项添加到报表中。对我们来说,一开始这看起来很粗糙,但根据我的经验,拖拉和放大drop对于最终用户来说并不是那么直观,所以它可能是一个完全可以接受的选择。这取决于你的用户,你知道更好的方法。