Quintiq file version 2.0
|
#parent: #root
|
StaticMethod GenerateReport (
|
MacroPlan macroPlan
|
)
|
{
|
TextBody:
|
[*
|
macroPlan.TransferPlanRow( relflush );
|
macroPlan.TransferPlanColumn( relflush );
|
|
rowNr := 0;
|
|
// 生成调拨计划
|
traverse ( macroPlan, Unit, u, u.HasCapacityTypeTransportQuantity() ) {
|
traverse ( u, Lane.LaneLeg.Trip, t ) {
|
originFactory := TransferPlanRow::IdentifyTheFactory( t.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ); // 起始工厂
|
destinationFactory := TransferPlanRow::IdentifyTheFactory( t.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ); // 目标工厂
|
traverse ( t, ProductInTrip, pit, pit.Quantity() > 0.0 and // 数量大于0
|
exists( pit.Product_MP(), AllParent.AsParent, tempP, tempP.ID() = "机加件" ) and // 只取机加件
|
originFactory <> destinationFactory // 起始工厂不能和目标工厂一致
|
) {
|
// 找行
|
tpr := TransferPlanRow::FindTransferPlanRowTypeIndex( TransferPlanRow::IdentifyTheFactory( t.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ),
|
TransferPlanRow::IdentifyTheFactory( t.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ),
|
pit.Product_MP().ID() );
|
if ( isnull( tpr ) ) {
|
tpr := macroPlan.TransferPlanRow( relnew,
|
RowNr := rowNr,
|
SourceStockpoingPointID := TransferPlanRow::IdentifyTheFactory( t.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ),
|
TargetStockpoingPointID := TransferPlanRow::IdentifyTheFactory( t.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ),
|
ProductID := pit.Product_MP().ID(),
|
Category := pit.Product_MP().ParentID() );
|
}
|
|
// 找列
|
tpc := TransferPlanColumn::FindTransferPlanColumnTypeIndex( t.Departure().Date() );
|
if ( isnull( tpc ) ) {
|
tpc := macroPlan.TransferPlanColumn( relnew,
|
ColumnDate := t.Departure().Date() );
|
}
|
|
// 赋值单元格
|
cell := select( tpc, TransferPlanCell, tempTPC, tempTPC.TransferPlanRow() = tpr );
|
if ( isnull( cell ) ) {
|
cell := tpc.TransferPlanCell( relnew, Value := [String]pit.Quantity().Round( 0 ) );
|
cell.TransferPlanRow( relset, tpr );
|
} else {
|
cell.Value( [String] ( [Number]cell.Value() + pit.Quantity().Round( 0 ) ) );
|
}
|
}
|
}
|
}
|
|
// 补齐空列
|
indexDate := minselect( macroPlan, TransferPlanColumn, tempTPC, true, tempTPC.ColumnDate() ).ColumnDate();
|
endDate := maxselect( macroPlan, TransferPlanColumn, tempTPC, true, tempTPC.ColumnDate() ).ColumnDate();
|
while ( indexDate <= endDate ) {
|
if ( isnull( TransferPlanColumn::FindTransferPlanColumnTypeIndex( indexDate ) ) ) {
|
macroPlan.TransferPlanColumn( relnew,
|
ColumnDate := indexDate );
|
}
|
indexDate := indexDate + 1;
|
}
|
|
// 补齐空格子
|
traverse ( macroPlan, TransferPlanRow, tpr ) {
|
traverse ( macroPlan, TransferPlanColumn, tpc, tpc.ColumnDate() >= minselect( macroPlan, TransferPlanColumn, tempTPC, true, tempTPC.ColumnDate() ).ColumnDate() ) {
|
cell := select( tpr, TransferPlanCell, tempTPC, tempTPC.TransferPlanColumn() = tpc );
|
if ( isnull( cell ) ) {
|
cell := tpc.TransferPlanCell( relnew, Value := "" );
|
cell.TransferPlanRow( relset, tpr );
|
}
|
}
|
}
|
|
// 生成产品列
|
//minDateTPC := macroPlan.TransferPlanColumn( relnew,
|
// ColumnDate := Date::MinDate() );
|
//traverse ( macroPlan, TransferPlanRow, tpr ) {
|
// productCell := minDateTPC.TransferPlanCell( relnew, Value := tpr.Category() + "_" + tpr.ProductID() );
|
// productCell.TransferPlanRow( relset, tpr );
|
//}
|
|
// 调拨数量调整
|
*]
|
}
|