Newsgroup: it.comp.software.database
Titolo: Report basato su diverse tabelle

Salve a tutti. Non so se riuscirò ad essere chiaro a sufficienza. Si
tratta di un intoppo che mi trovo ad affrontare da parecchio tempo e
pur rigirandolo per molti versi, non sono ancora riuscito a
risolverlo.
Devo gestire la procedura di lavorazione (tblProcedure: IDProcedura,
IDArticolo, Ordinale, IDFase) degli articoli (tblArticolo: IDArticolo,
Descrizione). Le singole lavorazioni possono essere ripetute in
momenti diversi della procedura. Ho optato per la creazione di una
tabella per ogni singola lavorazione (tblLav1: IDLav1, IDProcedura,
IDArticolo, Impostazione1; tblLav2: IDLav2, IDProcedura, IDArticolo,
Imp1, Imp2, Imp3). Questo perchè ogni singola lavorazione è ovviamente
diversa dalle altre e richiede una tabella costruita ad hoc. A questo
punto cominciano i problemi. Secondo la struttura che ho creato,
dovrei collegare la tabella tblFasi: IDFase, Descrizione ai nomi delle
tabelle delle lavorazioni per poterle richiamare. Cioè, quando nella
tabella tblProcedure inserisco in codice dell'IDFase, quel numero lì
deve essere identificativo della tabella della lavorazione
corrispondente. Se però riuscissi a fare questo, dovrei poi trovare il
modo di creare un report che elenchi tutta la procedura di lavorazione
con l'elenco delle fasi in ordine (ecco perchè ho inserito il campo
Ordinale) e con le impostazioni delle macchine di ogni songola
lavorazione. E qui mi blocco.
Qualcuno ha qualche idea?
Grazie

 wrote in news:5d02389d-54f0-4ab9-b020-
92d501...@a37g2000yqi.googlegroups.com
:

butta il db e rifallo.
N tabelle per N lavorazioni secondo me non sono una buona soluzione.
se devi inserire una nuova lavorazione devi modificare il db.
e tutto il codice che lo interroga.
e se non hai stored procedures o simili devi anche ricompilare tutti i 
programmi che leggono il tuo db.
in piu' ti ritrovi con il problema che hai descritto, che se vuoi cioe' 
fare delle interrogazioni tutto sommato banali diventi matto.
ripensa la struttura...
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 
92d501707...@a37g2000yqi.googlegroups.com
:

Lo pensavo anche io che non andava bene preparare prima le tabelle per
le lavorazioni. Solo che il problema di fondo è che ogni lavorazione
richiede un numero di campi diverso. E' da parecchio tempo che penso a
come fare. Inoltre ho lavorazioni che vengono effettuate internamente
e lavorazioni che vengono effettuate esternamente. Paradossalmente mi
trovo che è più facile gestire quelle esterne in quanto mi basta
inserire il codice della lavorazione e il codice del fornitore visto
che poi si arrangiano i terzisti a gestire le impostazioni macchina
delle loro lavorazioni. Al momento ho risolto inserendo tutte le
lavorazioni interne in un'unica tabella ma riducendolo ad un mero True/
False per sapere se la lavorazione va eseguita o meno. Non riesco ad
inserire le impostazioni macchina.
Spero che qualcuno si sia già trovato ad affrontare questo tipo di
problema e lo abbia risolto ;-)
P.S.: Forse ho sbagliato gruppo. Dovevo postare in quello di Access.
Va bene lo stesso?

 
in questi campi diversi cosa ci va?
se si tratta di impostazioni macchina, non potresti avere un unico campo 
di testo in cui scrivi le impostazioni macchina?
devi per forza avere tante 'caselle' (dillo che usavi excel... ;-P) una 
per ogni parametro?
non e' che magari le impostazioni macchina le estrai sempre e solo in 
blocco per stamparle e passarle all'attrezzista?
ha veramente senso averle spantegate in N campi separati?


 
39f96ad0b...@g10g2000vbc.googlegroups.com
:

In effetti ho usato excel fino alla nausea ;-)))))
Sono proprio macchinari diversi che necessitano di impostazioni
totalmente diverse. Su uno magari imposto la velocità e la pressione,
mentre su un altro devo descrivere il carico massimo consentito, il
codice da impostare sul computer della macchina, la grammatura di
prodotto da metterci. Il fatto è che poi uno dei report che mi servono
è proprio tutto il processo di lavorazione con le impostazioni
macchina. Questo per la 9001. Al momento ho fatto delle tabelle in
word ma se riuscissi ad inserirle in access andrei a completare una
parte del software che ho messo in piedi per gestire la parte relativa
alla produzione per la 9001.

 wrote in
news:a33d5343-551f-42eb...@g20g2000prg.googlegroups.com
: 

ok, le impostazioni sono diverse per ogni lavorazione, ma devi valutare
anche come recuperi le informazioni. 
t'interessa veramente recuperare il singolo parametro?
oppure prendi tutto l'insieme delle impostazioni in blocco?
lavorazione X: ti serve recuperare la sola velocita' di taglio da
impostare sulla macchina? o forse quando leggi le impostazioni ti
servono tutte insieme per usare tutte insieme per configurare la
macchina? 
se e' buona la seconda imo ha poco senso creare nmila campi da riempire;
un singolo campo di testo con dentro l'insieme delle impostazioni e via. 
se invece ti serve una media delle velocita' del mandrino in tutte le
lavorazioni allora sono indispensabili tutti i parametri separati. 
ma allora fai una tabella 'parametri' legata alla tabella 'lavorazioni'
e inserisci i parametri uno per riga, non una tabella 'lavorazioneX' con
tante colonne quanti sono i parametri... 


 wrote:

Cavolo. Come sei veloce a rispondere! Grazie.
Comunque, in effetti non è che devo farci granchè poi con le varie
impostazioni. E' solo perchè poi nei report che mi devo creare sarebbe
utile una suddivisione con il nome di ogni singolo parametro in quanto
alcune macchine possono essere impostate da chiunque si trovi a
lavorarci sopra. Capirai che trovarsi una tabella con su scritto:
2-7/12-2/1-17-17-10 non è molto chiaro. Mentre se sopra ad ogni
parametro c'è il nome del campo, la cosa comincia a farsi più chiara.

 
se hai un campo di testo libero (che per me e' il male, ma ogni tanto 
serve), lo compili con qualcosa del tipo:
velocita': 19rpm
profondita':15mm
punta: 130mm
e nel report quello ti viene visualizzato...
campo di testo non significa 'campo a singola riga'


 richiede un numero di campi diverso.
A me sembra proprio un problema da excel dipendente ;-)
Un primo approccio potrebbe essere questo:
                           |-------------|
|-------------|           |flusso       |
|lavorazione  |           |-------------|
|-------------|           |id           |
|id           |----->>----|fk_id_lavoraz|
|macchina     |           |sequenza     |
|descrizione  |           |tipo         |
|-------------|           |utensile     |
                           |pos_x        |
                           |pos_y        |
                           |pos_z        |
                           |-------------|
I momi dei campi sono abbastanza artificiosi non conoscendo la 
problematica specifica ma l'insieme dovrebbe comunque rendere l'idea 
della struttura. Sulla tabella flusso metterai tanti record quante sono 
le lavorazioni necessarie, una semplice query ti restituirà la visione 
di insieme da cui generare il report.
Ovviamente ci si può spingere verso migliore normalizzazione, questo è 
solo un punto di partenza.
Ti consiglierei "databases for mere mortals" un ottimo libro anche per 
partire da zero e "SQL Query for Mere Mortals" che se non erro è stato 
pubblicato tradotto nella linea portatili di Mondadori... per una decina 
di euro è un ancor più eccellente investimento.
-- 
Design for the future, because it will be here sooner than you think.
(C) Eric S. Raymond, from "The Art of Unix Programming"

 
lo vedi che il dubbio non era venuto solo a me!!
:-)
[cut]


 wrote innews:ib0qpa$1k3$
1...@newsreader1.mclink.it
:


:-)))))) Guardate che ormai sono anni che l'ho abbandonato! Mi trovo
benissimo in Access. E' possibile mandare un allegato qui? Così vi
mostro a grandi linee come dovrà essere il report che mi serve e da lì
ho un punto di partenza per spiegarvi la struttura del DB. Non
conoscendone la soluzione non riesco ad essere chiaro.
@Giovanni V.: puoi spiegarmi? Non capisco la tabella Flusso. Dovrei
inserire un numero di campi pari alle impostazioni possibili e
compilarla in base alla lavorazione collegata con l'IDLavorazione? La
struttura che mi hai suggerito riesco ad utilizzarla per le
lavorazioni esterne:
tblFasi: IDFase - Descrizione
tblProcedure: IDProcedura - IDArticolo
tblDettProcedureEsterne: IDDettProcEst - Ordinale - IDFase -
IDFornitore - IDLavorazione
In questo caso che io mandi fuori a stampare, a inchiodare o a
macchiare, quello che va in tabella è uguale per tutti.
Ma se io mi trovo ad avere dei centri di lavoro che, se dovessi
metterli in tabella, richiedono questo:
tblBottalatura: IDBott - Cod - CaricoMax - Ore
tblPalissonatura: IDPal - VelMin - Pressione
tblSpruzzo: IDSpruzzo - CodSpr - Gr1Cab - Gr2Cab - Vel1Cab - Vel2Cab -
VelTappeto
e altro, dici che mi convenga mettere tutte le impostazioni in un
unico campo testo? E' sconsigliato strutturare in modo da avere un
campo per ogni impostazione? Come dicevo a Paolo, non è che mi servano
le impostazioni per calcoli o altro, era solo per averle ordinate
campo per campo.
Cavolo! Mi rendo conto che visto così...è un problema da excel
dipendente! ;-))))
Grazie

 tblSpruzzo: ... Gr1Cab - Gr2Cab - Vel1Cab - Vel2Cab -
Sta' roba si trova ancor oggi in tanti gestionali reputatissimi sotto 
forma di Tel1, Tel2, Tel3, Email1, Email2... è una cosa che mi manda in 
bestia. Coraggio puoi fare meglio di loro!!
Col tempo perso a disegnare le tabelline nel mailer avrei fatto il db 
per poi potertelo passare ma: a) è diseducativo e b) non uso e non ho 
access.


Il 05/11/2010 15.02, r4gtl ha scritto:
 > Non capisco la tabella Flusso. Dovrei
 > inserire un numero di campi pari alle impostazioni possibili e
 > compilarla in base alla lavorazione collegata con l'IDLavorazione?
Il collegamento ok, ma per i campi forse non ci siamo. Ogni riga è un 
attributo della lavorazione, per ognuna devi analizzare le entità e le 
loro caratteristiche per individuare cosa ti serve...
 > tblBottalatura: IDBott - Cod - CaricoMax - Ore
 > tblPalissonatura: IDPal - VelMin - Pressione
Vediamo se riesco a spiegarmi partendo dalle medesime tabelle... 
usandole per scardinare le tue convinzioni.
Non so cosa siano Bottalatura e Palissonatura ma faccio finta di capire 
dagli attributi che gli hai dato. ;-)
|Lavorazione           |
|----------------------|
|id |processo          |
|----------------------|
|1  |Bottalatura       |
|2  |Palissonatura     |
|CaratteristicheProcesso        |
|-------------------------------|
|id |fk_idl| unita     | valore |
|-------------------------------|
|1  |1     |Gr.        | 250,20 |
|2  |1     |Min.       | 60     |
|3  |1     |Cod.       | AA8547 |
|4  |2     |Rpm.       | 2500   |
|5  |2     |Atm.       | 0,8    |
Ho ancora due tabelle ma se domani devo aggiungere qualcosa alla 
bottalatura mi basta aggiungere una riga con gli attributi alla tabella 
CarattersticheProcesso. Poi una banalissima query mi dirà come fare la 
bottalatura.
Ora mi serve verniciare, che faccio un'altra tabella?? Aggiungo n campi? 
direi decisamente no, mi basta quello che ho già, quindi appendo:
|Lavorazione           |
|----------------------|
|id |processo          |
|----------------------|
|3  |Verniciatura      |
e poi...
|CaratteristicheProcesso        |
|-------------------------------|
|id |fk_idl| unita     | valore |
|-------------------------------|
|6  |3     |Colore     | Rosso  |
|7  |3     |Aspetto    | Opaco  |
|8  |3     |Tipo       | Lacca  |
|9  |3     |Spessore   | 0,008mm|
Mentre lo faccio d'istinto mi accorgo già che qualcosa non và e in 
CarattersticheProcesso al posto di "unità" dovrei avere "Attributo" e 
"UnMisura".
|CaratteristicheProcesso                 |
|----------------------------------------|
|id |fk_idl|Attributo  | UnMis  | valore |
-----------------------------------------|
|6  |3     |Colore     | Col.   | Rosso  |
|7  |3     |Aspetto    | Boh    | Opaco  |
|8  |3     |Tipo       | Boh    | Lacca  |
|9  |3     |Spessore   | mm     | 0,008  |
Ora voglio anche forare và, quindi appendo anche...
|Lavorazione           |
|-----------------------
|id |processo          |
|-----------------------
|4  |Foratura          |
e poi
|CaratteristicheProcesso                 |
|----------------------------------------|
|id |fk_idl|Attributo  | UnMis  | valore |
-----------------------------------------|
|10 |4     |Punta      | mm.    | 4      |
|11 |4     |Tipo       | Boh    | HSS    |
|12 |4     |Pos_X.     | mm.    | 16     |
|13 |4     |Pos_Y      | mm     | 65     |
|14 |4     |Prof.      | mm     | 8      |
Ho ancora 2 sole tabelle.... comincia ad essere più chiaro pur se 
embrionale e certamente perfettibile??
Poi dovrei avere un campo per mettere i processi nell'ordine giusto 
visto che sarebbe meglio verniciare prima aver forato e non dopo come ho 
appena fatto ;-) quindi aggiungerai un campo "sequenza" alla tabella 
Lavorazione.
Si può fare molto di meglio... le unità di misura, gli utensili, i 
colori, i codici e via dicendo possono risiedere in apposite tabelle da 
usare come lookup per poi inserire il loro id in CaratteristicheProcesso 
diminuendo anche la possibilità di errori di inserimento ma per ora 
accontentati e procedi per passi.
 > tblSpruzzo: ... Gr1Cab - Gr2Cab - Vel1Cab - Vel2Cab -
Sta' roba si trova ancor oggi in tanti gestionali reputatissimi sotto 
forma di Tel1, Tel2, Tel3, Email1, Email2... è una cosa che mi manda in 
bestia. Coraggio puoi fare meglio di loro!!
Col tempo perso a disegnare le tabelline nel mailer avrei fatto il db 
per poi potertelo passare ma: a) è diseducativo e b) non uso e non ho 
access.
-- 



O_0
...comincio a vedere un pò di luce in fondo al tunnel. Fammelo
lavorare un pò e poi ti dico. Intanto vi ringrazio per l'aiuto.
Ciao

 ...comincio a vedere un p� di luce in fondo al tunnel.
Purtroppo quella luce non e` l'uscita, ma e` il treno che sta
per investirti, e quel treno si chiama EAV.


Cavolo! Mi si è aperto un orizzonte nuovo! Da profano credo di aver
capito cosa intendi per EAV. L'ho cercata un pò sul web ed ho trovato
alcune spiegazioni. Comunque se è quel sistema che mi avete spiegato,
devo proprio ringraziarvi. Adesso mi sto sbizzarrendo a fare dei
tentativi per provare questo sistema sul mio DB.
Purtroppo da autodidatta, molte strade mi sono precluse. Vado avanti
come posso ma con questo sistema qui ho materiale a bizzeffe da
approfondire.
Grazie mille a tutti.