2016-01-13 3 views
1

Я использую VB .NET и Visual Studio Crystal Reports Tool. Я создаю отчет, который использует SQL-запрос, заполняет datatable и добавляет datacolumn на основе значений полей в datatable. Данные datatable заполняются, но не отображаются в отчете. Я использую XSD-файл в качестве источника данных для отчета, который содержит поля SQL-запросов, а также поле datacolumn.Crystal Reports VB.NET - используйте команду выбора 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

r u хотите разделить динамические поля для отчета –

+0

Это динамическое поле. Однако я должен был сделать это на стороне SQL. Проблема заключалась в создании свойства cangrow. Поле было не более одного символа, и когда поле было длиннее, поле по умолчанию было равно нулю. –

ответ

1

Приведенный выше код работает. проблема была установка в поле файла .rpt. Там была проблема с его длиной и по умолчанию представления.

Как и в сторону, кажется, что когда-то dt содержит допустимые записи - все остальное попадает в редактор отчетов Crystal и файл .rpt.