من خودم اول با کوئری که میخوام یدونه datatable می سازم بعد پاسش میدم به گزارش. البته توی گزارش هم dataTable مشابه با همون فیلدها ساختم
 
نمونه کد:
Dim StiReport1 As New Stimulsoft.Report.StiReport()
 StiReport1.Load(Application.StartupPath & "/Reports/Rep1.mrt")
 dt = SQLTools.RunSQL("select * from tblMain", Me.CString)
 
 
در اینجا منظور از Me.CString همون کانکشن استرینگی هست که به دیتابیس وصل میشید.
 
در آخرین مرحله دیتاتیبل رو وصل می کنیم به گزارش
 
StiReport1.Dictionary.DataSources.Items(0).DataTab  le = dt
StiReport1.RegData("DataSource1", dt)
 
و در نهایت تابعی که کوئری رو میگیره و دیتاتیبل میده:
 
  Public Shared Function RunSQL(ByVal sql As String, ByVal cnnStr As String) As DataTable
            Dim selectConnection As New SqlConnection(cnnStr)
            Using connection2 As SqlConnection = selectConnection
                Dim adapter As New SqlDataAdapter(sql, selectConnection)
                If (Not adapter.SelectCommand Is Nothing) Then
                    adapter.SelectCommand.CommandTimeout = selectConnection.ConnectionTimeout
                End If
                Dim dataTable As New DataTable
                Try
                    selectConnection.Open()
                    adapter.Fill(dataTable)
                Catch exception As Exception
                    MessageBox.Show(exception.Message, "خطاي ارتباط با پايگاه داده", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
                End Try
                selectConnection.Close()
                Return dataTable
            End Using
        End Function