![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
¿Podrías aclarar? // Saludos |
|
#2
|
|||
|
|||
|
Claro roman!
![]() el codigo anterior esta en el segundo formulario de donde quiero extraer los datos y pasarlos al primer formulario que seria REFIGERIO, como sabras mucho mas que yo, ese es el evento DblClick, para cuando yo seleccione una celda, entonces en esta parte procedure TProducto_factura.DBGrid1DblClick(Sender: TObject); begin Refigerio.TfacturadCODIGO_PRO.Value := Table1ID_PRODUCTO.Value; Producto_factura.Close; end; Que solamente me pasaria el valor de el campo Id_producto a Codigo_pro y aqui cuando hago el doble click no me hace nada...osea, ningun dato se inserta en el primer dbgrid de mi primera forma REFIGERIO..... (Este procedimiento lo pongo en el segundo formulario, de donde extraere los datos, no se si hay otra forma manito para hacer esta accion que deseo!!, si crees que hay otra forma, por favor participamela, soy novato, pero tal vez pueda entender tu hilo!!) Gracias Anticipadas!! |
|
#3
|
|||
|
|||
|
Hola Mickey:
He leido tu problemilla, me parece que quieres guardar el valor del ID_PRODUCTO en CODIGO_PRO. Correcto?, si es así, tu error es sencillo. Primero, cuando trabajas en un DBGrid, y este está relacionado a una Tabla, el puntero del DBGrid es el mismo de la Tabla, es por ello que puedes leer el valor actual del registro. Hasta allí vas bien. Ahora en el otro Form, supondo que la tabla Tfacturad esta en Open. La línea que te faltaría antes de la asignación del valor es el Insert, o Edit, pues sino, la asignación no tiene ningún efecto, luego colocaría el Post. Con esas dos lineas creo que puedes solucionar tu problemas.
__________________
Saludos, Freddy Kuong Arequipa-Perú |
|
#4
|
|||
|
|||
|
Hola freddy!
Aqui esta el error que ahora me muestra este modulo cuando desde el form2 selecciono una de las celdas del DBGrid. esto es lo que tengo en el codigo. procedure TProducto_factura.DBGrid1DblClick(Sender: TObject); begin refigerio.Tfacturad.Insert; Refigerio.TfacturadCODIGO_PRO.Value := Producto_factura.Table1ID_PRODUCTO.Value; refigerio.Tfacturad.Post; Producto_factura.Close; end; y este es el error que me da ahora cuando doy doble click en la celda para que me inserte los datos en el primer form! Project MEGANET.EXE raised exception class DataBaseError with message 'Fiel 'CODIGO' cannot be modified. Entiendo que lo que me dice es como que estoy tratando de modificar el campo CODIGO, pero este campo esta es de tipo (autoincrementado), osea que no se que pasa ahi. Gracias Anticipadas!! |
|
#5
|
||||
|
||||
|
ok por lo visto ya tenemos el problema, y dejame decirte que nunca vas a poder hacer eso, el campo autoincrement es un valor de solo lectura que el BDE lo crea al dar un insert y luego no podra ser modificado, si quieres hacer ese proceso deberas cambiar la estructura de la tabla y no colocarlo autoincrement sino integer, yo por lo general recomieno tratar de evitar este tipo de campo y llevar una tabla de contadores, que en el evento onnewrecord podrias asignarlo, suerte
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
#6
|
|||
|
|||
|
Hola eduardo!!
Osea, la tabla Facturah tiene un campo CODIGO (autoincrement), pero el campo codigo_pro, que es en dondde quiero insertar el nuevo valor del form2 no es autoincrementable, sino numerico como me acabas de decir.....osea, este campo CODIGO (autoincrement) es solo para relacionarlo con el campo codigo de la tabla Facturah.... Gracias! |
|
#7
|
||||
|
||||
|
Si lo que quieres es crear en el segundo DBGrid un registro enlazado a la primera tabla con el campo cogido (que en ambos casos creo que es autoinc) tienes que convertir el campo (Refigerio.TfacturadCODIGO_PRO) en la segunda tabla en un campo integer y en el evento Refigerio.OnNewRecord de la segunda tabla asignas el campo codigo a Producto_factura.Table1ID_PRODUCTO.Value
Refigerio.TfacturadCODIGO_PRO.Value := Producto_factura.Table1ID_PRODUCTO.Value; Si haces esto cada vez que incluyas un registro en la segunda tabla quedará con el código del registro activo en la primera tabla. Espero q esto te sirva.
__________________
Sitrico |
|
#8
|
|||
|
|||
|
La verdad que lo he intentado entender y no me aclaro mucho de qual puede ser tu problema realmente.
Pero un par o tres preguntas 1.¿Es en esta linea cuando te da el error?¿Porque has debugueado no? Refigerio.TfacturadCODIGO_PRO.Value :=Producto_factura.Table1ID_PRODUCTO.Value; 2.Si en Refigerio.TfacturadCODIGO_PRO.Value := pones otro valor que no sea de Producto_factura(es decir de la tabla del form1), pones un valor , no se, 12 mismo.¿Tambien te da error? 3¿Tu finalidad, es que al hacer doble click en el grid del form2, te haga un insert en la tabla del form2 con datos de la tabla del form1? Saludos
__________________
La victoria tiene cien padres. La derrota es huérfana (Napoleón). |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|