![]() |
![]() |
| 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
|
|||
|
|||
|
Gracias Delphius muy amable de hecho si me dieron la guia peroooo no tengo chansilla de leerla, eje...
Bueno mira estoy trabajando con interbase en monousuario y en los eventos de las tablas tengo lo siguiente: tabla del encabezado After Post if (datos.TBLORDENCOMPRA.State=DsEdit) then begin datos.TBLORDENCOMPRASUBTOTAL.Value:=datos.TBLORDENCOMPRASUBTOTAL.Value+importe; datos.TBLORDENCOMPRATOTAL.value:=datos.TBLORDENCOMPRASUBTOTAL.value*0.15; datos.TBLORDENCOMPRA.post; datos.TBLORDENCOMPRA.refresh; end; // calculo importes y totales OnnewRecord cont:=0; renglones:=1; datos.TBLORDENCOMPRASUBTOTAL.Value:=0; datos.TBLORDENCOMPRATOTAL.Value:=0; importe:=0; //inicializo variables en la tabla de detalles.... After post ren:=datos.tordenDetallesNDETALLES.value; DATOS.TBLFOLIOS.Edit; datos.TBLFOLIOSFOLIO.Value:=ren; DATOS.TBLFOLIOS.Post; datos.TBLFOLIOS.Refresh; cont:=cont+1; // tengo el contador para el control de los renglones del dbgrid, ke por cierto sale un error medio extraño aqui. Ademas de controlo los folios Before Post if cont=6 then begin datos.tordenDetalles.cancel; error(); end else if (datos.tordenDetalles.State=dsinsert)then begin datos.tordenDetallesIMPORTE.value:=datos.tordenDetallesCANTIDAD.value*datos.tordenDetallesPU.Value; importe:=datos.tordenDetallesIMPORTE.value; renglones:=renglones+1; datos.TBLORDENCOMPRA.Edit; datos.TBLORDENCOMPRASUBTOTAL.value:=datos.tordenDetallesIMPORTE.Value+datos.TBLORDENCOMPRASUBTOTAL.v alue; datos.TBLORDENCOMPRAIVA.value:=datos.TBLORDENCOMPRASUBTOTAL.Value*0.15; datos.TBLORDENCOMPRATOTAL.Value:=datos.TBLORDENCOMPRASUBTOTAL.value+datos.TBLORDENCOMPRAIVA.value; end; y fnalmente OnNewRecord if (datos.tordenDetalles.eof) then begin datos.tordenDetallesRENGLONES.Value:=renglones; ren:=datos.TBLFOLIOSFOLIO.VALUE; datos.tordenDetallesNDETALLES.value:=ren+1; datos.REL_UN_OCNORDEN.Value:=datos.TBLORDENCOMPRANORDEN.Value; datos.REL_EMP_OCNORDEN.Value:=datos.TBLORDENCOMPRANORDEN.Value; datos.REL_UN_OCNRENGLON.Value:=renglones; datos.REL_EMP_OCNCARgo.Value:=renglones; end; if ((datos.tordenDetallesCANTIDAD.value=0)or (datos.tordenDetallesCANTIDAD.IsNull=true))then begin datos.tordenDetallesCANTIDAD.value:=1; end; if ((datos.tordenDetallesPU.value=0)or(datos.tordenDetallesPU.IsNull=true))then begin datos.tordenDetallesPU.Value:=1; end; y el error ke me sale al tratar de modificar uno de los renglones del dbgrid ke esta relacionado con la tabla detalles es: Proyect LAPIMI.exe raised Exception class EDataBaseError with message 'Tordendetalles: Dataset not in Edit or Insert mode' |
|
#2
|
||||
|
||||
|
Hola
Cita:
|
|
#3
|
||||
|
||||
|
Miss flakita, Caral ya dio una buena pista. Lee lo subrayado en negrita.
El error se debe a que no pusiste en modo de edición el Tordendetalles.
Puedes descanzar un poco y despreocuparte. Es un error muy común... un pequeño despiste. Por otro lado sugiero que te acostumbres a usar las etiquetas delphi. Saludos, |
|
#4
|
|||
|
|||
|
Pues es que ya hice eso, pero en un boton despues de que el usuario ha terminado de ingresar los articulos al dbgrid, pero aun asi me sale el error.... a menos que prepare la tabla para edicion en otro lugar.....
|
|
#5
|
||||
|
||||
|
Bueno ya que sabes esto deberias fijarte si es que antes en otra parte cierras la tabla, y verificar que la tabla este abierta y en modo de edicion antes de ejecutar el resto de codigo que expones, me imagino que tendras un boton aceptar o algo por el estilo con el que guardaras los datos finalmente...
__________________
Web |
|
#6
|
||||
|
||||
|
Hola
Para mi hay mucho evento after y before post, esto enreda el sistema. No se sabe exactamente el proceso que sigue. Me parece que el problema ademas de ahi, esta en que nunca se edita la tabla adecuada, salvo en el evento before post, lo que hace que el sistema no lo entienda. Solucion simple, un dbnavigator y hacer la prueba. Saludos |
|
#7
|
|||
|
|||
|
Tu solucion simple no resulto caral....
|
|
#8
|
||||
|
||||
|
Hola
Bueno miss flakita, como dicen una de cal y una de arena. ![]() ![]() Si tienes un dbgrid conectado a datasource y este a un query, ademas tienes un dbnavigator conectado a un datasource, de que funciona, funciona. ![]() Hay alguno que otro ejemplito por aqui, revisalos ![]() Creo que por los foros hay alguna aplicación completa de facturación y creo que en el ftp del club hay una también, curiosamente funcionan. ![]() ![]() Saludos Flakita |
|
#9
|
|||
|
|||
Me parece que esto esta mal, no debe ser en el evento BeforePost aunque tampoco nos dices de que tabla es ese evento, bueno, como no se como es la estructura de tu programa no me atrevo a asegurarlo, por otro lado que pasa si al tabla TBLORDENCOMPRA no esta en modo de edición? En fin, creo que faltan muchos datos para dar con el problema. Por cierto, ves como se ve diferente el código con las etiquetas?, te sugiero que si no has tenido una chansilla para leer la guía por lo menos edites tu post y pongas las etiquetas a tu código para que se vea mas claro. Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| conectarse a una base de datos a traves de internet | andressanchez | Firebird e Interbase | 3 | 28-12-2006 10:07:09 |
| bases de datos a través de la red | royrogers84 | Varios | 1 | 01-12-2006 17:32:09 |
| Leer datos a traves del COM1 | Sr.Scorpion | Varios | 2 | 31-05-2005 19:47:25 |
| ¿Como puedo mandar Datos a traves del Socket? | juliopag1 | Internet | 1 | 23-04-2004 14:44:05 |
| Capturar datos que llegan a traves de cable de red | txeka | Varios | 3 | 26-08-2003 18:30:48 |
|