Skip to main content

AccessTr.neT


Ürün Ağacı Yapısı Hakkında

Ürün Ağacı Yapısı Hakkında

Çözüldü #1
Merhaba Arkadaşlar,


Aşağıdaki resimde ürün ağacı ile ilgili bir tasarım bulunmaktadır.
[Resim: do.php?imgf=151300311970021.png]
Sonsuz seviyeli bir ürün ağacı girişi yapabilmek ve bunu rahatlıkla raporlayabilmek adına bir veri tabanı tasarladım. bu veri tabanında Siparişler formunda Ürün 1 için bir sipariş girdim. Ürün 1 in reçetesi alt alta uzayıp gitmektedir. Sorum şu; Siparişteki Ürün 1 in altında kullanılan tüm yarımamul hammadde vs tüm bileşenlerin tek bir liste gibi bir sorguda sıralanmasını istiyorum. Böylelikle toplam girilen siparişlerin malzeme ihtiyacını toplatabileceğim.

Not: Yada ürün reçeteleri ile ilgili bana tavsiyede bulunabilirsiniz. Normalde ekteki gibi tasarladım ama sonsuz seviyeli bir reçete için nasıl bir tablo yapısı kullanmalıyım? Eğer bu konuda bilgisi olan arkadaşımız varsa yardımcı olmasını rica ederim.

Selamlar,
.rar Recete.rar (Dosya Boyutu: 42,24 KB | İndirme Sayısı: 110)
Son Düzenleme: 11/12/2017, 17:44, Düzenleyen: mengene2.
Cevapla
#2
Sınırsız kategori mantığında Otomatik Sayı türü alan haricinde iki alan olması temel seviyede yeterlidir:

Id -> Otomatik Sayı Birincil Anahtar
ParentId -> Sayı, Varsayılan Değer 0
Name -> Metin

Id  ParentId  Name
1        0        Beyaz Eşya
2        0        Araba
3        1        Çamaşır Makinesi
4        1        Buzdolabı
5        2        Skoda
6        0        Bilgisayar
7        6        Asus

şeklinde örneklendirebilirsiniz. Ana kategori ki sizin örnekte Ürün 1 oluyor ParentId alanındaki değeri 0 olacak. Alt kategorileri ise Ürün 1'e ait Id değerini alacaklar.

Tabloya kaydederken Sipariş başlığı bir tablo içindeki ürünlerin olduğu ise ayrı bir tabloda olacak. Alt tablodaki miktar alanlarını topladığınızda zaten o siparişin toplamlarını elde etmiş olursunuz.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#3
(12/12/2017, 22:05)alpeki99 yazdı: Sınırsız kategori mantığında Otomatik Sayı türü alan haricinde iki alan olması temel seviyede yeterlidir:

Id -> Otomatik Sayı Birincil Anahtar
ParentId -> Sayı, Varsayılan Değer 0
Name -> Metin

Id  ParentId  Name
1        0        Beyaz Eşya
2        0        Araba
3        1        Çamaşır Makinesi
4        1        Buzdolabı
5        2        Skoda
6        0        Bilgisayar
7        6        Asus

şeklinde örneklendirebilirsiniz. Ana kategori ki sizin örnekte Ürün 1 oluyor ParentId alanındaki değeri 0 olacak. Alt kategorileri ise Ürün 1'e ait Id değerini alacaklar.

Tabloya kaydederken Sipariş başlığı bir tablo içindeki ürünlerin olduğu ise ayrı bir tabloda olacak. Alt tablodaki miktar alanlarını topladığınızda zaten o siparişin toplamlarını elde etmiş olursunuz.

Merhaba Sayın alpeki99;

Yukarıda birinci mesajda aslında ürüne baktığınızda birçok yarı mamul birbiri içerisinde. Ayrıca bir yarımamul Ürün 1 için 2. veya 3. seviyede olabilirken aynı yarımamul başka bir üründe 1. veya 4. seviyede veya 6. seviyede olabilir. Bu durum kontrol edilemez bir durumdur. Sizin verdiğiniz tablo yapısında yarı mamulün aslında hangi seviyede olduğunu belirtin diyorsunuz. bu durumda yarı mamul veya hammaddenin ürün bazında seviyesi değişmektedir.

Bu veri tabanında reçete için öyle bir tablo tasarımı yapmalıyım ki her yarımamulü veya her parçayı ürünün ihtiyacını tespit etmek gerektiğinde reçetesini tek liste olarak patlatabilmeliyim. Aslında bahsetmek istediğim ürün bazında malzeme ihtiyaç listelerini tespit etmek, sonrasında ise bu listedeki ortak parçaların ihtiyaçlarını toplayıp ürettirmektir.

Örneğin MRP programlarında reçete tanımlama ve sonrasında malzeme ihtiyaç listesini oluşturma konusunda nasıl bir yol izleniyor onu merak ediyorum.

Umarım derdimi anlatabilmişimdir. 
Son Düzenleme: 13/12/2017, 23:07, Düzenleyen: mengene2.
Cevapla
#4
Üretim üzerine bir yerde çalışmadığım için normalde nasıl işler detaylı bilemiyorum. Yalnız buna benzer bir yapı kullandığım sipariş sistemim var. Önce stok kartı olarak ürünleri tanıtıyorum sonra Kampanya tanımladığımda o kampanyanın ürünlerini stoklar içinden seçiyorum. Yarımamulün hammaddesi bile olsa sizde de aynı mantık olması lazım. Eğer bir hammadde birden fazla yarımamulün parçası ise -ki muhtemelen öyledir- araya bir tablo daha ekleyerek çoka çok ilişki yapısı kurmanız gerekebilir.

Burada sizin reçete dediğiniz şey muhtemelen o ürünü ortaya çıkarmak için gereken yarımamuller oluyor. Sizin reçetenizin bir başlık tablosu ve bu tabloya bağlı detaylar tablosu olması lazım o zaman. Alttablodaki miktarların toplamını aldığınızda ise istediğiniz miktarı elde ediyor olmanız lazım.

Benim bildiklerim ile yardımcı olabileceğim bu kadar. Üretimci arkadaşlar varsa onlarda size yardımcı olacaktır mutlaka.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#5
erhaba,
 Aslında sizin sorunuza çözüm Treeview control ile mümkün.  Ancak nasıl deme çünkü Benimde benzer bir derdim var.
Küçük bir işletmeyiz ve makine imalatı yapıyoruz . işletmede makine mühendisiyim makine tasarımı çizimleri yapıyorum. Sıkıntı şu hiçbir kayıt yok ve yurtdışına iş yapmaya başladık ben büyüme sırasında geldim. şimdi işletme içinde kullanmak için bir ürün ağacı stok sistemi üzerinde uğraşıyorum. Parçaları tanımlı bir tablo oluşturdum ve birde montaj parçaları tanımladım. mesela 12345 nolu montaj  32648 , 46972 ,  16283 ve 43186 nolu parçalardan oluşsun.  32648 nolu parçayı ben başka başka makinelerde de kullanıyorum yani hersefeirnde bir parça tanımlamayayım aynı olanları farklı ürünağaçlarında kullanabileyim hangisi lazımsa onu filtreleyip raporlayabileyim imalat satınalama süreçlerini kontrol edebileyim. Bu ürün ağacı yapısı Excelde pivot ile mümkün ancak excelde raporlama sıkıntılı istediğim gibi olmuyor. 40 yaşından sonra kod öğrenmeye karar verdim Vba bazı uygulamaları deniyorum. İnternetten araştırdım ve Activex control içerisinde treeview ile mümkün birçok güzel uygulama örneği mevcut lakin, bende treeview control sp 6 yok. office 2016 kullanıyorum  evde office eski 32 bit sürümü var onda ekleyebiliyorum. ama 2016 da kullanamıyorum. işi gücü bıraktım 2 gündür triview control 6 nasıl yüklenir onu araştırıyorum. henüz becermeedim.


 sorum şu   
1 . Treeview control activex içinde yoksa accesse kısaca office uyuglamasına yüklenebilirmi?
2-  Treeview controle alternatif bir çözm varmı?

emeği geçen bilgi paylaşan zaman ayıran bütün arkadaşlara teşekkürler..
Cevapla
#6
Aslında mesela tablo yapısında ve Sql sorgulamada. Her türlü tablo tasarımı veya çözüm geliştirdim. Fakat burada sonsuz seviye bir ürün ağacı reçete yapısı ile işi kökten çözmek istiyorum. 

Dünyada üretimi MRP olarak en zor ürün jet motoru olarak kabul edersek. Bir jet motorunda 9 seviyeli ürün ağacı yapılıyor. Bu seviyelerin her birinde bir alt parça/parçalar tanımlı. Bunların bazıları yarımamul olarak üretilirken bazıları dış satın alma ile temin yapılıyor. Reçetede en son seviye genelde hammadde oluyor. Bu seviyelerin her birini yönetmek ve toplam her seviyedeki yarımamul veya parçaları tek bir liste haline dönüştürmeyi merak ediyorum. Herşeyin dediğim gibi tablo tasarımı ve Sql sorgu yazımı ile ilgisi var. Bunu çözersem çok mutlu olacağım. Her türlü ürün ve buna bağlı operasyon (işçilik) da çözülmüş olacak. Ürün ağacını tasarlarken hangi yarımamulün aslında hangi operasyonla tüketildiğini tablo yapısına belirttiğiniz an sarf ve tüketim miktarlarıda ortaya çıkmış olacak.

Veri tabanı tasarımı aslında ayrı bir uzmanlık alanı. Bu mesajı böyle bir uzman arkadaşımın yakalamasını bekliyorum. Ama henüz daha göremedi Img-grin

Diğer cevaplamaya çalışan arkadaşlarıma da teşekkür ediyorum bu arada.

Saygılarımla,
Son Düzenleme: 14/12/2017, 12:27, Düzenleyen: mengene2.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da