Hi all - thanks to everyone who helped with my other thread...

Decided to go down the route of the stored procedure. This works fine and I can populate a datagrid with the results.

I created a dummy datadapter with the fields that would be produced by my stored procedure and created a dataset (dsyearlyturnover) to be filled by my stored procedure. I then created a crystal report from that dataset but I cannot seem to get any data picked up on it... the datagrid fills out fine so I know the data is there:

VB Code:
  1. Me.DsYearlyTurnover1.Clear()
  2.         Dim orpt As New rptyearlyturnover()
  3.  
  4.         Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand("sp_invoices", SqlConnection1)
  5.  
  6.         sqlCommand.CommandType = CommandType.StoredProcedure
  7.         sqlCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@clientid", Me.ComboBox1.SelectedValue))
  8.  
  9.         sqlCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@datefrom", ("04/01/" & Me.ComboBox2.Text)))
  10.         sqlCommand.Parameters.Add(New System.Data.SqlClient.SqlParameter("@dateto", ("03/31/" & CInt(Me.ComboBox2.Text) + 1)))
  11.         'Create a SqlDataAdapter to talk to the database
  12.         Dim da As System.Data.SqlClient.SqlDataAdapter = New System.Data.SqlClient.SqlDataAdapter()
  13.         da.SelectCommand = sqlCommand
  14.  
  15.         'Create a DataSet to hold the results
  16.         Dim ds As DataSet = New DataSet()
  17.         'Fill the Dataset
  18.         da.Fill(DsYearlyTurnover1)
  19.         orpt.SetDataSource(DsYearlyTurnover1)
  20.         Me.CrystalReportViewer1.ReportSource = orpt
  21.         SqlConnection1.Close()

Hopefully a bit easier than my last question

I think I must have missed out something obvious..