Conexiones vb reprot
Publicado por Prades (2 intervenciones) el 25/06/2008 10:38:13
Hola ha todos, es la primera vez que posteo, pero he leido mucho en foros. Tengo una duda y agradeceriam mucho que alguien me ayudara.
Estoy Haciendo un programa de tickets de compra en vb.net. Quiero conseguir hacerlo funcinar en varios lugares y en distintos sevidores. El problema viene dado cuando le paso los parametros de conexion en timpo de ejecucion al report. Me da el siguiente error "error al Abrir un conjunto de filas" y me sale el crystalreportviewr en blanco. Si la conexion dejo la del report me no me da error.
el codigo es el siguente lo he comentado todo lo que he podido
Dim rpt As New ticket()
Dim paramFields As New ParameterFields()
Dim fieldTicket As New ParameterField()
Dim fieldLinaTicket As New ParameterField()
Dim paramticket As New ParameterDiscreteValue()
Dim paramLineaticket As New ParameterDiscreteValue()
Dim paramList As New ParameterValues()
Dim frmimp As New imprimir()
'variables de connexion en tiempo de ejecucion
Dim Coninfo As ConnectionInfo
Dim ListaTablas As Tables
Dim Tabla As Table
Dim TablaConInfo As TableLogOnInfo
Try
' instanciar objeto para guardar datos de conexión
Coninfo= New ConnectionInfo()
Coninfo.ServerName = "server"
Coninfo.DatabaseName = "bbdd"
Coninfo.UserID = "sa"
Coninfo.Password = ""
' instanciar objeto informe
'obtener la colección de tablas del informe
ListaTablas = rpt.Database.Tables
' para cada tabla
For Each Tabla In ListaTablas
'Cogemos su conexion
TablaConInfo= Tabla.LogOnInfo
' asignamos la conexion
TablaConInfo.ConnectionInfo = Coninfo
' Realizamos los cambios
Tabla.ApplyLogOnInfo(TablaConInfo)
Next
'establecemos el valor de los parametros
paramticket.Value = idTicket
paramLineaticket.Value = idTicket
'indicamos que paramertro del report va a recibir los datos
'y le pasmos el objeto que contiene el valor
fieldTicket.ParameterFieldName = "nroTicket"
fieldTicket.CurrentValues.Add(paramticket)
'lo mismo que el paso anterior pero para el segundo parametro
fieldLinaTicket.ParameterFieldName = "nroTicketLinea"
fieldLinaTicket.CurrentValues.Add(paramLineaticket)
'añadimos los parametros a la coleccion
paramFields.Add(fieldLinaTicket)
paramFields.Add(fieldTicket)
'le pasamos al visor los parametros
frmimp.crw.ParameterFieldInfo = paramFields
'visualizamos el report
frmimp.crw.ReportSource = rpt
frmimp.crw.DisplayToolbar = True
frmimp.crw.ShowExportButton = False
frmimp.crw.ShowGotoPageButton = False
frmimp.crw.ShowGroupTreeButton = False
frmimp.crw.ShowGroupTreeButton = False
frmimp.crw.ShowPageNavigateButtons = False
frmimp.crw.ShowFirstPage()
frmimp.Show()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
por cierto como no se si el crystal report me guarda las relaciones cuando cambio el origen de datos lo que he hecho es quitar las relaciones y arrgalarmelas haciendo coinicir parametros.
Gracias de antemano
Estoy Haciendo un programa de tickets de compra en vb.net. Quiero conseguir hacerlo funcinar en varios lugares y en distintos sevidores. El problema viene dado cuando le paso los parametros de conexion en timpo de ejecucion al report. Me da el siguiente error "error al Abrir un conjunto de filas" y me sale el crystalreportviewr en blanco. Si la conexion dejo la del report me no me da error.
el codigo es el siguente lo he comentado todo lo que he podido
Dim rpt As New ticket()
Dim paramFields As New ParameterFields()
Dim fieldTicket As New ParameterField()
Dim fieldLinaTicket As New ParameterField()
Dim paramticket As New ParameterDiscreteValue()
Dim paramLineaticket As New ParameterDiscreteValue()
Dim paramList As New ParameterValues()
Dim frmimp As New imprimir()
'variables de connexion en tiempo de ejecucion
Dim Coninfo As ConnectionInfo
Dim ListaTablas As Tables
Dim Tabla As Table
Dim TablaConInfo As TableLogOnInfo
Try
' instanciar objeto para guardar datos de conexión
Coninfo= New ConnectionInfo()
Coninfo.ServerName = "server"
Coninfo.DatabaseName = "bbdd"
Coninfo.UserID = "sa"
Coninfo.Password = ""
' instanciar objeto informe
'obtener la colección de tablas del informe
ListaTablas = rpt.Database.Tables
' para cada tabla
For Each Tabla In ListaTablas
'Cogemos su conexion
TablaConInfo= Tabla.LogOnInfo
' asignamos la conexion
TablaConInfo.ConnectionInfo = Coninfo
' Realizamos los cambios
Tabla.ApplyLogOnInfo(TablaConInfo)
Next
'establecemos el valor de los parametros
paramticket.Value = idTicket
paramLineaticket.Value = idTicket
'indicamos que paramertro del report va a recibir los datos
'y le pasmos el objeto que contiene el valor
fieldTicket.ParameterFieldName = "nroTicket"
fieldTicket.CurrentValues.Add(paramticket)
'lo mismo que el paso anterior pero para el segundo parametro
fieldLinaTicket.ParameterFieldName = "nroTicketLinea"
fieldLinaTicket.CurrentValues.Add(paramLineaticket)
'añadimos los parametros a la coleccion
paramFields.Add(fieldLinaTicket)
paramFields.Add(fieldTicket)
'le pasamos al visor los parametros
frmimp.crw.ParameterFieldInfo = paramFields
'visualizamos el report
frmimp.crw.ReportSource = rpt
frmimp.crw.DisplayToolbar = True
frmimp.crw.ShowExportButton = False
frmimp.crw.ShowGotoPageButton = False
frmimp.crw.ShowGroupTreeButton = False
frmimp.crw.ShowGroupTreeButton = False
frmimp.crw.ShowPageNavigateButtons = False
frmimp.crw.ShowFirstPage()
frmimp.Show()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
por cierto como no se si el crystal report me guarda las relaciones cuando cambio el origen de datos lo que he hecho es quitar las relaciones y arrgalarmelas haciendo coinicir parametros.
Gracias de antemano
Valora esta pregunta


0