我正在使用VB .NET和Visual Studio Crystal Reports工具。我正在生成一个使用SQL查询的报表,填充数据表,并根据数据表中的字段值添加数据列。数据表已填充,但不会显示在报表上。我使用XSD文件作为报告的数据源,其中包含SQL查询字段以及datacolumn字段。
Dim sqlAdapter As New SqlDataAdapter()
Dim dt As New DataTable
sqlAdapter.SelectCommand = New SqlCommand(SELECT * FROM [database], validConnectionString)
sqlAdapter.Fill(dt)
Dim addedColumn As New DataColumn ("addedColumn", Type.GetType("System.String"))
dt.Columns.Add(addedColumn)
'Logic to fill the column (tested and used without fail throughout other parts of project)
Dim bsv As New CRReportViewer 'class type that works for all other reports
Dim rpt As New CompletedReport 'class type that follow pattern that works elsewhere
bsv.DataContext = Me
rpt.SetDataSource(dt)
bsv.ReportViewer.ViewerCore.ReportSource = rpt
bsv.Show()
如果我插入类似' MsgBox(dt.Rows(0).Item(" addedColumn)),我会得到一个有效值。但是,该值并未出现在报告中。 SelectCommand中的所有内容都没有问题。
答案 0 :(得分:1)
以上代码确实有效。问题是.rpt文件字段中的设置。它的长度和默认提交存在问题。
顺便说一句,似乎一旦dt包含有效条目 - 其他一切都属于Crystal报表编辑器和.rpt文件。