• 04-08-2021, 10:58:50
    #1
    Merhaba arkadaşlar,

    Makine üretim takip sistemi yazmaya çalışıyorum, hemen yapmak istediğimi size örnek vererek anlatayım.

    Örnek: 5 farklı yerde yer başına 4 adet düğme üreten makinemiz var, her biri günlük ortalama bin - 2bin arası üretim yapıyor. Şu an bu girişleri manuel olarak el ile yapıyoruz, gelecekte elle giriş yapılmayacak gerekli malzemeler alınıp makineden veriyi direkt olarak çekeceğiz.

    Şu an bu girişleri Excel'de yapıyoruz, Excel yapısını hemen örnekte göstereyim:



    Şöyle bir mantığımız var, tarihler iki satır kaplıyor. Üst satır gündüzü, Alt satır akşamı temsil ediyor. Makine 1 e ürün ve adet sayısını giriyoruz ve bu şekilde veri elde ediyoruz.

    Bu tasarımı ilk olarak C# ile denedim, datagridview ile Excel dosyasını çektim, içerisine veri girişini sağladım buraya kadar çok güzel gitti lakin yeni bir makine eklemek ve bunu her aya entegre etmek sıkıntılı bir durum sonuç olarak bu verileri ay ay çekiyoruz. Başka bir eksisi ise C# da bu 5 yere bir yer daha eklemek veya çıkarmak istediğimizde oluşan sıkıntı butona basıldığında yeni Excel oluşturup bunu her aya entegre ettirmek ve makineleri girmek. C# ile baya bir uğraştım sonra askıya alıp PHP ile MYSQL kullanarak yapmaya çalıştım bu seferde orada aylara ayıramadım.

    Siz ne önerirsiniz? Daha önce böyle bir sistem yazan varsa önerilerini dinlemekten mutluluk duyarım. Sizce C# ve PHP haricinde başka neleri kullanabilirim. Yardımlarınızı bekliyorum.
  • 04-08-2021, 11:30:25
    #2
    Merhaba,

    Kullandığınız tüm diller ile yapılır sorun dilde değil aslında veritabanı şemasını doğru kurgulamamışsınız.

    Veritabanında veriler satır bazında tutulur bu yüzden aşağıdaki gibi olmalı.


    Bu sayede makinede eklense, vardiya 1 gün 3 vardiya 1 gün 1 vardiya çalışsada veritabanı değiştirmeniz gerekmek.

    Verileri eklemek, düzenlemez, silmek, raporlamak daha kolay olur.

    Sizin excel sadece gösterim formatı bu herhangi bir yazılım dili ile ayarlanabilir.

    Bu arada benim verdiğim vardiya, makine'de normalizasyon standartlarına uygun bir şekilde güncellenip daha doğru hale gelebilir.
    • FOX
    FOX bunu beğendi.
    1 kişi bunu beğendi.
  • 04-08-2021, 11:35:36
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Kullandığınız tüm diller ile yapılır sorun dilde değil aslında veritabanı şemasını doğru kurgulamamışsınız.

    Veritabanında veriler satır bazında tutulur bu yüzden aşağıdaki gibi olmalı.


    Bu sayede makinede eklense, vardiya 1 gün 3 vardiya 1 gün 1 vardiya çalışsada veritabanı değiştirmeniz gerekmek.

    Verileri eklemek, düzenlemez, silmek, raporlamak daha kolay olur.

    Sizin excel sadece gösterim formatı bu herhangi bir yazılım dili ile ayarlanabilir.

    Bu arada benim verdiğim vardiya, makine'de normalizasyon standartlarına uygun bir şekilde güncellenip daha doğru hale gelebilir.
    Hocam öncelikle cevabınız için teşekkür ederim, bende bu şekilde düşünüyorum lakin staj yaptığım yerde yazacağım programın gösterdikleri Excel yapısına uygun olmasını istiyorlar, yoksa bu gösterdiğiniz şekilde olsa çoktan bitmişti.

    Bir de eğer böyle yaparsak, ay ay nasıl ayırırız bunun da bilgisini verebilir misiniz? Mesela ağustos ayının verileri girildikten sonra eylül ayının verileri için girilmemiş bir veritabanı istiyorlar, üstte eklediğim görselin eylül hali gibi düşünün.
  • 04-08-2021, 11:59:26
    #4
    Caviz adlı üyeden alıntı: mesajı görüntüle
    Hocam öncelikle cevabınız için teşekkür ederim, bende bu şekilde düşünüyorum lakin staj yaptığım yerde yazacağım programın gösterdikleri Excel yapısına uygun olmasını istiyorlar, yoksa bu gösterdiğiniz şekilde olsa çoktan bitmişti.

    Bir de eğer böyle yaparsak, ay ay nasıl ayırırız bunun da bilgisini verebilir misiniz? Mesela ağustos ayının verileri girildikten sonra eylül ayının verileri için girilmemiş bir veritabanı istiyorlar, üstte eklediğim görselin eylül hali gibi düşünün.
    Merhaba,

    Mysql, Mssql gibi şeyler veritabanıdır. Excel bir çalışma sayfasıdır (Düz tablo tutulmuyorsa) bir çalışma sayfasını veritabanına olduğu gibi geçirmek anlamsız.

    Eğer sizden excel'in aynısı şeklinde bir form istiyorlarsa o zaman bu şekilde bir html hazırlayın yazılacak alanları contenteditable true olarak ayarlayın. Html içeriği Agustos2021.html, Eylul2021.html olarak bir dizine kayıt edin. Ne veritabanı kullanın nede başka birşey filebased.

    FAKAT

    - Hafta içi üretim adetleri ile hafta sonu üretimlerin performansı.
    - Makine-2'nin Makine-3, 4'e göre karşılaştırması
    - X ürünün hangi makinelerde hangi tarihlerde üretildiğinin gösterilmesi.
    - Akşam vardiyası ile Sabah vardiyasının performans farkları
    - Değişken veriler ile çalışmak (Değişken vardiya, makine vs.) isteniyorsa.

    O zaman veritabanı kurgusu normalizasyona uygun birşekilde kurulmalı.



    "Bir de eğer böyle yaparsak, ay ay nasıl ayırırız "

    Aşağıdaki gibi istenen ay bilgilerini parametre olarak verip bir sql dönersenz.

    select count(*) from makineUretimTablon where year(tarih)=2021 and month(tarih)=9

    Eğer dönen sonuç 0 ise. Eylül ayı veri girişi için ekranı açabilirsin.

    Eğer kurguyu doğru kurmazsanız ileride makinelerden veri geldiğinde zorlanırsınız.