E' stata creata una Reusable-Part per il calcolo della disponibilità Terzista per materiale.
£p_TipoRecord - '1-Cliente 2-Fornitore'
£p_Codice - 'Codice Terzista'
£p_Materiale - 'Materiale'
£p_MaterialeOrigin - 'Materiale Orginale'
£p_Numerata - 'Codice Numerata'
£p_Quantita - 'Punta alla lista interna delle quantità' PASS(*BY_REFERENCE)
up_TAGLIA - 'Taglia da 4 Caratteri'
up_PAQTCN - 'Disponibilità'
La Reusable-Part deve essere richiamata per ogni materiale, questa restituisce una collection con la quantità per taglia, naturalmente per i codici non a taglie la collection contiene un solo record con taglia uguale a ''.
Definire la RP nella wam in cui deve essere utilizzata, insieme alla collection delle quantità:
DEFINE_COM CLASS(£BUED0002) NAME(£vi_DispTerzista)
DEFINE_COM CLASS(£PRIM_ACOL<£BUED0003>) NAME(£vi_QUANTITA)
*
* Distruggo la collection se esiste
*
IF_REF COM(£vi_Quantita) IS_NOT(*NULL)
£vi_Quantita.RemoveAll
ENDIF
*
* Reperisco la disponibilità del terzista
*
£vi_DispTerzista.CalcolaDisponibilita P_TIPORECORD(£ANTIRE) P_CODICE(£ANKCL) P_MATERIALE(£PAKAR) P_MATERIALEORIGIN(£BUMTOR) P_NUMERATA(£BUKTG) P_QUANTITA(£vi_Quantita)
£PAQTCN := 0
IF_REF COM(£vi_Quantita) IS_NOT(*NULL)
FOR EACH(£taglia) IN(£vi_Quantita)
£PAQTCN += £taglia.up_PAQTCN
ENDFOR
ENDIF