Newsgroup: it.comp.appl.access
Titolo: Problema calcolo distinta base

Ciao A TUTTI
Espongo il mio problema nella speranza di trovare aiuto.
La mia diba , con legame padre-figlio, dal 1° al n° livello dovrebbe
calcolarmi il prezzo finale ed i necessari di produzione del prodotto,
quì comincia il mio problema credo legato alla natura degli elementi
costituenti il o gli assiemi.
Mi spiego. (premetto io produco manufatti in plastica)
Il mio assieme Secchio in plastica è formato come segue:
plastica 300 gr
.......(ometto gli elementi che non costituiscono problema)
colorante 1%
additivo 0.75%
.......
confezione 1/24
.......
lavorazione 1/250
Ora
1°problema: gli acquisti avvengono in E/kg quindi devo convertire le
unità e non trovo il sistema
2°problema: gli elementi in % si riferiscono al peso del manufatto in
questo caso 300gr e non riesco a fargli capire questa operazione.
3°problema: i campi frazione anche qui acquisto in pezzi ed in E/pz
quindi devo calcolare la frazione e non riesco.
Chiaramente tutti questi problemi li vorrei gestire durante
l'esplosione della diba che attualmente eseguo mediante ricorsione.
Qualcuno ha già affrontato un problema simile o può darmi un aiuto?
Grazie
Roberto -SMP-

>> qCalcolaParzali <<<<
SELECT [ppl], [percCo], [percAd], [conf], [lavo],  [ppl] / 100 * [percCo] AS 
[pco], ppl / 100 *  percAd AS [pad], ppl / conf AS [peConf], ppl / lavo AS 
[peLavo]
FROM miaDistinta
WHERE idDistinta = xx
naturalmente devi indicare i tuoi campi di origine e la tabella giusta.
Mi fermo qui solo perchè manca un dato fondamentale il costo al Kg di ognuna 
delle componenti .... ma non manca molto!!
IvanDaBologna 

 ha scritto nel messaggionews:1186818085.6...@g4g2000hsf.googlegroups.com...

Ciao Ivan Grazie per la risposta
mi spiego meglio perchè ho notato che ho commesso degli errori di
omissione ma non volevo esere troppo discorsivo così facendo però non
ti ho dato informazioni esattissime.
Nella distinta ci sno assiemi e sottoassiemi con le fasi di
lavorazione quindi uso il codice vba per esplodere la diba ed ottenere
una tb temp della distinta esplosa con tutti i risultati al suo
interno e quindi :
l'assieme SECCHIO CON MANICO IN PLASTICA è composto:
secchio
  plastica 80 gr
  colorante rosso  1%
  lavorazione 1/250 pz/h
manico in plastica
  plastica 35 gr
  colorante argento 1.25%
  additivo 0.78 %
  lavorazione  1/320 pz/h
scatola
 scatola 1/12 pz/contenuto
 divisorio 1/12 pz/contenuto
ecco perchè utilizzo una ricorsione altrimnti con una query non riesco
a vedere i sottoassiemi
ogni elemento ha una sua maschera di inserimento per registrare le
informazioni tecniche es. i colori vengono forniti di tabella in % di
impiego in b ase al peso del manufatto e così via.
quindi mi ritorna il problema che come puoi vedere il colorante varia
in percentuale ed io devo calcolarne l'impiego in quel l'assieme
specifico.
questo per il colorante ma se trovo la soluzione per un elemento poi
gli altri dovrebbero venire da soli.
chiaramente i prezzi vengono dai listini fornitori e sono in euro/kg o
euro/pz quindi gli devo far fare anche le equivalnze.
ti passo di nuovo la palla.........grazie
se ti serve dimmelo che ti invio un print screen della diba esplosa.
ciao
Roberto -SMP-

[....]





Capisco che ricorrere al codice sembri la soluzione più veloce (sich!), ma 
puoi tranquillamente costruire una query che peschi i dati da due tabelle, e 
calcoli il 'peso' di ogni voce in base alle percentuali o alle frazioni che 
sono contenute nella tabella Distinta.
La soluzione della query è la più 'affidabile' perchè se domani aggiungi o 
rinomini un campo, non devi andare a spulciare il codice alla ricerca del 
campo incriminato.
La soluzione via query ti permette di 'osservare' i risultati e correggere 
il tiro immediatamente (in visualizzazione tabella), mentre con il codice 
devi inserire variabili di controllo o punti di interruzione ed osservare i 
valori delle variabili in quel punto.
La soluzione via query è facilmente parametrizzabile e quindi puoi 
trasportare la query e con pochi adattamenti inserirla in altre situazioni 
simili.
La soluzione via query ti permette adirittura di affacciarti ad altri 
sistemi RDBMS con pochissime variazioni ....
IvanDaBologna

 - Mostra testo tra virgolette -
Ciao
Rientro oggi dalle ferie (solo 3 gg troppo pochi)
quello che dici è giusto però il mio problema è diverso e cioè
la % di impiego come nel caso che ti ho illustrato è relativa solo i
80 gr di plastica presenti in quell' insieme
e quindi la mia formula dovrebbe calcolare quanto segue:
insieme secchio
80gr *1%=0,8 gr di colorante rosso
mentre la lavorazione e la scatola non vengono interessati dalla % di
impiego di un elemento
Insieme manico plastica
35gr*1,25%=0,4375gr di colorante
35gr*0,78%=0,2780gr di additivo
quindidevo riferire sempre la % alpeso dell'elemento
chiaro che se risolvo questo ho le quantità per calcolare i prezzi.
Ciao e soprattutto AIUTOOOOOOOOO!!!!!!!!!!!!

>[Perc] (numerico)
poi con una semplice query come questa
SELECT oggetti.oggetto, oggetti.peso, parti.parte, parti.perc, 
[peso]/100*[perc] AS uguale
FROM oggetti INNER JOIN parti ON oggetti.oggetto = parti.oggetto;
ottengo nel campo [uguale] la giusta percentuale cercata.
Semmai la query andrà complicata con una IIF per fargli eseguire i due tipi 
di calcolo: in percentuale, in frazione di pezzi.
Basta aggiungere il campo [frazione] nella tabella Parti.
Purtroppo non ho capito che relazioni usi per calcolare i componenti 
frazionari ....
IvanDaBologna 


Ciao ti invio un elenco di quello che devo ottenere come composizione
per poi procedere nei calcoli.
Distinta BASE ARTICOLO
1) PALETTA CON GOMMA                    1,00  pz
   Gomma per Paletta                             1,00  pz
      colorante grigio g/1800                     1,00  %
      Gomma                                          8,00  gr
   paletta                                               1,00  pz
      colorante celeste                             1,00  %
      polipropilene grado 25                     80,00  gr
   Stampaggio Paletta con gomma          1,00  n°
2) SCATOLA                                        1,00  pz
   pianetto divisorio 20*30                        1,00  pz
   Sacatola leo  20*30*15                        1,00  pz
3) SPAZZOLA SOFT                              1,00  pz
   Assicella per Spazzola LEO                 1,00  pz
      colorante celeste                              1,00  %
      polipropilene grado 25                      55,00  gr
      Stampaggio Spazzolina                     1,00  n°
   Ferro 0,7                                             0,00  gr
   Punzonatura Spazzolina                       1,00  n°
   sintetica pvc pb 0,35 cm 11 nero          20,00  gr
vedi se leggendo questo puoi aiutarmi.
quello che noterai è che i miei articoli sono una macedonia di
elementi che non legano tra di loro ma io devo riuscire a farli stare
insieme.
Speravo di poter utilizzare un asola maschera per l'inserimento dei
dati degli articoli ma credo che dovrò ricorrere a piu maschere ed
altrettante tabelle in questo modo gli elementi saranno già separati.
Per esempio come vedi all'inizio il colorante grigio è 1% del peso
della gomma mentre il colorante celeste è 1% del polipropilene ognuno
fa parte di un  assieme il cui padre è lo stesso per entrambi e come
faccio con una query a dirgli quale colorante è la x% del peso di
quale elemento?
In altre parole quello che voglio costruire è una sorta di wizard per
diba che mi funzioni da calcolatrice dei costi in cui io possa
interagire velocemente.
Credo che dovrò riprendere il mio vecchio DB molto rigido in questo e
continuare ad usarlo perchè per ora non trovo via di uscita.
Ciao
Roberto

   Stampaggio Paletta con gomma          1,00  n°
credo che ci sia un dato ridondante(in più, inutile), l'indicazione di 1.00 
pz che indichi per ogni oggetto elencato.
E' implicito che stai usando le altre quantità riferite ad UN SOLO pezzo. Io 
la toglierei e basta! ;))
Una delle regole per costruire delle buone basi di dati impone di frazionare 
i dati in elementi 'semplici' e non ripetuti.
Quindi lo sforzo è proprio quello di individuare gli 'atomi' delle tue 
informazioni per costruire tramite query le molecole dei tuoi risultati.
Ecco che l'elenco che hai fatto potrebbe essere semplificato così (e forse 
non è ancora la stesura definitiva!, pazienza) :
Intanto è meglio stabilire quali tabelle sono NECESSARIE.
Articoli : [idArt] [nome] [descrizione]
Particolari : [idPart] [idArt] [Descrizione] [Tipo] [Peso] [Pezzi]
Componenti : [idComp] [idPart] [Tipo] [Perc] [Fraz]
in relazione
Articoli![idArt]==>Particolari![idArt]
Particolari![idPart]==>Componenti![idPart]
a me sembra la struttura minima, ma forse non riesce a comprendere tutti i 
casi proposti, vedremo se allargarla.
Spalmiamo i tuoi dati
Articoli![idArt] = 1
Articoli![nome] = paletta23
Articoli![descrizione] (irrilevante)
Particolari![idart] = 1
Particolari![descrizione] = Gomma per paletta
Particolari![Tipo] = Gomma
Particolari![Peso] = 8
Componenti![idComp] = 1
Componenti![idPart] = 1
Componenti![Tipo] = colorante grigio g/1800
Componenti![Perc] = 1
Componenti![Fraz] = 0 (o nullo)
Particolari![idart] = 1
Particolari![descrizione] = Paletta
Particolari![Tipo] = polipropilene grado 25
Particolari![Peso] = 80
Componenti![idComp] = 2
Componenti![idPart] = 2
Componenti![Tipo] = colorante celeste
Componenti![Perc] = 1
Componenti![Fraz] = 0 (o nullo)
Particolari![idart] = 1
Particolari![descrizione] = Stampaggio paletta23
Particolari![Tipo] = (pz)
Particolari![Peso] = 0
come vedi le info sui Particolari riescono a descrivere le sistuazioni che 
hai proposto.
E' chiaro che in fase di calcolo dei costi manca una info IMPORTANTISSIMA: 
per le operazioni tipo Stampaggio paletta23  quale costo associ? meglio 
prevedere un campo che lo contenga?
E si nota anche un'altro dato 'ridondnte' da normalizzare : il tipo di 
particolare sarà ripetuto molte volte. Quindi sarebbè opportuno avere una 
tabella dei Tipi: Colorante Blu, Colorante Rosso ....Polipropilene grado 
25,ecc. per non appesantire inutilmente la tabella Particolari.
FINE PRIMA PARTE
se questo approccio ti gusta, possiamo proseguire ... ;))
IvanDaBologna 


Ciao
Ho guardato quanto hai fatto e credo che possa andare ma prima di
proseguire vorrei che tu toccassi con mano l'insieme di elementi di
cui stiamo parlando e per fare questo mi basta che tu prenda un
oggetto presente in ogni casa: LA SCOPA
Sorpreso? Ecco quello che ora hai tra le mani è il mio intero processo
produttivo a questo punto ti elenco come è fatto tecnicamente:
La parte rigida è la base o il supporto della scopa e questo si
ottiene mediante lavorazione di stampaggio per pressofusione
La parte soffice formata da lunghi filamenti sintetici è in gergo
chiamata crine e serve per pulire.
Il crine viene inserito nel supporto mediante una lavorazione di
punzonatura che opera in questo modo ( se vuoi, per capire meglio,
puoi strappare con le pinze o a mano un fiocco intero dalla scopa e
sorpresa delle sorprese alla sua base troverai un gancio di ferro)
una macchina robotizzata esegue i fori sulla base di plastica
dopodichè estrae da una rocca il filo di ferro, lo taglia a misura, e
mentre lo piega per formare il "gancio" che vedi avere la forma di una
goccia, gli inserisce al suo interno il mazzetto di crine prelevato da
un cassetto distributore, ed infine un ago pianta il gancio in fondo
al foro precedentemente creato piegando così in due il mazzetto di
crine per dargli consistenza.
Questa operazione viene ripetuta per ogni ciuffetto che vedi nella
scopa che hai tra le mani.
Ora ti ho illustrato velocemente, ma spero in modo esauriente, quella
che è la mia fase produttiva aggiungendo il reparto di confezionamento
il ciclo si chiude.
Ora io devo riuscire a dire ad access di calcolarmi questo insieme
considerando che l'operatore al computer non conosca l'interazione
degli elementi.
Inoltre molti dei dati da utilizzare nella distinta base che dovrà
servire per calcolare il magazzino , i costi ed i tempi di produzione,
derivano non solo dalla natura dell'elemento in questione ma sono il
risultato di operazioni su più elementi. mi spiego meglio utilizzando
un elemetno della scopa che quando lo hai visto, sicuramente ti ha
incuriosito: IL GANCIO.
Il Gancio "G1" e formato da filo di ferro "F1" ed è lungo "L1" quindi
io posso facilmente sapere dalla tabella dei dati tecnici del ferro
che :
G1 lungo L1 mm e formato dal filo F1 che ha un rapporto di peso
lineare di X gr/m
da cui
 X [gr/m]*1000= x [gr/mm]
 x[gr/mm]* L1 [mm]= PG1 [gr] che è il peso di un gancio
 nello stesso modo ottengo il costo del ferro che compone un gancio
sapendo che lo compro come V [E/kg]
 PG1 [gr] * V [E/kg]/1000 = CG1 [E] che è il costo del gancio
ora ti chiedo quanti ciuffi vedi? quelli sono anche il numero totale
di ganci prodotti quindi quanto sopra diventa:
PG1*FT(fori totali)= PTF (peso totale del ferro utilizzato)
CG1*FT(fori totali)= CTF (costo totale del ferro utilizzato)
ma chi glielo dice ad access quanti fori ci sono?
inoltre sappi che si possono mettere piu colori di crine sul solito
supporto e quasto determina sicuramente diverse movimentazioni di
magazzino e probabilmente anche di costo.
ma chi gli dice quanti fori per colore ci sono.
io so quanti grammi di crine mettere in totale e conosco il numero
totale di fori  quindi il db dovrebbe fare questo:
gr crine totale / fori totali = grammi di crine al fori
grammi di crine al foro* x fori a colore= grammi di crine di quel
colore
e così di seguito.
Questa è solo una delle formule particolari da utilizzare ce ne sono
altre forse anche più complesse.
Io attualmente eseguo tutto da Excel ecco peche doveri costruire una
sorta di "calcolatrice" per passare risultati dei calcoli in distinta
la quale poi andando a vedre i listini fornitori sarà in grado di
dirmi o rivedere o preventivare i costi.
Se quanto ti ho fatto fare, quello che hai visto e ciò che ti ho
esposto ti intrippano e ci vedi una soluzione pratica ed a porte
aperte per implementazione, possiamo proseguire e ti darò tutte le
informazioni che vuoi.
Ciao roberto

[....]








[....]
Ciao Roberto.
FINALMENTE SI DISCUTE DI PROGETTO!
A tutte le domande che mi fai ti rispondo così: glielo diciamo noi ad Access 
!!!
La nota sul numero di pezzi da togliere, non si apllica al caso del crine e 
dei ganci.
Qui vogliamo che per ogni SCOPA siano inseriti 150 criniNeri e 80 criniBlu e 
230 GanciDa3mm.
Quindi nelle specifiche della DistintaBase per la SCOPA, inseriremo tutti i 
componenti di base e la quantità di esemplari necessari.
Resta quindi solo il progetto delle tabelle che debbono contenere questi 
dati in apparenza non omogenei.
Viene confermata la necessità di una Tabella TIPI che ci informa delle 
caratteristiche del materiale in esame e della opportuna unità di misura da 
adottare per i calcoli.
TIPI
[idTipo] (contatore)
[TIPO] (testo)
[UM] (testo) magari da una casella a discesa che elenchi le tre o quattro 
unità principali (gr, mm, L, pz)
[costo] (valuta) questo potrebbe essere argomento di un'altra tabella che 
tenga conto delle date e dei costi, qualcosa tipo listino
Proviamo a comporre la tua SCOPA [idArt]=2
Particolari![idart] = 2
Particolari![descrizione] = Base crine
Particolari![Tipo] = polipropilene grado 25
Particolari![Peso] = 130
Particolari![pzTot] = 1
Particolari![idart] = 2
Particolari![descrizione] = Gancio G1
Particolari![Tipo] = Filo ferro F1
Particolari![Peso] = 2
Particolari![pzTot] = 230
Particolari![idart] = 2
Particolari![descrizione] = CriniBLU
Particolari![Tipo] = setole
Particolari![Peso] = 3
Particolari![pzTot] = 80
Particolari![idart] = 2
Particolari![descrizione] = CriniNERI
Particolari![Tipo] = setole
Particolari![Peso] = 3
Particolari![pzTot] = 150
come vedi la quantificazione è possibile e alla portata di tabella!
Qiando raccoglieremo tutti i Particolari con [idArt]=2 tutto questo verrà 
raggruppato e opportunamente calcolato.
Poichè questa discussione stà diventando molto lunga credo che dovremmo 
continuare in Privato per non appesantire il NG, a meno che l'argomento non 
interessi anche ad altri. Ma dagli interventi direi che possiamo 'parlarne' 
in privato.
Scrivimi a :  
ivanSENZAQUESTO.casaCHIOCCIOLAtin.it
IvanDaBologna


Sono d'accordo ma la tua mail mi rende sempre errore.
scrivimi a 
s...@smp-pieroni.com
 così ti rispondo.
Ciao
Roberto