Problema con ventanas MDI al acceder a base de datos
Amigos soy nuevo aca y tambien programando en delphi, tengo un problema con mi aplicacion q tiene ventanas MDIchild q lanzo desde un MDIForm padre pero me conecto a la base de datos con un unico data modulo pero con diferentes querys en un FormA tengo un listado de Ventas y su detalle (Maestro detalle) con dos DBGRID, y cuando dejo abierto este, y abro otro formB pero de ventas y luego quiero imprimir la venta me imprime la venta del formulario FormA a donde esta posicionado el puntero, mi pregunta es porque el puntero no es independiente para cada formulario MDI hijo, o como tengo q hacer para q no ocurra este problema, gracias.
|
Me dejaste confundido :confused::confused::confused:
Podrias ordenar un poco tus ideas y explicarte un poco mejor. Saludos |
en los dos formularios el puntero es el mismo apunta al mismo registro de la tabla ventas 155, son forms MDI.
ahi les dejo la imagen |
Cada ventana tiene un dataset independiente o apuntan al mismo???
Serie bueno que detallaras un poco mas el caso |
-en el formulario maestro detalle uso un query.
-En el formulario de venta uso una tabla. pero igualmente sigue el mismo problema, es mas cuando mando el dataset para imprimir lo creo el query y el datasource en tiempo de ejecucion runtime, espero su ayuda. |
Suele ocurrir, sobre todo cuando se hace copiar y pegar, que los DataSources quedan mal "alambrados". Verifica que tus datasources están mirando realmente hacia los datasets que le corresponden. Es solo una sugerencia, me ha pasado.
|
Hola hagsoft.
Cita:
Por lo que se puede apreciar en la imágen de tu mensaje anterior, el TDBGrid y los TDBEdit estan vinculados al mismo TDataSet. O dicho de otra forma, las propiedades DataSource de dichos componentes tienen asignado el mismo TDataSource. Saludos :) |
Gracias a todos por responder, ecfisa: gracias por insertar la imagen, no me dejaba jeje, bueno les explico nuevamente:
en el form maestro detalle, creo el query y tb el datasource de esta manera: myQry:=tQuery.create(self) myds:=tdatasource.create(self) y los vinculo myds.dataset:=myQry. y asi de esa forma en los 2 formulario, pero de igual forma tengo el mismo problema, o estaba pensando si las ventanas MDI permiten acceder desde un mismo data modulo a una tabla de base de datos pero con diferentes punteros para cada ventana abierta. |
Hay varias cosas que no entiendo, será por mi forma de trabajar pero la verdad es que no entiendo qué o cómo lo quieres hacer.
Espero que con mis dudas puedas encauzar la tuya. Un saludo. |
Hola hagsoft.
Cita:
Cita:
Es claro que si en el TDataModule tenes un TDataSet y desde dos forms se vinculan dos TDataSource a ese mismo DataSet, al posicionarse en un registro en un form, se verá reflejada la acción en el otro ya que se trata del mismo TDataSet. Pero si lo que hay en el TDataModule es un componente de conexión a base de datos y se utilizan dos TDataSet diferentes vinculados al anterior y cada uno vinculado la misma tabla, los posicionamientos realizados en uno son independientes del otro. En tu caso y a partir de la imágen me quedan algunas dudas que hacen que no termine de entender la organización: ¿ El problema se te presenta en el reporte ? ¿ De ser así, de donde se obtienen los valores DataSet y FieldName que usan los controles que residen en el formulario del reporeador ? ¿ De la tabla, de la consulta o de una nueva consulta creada en el formulario del reporte filtrada por el envío de algún parámetro ? Saludos :) |
Cita:
UTILIZA UN SOLO DATASOURCE POR PANTALLA, aunque se refieran a la misma tabla. Te ahorrarás muchísimos dolores de cabeza y generarás menos errores... |
obviamente q ya lo habia hecho, para cada pantalla utilizo diferentes tquery y tdatasource, pero de igual manera el puntero es el mismo para cuando quiero ver el reporte, solo pasa cuando quiero ver el reporte, uso fastreports, es mas los tquerys y los tdatasource lo creo en tiempo de ejecucion, aunque la conexion viene de un data modulo q se autocrea junto con el formulario MDI form padre, con los grid no hay problema, pero cuando le paso un query nuevo al resporte, imprime el q esta posicionado en el grid, no se porque el problema, gracias a todos por contestar.
saludos. |
La franja horaria es GMT +2. Ahora son las 23:23:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi