Podes hacer algo así si tenes todo en un dataset
Dim pFrmReportes As New FrmReportes
Try
Dim mi_rptImprimirOrden As New RptImprimirOrden
Dim obuscar As New DataSet
Dim sr As System.IO.StringReader = New System.IO.StringReader(RecibirString(oWs.ImprimirO rden(orden)))
obuscar.ReadXml(sr)
If obuscar.Tables.Count > 0 Then
'=>seteamos los datos
mi_rptImprimirOrden.SetDataSource(obuscar.Tables(0 ))
mi_rptImprimirOrden.Refresh()
pFrmReportes.crptReport.ReportSource = mi_rptImprimirOrden
pFrmReportes.Text = "Ordene de trabajo"
pFrmReportes.Show() '=>Mostramos el reporte
pFrmReportes = Nothing
End If
Catch ex As Exception
Me.Cursor = Windows.Forms.Cursors.Default
MessageBox.Show(ex.Message, "Impresíón", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Yo lo que hago, es tambien tenerlo en un dataset como ves, pero no en memoria, si no que agrego al proyecto un dataset pero como un elemento (item)
Luego desde el rptImprimirOrden le paso ese dataset como data para tomar los fields y listo ;)
suerte, espero haberte ayudado