Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ayuda con dataenvironment

Estas en el tema de ayuda con dataenvironment en el foro de Visual Basic clásico en Foros del Web. Hola, buenas tardes, uso un data report y un dataenvironmente que me funciona correctamente, para llamar al data report hago dataenvironment.facturas q es como en ...
  #1 (permalink)  
Antiguo 05/03/2009, 07:27
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
ayuda con dataenvironment

Hola, buenas tardes, uso un data report y un dataenvironmente que me funciona correctamente, para llamar al data report hago dataenvironment.facturas q es como en este caso se llama mi comando, pero resulta que cuando quiero volver a imprimir ese mismo listado sin cerrar la aplicacion me da un error y me dice que el objeto está ya abierto. Entonces estoy intendando que despues de cada llamada al report se cierre la conexino o algo para que no me de el error, pero no se bien como hacerlo.... si alguien me pudiese ayudar....

GRacias
  #2 (permalink)  
Antiguo 05/03/2009, 09:08
 
Fecha de Ingreso: febrero-2009
Ubicación: Villa Ocampo - Santa Fe
Mensajes: 100
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: ayuda con dataenvironment

pon el código para ver...... tengo un par de ejemplos con DataEnvironment
  #3 (permalink)  
Antiguo 06/03/2009, 01:07
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: ayuda con dataenvironment

ok, el código es éste, siendo conexion el nombre de mi dataenvironment y factura_detalle el nombre de un comando:

Private Sub imprimir_Click()
Dim sql As String

sql = "select coste_total from facturas where id_factura= " & idFactura.Text
Set rs = Cn.Execute(sql)


Conexion.factura_detalle idFactura.Text

report.TopMargin = 0
report.BottomMargin = 0
report.LeftMargin = 5
report.RightMargin = 0

report.Sections("fact").Controls("idfactura").Capt ion = idFactura.Text
report.Sections("fact").Controls("fecha").Caption = fecha
report.Sections("totales").Controls("coste").Capti on = rs.Fields("coste_total")
Load report
report.Show

End Sub


Y lo que no se es como se puede cerrar la conexion que se queda abierta, he intentao hacerlo con la propiedad State, pero no me deja, me dice que no es válido para la propiedad de solo lectura, y le cambio las propiedades a la conexion pero tampoco me deja....

Gracias.
  #4 (permalink)  
Antiguo 06/03/2009, 03:38
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ayuda con dataenvironment

Hola,

Al generar el DataEnvironment éste crea automáticamente un recordset asociado al objeto Command, éste lo nombra anteponiendo "rs" al nombre asignado a Command (en tu caso rsfactura_detalle), éste es el que tienes que cerrar.

Si siempre vas a utilizar el mismo DE para el DataReport, es mas eficiente enlazarlo en diseño piniendo en la propiedad DataSource el nombre del DE y en DataMember el nombre del comando y en sección 'Detalle' a cada rptTextBox asignarle el nombre del campo en la propiedad DataField y el nombre del Command en la propiedad DataMember. Con esto el código quedaría así:

Código Visual Basic:
Ver original
  1. Private Sub imprimir_Click()
  2. Dim sql As String
  3.  
  4. sql = "select coste_total from facturas where id_factura= " & idFactura.Text
  5. With conexion.rsfactura_detalle
  6.     If .State Then .Close
  7.     .Open sql
  8. End With
  9. report.Show vbModal, Me
  10.  
  11. End Sub

Saludos
  #5 (permalink)  
Antiguo 06/03/2009, 04:06
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: ayuda con dataenvironment

Hola, así me da error, pero creo q es porque no le paso el parámetro que yo metí en la query del command, yo antes lo llamaba así:
Conexion.factura_detalle idFactura.Text

y luego digo pues lo voy a poner en el codigo que me has pasado, pero me da error que no se puede poner con el with:

Private Sub imprimir_Click()
Dim sql As String
sql = "select coste_total from facturas where id_factura= " & idFactura.Text
With conexion.rsfactura_detalle
If .State Then .Close
.Open sql
End With
report.Show vbModal, Me
End Sub

si yo pongo With conexion.rsfactura_detalle idFactura.text
me da error...., como le podría pasar el parámetro entonces....

Muchas gracias.
  #6 (permalink)  
Antiguo 06/03/2009, 04:20
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ayuda con dataenvironment

Cita:
Iniciado por anadelaisla Ver Mensaje
Hola, así me da error, pero creo q es porque no le paso el parámetro que yo metí en la query del command, yo antes lo llamaba así:
Conexion.factura_detalle idFactura.Text

y luego digo pues lo voy a poner en el codigo que me has pasado, pero me da error que no se puede poner con el with:

...
Y.. ¿qué error te da?

(Número y descripción)

  #7 (permalink)  
Antiguo 06/03/2009, 04:26
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: ayuda con dataenvironment

El error que me da es de compilación, al yo escribir :
With Conexion.rsfactura_detalle idFactura.text
me dice Error de compilacion, se esperaba fin de la instrucción y me sale seleccionado el idFactura.
Por eso digo que será que no me deja ponerlo con el with, pero no se por qué, ni que fin de la instruccion puede faltar....

Gracias!
  #8 (permalink)  
Antiguo 06/03/2009, 05:19
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ayuda con dataenvironment

¿Has probado con el código que te pasé?

With Conexion.rsfactura_detalle

(sin idFactura.text)

Si es así, ¿te sale algún error?

  #9 (permalink)  
Antiguo 06/03/2009, 05:30
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: ayuda con dataenvironment

Si, así tb lo probé y me da error y me dice que no se encuentra el DataField factura_detalle.claveproducto ... pero a lo mejor es pq no le paso el parámetro al command que me hace la query no?
  #10 (permalink)  
Antiguo 06/03/2009, 05:38
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ayuda con dataenvironment

¿Hiciste lo que indiqué en la respuesta nº 4?

Si siempre vas a utilizar el mismo DE para el DataReport, es mas eficiente enlazarlo en diseño poniendo en la propiedad DataSource el nombre del DE y en DataMember el nombre del comando y en sección 'Detalle' a cada rptTextBox asignarle el nombre del campo en la propiedad DataField y el nombre del Command en la propiedad DataMember.

  #11 (permalink)  
Antiguo 06/03/2009, 06:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: ayuda con dataenvironment

si, lo hice, menos lo de la sección detalle, que no se lo q es... :( ni donde está....
  #12 (permalink)  
Antiguo 06/03/2009, 06:39
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ayuda con dataenvironment

Cita:
Iniciado por anadelaisla Ver Mensaje
si, lo hice, menos lo de la sección detalle, que no se lo q es... :( ni donde está....
En el diseño del DataReport, la sección detalle (o Detail si está en inglés) es donde se ponen los rptTextBox que mostrarán los campos de la tabla.

Entre paréntesis Sección1 ó Section1

  #13 (permalink)  
Antiguo 06/03/2009, 06:44
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: ayuda con dataenvironment

ah, si si, que creía q estabas hablando de otra cosa, no te había entendido, lo siento... Si eso lo tengo hecho tb...
  #14 (permalink)  
Antiguo 06/03/2009, 07:34
 
Fecha de Ingreso: febrero-2007
Mensajes: 79
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: ayuda con dataenvironment

listoooooo, ya me ha salidooo, era que me cogía otra query distinta a la que yo quería!!!
Muchas gracias por todoo!!
Saludosss
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:12.