Crystal reports 为Crystal报表向数据集(xsd)添加列
我正在处理一个报告,需要向其中一个数据集和RPT文件中添加一列,但是当我尝试修改数据集时,我得到一个错误,即指定的表不存在。当我在代码中查看时,似乎最初有一个用于此目的的表,但这种方法已被放弃,现在改为使用附加到报表的代码中的数据集 我的问题是,我需要在报表中添加这个新列,而我似乎无法以某种方式对数据进行处理,以便我可以将我的新字段拖到报表上,因为我找不到所需的数据集部分,因为它不像以前那样存在,而代码内数据集现在取代了它 有没有人能为我指明正确的方向,让我知道如何让这一切顺利进行 更新: 这大概就是我的数据集进入Crystal报表的方式Crystal reports 为Crystal报表向数据集(xsd)添加列,crystal-reports,dataset,Crystal Reports,Dataset,我正在处理一个报告,需要向其中一个数据集和RPT文件中添加一列,但是当我尝试修改数据集时,我得到一个错误,即指定的表不存在。当我在代码中查看时,似乎最初有一个用于此目的的表,但这种方法已被放弃,现在改为使用附加到报表的代码中的数据集 我的问题是,我需要在报表中添加这个新列,而我似乎无法以某种方式对数据进行处理,以便我可以将我的新字段拖到报表上,因为我找不到所需的数据集部分,因为它不像以前那样存在,而代码内数据集现在取代了它 有没有人能为我指明正确的方向,让我知道如何让这一切顺利进行 更新: 这大
private Sub ShowReport()
Dim dsStatsForPlanned As DataSet = Nothing
dsStatsForPlanned = DirectCast(Session(CreateSessionKey()), DataSet)
plannedProductRpt.SetDataSource(dsStatsForPlanned)
End Sub
我在来自会话的数据集中添加了所需的附加字段,但我试图使用Designer将该附加字段添加到报表中,当我尝试重新构造或更改数据源时,Designer告诉我该表不存在,可能是因为该表仅存在于内存中,我的方法是在Crystal之外实际修改数据。因此,无论这意味着更改查询还是更新.xsd,您都需要在其中添加列。然后在Crystal Reports中,您将转到菜单栏中的“数据库”,如果您的数据源/位置没有更改,请选择“验证数据库”,如果更改,请选择“设置数据源位置”。重新定义数据源后,新列将显示在数据库字段中,您可以将其拖动到报表中。经过几天的挖掘,找到了许多没有帮助的信息,我终于在2006年的一篇文章中找到了我的问题的答案: 我如何解决我的问题:
- 在文本编辑器中手动编辑XSD文件,并添加所需的列。这使它们在VisualStudio中查看时出现在我的XSD中
- 为XSD运行指定的自定义工具以重新生成数据集。在我的例子中,是MSDataSetGenerator。这列在VS的属性选项卡上,我可以在解决方案资源管理器中右键单击XSD并选择运行自定义工具
- 打开我的RPT文件并运行验证数据库。这最后表明数据库已更改,它正在更新报表,现在我在报表设计器中看到了我的新字段
openwith…