2016-01-13 78 views
1

我正在使用VB .NET和Visual Studio Crystal Reports工具。我正在生成一個使用SQL查詢的報告,填充數據表,並根據數據表中的字段值添加數據列。數據表已填充,但不顯示在報告中。我正在使用XSD文件作爲包含SQL查詢字段以及datacolumn字段的報表的數據源。Crystal Reports VB.NET - 使用sql select命令並添加數據列

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

您想爲動態字段生成報告 –

+0

這是一個動態字段。不過,我需要在SQL方面做到這一點。問題在於設置cangrow屬性。該字段最多隻有一個字符,當字段更長時,字段默認爲空。 –

回答

1

上面的代碼不工作,問題是.rpt文件領域內的設置。有一個與它的長度和默認提交問題。

順便說一句,似乎一次dt包含有效的條目 - 其他所有內容都包含在Crystal報表編輯器和.rpt文件中。