0

我想构建一个工资单报告,用户可以根据需要选择或取消选择列。例如,对于每个员工,用户可以选择代表列表中每一列的复选框,例如 - Nic、净工资、无薪日等任意组合。我认为所有列都在 SP 中返回,并且只显示选定的列。你能给我一些想法怎么做..

4

2 回答 2

0

如果您可以将选定列的组合缩小到可管理的最小值,您可以为每个组合创建一个子报表并抑制除正确的子报表之外的所有子报表。

于 2013-07-16T15:26:15.470 回答
0

提兰。我不知道您可以获得一个水晶报告演示应用程序,它会使您的工作变得更轻松,但如果您被宠坏了选择,我不会感到惊讶。SAP 提供的报表服务软件及其在 Dashboard Design 和 Crystal Server 上的资料可能值得一看(SAP Crystal Reports)。但是,对于您的目的而言,这可能是多余的。

另一种方法是尝试定义“松散”的列(我不知道专业术语!)。我清楚地记得几年前完成了这项工作,但不记得具体细节,也无法再访问该报告(以前的雇主)。本文介绍了这些步骤。它很丑陋并且有一系列缺点(列被压制的巨大差距是一个很大的差距),但它可能会解决你的问题。

这个人在他的报告中创建了通用列,然后动态地构建了他的查询。他的表格仅适用于一份报告,但我认为您可以调整他的解决方案以满足您的需求。

可以利用交叉表来满足您的目的(我认为)。我对这些没有什么经验,但似乎稍作调整可能会允许动态列。

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

希望这可以帮助。

于 2013-07-17T01:50:54.940 回答