Ayuda con DataReport en Tiempo de Ejecucion
Publicado por Marcos (11 intervenciones) el 07/12/2006 11:01:55
Hola a todos; necesito vuestra ayuda.
Estoy desarrollando una aplicación donde necesito poder cambiar la conexión para los listados a través de DataEnvironment y DataReport pero cuando lanzo el listado me da el siguiente error: "NO SE PUEDIERON OBTENER LOS CONJUNTOS DE FILAS DEL ORIGEN DE DATOS ACTUAL"
Tengo creado un DataEnvironment llamado 'DE' y un Command llamado 'CabeceraAlbaranCliente' que a su vez tiene otro Command Secundario llamado 'LineasAlbaranCliente'
También tengo creado un DataReport llamado 'DataReport1'
Cuando lanzo el listado hago lo siguiente:
Dim SqlConnection as string
Dim Sql as string
SqlConnection = "Provider=SQLOLEDB.1;"
SqlConnection = SqlConnection & "Integrated Security=SSPI;"
SqlConnection = SqlConnection & "Persist Security Info=False;"
SqlConnection = SqlConnection & "Initial Catalog=" & Apli_BaseDatos & ";"
SqlConnection = SqlConnection & "Data Source=" & Apli_Servidor
If DE.Connection.State = 1 Then
DE.Connection.Close
End If
DE.Connection.ConnectionString = SqlConnection
DE.Connection.CursorLocation = adUseClient
Sql = "SHAPE {SELECT CabeceraAlbaranCliente.* FROM CabeceraAlbaranCliente ORDER BY EjercicioAlbaran, SerieAlbaran, NumeroAlbaran} AS CabeceraAlbaranCliente APPEND ({SELECT LineasAlbaranCliente.* FROM LineasAlbaranCliente ORDER BY Orden, LineasPosicion} AS LineasAlbaranCliente RELATE 'CodigoEmpresa' TO 'CodigoEmpresa','EjercicioAlbaran' TO 'EjercicioAlbaran','SerieAlbaran' TO 'SerieAlbaran','NumeroAlbaran' TO 'NumeroAlbaran') AS LineasAlbaranCliente"
DE.Commands("CabeceraAlbaranCliente").CommandType = adCmdText
DE.Commands("CabeceraAlbaranCliente").CommandTimeout = 30
DE.Commands("CabeceraAlbaranCliente").CommandText = Sql
With DataReport1
Set .DataSource = DE
.DataMember = "CabeceraAlbaranCliente"
With .Sections("Albaran_Cabecera")
.Controls("txtNumeroAlbaran").DataMember = "CabeceraAlbaranCliente"
.Controls("txtNumeroAlbaran").DataField = "NumeroAlbaran"
End With
With .Sections("Lineas")
.Controls("txtCodigoArticulo").DataMember = "LineasAlbaranCliente"
.Controls("txtCodigoArticulo").DataField = "CodigoArticulo"
End With
With .Sections("Albaran_Pie")
.Controls("txtImporteLiquido").DataMember = "CabeceraAlbaranCliente"
.Controls("txtImporteLiquido").DataField = "ImporteLiquido"
End With
.Refresh
.Show 1
End With
¿QUE ESTOY HACIENDO MAL?
Estoy desarrollando una aplicación donde necesito poder cambiar la conexión para los listados a través de DataEnvironment y DataReport pero cuando lanzo el listado me da el siguiente error: "NO SE PUEDIERON OBTENER LOS CONJUNTOS DE FILAS DEL ORIGEN DE DATOS ACTUAL"
Tengo creado un DataEnvironment llamado 'DE' y un Command llamado 'CabeceraAlbaranCliente' que a su vez tiene otro Command Secundario llamado 'LineasAlbaranCliente'
También tengo creado un DataReport llamado 'DataReport1'
Cuando lanzo el listado hago lo siguiente:
Dim SqlConnection as string
Dim Sql as string
SqlConnection = "Provider=SQLOLEDB.1;"
SqlConnection = SqlConnection & "Integrated Security=SSPI;"
SqlConnection = SqlConnection & "Persist Security Info=False;"
SqlConnection = SqlConnection & "Initial Catalog=" & Apli_BaseDatos & ";"
SqlConnection = SqlConnection & "Data Source=" & Apli_Servidor
If DE.Connection.State = 1 Then
DE.Connection.Close
End If
DE.Connection.ConnectionString = SqlConnection
DE.Connection.CursorLocation = adUseClient
Sql = "SHAPE {SELECT CabeceraAlbaranCliente.* FROM CabeceraAlbaranCliente ORDER BY EjercicioAlbaran, SerieAlbaran, NumeroAlbaran} AS CabeceraAlbaranCliente APPEND ({SELECT LineasAlbaranCliente.* FROM LineasAlbaranCliente ORDER BY Orden, LineasPosicion} AS LineasAlbaranCliente RELATE 'CodigoEmpresa' TO 'CodigoEmpresa','EjercicioAlbaran' TO 'EjercicioAlbaran','SerieAlbaran' TO 'SerieAlbaran','NumeroAlbaran' TO 'NumeroAlbaran') AS LineasAlbaranCliente"
DE.Commands("CabeceraAlbaranCliente").CommandType = adCmdText
DE.Commands("CabeceraAlbaranCliente").CommandTimeout = 30
DE.Commands("CabeceraAlbaranCliente").CommandText = Sql
With DataReport1
Set .DataSource = DE
.DataMember = "CabeceraAlbaranCliente"
With .Sections("Albaran_Cabecera")
.Controls("txtNumeroAlbaran").DataMember = "CabeceraAlbaranCliente"
.Controls("txtNumeroAlbaran").DataField = "NumeroAlbaran"
End With
With .Sections("Lineas")
.Controls("txtCodigoArticulo").DataMember = "LineasAlbaranCliente"
.Controls("txtCodigoArticulo").DataField = "CodigoArticulo"
End With
With .Sections("Albaran_Pie")
.Controls("txtImporteLiquido").DataMember = "CabeceraAlbaranCliente"
.Controls("txtImporteLiquido").DataField = "ImporteLiquido"
End With
.Refresh
.Show 1
End With
¿QUE ESTOY HACIENDO MAL?
Valora esta pregunta


0