Quintiq file version 2.0
|
#parent: #root
|
Method CreateShadowConversionFactor () id:Method_FormUnitsOfMeasurement_CreateShadowConversionFactor
|
{
|
#keys: '[124808.2.631315687]'
|
Body:
|
[*
|
// Generate conversion factor shadow instances
|
DataHolderShadowGlobalParameters.Data( null( shadow[GlobalParameters_MP], owning ) );
|
|
//Ownership on GP so that it is possible to show multi rows when multiple uoms are selected.
|
owner := shadow( MacroPlan.GlobalParameters_MP() );
|
DataHolderShadowGlobalParameters.Data( &owner );
|
|
traverse( DataHolderMatrixEditorRows.Data(), Elements, rowheader )
|
{
|
traverse( DataHolderMatrixEditorColumns.Data(), Elements, colheader, rowheader <> colheader )
|
{
|
baseconversionfactor := null( BaseConversionFactor );
|
|
// Get conversion factor regardless it is base or inverse, to show Factor value in matrix
|
conversionfactor := select( rowheader, AsSourceUnitOfMeasure, cf,
|
not cf.IsProductDependent(),
|
cf.TargetUnitOfMeasure() = colheader );
|
|
// Need to set relation to base conversion factor
|
// If it is base, relset straight away.
|
if( not isnull( conversionfactor ) )
|
{
|
if( conversionfactor.istype( BaseConversionFactor ) )
|
{
|
baseconversionfactor := conversionfactor.astype( BaseConversionFactor );
|
}
|
// Else if it is inverse, relset the base conversion factor the inverse factor belongs to.
|
else
|
{
|
baseconversionfactor := conversionfactor.astype( InverseConversionFactor ).BaseConversionFactor();
|
}
|
}
|
|
// Create shadow conversion factor in matrix
|
DataHolderShadowGlobalParameters.Data().ConversionFactorInMatrix( relnew,
|
SourceUnitOfMeasureInConversionMatrix := rowheader,
|
TargetUnitOfMeasureInConversionMatrix := colheader,
|
BaseConversionFactor := baseconversionfactor,
|
Factor := guard( conversionfactor.Factor(), 1 ) );
|
|
}
|
}
|
*]
|
}
|