Estrapolazione dati da distinta base

di il
2 risposte

Estrapolazione dati da distinta base

Ciao buongiorno,
Chiedo cortesemente il Vs aiuto per mia manifesta incapacità.....

Ho creato un programma con access per effettuare delle operazioni di scarico materiale in un reparto.

La DistintaBase sulla quale si base il programma ha i seguenti campi estratti da SAP:
- IdDettDistintaBase: Codice progressivo ed univoco
- IdMateriale: Codice Padre comune a tutta la distinta di quel prodotto
- IdMaterialeFiglio: Sotto Componente del codice padre, che può essere un'assemblato o codice acquisto
- Livello: Livello di componente / sotto componente
- Phantom: Codice non gestito a sistema come magazzino, traatsi di sub-assieme. Se campo impostato a -1 è un phantom

Gli operatori scaricano codici gestiti a sistema (Phantom 0 e codici Phantom -1) sulla tabella "Scarichi" così composta:
IDScarico
DataScarico
IDMateriale
IDMaterialeFiglio
Quantità
Causale

Ho la necessità di accodare nella Tabella "DaProcessare" (che ha gli stessi della tabella "Scarichi") i dati Phantom 0 come caricati ed i Phantom -1 rielaborati riportando solo i sotto livelli sucessivi che lo costituiscono.

Esempio di distinta:

IdDettDistintaBase IdMateriale IdMaterialeFiglio Livello Phantom
1 1 1 0 0
2 1 21367 1 -1
3 1 21342 2 0
4 1 21470 3 -1
5 1 21471 4 0
6 1 21589 5 0
7 1 15000 6 0
8 1 21729 5 0
9 1 21312 6 0
10 1 10500 4 0
11 1 11500 4 0
12 1 21658 3 0
13 1 21640 4 0
14 1 2647 4 0
15 1 21606 2 0
16 1 21634 2 0
17 1 21699 2 0
18 1 21700 2 0
19 1 21709 2 0
20 1 21710 2 0
21 1 21478 1 -1
22 1 21338 2 0
23 1 21472 3 -1
24 1 21473 4 0
25 1 21589 5 0
26 1 15000 6 0
27 1 21730 5 0
28 1 21311 6 0
29 1 10500 4 0
30 1 11500 4 0
31 1 21658 3 0
32 1 21640 4 0
33 1 2647 4 0
34 1 2403 2 0
35 1 21691 2 0
36 1 221 3 0
37 1 2529 2 0
38 1 21536 1 0
39 1 21537 2 0
40 1 242 3 0
41 1 2643 2 0
42 1 2644 2 0
43 1 2349 1 0
44 1 2357 1 0
45 1 21616 1 0
46 1 21618 1 0
47 1 21673 1 0
48 1 2206 2 -1
49 1 2382 3 0
50 1 2383 4 0
51 1 2378 5 0
52 1 2569 3 0
53 1 2582 3 0
54 1 21596 2 0
55 1 21597 3 0
56 1 21593 4 0
57 1 2338 2 0
58 1 2340 2 0
59 1 2576 2 0
60 1 2577 2 0
61 1 2467 1 0
62 1 2471 1 0
63 1 21698 1 0
64 1 2533 1 0
65 1 2540 1 0
66 1 25 2 0

Esempio:
Se operatore scarica il codice:

IdDettDistintaBase IdMateriale IdMaterialeFiglio Livello Phantom
2 1 21367 1 -1


Il sistema non deve fare nulla e riportarmi la stesso codice in quanto Phantom 0



IdDettDistintaBase IdMateriale IdMaterialeFiglio Livello Phantom

22 1 21338 2 0


Se viene scaricato il codice


IdDettDistintaBase IdMateriale IdMaterialeFiglio Livello Phantom
2 1 21367 1 -1


Deve estrapolare i sotto livelli sucessivi con Phantom 0, vedi tratteggio vicino:

IdDettDistintaBase IdMateriale IdMaterialeFiglio Livello Phantom

3 1 21342 2 0 ---------
4 1 21470 3 -1
5 1 21471 4 0
6 1 21589 5 0
7 1 15000 6 0
8 1 21729 5 0
9 1 21312 6 0
10 1 10500 4 0
11 1 11500 4 0
12 1 21658 3 0
13 1 21640 4 0
14 1 2647 4 0
15 1 21606 2 0 ---------
16 1 21634 2 0 ---------
17 1 21699 2 0 ---------
18 1 21700 2 0 ---------
19 1 21709 2 0 ---------
20 1 21710 2 0 ---------



è possibile che se viene scaricato un codice Phantom (-1) possa avere a sua volta un'altro codice Phantom -1 nel suo sotto livello, si dovrà scendere di livello e considerare quello sucessivo.
Esempio se nella tabella sopra un codice livello 2 era Phantom -1, solo per quel codice si doveva riportare il livello 3.

Un componente in distinta ha un'intervallo che va dal suo livello (esempio "1") al sucessivo livello uguale

IdDettDistintaBase IdMateriale IdMaterialeFiglio Livello Phantom


2 1 21367 1 -1
3 1 21342 2 0
4 1 21470 3 -1
5 1 21471 4 0
6 1 21589 5 0
7 1 15000 6 0
8 1 21729 5 0
9 1 21312 6 0
10 1 10500 4 0
11 1 11500 4 0
12 1 21658 3 0
13 1 21640 4 0
14 1 2647 4 0
15 1 21606 2 0
16 1 21634 2 0
17 1 21699 2 0
18 1 21700 2 0
19 1 21709 2 0
20 1 21710 2 0
21 1 21478 1 -1 -------------- Codice successivo


Spero di essere stato sufficientemente chiaro.
Ringrazio anticipatamente per l'aiuto

Grazie

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte