|
![]() |
#1 |
Участник
|
Цитата:
Для того, чтобы система анализировала мощность конретного РЦ, необходимо, чтобы в настройках маршрута параметр "Формула" был равен Мощность
На планирование с ограничением по мощности или нет формула никак не влияет Достаточно взглянуть на этот базовый класс и его потомков: X++: static RouteCalcConsumption construct(RouteFormula formula = RouteFormula::Formula0) { switch(formula) { case (RouteFormula::Formula0) : return new RouteCalc_Formula0(); // Стандарт case (RouteFormula::Formula1) : return new RouteCalc_Formula1(); // Мощность case (RouteFormula::Formula2) : return new RouteCalc_Formula2(); case (RouteFormula::Formula3) : return new RouteCalc_Formula3(); } return new RouteCalc_Formula0(); } X++: // Стандарт Hours calcWrkCtrProcessTime(BOMCalcData calc, RouteMap primaryRoute, RouteOprMap primaryOpr, RouteMap secondaryRoute = primaryRoute, RouteOprMap secondaryOpr = primaryOpr, WrkCtrId wrkCtrId = primaryOpr.WrkCtrId ) { if (!primaryRoute.RecId || !primaryOpr.RecId || primaryRoute.OprPriority != RouteOprPriority::Primary ) { throw error("@SYS17275"); } return decround((calc.seriesSize() * (primaryRoute.AccError > 1 ? primaryRoute.AccError : 1) * (primaryOpr.ProcessTime/ minOne(primaryOpr.ProcessPerQty)) * minOne(primaryOpr.ToHours)),decimals); } X++: // Мощность Hours calcWrkCtrProcessTime(BOMCalcData calc, RouteMap primaryRoute, RouteOprMap primaryOpr, RouteMap secondaryRoute = primaryRoute, RouteOprMap secondaryOpr = primaryOpr, WrkCtrId wrkCtrId = primaryOpr.WrkCtrId ) { WrkCtrTable wrkCtrTable; RouteOprTime processTime; InventQty processNumOf; ; if (!primaryRoute.recId || !primaryOpr.recId || primaryRoute.oprPriority != RouteOprPriority::Primary) throw error("@SYS17275"); wrkCtrTable = WrkCtrTable::find(wrkCtrId); processTime = primaryOpr.processTime; processNumOf = primaryOpr.processPerQty; if (! wrkCtrTable.checkValid()) throw error("@SYS19457"); if (primaryOpr.formulaFactor1 > 0 && wrkCtrTable.capacity > 0 && primaryOpr.toHours > 0) { processTime = 1 / primaryOpr.toHours; processNumOf = wrkCtrTable.capacity / primaryOpr.formulaFactor1; } return decround((calc.seriesSize() * (primaryRoute.accError > 1 ? primaryRoute.accError : 1) * (processTime/ minOne(processNumOf)) * minOne(primaryOpr.toHours)),decimals); } Последний раз редактировалось ansoft; 13.08.2013 в 14:36. |
|
Теги |
ax2009, сводное планирование |
|
|