在运行系统中选择或取消选择报告列

时间:2013-07-16 05:42:16

标签: c# winforms crystal-reports

我想构建一个工资单报告,用户可以根据需要选择或取消选择列。例如,对于每个员工,用户可以选择代表列表中每列的复选框,如任意组合中的Nic,Net薪水,Nopay日等。我认为所有列都在SP中返回,并且只显示选定的列。可以请您让我知道如何做到这一点..

2 个答案:

答案 0 :(得分:0)

如果可以将所选列的组合缩小到可管理的最小值,则可以为每个组合创建子报表,并禁止除右边的所有子报表。

答案 1 :(得分:0)

提兰。我不知道你能得到的水晶报告演示应用程序会让你的工作变得更轻松,但如果你被宠坏了,我也不会感到惊讶。 SAP提供的报告服务软件及其在Dashboard Design和Crystal Server上的材料可能值得关注(SAP Crystal Reports)。但是,对于您的目的,这可能是过度的。

另一种方法是尝试定义“松散”列(我不知道专业术语!)。我清楚地记得几年前就把它拉下来了,但是不记得具体细节,也不再能够访问报告(以前的雇主)。 This article涵盖了这些步骤。它很丑陋并且有一系列的缺点(柱子被压制的巨大差距很大),但它可能会解决你的问题。

This guy在其报告中创建通用列,然后即时构建其查询。他的形式仅适用于一份报告,但我认为你可以根据自己的需要调整他的解决方案。

Cross-tabs可能会被利用以满足您的目的(我认为)。我对这些经验不多,但似乎有点调整可能允许动态列。

更好的替代方案(到目前为止)是在您的演示文稿中处理此问题。你已经标记了WinForms和C#,所以我可以假设你创建了一个带有报表查看器的win应用程序。假设您在报表中定义了数据集,您的代码应该能够通过查看报表的DataDefinition来处理运行时列的创建(或抑制/启用和重新定位)。我已经读过在运行时创建列在某种程度上取决于我只能猜测的CR / VS版本。

希望这有帮助。