FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Filtrar Tabla con datos de otra Tabla
Buenas, tengo una duda enorme.
Tengo dos tablas, TABLA1 contiene componentes de una formula (materias primas) y la TABLA2 tiene todos los componentes (materias primas) para crear los productos correspondientes. Cada vez que elijo un producto me muestra cuales son los componentes necesarios, ¿Como puedo "FILTRAR" la TABLA2 para que solo me muestre los componentes que se ven en la TABLA1??? es necesario sea asi, ya que desde hay necesito generar el descuento de STOCK de los componentes y varios productos comparten las mismas materias primas. De antemano muchas gracias... PD: Utilizo Delphi 2010, Zeos 7.0.0, MySQL |
#2
|
||||
|
||||
como tenes organizadas las tablas, porque me parece que podrias poner una tercera.
__________________
Aleca |
#3
|
|||
|
|||
Gestion Tablas
Tengo 3 Tablas:
Tabla1: Nombre Producto. Tabla2: Formula Producto (Materias Primas) con las cantidades necesarias. Tabla3: Materias Primas (Todas) con el STOCK disponible. Cuando selecciono un producto (Tabla1) me muestra (Filtra) las materias primas necesarias para crear/fabricar aquel producto (Tabla2), hasta hay todo OK, pero el problema es que necesito que la Tabla3 me muestre solamente los productos que muestra la Tabla2 (que pueden ser uno o varios) para asi generar el descuento del STOCK restando desde la Tabla2 a la Tabla3, como varios productos comparten mismas materias primas deve ser asi... se entiende???. es lo unico que me falta para poder cerrar esta parte del softy no doy con la solucion aun ... Ante cualquier consulta, sugerencia o ayuda estare atento... mil gracias de antemano. Última edición por Lenny fecha: 21-01-2011 a las 16:28:28. |
#4
|
||||
|
||||
podes recorrer la tabla dos e ir agregandole los productos con la clausala 'or'
algo asi.Aunque la opcion filter no me gusta mucho, habria que armar un sql.
__________________
Aleca |
#5
|
|||
|
|||
Uuuuuuu te pasaste!!!! dejame provarlo y te cuento!!!!
lo de SQL seria muy interesante, pero la verdad, no se trabajar con SQL por eso trabajo solo con "CODIGO" como el que me acabas de dar... muchas gracias nuevamente, lo reviso y te cuento!!! |
#6
|
|||
|
|||
Estimado, no me corre intento ejecutarlo asi:
Me envia dos errores: Código:
[DCC Error] PRODUCBG.pas(67): E2003 Undeclared identifier: 'Filtro' Código:
[DCC Error] PRODUCBG.pas(67): E2015 Operator not applicable to this operand type |
#7
|
||||
|
||||
Lo que tienes que hacer es crear una relación Maestro=Detalle. Para hacerlo, haz lo siguiente:
1. En la TABLA2 establece la propiedad MasterDataset al TDatasource asociado a TABLA1. 2. Nuevamente en TABLA2, establece la propiedad MasterField a "COD_INTERNO" (sin las comillas). COD_INTERNO me imagino que el el campo que indican la relación que tiene un producto con las materias primas. Si tienes un problema, no dudes en comentarlo y dar la mayor información posible del problema. Saludos, Chris |
#8
|
||||
|
||||
Cita:
a ver ahora.
__________________
Aleca |
#9
|
|||
|
|||
Aun No Funciona!!! Help!!!
Estimados, e provado de las dos formas y las dos lansan el mismo error:
"Syntax Error"
Lamento ser tan insistente... espero puedan ayudarme, de antemano gracias!!! |
#10
|
||||
|
||||
Cita:
que es BDATOS ?? TMPrimas ??
__________________
Aleca |
#11
|
|||
|
|||
BDATOS = DataSource
TMPRIMAS = Table3 TMPRIMASF = Table2 Cualquier otra pregunta estoy atento, muchas gracias por tu paciencia... |
#12
|
||||
|
||||
Cita:
BDATOS.DataSet.Eof o (.First, etc) BDATOS.DataSet.FieldByName('CAMPO').AsFloat y si usas Tablas o Querys haces así TMPRIMAS.Eof, TMPRIMAS.Next TMPRIMAS.FieldByName('CAMPO').AsString por ejemplo.
__________________
Aleca |
#13
|
|||
|
|||
Aun sigue el error "Syntax error"
Aun no funciona...
Sigo en lo que me dicen y aun no resulta... ya estoy perdiendo las esperanzas, esto seria el codigo (mas ordenado):
Muy agradesido por la ayuda hasta ahora... cualquier duda estare atento... PD: El COD_INTERNO es ALFANUMERICO por si acaso... Última edición por Lenny fecha: 22-01-2011 a las 16:37:40. |
#14
|
||||
|
||||
Hola
Tal vez no entiendo pero pregunto: Que hace la variable filtro si no contiene nada?. aqui: Filtro := Filtro no contiene nada, o por lo menos no lo veo el los ultimos codigos. Saludos
__________________
Siempre Novato |
#15
|
|||
|
|||
Lo que entendi...
Teoricamente, segun lo que entendi "FILTRO" deveria guarda los componentes de la FORMULA (materias primas) almacenados en la TABLA2 (materias primas necesarias + cantidad necesaria) Previamente Filtrada desde la TABLA1 que contiene el nombre del producto a fabricar, para luego filtrar la TABLA3 (todas las materias primas + Stock) con el resultado de la TABLA2, la idea es que TABLA2 y TABLA3 muestren las mismas materias primas para ver si existe STOCK suficiente antes de generar el pedido y descuento correspondiente...
Tengo todo previamente listo, como generar el descuento, solo me falta esto... si hay otra forma diferente, bienvenido sean todas las sugerencias y ayuda posible!!! Espero no enredar mas las cosas con la explicacion, ante cualquier duda estare atento... Gracias por la paciencia... |
#16
|
||||
|
||||
Hola
Teoricamente estas equivocado. Analicemos tu codigo: Aqui generamos la variable filtro, Vacia:
Aqui decimos que mientras la tabla2 no encuentre su final continue. La variable filtro sigue estando vacia:
Aqui indicamos que filtro (vacio) es igual a Filtro (vacio) mas todo lo demas y que es igual al file Cod_interno de la tabla2 que por ningun lado la veo abierta (supongo se abrio antes):
Aqui decimos que la tabla 1 es igual que filtro vacio.
Ahora: que informacion sacaras de algo vacio?, nada. Por lo tanto me imagino que dara un error de sintaxis. Saludos
__________________
Siempre Novato |
#17
|
|||
|
|||
Muchas gracias Caral, llego al depto y reviso paso a paso lo que me dices, tiene muchisima mas logica lo que tu me dices que lo que yo creo saber... Apenas lo revise te cuento como me fue...
Gracias!!! |
#18
|
||||
|
||||
Hola
El concepto de filtro es de logica y es muy sencillo. Si quieres filtrar una tabla y ademas recorrerla para hacer la comparacion con otra tabla, primero tienes que recorrer las dos tablas, de ahi, crear dos filtros y hacer la comparación. Si haces el recorrido de una y no de la otra, podras comparar los datos?, que crees?. Ademas te falta algo basico y es activar el filtro, cosa que no estas haciendo. Si te doy el codigo no aprenderas, intento que pienses en lo que te digo. Si por ultimo no te sale, te doy un ejemplo, pero quiero que lo intentes. Saludos
__________________
Siempre Novato |
#19
|
|||
|
|||
Aun complicado...
Sigo desorientado... encuentro demasiado logico lo que dices pero aun no doy con la solucion, si podrias darme un ejemplo (no el codigo, tienes toda la razon en lo de aprender) estaria muy agradesido... esto me tiene de cabeza desde un par de dias y de tanto arbol ya no puedo ver el bosque...
|
#20
|
||||
|
||||
Hola
Empecemos a quitar arboles. Que quieres que haga el boton (Button1Click). Paso a paso. Saludos
__________________
Siempre Novato |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mostar datos de tabla en un grid y al hacer click en una celda desplegar otra tabla | zheen | Conexión con bases de datos | 15 | 06-09-2010 20:43:47 |
Actualizar tabla con datos de otra tabla mediante UPDATE | Rockin | Firebird e Interbase | 18 | 28-11-2007 19:15:42 |
filtrar tabla paradox y copiar a otra | gerardo | Tablas planas | 5 | 15-05-2007 16:59:23 |
Actualizar un campo de una tabla con datos que se encuentran en otra tabla | Morphine | SQL | 4 | 15-12-2006 22:47:42 |
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla | taru | MySQL | 1 | 27-07-2006 15:36:12 |
|