Hola, a ver si me explico bien
Tengo una tabla de ordenes de fabricacion que tiene varios registros en
los que varios campos se repiten, ejemplo
Orden Producto Kilos
Fabricacion Orden componente Kilos Componente
12345678 aaaaa 2535 578978 32.50
12345678 aaaaa 2535 789932 50.5
12345678 aaaaa 2535 777777 32.5
.
.
.
.
22222222 bbbbb 1200 123456 25.50
22222222 bbbbb 1200 235888 30.50
.
.
.
3333333 aaaaaa 1100 888888 25.30
3333333 bbbbbb 1111 999999 35.25
.
.
y asi sucesivamente hasta 10 mas o menos
Me gustaria representarlo todo en un mismo registro, porque la finalidad
es que cuando me pidan un producto, representarle todas las ordenes de
ese producto es decir
si piene el producto aaaaa:
12345678 aaaaa 2535 578978 32.50 789932 50.5 77777 32.5 …
33333333 aaaaa 1100 888888 25.20 999999 35.25 …
Hay alguna forma de hacer esto? grabandolo en otra tabla o algo
parecido, es que me estoy perdiendo en cálculos , igual hay alguna
manera de hacerlo, mas facil.
Perdonad por el rollo.
Saludos y gracias
Si no te entendido mal podrÃas modelarlo de la siguiente manera:
producto tiene varias órdenes
orden pertenece a un producto
Quedando algo tal que asà en el modelo product:
has_many :orders,
Y en el modelo order:
belongs_to :product
De esta manera el objeto producto tendrÃa el listado de pedidos con el
método orders.
Lourdes escribió:
.
3333333 bbbbbb 1111 999999 35.25
33333333 aaaaa 1100 888888 25.20 999999 35.25 …
Hay alguna forma de hacer esto? grabandolo en otra tabla o algo
parecido, es que me estoy perdiendo en cálculos , igual hay alguna
manera de hacerlo, mas facil.
Perdonad por el rollo.
Saludos y gracias
–
Rafael Garcia Ortega
Prueba gratis nuestro nuevo producto GASTOSgem
(http://www.gastosgem.com)
Hola Rafa, a ver si me explico mejor porque me lio yo sola.
En mi programa tengo una tabla que la estoy leyendo de un fichero de
texto, que se bajan al pc, los usuarios, desde otro programa (SAP).
En esa tabla tengo varios registros por orden de fabricación, que son
los componentes de la orden.
orden1 producto componente1 kilos1
orden1 producto componente2 kilos2
orden1 producto componente3 kilos3
orden2 producto1 componente1 kilos1
orden2 producto1 componente2 kilos2
orden2 producto1 componente3 kilos3
orden3 producto componente1 kilos1
orden3 producto componente2 kilos2
orden3 producto componente3 kilos3
lo que intento hacer es que cuando me pidan un producto, poder verlo
asà en pantalla, en vez de vertical, en horizontal
orden producto componente1 kilos1 componente2 kilos2 componente3 kilos3
orden3 producto componente1 kilos1 componente2 kilos2 componente3 kilos3
es decir un registro por cada orden de fabricación.
Muchas gracias por tu contestación y saludos
Hola, buenos dias Rafa.
Es un fichero de texto, que lo estoy cargando en una tabla de mi
aplicación, mediante un File.open , lo que no sé muy bien, es como
almacenarlo para despues representarlo como quiero. Supongo que serÃa
mejor cargarlo en un registro por cada orden, desde el principio, para
poder representarlo despues, pero entonces tengo una tabla un pongo
chunga, con componente1, kilos1, componente2, kilos2,
componente3,kilos3… asà por lo menos hasta 15.
Pero no sé si es la forma correcta de hacerlo en rails, antes lo hacÃa
en access.
Saludos y gracias.
Ahora ya he comprendido lo que quieres hacer. Pero lo que no me queda
muy claro es como lo quieres almacenar ¿cómo una lÃnea de texto en una
tabla? o ¿quieres tenerlo en tablas y de ahà sacar el listado?
Lourdes escribió:
orden1 producto componente3 kilos3
asà en pantalla, en vez de vertical, en horizontal
orden producto componente1 kilos1 componente2 kilos2 componente3 kilos3
orden3 producto componente1 kilos1 componente2 kilos2 componente3 kilos3
es decir un registro por cada orden de fabricación.
Muchas gracias por tu contestación y saludos
–
Rafael Garcia Ortega
Prueba gratis nuestro nuevo producto GASTOSgem
(http://www.gastosgem.com)
Hola Rafa, muchas gracias por tu ayuda.
Si lo que necesito es eso, pero no sé como hacerlo en rails. Estaba
intentando copiarme una consulta de access y hacerlo por un
find_by_sql(“TRANSFORM First(ordenes.sap) AS PrimeroDesap
SELECT ordenes.order_number, ordenes.material_number
FROM ordenes
GROUP BY ordenes.order_number, ordenes.material_number
PIVOT ordenes.component_sequence”)
Pero me da errores. “sintaxis incorrecta cerca de ‘ordenes’”
En fin seguiré intentadolo.
Saludos y siento la currada que te has dado!!!
Lourdes wrote:
Pero no sé si es la forma correcta de hacerlo en rails, antes lo hacÃa
en access.
Lo que he entendido que necesitas es una Pivot Table [1], ayer no te
imaginas la googleada que hice para intentar ayudarte pero
desafortunadamente no encontré nada semejante en Rails, quizá algún
compañero tenga una alternativa que resuelva tu necesidad.
Saludos.
[1] Pivot table - Wikipedia
Jaime Mora R.
Que base de datos(SGBD) estás usando?
Lourdes escribió:
Pero me da errores. “sintaxis incorrecta cerca de ‘ordenes’”
En fin seguiré intentadolo.
Saludos y siento la currada que te has dado!!!
–
Rafael Garcia Ortega
Prueba gratis nuestro nuevo producto GASTOSgem
(http://www.gastosgem.com)
Hola Amaia muchas gracias.
Estoy en ello, pero me puedes decir para que sirve exactamente el
:through
Saludos
SQL es el lenguaje que usas para manejar los datos del sistema gestor de
bases de datos(SGBD). Sería interesante saber que servidor de bases de
datos(SGBD) estás usando (por ej. Oracle, SQL Server,…). Cada
empresa(Oracle, Microsoft, MySQL,…) implementa el standard SQL hasta
donde puede y además añade funciones o modifica algunas definidas en el
standard.
Saber que SGBD estás usando puede ser útil para saber si tiene alguna
función de pivotaje de datos tu sistema.
Saludos!
Lourdes
escribió:> Estoy utilizando sql
saludos
–
Rafael Garcia Ortega
Prueba gratis nuestro nuevo producto GASTOSgem
(http://www.gastosgem.com)
Hola
No sé si he entendido bien lo que planteas, porque tampoco entiendo bien
las otras respuestas, asà que puede que lo que te cuento no tenga nada
que ver con lo que necesitas pero ahà va lo que yo harÃa.
Haces tres modelos, la orden, el componente y un modelo intermedio que
relacione los dos y que tenga un atributo cantidad.
class Orden < ActiveRecord::Base
has_many :items
has_many :componentes, :through => :items
end
class Item < ActiveRecord::Base
belongs_to :ordenes
belongs_to :componentes
end
class Componente < ActiveRecord::Base
has_many :items
has_many :ordenes, :through => :items
end
En Item pones un campo cantidad y para cada linea del fichero que estas
importando creas o buscas la orden, creas o buscas el componente y creas
un objeto item con orden_id, componente_id y cantidad.
Para lo de crear o buscar creo que hay un metodo
create_or_find_by(atributo).
Para representar la lista de componentes de la orden algo como
orden.items.each do |item|
item.componente.nombre
item.cantidad
end
En una aplicación que estoy desarrollando con Jaime lo hemos hecho asÃ
para productos quÃmicos que contienen sustancias toxicas, y que cada uno
de ellos contiene las sustancias en una concentración diferente. Yo creo
que sirve el mismo planteamiento.
Ya me dirás si te sirve…
saludos,
Amaia
–
~~~ ~~~
Amaia C.
~~~ ~~~
Dabne TecnologÃas de la Información
c/Los Madrazo, 16 - 3º 4
28014 Madrid
Tel.: (+34) 91 369 17 50
www.dabne.net
~~~ ~~~
Lourdes escribió:
Lourdes
escribió:> Hola Amaia, muchas gracias, lo he probado y es perfecto.
Rafa muchas gracias por ayudarme.
Saludos
Hola Lourdes
Me alegro de que te sirva
Lo del :through es para poder hacer orden.componentes y obtener la lista
de componentes de la orden. Es como si fuese una
relaciónhas_and_belongs_to_many pero usando un modelo intermedio que es Item,
que puede tener atributos para la
relación.Seguro que hay gente por aquí que sabe explicarlo mejor
Hay una explicación en inglés en
http://blog.hasmanythrough.com/2006/04/20/many-to-many-dance-off
En los archivos de esta lista he encontrado esta
http://www.ruby-forum.com/topic/82815#145735
Saludos
–
~~~ ~~~
Amaia C.
~~~ ~~~
Dabne Tecnologías de la
Informaciónc/Los Madrazo, 16 - 3º 4
28014 Madrid
Tel.: (+34) 91 369 17 50
www.dabne.net
~~~ ~~~
Amaia, muchas gracias de nuevo.
Saludos.
Lourdes
Hola Amaia, muchas gracias, lo he probado y es perfecto.
Rafa muchas gracias por ayudarme.
Saludos