Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354

    [VB6] Ricerca algoritmo..qualche aiuto?

    Vi illustro il problema che devo risolvere:

    Ho un DB access nel quale ho 3 tabelle (TraviMagazzino, TraviTemp e TraviOrdine).
    In TraviMagazzino ho tutte le travi in legno disponibili in magazzino (quindi di sezioni differenti e lunghezze differenti)
    In TraviTemp inserisco le travi che servono al cliente.
    In TraviOrdine inserisco le travi che ho in magazzino e che sono compatibili con quelle del cliente.

    Adesso, l'algoritmo che sto cercando dovrebbe prima di tutto fare un controllo nel TraviMagazzino per vedere se vi sono esattamente le travi singole (con un margine di +qualche cm, es.10cm) che il cliente chiede, diminuendole di numero se ci sono e scrivendo nel TraviOrdine il recordset selezionato e decrementando o eliminando da TraviTemp, se non vi sono passa alla trave successiva.
    Successivamente dovrebbe fare in rapida successione la somma delle travi richieste (prima due, poi tre, poi quattro) e rifare il controllo nel magazzino...così facendo prende travi in TraviMagazzino più grandi e le divide (producendo naturalmente uno scarto).

    alla fine dovrei arrivare ad avere TraviTemp vuoto...

    come posso fare? ovviamente devo trovare l'ottimo, ossia avere meno scarti possibile...

    Se avete qualche idea (riferita sia all'algoritmo intero, sia a come effettuare una ricerca nel DB per sezione e lunghezza+10cm, sia su come fare per effettuare la somma di 2,3..travi e fare il controllo per avere meno scarto possibile).


    Edit: per il primo controllo, quello di Trave con Trave, pensavo di prendere le travi presenti in magazzino e vedere se quelle presenti nell'ordine del cliente ci stanno con uno scarto inferiore a circa 10-20cm...questo potrebbe essere un metodo, ossia guardare cosa c'è in magazzino e paragonarlo a quello richiesto...

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    Sarebbe carino conoscere la situazione reale che stai cercando di risolvere.
    L'argomento va trattato in modo diverso a seconda del metodo di evasione degli ordini IMHO.

    Questo perchè se l'evasione è immediata(es. se c'è una trave che soddisfa il cliente questa è sicuramente venduta) allora il tuo metodo potrebbe andare bene.
    Se invece l'evasione è dilazionata nel tempo(es. la trave a magazzino c'è ma l'ordine verrà evaso, per determinati motivi, tra un mese) tutti i clienti che faranno ordini successivamente avranno meno disponibilità di travi a amagazzino anche se in verità sono disponibili.

    Dico ciò perchè non è per niente detto che l'associazione ordine in ingresso = trave in uscita sia vera.

    se arriva l'ordine di Mario Rossi per 3 travi di tipo A il 22/11/06 con consegna entro li 25/01/2007 con il tuo metodo queste tre travi scompaiono da magazzino(mentre in realtà saranno effettivamente presenti per almeno altri due mesi).

    Mettiamo che il 29/11/2006(7 giorni dopo mario rossi) arrivi Giorgio Bianchi a ordinare 3 travi di tipo A da consegnare entro il 10/12/2006(più di un mese prima della consegna di mario rossi) tu dovrai negare la disponibilità al sig Bianchi delle tre travi perchè le hai già vendute al sig Rossi, ma in verità hai ancora più di un mese di tempo per rifare 3 travi nuove a Rossi e dare in pronta consegna le travi al sig Bianchi che ne ha bisogno prima!

    Capisci il problema?
    Con il tuo sistema hai venduto tre travi di meno!

    Poi ovviamente mi sono fatto un viaggione io e l'azienda non ha necesssità di questo tipo.

    al di la di questo, ritengo comunque sbagliato il tuo procedimento perchè la tabella magazzino non è veramente la proiezione istante per istante del contenuto dello stesso, ma solo una tabella Invenduto, e questo concettualmente è sbagliato (soprattutto in previsione di fare analisi di business).

    per il momento è tutto, le disquisizioni tecniche cominceranno non appena stabilito il da farsi sula teoria
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    esatto, è un problema che è da risolvere...a questo punto direi che quando le travi vengono inserite nell'ordine vengano immediatamente debellate dal magazzino...così da non vendere la stessa trave a più clienti (o addirittura allo stesso cliente)...

    consideriamo questi passi da svolgere:
    - arriva l'ordine
    - si valuta quello che c'è in magazzino per ottenere l'ottimo (quindi meno scariti possibile) e si inseriscono in bolla gli elementi da prendere dal magazzino e li si elimina dallo stesso
    - si passa la bolla al falegname che ne predispone l'eventuale taglio e archiviazione pronta per la consegna.

    :master:

    sì, più o meno dovrebbe essere così l'inter da seguire...

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    Per la questione "tempo" direi che non sussiste...una volta arrivato l'ordine parte subito il taglio...

    poi solitamente la questione tempo non è importante, in pratica le consegne sono sempre nel mese solare...in più l'algoritmo serve solo e unicamente per il "taglio e consegna"...la questione che hai esposto è in pratica un preventivo...e quello in quanto preventivo non si basa effettivamente sulle scorte in magazzino (che per altro è sempre fornito)...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    up

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    Che database usi?

    Vuoi fare tutto in una stored Procedure o vuoi usare visual basic?
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    il database è access, e mi ci collego tramite Modulo

    per quanto rituarda "Vuoi fare tutto in una stored Procedure o vuoi usare visual basic?" sinceramente non la capisco...cos'è uno "stored Procedure"?
    ora come ora sto usando VB6.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.