![]() |
![]() |
| 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
|
|||
|
|||
|
Continuo en lo mismo
Muchas gracias por su ayuda, pero aun sigo con el mismo problema, probe lo que me sugirieron y nada. No he entendido como es que debo hacer referencia a los valores en cada campo, ya trate de la siguiente manera:
NombreComponenteTTableNombredelCampo.Value:=NombreComponenteTTableNombredelCampo.Value*...... por ejemplo: TablaPInicio.Value:=TablaPCantidad.Value*TablaPPrecio.Value; manda mensaje diciendo que TablaPInicio no esta declarado. Y de esta otra forma: TablaP['inicio'].Value:=TablaP['Cantidad'].Value*TablaP['Cantidad'].Value; Tambien de esta forma: TablaP['inicio'].AsFloat:=TablaP['Cantidad'].AsFloat*TablaP['Precio'].AsFloat y en ambos casos manda el siguiente error "Variant does not reference an automation object" En otra parte del programa donde se capturan los datos de clientes, empleo lo siguiente: Tabla.FieldByName('Nombre').AsString:=ENombre.Text; y me trabaja muy bien, trate con esto y nada. Elimine todo del form y comence nuevamente pero sigue lo mismo, estoy que me jalo los pelos, bueno ya me los arranque, que puede ser????. Gracias por su ayuda, si tuvieran alguna idea de lo que pasa, se los agradesco como no tienen idea, que me lo hagan saber. |
|
#2
|
||||
|
||||
|
Como bien dices hay 400 formas de acceder a un campo. La que se está usando en este hilo debe seguir una pequeña norma.
das doble clic en la tabla, boton derecho y añadir campos (tener todos los campos ahí es lo que se conoce como "Campos persistentes"). Despues de esto, Si la tabla está en un datamodule llamado DTM y la tabla se llama Table1 y el campo CostoCompra haremos referencia como: DTM.TAble1CostoCompra.AsXXX Añadir que si usas Value estarás trabjando con tipos Variants, si pones AsXXXX usarás el tipo concreto que quieras, para este caso, creo conveniente usar AsCurrency o AsFloat Saludos Un detalle más, si modificas el nombre de un campo en la base de datos, o bien creas uno nuevo, deberás volver a añadir los campos persistentes para que Delphi se actualice. Última edición por Lepe fecha: 04-11-2004 a las 11:34:18. |
|
#3
|
|||
|
|||
|
De ninguna forma.....
Gracias por su ayuda, pero continuo con el mismo problema.
Estoy haciendo lo que me han indicado en un nuevo proyecto, para evitar vicios que tenga en el proyecto anterior. Tengo una tabla "Operaciones.db" y un componente TTable "Table1" en la form y un "DBGrid1", los campos de la tabla son: Nombre, Salario, Dias, Neto. Capturo nombre, salario y dias y nada que se actualiza el campo "Neto" con la operacion de Salario*Dias, lo hago de la siguiente forma: Table1Neto.AsInteger:=Table1Salario.AsInteger*Table1Dias.AsInteger; con lo que me da el siguiente error: [Error] Unit1.pas(46): Undeclared identifier: 'Table1Neto' Que estoy haciendo mal???? Gracias. |
|
#4
|
||||
|
||||
|
Pues el error está bien claro, o el componente Ttable, no se llama Table1 o bien el campo en cuestión
no se llama neto. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#5
|
|||
|
|||
|
Lo he verificado
Gracias Marcos, pero en efecto son sus nombres, de hecho pense en esa posibilidad y después de verificar 2 ocaciones opté por seleccionar copiar y pegar los nombres y adivina... lo mismo, ya no me da error (algo que movi...) pero no pasa nada en la tabla.
|
|
#6
|
|||
|
|||
|
Mira a ver si el error esta en los campo persistentes
Pues eso que revises los campos persistentes del tTable,
de todas formas el codigo lo tienes que situar en el evento beforepost del tTable Un Saludo Cita:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|