Buenos dias compañeros pasa lo siguiente utilizo esta función para hacer consultas tipo SELECT a mi BD(SQL Server utilizo un DSN para conectarme a la misma)
Código:
Public Function Consultar(ByVal cTabla As String, ByVal cCriterio As String, ByRef Registro As DataRow) As Boolean
Dim Sconsulta As String, Fmostrar As Boolean
If cTabla <> vbNullString Then
If cCriterio <> vbNullString Then
Sconsulta = "SELECT * FROM " + Trim(cTabla) + " WHERE " + Trim(cCriterio)
Else
Sconsulta = "SELECT * FROM " + Trim(cTabla)
End If
Adaptador = New Odbc.OdbcDataAdapter(Sconsulta, Conexion)
Sdataset = New DataSet
Try
Adaptador.Fill(Sdataset, cTabla)
Sdatatable = Sdataset.Tables(0)
Registro = Sdatatable.Rows(0)
Fmostrar = True
Catch ex As Exception
MessageBox.Show("Error al extraer los datos de la consulta:" & vbCrLf & ex.Message)
Fmostrar = False
Exit Function
End Try
Else
MessageBox.Show("ERROR al mostrar los registros: Capa de datos, cadena de parámetros vacia", "Aplicativo_Partes", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
Return Fmostrar
End Function
Ahora la forma de acceder a la misma es:
Código:
If Consultar("PM_Refe_Spects AS ps INNER JOIN Part_Master AS pm ON ps.unidad = pm.PRTNUM_01 INNER JOIN PM_Refe_Details AS pd ON ps.unidad = pd.Unidad", "ps.unidad = '" & Me.estructura.SelectedNode.Tag & "' AND pd.Unidad = '" & Me.estructura.SelectedNode.Tag & "'", Registro) Then
'MOSTRAR DATOS DE LA CONSULTA
Me.referencia.Text = Registro("unidad")
Me.ccodigo.Text = Registro("codigo_comodidad")
Me.planta.Text = Registro("codigo_planta")
Me.revision.Text = Registro("revision_refe")
Me.fecha.Text = Registro("fecha_rev")
Me.roriginal.Text = Registro("und_original")
Me.ctarro.Text = Registro("colort")
Me.cscreen.Text = Registro("cscreen")
y asi sucesivamente con los demas datos(textbox), mi pregunta es teniendo en cuenta la forma en que rescato los datos de la consulta como podría generar un reporte en Crystal Report? ya que utilizo esa misma funcion
Consultar() en el mismo formulario para rescatar diversa información que debe ir en el mismo reporte, he estado mirando los ejemplos por internet del uso del crystal pero siempre hacen el reporte creando un Dataset, por proyecto Add Item y demas cosas, pero yo internamente creo el Dataset y el objeto Registro(DataRow) me devuelve los datos de la consulta.
Agradesco sus colaboraciones.
Saludos.