![]() |
Descontar pedazos de un todo
Hola a todos.
Tengo un problema que no he podido solucionar, os lo explico: Tengo una pieza. Esta pieza tiene una medida determinada. A esta pieza se le cortan (pedazos de diferentes medidas), los cuales se convierten en piezas mas pequeñas. Una vez cortados los pedazos, en ciertas ocasiones pueden sobrar otros pedazos mas pequeños que son desechados. El problema: Hacer desgloses de la pieza no es un grave problema, seria un asunto de sacarle el área e ir descontando los pedazos, asi se sabría lo que queda de esta. El asunto es que no es una pieza, son muchas, ejemplo: Piezas: 5 Area de las piezas: 27.5 m2 Pieza a descontar #1: area: 2.25 m2 Pieza a descontar #2: area: 0.90 m2 Area restante de las piezas: 24.35 m2 Bueno, se ve facil hasta ahi. Empece con 5 piezas y un area de 27.5. Ahora tengo 4.427 piezas. La pregunta es cuanto me queda de una pieza en particular?. Como saber que me queda de la pieza 1- 1.25 m2 etc. Espero explicarme bien. Se os ocurre como puedo identificar la cantidad restante por pieza? Cualquier opción sera bienvenida. Gracias Saludos |
Hola amigo Carlos, no se si he comprendido bien el problema, pero creo que puede servirte esto:
1. Estructuración de la base de datos: Necesitamos al menos dos tablas, por simplicidad las denominaré Piezas y Cortes. La idea es que Una pieza tenga varios cortes y un corte pertenece a una única pieza. En la tabla Piezas tendríamos algo como: ID-Pieza Area Nombre 1 50 A 2 20 B 3 10 C En la tabla Cortes algo como esto: ID-Corte ID-Pieza Tamaño 1 1 20 2 1 10 3 2 15 4 3 10 2. Como aplicar la consulta: Por lo visto necesitas saber cuanto de las piezas han quedado disponible, esto se podría conseguir con algo como esto:
Es muy posiblemente que el SQL necesite un poco de pulida, lo hice muy de memoria... en estos momentos estoy que me caigo de sueño y mi cerebro está un poco OFF. Al menos creo que se entiende la idea. Saludos, |
Hola
Gracias amigo. He pensado en algo similar, el asunto es que tendría que generar una tabla adicional con una numeración de cada pieza, eso es lo que me ha detenido un poco ya que en la practica es un poco complicado hacerlo. De todos modos tu idea es extraordinaria, me parece muy interesante, la voy a analizar. Cuando descanses si se te ocurre algo mas, te lo agradeceré. Saludos |
Buen amigo, me he quedado pensando en lo que haz dicho:
Cita:
He pensado en otro enfoque, tal vez, un tanto más complicado... para evitar esa consulta anidada. La idea es que a medida que se ingresan los cortes ir actualizando la suma total en la tabla piezas. Por tanto la tabla Piezas ahora tendría otro campo más, digamos que lo llamamos AreaCorte. Es decir: ID-Pieza Nombre ... Area AreaCorte 1 Pieza A 20 12 2 Pieza B 30 15 ... De modo que "relajamos" la consulta:
Si estás con Access y tienes una buena cantidad de piezas y cortes... creería que tener consultas anidadas de dicha manera puede bajar un poco la perfomance. Bueno es otro modo de ver el problema. Saludos, |
Hola
Gracias amigo por tus recomendaciones, estoy analizando todo. Gracias. Saludos |
No se si estoy entendiendo bien el asunto que te hace escribir este hilo amigo, pero pienso que esto mas bien es asunto de algoritmos en lugar de bases de datos.
Aquí te dejo un documento que espero te ayude. Salud OS |
Hola
Es interesante el articulo, pero el concepto es aunque algo similar difiere en algunas cosas. En el caso del articulo se parte de una medida X y una serie de cortes que van a ser catalogados en difirentes tipos, osea para: pieza X1- 30 cortes, X sobrante pieza X2- 27 cortes, X sobrante, etc El costeo de la pieza es relativamente simple de esa manera. El asunto con mi problema es un poco mas sencillo y complejo a la vez. Este si tiene que ver con tabla. Es un poco complicado explicarlo (no me envies a leer la guia):D:D Estoy trabajando en como planear este asunto. Cualquier cosa, te lo comento. Gracias por el aporte. Saludos |
Cita:
Salud OS |
Carlos,
Después de haber visto muy de pasada rápida al documento que señala Eliceo, pues me he quedado pensando "¿qué tiene que ver esto con lo que está haciendo Carlos?" y luego recordé sobre tu negocio. Y luego dije "¡Pues claro!... que tonto he sido! Es posible que Carlos esté buscando el modo de determinar el modo de maximizar el uso de material!" Y bueno, esto me ha dejado más "picando". Me gustaría, que en cuanto tengas tiempo, que trates de exponer aqui el tema y tus análisis del asunto. Me gustaría saber cuales son los límites de los requisitos: donde termina lo fácil y donde comienza lo dificil. El problema es uno, y aqui somos muchos. Le podemos hacer frente.;):) Saludos, |
Hola
Bueno ya que quieres pensar un rato, ahi va. Lo que tengo actualmente: La Lamina entra en bodega. Esta entra en cantidades, osea: lamina tipo1, cantidad 100. lamina tipo2, cantidad 500. esto entra como materia prima a la tabla materiales. programa 1: Envia a produccion (el corte) de diferentes piezas. (tabla ordenAcrilico) Programa 2: Recibe la orden: (ve la tabla OrdenAcrilico) piezas a cortar: 15 piezas Ibiza 40 piezas mallorca, etc. El operario va cortando y una por una indica. (Descuenta de la tabla (ordenAcrilico) e inserta el corte en la tabla (ordenAcrilicoItem) 1 pieza Ibiza, lamina tipo1 1 pieza Ibiza, lamina tipo1 1 pieza Ibiza, lamina tipo2 1 pieza Mallorca, lamina tipo1 1 pieza Mallorca, lamina tipo1 Inmediatamente despues escoge el tipo de lamina: (tabla materiales) Y descuenta la parte de la lamina que uso, ejemplo: lamina tipo1, cantidad 100 1 pieza tipo Ibiza, material usado 0.66. Saldo lamina tipo1, cantidad 99.34 Bueno, el asunto esta bien hasta ahi, se que empece con 100 y ahora tengo 99.34 El problema viene en que no se sabe de que lamina corto ya que como sabes hay sobrantes, estos no me importan, pero si por ejemplo hago otro corte, los numeros no daran. Mi interes es saber de que lamina corto y cuanto queda de esa lamina en especifico, si se puee sacar otra pieza o solo sera desperdicio. Lo unico que me quedaria es enumerar las laminas a la hora de pasarla a corte y definirles su area. No se si me captas. Saludos |
Cita:
No se si me explico. Salud OS |
Hola
Efectivamente No hay sobrantes menores de la medida menor que necesite, pero de que lamina sobro??. Asumamos que mi corte minimo es de: 0.33 Ejemplo: lamina tipo 1, cantidad 100. corte 1, 0.66, lamina tipo 1 cantidad 99.34 corte 2, 0.66, lamina tipo 1 cantidad 98.68 corte 3, 0.37, lamina tipo 1 cantidad 98.31 Los numeros me dirian que si mi corte minimo es de 0.33 y mi sobrante actual es de 98.31, se empezaría una lamina nueva, pero si sigues con ese descuento los numeros no dan. Tanto es asi que el problema que tengo actualmente es que la lamina en la tabla materiales en ocasiones esta en negativo y si hay corte. No se si me explico, el problema es la definicion de la lamina, una por una. Saludos |
Veamos, no entiendo tus cuentas
Cita:
Cita:
Ahora, seria bueno saber cual es el proceso, quiero decir, como ingresan a tu programa esas cantidades, no hablo del código, sino de la capa 8 del Modelo OSI (human interface :D:D:D) Salud OS |
Hola
Cita:
Cita:
Saludos |
Bueno... por empezar estoy carburando la idea.
Y quiero decir amigo Carlos, que en tu último ejemplo, me parece que estás mezclando cantidad con área. O yo estoy entendiendo mal. ¿Tu dices que entra 100 láminas, o que el área de la lámina es de 100?:confused: Ahora me tengo que desaparecer, pero ni bien vuelva estaré posteando de nuevo. Recuerdo haber leído algo de este tema, de como manejar esto... dejame hacer memoria... Saludos, |
Hola
Debo especificar mejor. 100 unidades 0.66 es el porcentaje de una lamina ejemplo: 1 lamina 100% 1 corte 0.66 % 1 corte 0.34 % Total sobra 0% Saludos |
Cita:
Salud OS Medida de Lamina 27.5 m2 Código:
27.50 0.66 26.84 |
Hola
Otra a la tabla materiales entra como cantidad, no puede entrar ni como area ni como porcentaje. Saludos |
Cita:
Pues no es lo mismo que pensé Ya corrijo lo que he dicho Salud OS |
Cita:
Lo correcto sería que vayas "restando" el porcentaje de cada una de las láminas cortadas en relación al tamaño de la lámina. Por ejemplo Código:
Residuo % Corte Corte |
La franja horaria es GMT +2. Ahora son las 13:07:19. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi