Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已重命名4个文件
已修改64个文件
已添加92个文件
已删除3个文件
| | |
| | | } |
| | | InfoMessage MP_ChangeLossSettingExcel_Import_PositiveInteger |
| | | { |
| | | DefaultText: 'The import ChangeLossNr is not positive integer.' |
| | | DefaultText: 'The import ChangeLossNr is not positive number.' |
| | | } |
| | | InfoMessage MP_ChangeLossSettingExcel_Import_ProductNoExist |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation AssemblyOnlinePlanVersionColumn_Cell_AssemblyOnlinePlanVersionCell_Column |
| | | { |
| | | #keys: '1[415136.0.1174730270]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Cell |
| | | { |
| | | #keys: '3[415136.0.1174730272][415136.0.1174730271][415136.0.1174730273]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: AssemblyOnlinePlanVersionColumn |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide Column |
| | | { |
| | | #keys: '3[415136.0.1174730275][415136.0.1174730274][415136.0.1174730276]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: AssemblyOnlinePlanVersionCell |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation AssemblyOnlinePlanVersionColumn_InterfaceDataset_InterfaceDataset_AssemblyOnlinePlanVersionColumn |
| | | { |
| | | #keys: '1[415136.0.1176550032]' |
| | | DeclarativeSequenceRelationStrategy |
| | | { |
| | | #keys: '13[0.0.0][415136.0.1176550051][415136.0.1176550045][415136.0.1176550052][415136.0.1176550046][415136.0.1176550053][415136.0.1176550047][415136.0.1176550054][415136.0.1176550048][415136.0.1176550055][415136.0.1176550049][415136.0.1176550056][415136.0.1176550050]' |
| | | SequenceElementSuffix: 'AssemblyOnlinePlanVersionColumn' |
| | | SequenceSuffix: 'AssemblyOnlinePlanVersionColumn' |
| | | SortAttributes: |
| | | [ |
| | | DeclarativeSequenceRelationSortAttribute |
| | | { |
| | | #keys: '1[415136.0.1176550058]' |
| | | Attribute: 'ColumnDate' |
| | | } |
| | | ] |
| | | } |
| | | RelationSide.LeftSide InterfaceDataset |
| | | { |
| | | #keys: '3[415136.0.1176550034][415136.0.1176550033][415136.0.1176550035]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: AssemblyOnlinePlanVersionColumn |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide AssemblyOnlinePlanVersionColumn |
| | | { |
| | | #keys: '3[415136.0.1176550037][415136.0.1176550036][415136.0.1176550038]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: InterfaceDataset |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation AssemblyOnlinePlanVersionRow_Cell_AssemblyOnlinePlanVersionCell_Row |
| | | { |
| | | #keys: '1[415136.0.1174730181]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Cell |
| | | { |
| | | #keys: '3[415136.0.1174730183][415136.0.1174730182][415136.0.1174730184]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: AssemblyOnlinePlanVersionRow |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide Row |
| | | { |
| | | #keys: '3[415136.0.1174730186][415136.0.1174730185][415136.0.1174730187]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: AssemblyOnlinePlanVersionCell |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation AssemblyOnlinePlanVersionRow_InterfaceDataset_InterfaceDataset_AssemblyOnlinePlanVersionRow |
| | | { |
| | | #keys: '1[415136.0.1176550018]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide InterfaceDataset |
| | | { |
| | | #keys: '3[415136.0.1176550020][415136.0.1176550019][415136.0.1176550021]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: AssemblyOnlinePlanVersionRow |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide AssemblyOnlinePlanVersionRow |
| | | { |
| | | #keys: '3[415136.0.1176550023][415136.0.1176550022][415136.0.1176550024]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: InterfaceDataset |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
| | |
| | | #keys: '3[413988.0.1296697094][413988.0.1296697093][413988.0.1296697095]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: OfflinePlanColumn |
| | | OwningSide: 'Owned' |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
| | |
| | | #keys: '3[413988.0.1296697107][413988.0.1296697106][413988.0.1296697108]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: OfflinePlanRow |
| | | OwningSide: 'Reference' |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation OfflinePlanImportData_MacroPlan_MacroPlan_OfflinePlanImportData |
| | | { |
| | | #keys: '1[413988.0.1558681405]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide MacroPlan |
| | | { |
| | | #keys: '3[413988.0.1558681407][413988.0.1558681406][413988.0.1558681408]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: OfflinePlanImportData |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide OfflinePlanImportData |
| | | { |
| | | #keys: '3[413988.0.1558681410][413988.0.1558681409][413988.0.1558681411]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: MacroPlan |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation TransferMinimumQuantity_MacroPlan_MacroPlan_TransferMinimumQuantity |
| | | { |
| | | #keys: '1[413988.0.1584313394]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide MacroPlan |
| | | { |
| | | #keys: '3[413988.0.1584313396][413988.0.1584313395][413988.0.1584313397]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: TransferMinimumQuantity |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide TransferMinimumQuantity |
| | | { |
| | | #keys: '3[413988.0.1584313399][413988.0.1584313398][413988.0.1584313400]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: MacroPlan |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
| | |
| | | macroPlan.AssemblyOnlinePlanColumn( relflush ); |
| | | |
| | | // æ¾è£
é
çº¿è¡ |
| | | oprs := selectsortedset( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = "DL-MoMo" or tempOPR.ProductionLine() = "CC-MoMo", tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() ); |
| | | oprs := selectsortedset( opt, OfflinePlanRow, tempOPR, |
| | | tempOPR.ProductionLine() = "DL MoMo" or tempOPR.ProductionLine() = "CC MoMo" or tempOPR.ProductionLine() = "DL ZKM", |
| | | tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() ); |
| | | opcs := selectsortedset( opt, OfflinePlanColumn, tempOPC, true, tempOPC.ColumnDate() ); |
| | | |
| | | // çæè¡¨æ ¼ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute InventoryWeight |
| | | { |
| | | #keys: '3[415136.0.1174730142][415136.0.1174730141][415136.0.1174730143]' |
| | | Description: 'å©ä½åºå - æå°åºå' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductionSerialNumber |
| | | { |
| | | #keys: '3[415136.0.1174730145][415136.0.1174730144][415136.0.1174730146]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Quantity |
| | | { |
| | | #keys: '3[415136.0.1174730148][415136.0.1174730147][415136.0.1174730149]' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Shift |
| | | { |
| | | #keys: '3[415136.0.1174730151][415136.0.1174730150][415136.0.1174730152]' |
| | | Description: 'çæ¬¡' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Value |
| | | { |
| | | #keys: '3[415136.0.1174730154][415136.0.1174730153][415136.0.1174730155]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Shift |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Value |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan |
| | | ) as BinaryValue |
| | | { |
| | | TextBody: |
| | | [* |
| | | xmlDOMI := XMLDOMImplementation::Create(); |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>Sheet1</name></table>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | |
| | | opcs := selectsortedset( macroPlan, AssemblyOnlinePlanColumn, tempOPC, true, tempOPC.ColumnDate() ); |
| | | oprs := selectsortedset( macroPlan, AssemblyOnlinePlanRow, tempOPR, true, tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() ); |
| | | traverse ( opcs, Elements, opc ) { |
| | | column := xmlDOM.CreateElement( "column" ); |
| | | name := xmlDOM.CreateElement( "name" ); |
| | | type := xmlDOM.CreateElement( "type" ); |
| | | name.TextContent( ifexpr( opc.ColumnDate() < macroPlan.StartOfPlanning().Date(), "", opc.ColumnDate().Format( "Y/M2/D2" ) ) ); |
| | | type.TextContent( "String" ); |
| | | column.AppendChild( name ); |
| | | column.AppendChild( type ); |
| | | |
| | | traverse ( oprs, Elements, opr ) { |
| | | c := select( opc, AssemblyOnlinePlanCell, tempOPC, tempOPC.AssemblyOnlinePlanRow() = opr ); |
| | | cell := xmlDOM.CreateElement( "cell" ); |
| | | cell.SetAttribute( "value", guard( c.Value(), "" ) ); |
| | | column.AppendChild( cell ); |
| | | } |
| | | |
| | | tableElement.AppendChild( column ); |
| | | } |
| | | |
| | | xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ) |
| | | |
| | | //info( xmlString ); |
| | | |
| | | tableGroupHandle := TableGroupHandle::Create( "Sheet1" ); |
| | | tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); |
| | | tableGroupHandle.Add( tableHandle ); |
| | | |
| | | binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); |
| | | |
| | | return binaryData.AsBinaryValue(); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod RefreshData ( |
| | | MacroPlan macroPlan, |
| | | OfflinePlanTable opt |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | macroPlan.AssemblyOnlinePlanRow( relflush ); |
| | | macroPlan.AssemblyOnlinePlanColumn( relflush ); |
| | | |
| | | // æ¾è£
é
çº¿è¡ |
| | | oprs := selectsortedset( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = "DL-MoMo" or tempOPR.ProductionLine() = "CC-MoMo", tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() ); |
| | | opcs := selectsortedset( opt, OfflinePlanColumn, tempOPC, true, tempOPC.ColumnDate() ); |
| | | |
| | | // çæè¡¨æ ¼ |
| | | traverse ( opcs, Elements, opc ) { |
| | | aopc := macroPlan.AssemblyOnlinePlanColumn( relnew, ColumnDate := opc.ColumnDate(), ColumnIndex := opc.ColumnIndex() ); |
| | | traverse ( oprs, Elements, opr ) { |
| | | aopr := select( macroPlan, AssemblyOnlinePlanRow, tempAOPR, tempAOPR.ProductID() = opr.ProductID() and tempAOPR.ProductionLine() = opr.ProductionLine() and tempAOPR.Type() = opr.Type() ); |
| | | if ( isnull( aopr ) ) { |
| | | aopr := macroPlan.AssemblyOnlinePlanRow( relnew, ProductID := opr.ProductID(), ProductionLine := opr.ProductionLine(), Type := opr.Type() ); |
| | | } |
| | | |
| | | cellOPC := select( opr, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanColumn() = opc ); |
| | | if ( not isnull( cellOPC ) ) { |
| | | cellAOPC := aopc.AssemblyOnlinePlanCell( relnew, Value := cellOPC.Value() ); |
| | | cellAOPC.AssemblyOnlinePlanRow( relset, aopr ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // å¤çæ¥åäºä»¶ |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type AssemblyOnlinePlanVersionCell |
| | | { |
| | | #keys: '5[415136.0.1174730139][415136.0.1174730137][0.0.0][415136.0.1174730138][415136.0.1174730140]' |
| | | BaseType: Object |
| | | Description: 'è£
é
ä¸çº¿è®¡åçæ¬' |
| | | StructuredName: 'AssemblyOnlinePlanVersionCells' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ColumnDate |
| | | { |
| | | #keys: '3[415136.0.1174730129][415136.0.1174730128][415136.0.1174730130]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ColumnIndex |
| | | { |
| | | #keys: '3[415136.0.1174730132][415136.0.1174730131][415136.0.1174730133]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ColumnName |
| | | { |
| | | #keys: '3[415136.0.1174730135][415136.0.1174730134][415136.0.1174730136]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: ColumnName |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type AssemblyOnlinePlanVersionColumn |
| | | { |
| | | #keys: '5[415136.0.1174730126][415136.0.1174730124][0.0.0][415136.0.1174730125][415136.0.1174730127]' |
| | | BaseType: Object |
| | | Description: 'è£
é
ä¸çº¿è®¡åçæ¬' |
| | | StructuredName: 'AssemblyOnlinePlanVersionColumns' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductID |
| | | { |
| | | #keys: '3[415136.0.1174730079][415136.0.1174730078][415136.0.1174730080]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductionLine |
| | | { |
| | | #keys: '3[415136.0.1174730082][415136.0.1174730081][415136.0.1174730083]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute RowNr |
| | | { |
| | | #keys: '3[415136.0.1174730085][415136.0.1174730084][415136.0.1174730086]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Type |
| | | { |
| | | #keys: '3[415136.0.1174730088][415136.0.1174730087][415136.0.1174730089]' |
| | | Description: |
| | | [* |
| | | 产线åè¡ ï¼0 |
| | | Quantityè¡ï¼1 |
| | | Orderè¡ ï¼2 |
| | | åè®¡è¡ ï¼3 |
| | | çæ¬¡è¡ ï¼4 |
| | | *] |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: ProductID |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: ProductionLine |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: RowNr |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Type |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type AssemblyOnlinePlanVersionRow |
| | | { |
| | | #keys: '5[415136.0.1174730076][415136.0.1174730074][0.0.0][415136.0.1174730075][415136.0.1174730077]' |
| | | BaseType: Object |
| | | Description: 'è£
é
ä¸çº¿è®¡åçæ¬' |
| | | StructuredName: 'AssemblyOnlinePlanVersionRows' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute DLZKM |
| | | { |
| | | #keys: '3[415754.0.315331249][415754.0.315331248][415754.0.315331250]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetCCFactory () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return 'é¿æ¥å·¥å'; |
| | | //return 'VWED CC'; |
| | | //return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
| | |
| | | produtparent := CCEngineLogisticsCostReport::GetDefaultProductParent(); |
| | | name := CCEngineLogisticsCostReport::GetDefaultName(); |
| | | allunit := CCEngineLogisticsCostReport::GetDefaultAllUnit(); |
| | | ccfactory := CCEngineLogisticsCostReport::GetCCFactory(); |
| | | ccunit := CCEngineLogisticsCostReport::GetDefaultCCUnit(); |
| | | ccline := CCEngineLogisticsCostReport::GetStockingPointCCLine(); |
| | | ccrent := CCEngineLogisticsCostReport::GetStockingPointCCRent(); |
| | |
| | | //æ¥è¯¢å¯¹åºçå卿ºææ¬ |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = ccunit ); |
| | | and engine.Factory() = ccfactory );//ccunit |
| | | if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ |
| | | ccrow := table.GetRow( row.Name() ); |
| | | products.Add( product ); |
| | |
| | | //æ¥è¯¢å¯¹åºçå卿ºææ¬ |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = ccunit ); |
| | | and engine.Factory() = ccfactory ); |
| | | if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ |
| | | ccrow := table.GetRow( row.Name() ); |
| | | products.Add( product ); |
| | |
| | | //å¨å卿ºææ¬åæ°è¡¨æ¾å°å¯¹åºçå
è£
容é |
| | | enginecost := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = ccunit ); |
| | | and engine.Factory() = ccfactory ); |
| | | //å¨è¿è¾ææ¬åæ°è¡¨éæ¾å°å卿ºå¯¹åºè¿è¾åä»·åè£
载容é |
| | | transcost := selectobject( transcosts, Elements, trans, trans.Origin() = ccline |
| | | and trans.Destination() = ccrent |
| | |
| | | //æ¥è¯¢å¯¹åºçå卿ºææ¬ |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = ccunit ); |
| | | and engine.Factory() = ccfactory ); |
| | | if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ |
| | | row := table.GetRow( pisp.ProductID() ); |
| | | products.Add( product ); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod InitiateSearch ( |
| | | MacroPlan owner |
| | | ) as CCEngineLogisticsCostReport |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Sep-29-2024 (created) |
| | | allunit := DLEngineLogisticsCostReport::GetDefaultAllUnit(); |
| | | search := owner.CCEngineLogisticsCostSearch(); |
| | | if( isnull( search ) ){ |
| | | owner.CCEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit ); |
| | | }else{ |
| | | search := owner.CCEngineLogisticsCostSearch(); |
| | | search.Generation( allunit ); |
| | | search.MqbMlb( allunit ); |
| | | search.Power( allunit ); |
| | | } |
| | | table := selectobject( owner, CCEngineLogisticsCostReport, table, table.IsShow() ); |
| | | if( not isnull( table ) ){ |
| | | products := selectset( owner, Product_MP, product, true ); |
| | | table.Generate( search, products ); |
| | | } |
| | | return table; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetCCFactory () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return 'é¿æ¥å·¥å'; |
| | | //return 'VWED CC'; |
| | | //return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDLFactory () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return '大è¿å·¥å'; |
| | | //return 'VWED DL'; |
| | | //return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
| | |
| | | allunit := DLEngineLogisticsCostReport::GetDefaultAllUnit(); |
| | | ccunit := DLEngineLogisticsCostReport::GetDefaultCCUnit(); |
| | | dlunit := DLEngineLogisticsCostReport::GetDefaultDLUnit(); |
| | | ccfactory := DLEngineLogisticsCostReport::GetCCFactory(); |
| | | dlfactory := DLEngineLogisticsCostReport::GetDLFactory(); |
| | | //dlline := DLEngineLogisticsCostReport::GetStockingPointDLLine(); |
| | | ccrent := DLEngineLogisticsCostReport::GetStockingPointCCRent(); |
| | | dlrent := DLEngineLogisticsCostReport::GetStockingPointCCRent(); |
| | | //ccrent := DLEngineLogisticsCostReport::GetStockingPointCCRent(); |
| | | //dlrent := DLEngineLogisticsCostReport::GetStockingPointCCRent(); |
| | | |
| | | startofplanning := owner.StartOfPlanning().Date(); |
| | | //startofyear := startofplanning.StartOfYear(); |
| | |
| | | products := construct( Product_MPs ); |
| | | |
| | | table.GenerateColumn( owner ); |
| | | //å¤ç§åºä»å¨è´¹ç¨ï¼ä»å¨æ°é/å
è£
容é*ä»å¨åä»·ï¼å¨Actual inventorieséåå°é¿æ¥å¤ç§åº/大è¿å¤ç§åºè¯¥å卿ºçä»å¨éï¼æ ¹æ®å卿ºå·æ¾å°å¯¹åºçGeneration 忍ªçºµå¶ï¼å¨å卿ºææ¬åæ°è¡¨éæ¾å°å¯¹åºçä»å¨åä»·åå
è£
容éï¼ç¨å
¬å¼è®¡ç®ï¼æåº¦è¿è¡æ±æ» |
| | | //é¿æ¥å¤ç§åºå
¥åº/åºåºè´¹ç¨ï¼å¤§è¿å卿ºçé¿æ¥å¤ç§åºçNew supply |
| | | traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( 'å¤ç§åº' ) ){ |
| | | // unit := stockingpoint.Unit(); |
| | | // parentunits := unit.GetAllParent(); |
| | | //æ¯å¦å±äºé¿æ¥å¤ç§åº |
| | | isccrent := stockingpoint.ID().StartsWith( 'é¿æ¥' ) or stockingpoint.ID().StartsWith( 'CC' ); |
| | | //æ¯å¦å±äºå¤§è¿å卿ºçé¿æ¥å¤ç§åº |
| | | isdltoccrent := stockingpoint.ID().StartsWith( '大è¿å卿ºçé¿æ¥' ); |
| | | //æ¯å¦å±äºå¤§è¿å¤ç§åº |
| | | isdlrent := stockingpoint.ID().StartsWith( '大è¿' ) or stockingpoint.ID().StartsWith( 'DL' ); |
| | | if( isccrent or isdlrent ){ |
| | | traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() |
| | | and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){ |
| | | //è·åè¡ |
| | | product := pisp.Product_MP(); |
| | | productparents := product.GetAllParent(); |
| | | if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//æ¥è¯¢äº§åç±»åæ¯å卿º |
| | | row := table.GetRow( pisp.ProductID() ); |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() ); |
| | | if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ |
| | | products.Add( pisp.Product_MP() ); |
| | | traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){ |
| | | periodtime := pispip.Start().StartOfMonth().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | column := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime ); |
| | | cell := selectobject( row, Cell, cell, cell.Column() = column ); |
| | | |
| | | if( isccrent or isdltoccrent){ |
| | | //å¨å卿ºææ¬åæ°è¡¨æ¾å°å¯¹åºçå
è£
容é |
| | | enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date() |
| | | and engine.Factory() = ccfactory ); |
| | | if( not isnull( enginecost ) ){ |
| | | quantity := [Number]pispip.NewSupplyQuantity(); |
| | | if( isccrent ){ |
| | | cost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//åèäºå
¥ |
| | | cell.CCRentStorCost( cell.CCRentStorCost() + cost ); |
| | | }else{ |
| | | cell.CCRentQuantity( cell.CCRentQuantity() + quantity ); |
| | | //é¿æ¥å¤ç§åºå
¥åºè´¹ç¨ï¼å
¥åºé/å
è£
容é*å
¥åºåä»· |
| | | entercost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice(); |
| | | //é¿æ¥å¤ç§åºåºåºè´¹ç¨: åºåºé/å
è£
容é*åºåºåä»· |
| | | outcost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice(); |
| | | cell.CCRentInCost( cell.CCRentInCost() + entercost ); |
| | | cell.CCRentOutOfCost( cell.CCRentOutOfCost() + outcost ); |
| | | } |
| | | } |
| | | } else { |
| | | //å¨å卿ºææ¬åæ°è¡¨æ¾å°å¯¹åºçå
è£
容é |
| | | enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date() |
| | | and engine.Factory() = dlfactory ); |
| | | if( not isnull( enginecost ) ){ |
| | | cost := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//åèäºå
¥ |
| | | cell.DLRentStorCost( cell.DLRentStorCost() + cost ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //å¨ trip planéæ¾å°å¤§è¿è£
é
线边åºå°å¤§è¿å¤ç§åºçè¿è¾æ°é//大è¿åå
åºå°å¤ç§åº |
| | | traverse( owner, Unit.Lane.LaneLeg, laneleg ){ |
| | | //èµ·å§åºåç¹æ¯å¦æ¯å¤§è¿è£
é
çº¿è¾¹åº |
| | | // originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() ); |
| | | isdlspline := laneleg.OriginStockingPointID().EndsWith( 'åå
åº' ) and ( laneleg.OriginStockingPointID().StartsWith( '大è¿' ) or laneleg.OriginStockingPointID().StartsWith( 'DL' ) );//table.IsInUnit( originsp, dlline ); |
| | | isdlspline := laneleg.OriginStockingPointID().EndsWith( 'åå
åº' ) and ( laneleg.OriginStockingPointID().StartsWith( '大è¿' ) or laneleg.OriginStockingPointID().StartsWith( 'DL' ) ); |
| | | //ç®çå°æ¯å¦æ¯å¤§è¿å¤ç§åº |
| | | // destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() ); |
| | | isdlrent := laneleg.DestinationStockingPointID().EndsWith( 'å¤ç§åº' ) and ( laneleg.DestinationStockingPointID().StartsWith( '大è¿' ) or laneleg.DestinationStockingPointID().StartsWith( 'DL' ) );//table.IsInUnit( destisp, dlrent ); |
| | | isdlrent := laneleg.DestinationStockingPointID().EndsWith( 'å¤ç§åº' ) and ( laneleg.DestinationStockingPointID().StartsWith( '大è¿' ) or laneleg.DestinationStockingPointID().StartsWith( 'DL' ) ); |
| | | if( isdlspline and isdlrent ){ |
| | | traverse( laneleg, Trip, trip, trip.Departure().Date() < startofnextyear ){//ç±äºéè¦èè产åè¿è¾lead timeï¼æ¯ä¸ªæçæ±æ»æ°æ®éè¦æ¨è¿ä¸¤å¤©è¿è¡è®¡ç® |
| | | periodtime := trip.Departure().StartOfMonth().Date(); |
| | |
| | | //å¨å卿ºææ¬åæ°è¡¨æ¾å°å¯¹åºçå
è£
容é |
| | | enginecost := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = dlunit ); |
| | | and engine.Factory() = dlfactory ); |
| | | //å¨è¿è¾ææ¬åæ°è¡¨éæ¾å°å卿ºå¯¹åºè¿è¾åä»·åè£
载容é |
| | | transcost := selectobject( transcosts, Elements, trans, trans.Origin() = laneleg.OriginStockingPointID() |
| | | and trans.Destination() = laneleg.DestinationStockingPointID() |
| | |
| | | cost := ceil( ceil( quantity / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();//åèäºå
¥ |
| | | cell.WerkToDLRentTransCost( cell.WerkToDLRentTransCost() + cost ); |
| | | } |
| | | // if( isccrent ){//ç®çå°æ¯é¿æ¥å¤ç§åº |
| | | // //å¨å卿ºææ¬åæ°è¡¨æ¾å°å¯¹åºçå
è£
容é |
| | | // enginecost := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | // and engine.MLB_MQB() = product.MQBMLB() |
| | | // and engine.Factory() = ccunit ); |
| | | // if( not isnull( enginecost ) ){ |
| | | // products.Add( product ); |
| | | // cell := selectobject( row, Cell, cell, cell.Column() = column ); |
| | | // cell.CCRentQuantity( cell.CCRentQuantity() + quantity ); |
| | | // //é¿æ¥å¤ç§åºå
¥åºè´¹ç¨ï¼å
¥åºé/å
è£
容é*å
¥åºåä»· |
| | | // entercost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice(); |
| | | // //é¿æ¥å¤ç§åºåºåºè´¹ç¨: åºåºé/å
è£
容é*åºåºåä»· |
| | | // outcost := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice(); |
| | | // cell.CCRentEnterCost( cell.CCRentEnterCost() + entercost ); |
| | | // cell.CCRentOutCost( cell.CCRentOutCost() + outcost ); |
| | | // } |
| | | // } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //大è¿å¤ç§åºå
¥åºè´¹ç¨ï¼å
¥åºé/å
è£
容é*å
¥åºåä»·ï¼å
¥åºéçäºå¤§è¿å·¥å该产å产éåå»åå¾é¿æ¥çæ°é-newSupply |
| | | //大è¿å¤ç§åºå
¥åºè´¹ç¨ï¼å
¥åºé/å
è£
容é*å
¥åºåä»·ï¼å
¥åºéçäºå¤§è¿å·¥å该产å产éåå»åå¾é¿æ¥(大è¿çé¿æ¥å¤ç§åºï¼çæ°é-newSupply |
| | | traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//è´¢å¡äº§éæ¥è¡¨é导å
¥ |
| | | traverse( source, FinancialProductionReport, report, not report.IsShow() ){//è´¢å¡äº§éæ¥è¡¨ä¸æ¾ç¤º |
| | | traverse( report, FinancialProductionRow, row, row.Unit() = dlunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' and cell.FinancialProductionColumn().IsDay() ) ){//è´¢å¡äº§éæ¥è¡¨éç大è¿äº§é, ä¸ä¸º0 |
| | |
| | | //æ¥è¯¢å¯¹åºçå卿ºææ¬ |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = dlunit ); |
| | | and engine.Factory() = dlfactory ); |
| | | if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ |
| | | products.Add( product ); |
| | | ccrow := table.GetRow( row.Name() ); |
| | |
| | | //æ¥è¯¢å¯¹åºçå卿ºææ¬ |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = dlunit ); |
| | | and engine.Factory() = dlfactory ); |
| | | if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ |
| | | products.Add( product ); |
| | | ccrow := table.GetRow( row.Name() ); |
| | |
| | | product := selectobject( owner, Product_MP, product, product.ID() = tprow.ProductID() ); |
| | | productparents := product.GetAllParent(); |
| | | if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//æ¥è¯¢äº§åç±»åæ¯å卿º |
| | | //èµ·å§åºåç¹æ¯å¦æ¯å¤§è¿ |
| | | originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() ); |
| | | isdl := table.IsInUnit( originsp, dlunit ); |
| | | //ç®çå°åºåç¹æ¯å¦æ¯é¿æ¥ |
| | | destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() ); |
| | | iscc := table.IsInUnit( destisp, ccunit ); |
| | | //èµ·å§åºåç¹æ¯å¦æ¯å¤§è¿(大è¿åå
åºï¼ |
| | | isdl := tprow.SourceStockpoingPointID().EndsWith( 'åå
åº' ) and ( tprow.TargetStockpoingPointID().StartsWith( '大è¿' ) or tprow.TargetStockpoingPointID().StartsWith( 'DL' ) ); |
| | | //ç®çå°åºåç¹æ¯å¦æ¯é¿æ¥ï¼é¿æ¥å¤ç§åºï¼ |
| | | iscc := tprow.TargetStockpoingPointID().EndsWith( 'å¤ç§åº' ) and ( tprow.TargetStockpoingPointID().StartsWith( 'é¿æ¥' ) or tprow.TargetStockpoingPointID().StartsWith( 'CC' ) ); |
| | | if( isdl and iscc ){ |
| | | //æ¥è¯¢å¯¹åºçå卿ºææ¬ |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = ccunit ); |
| | | and engine.Factory() = ccfactory ); |
| | | //å¨è¿è¾ææ¬åæ°è¡¨éæ¾å°å卿ºå¯¹åºè¿è¾åä»·åè£
载容é |
| | | transcosts := selectset( owner, LogisticsCostTransport, trans, trans.Origin() = tprow.SourceStockpoingPointID() |
| | | and trans.Destination() = tprow.TargetStockpoingPointID() |
| | |
| | | salessegment := forecast.SalesSegment_MP(); |
| | | parentsalessegments := salessegment.GetAllParent(); |
| | | //æ¯å¦å±äºé¿æ¥ |
| | | iscc := salessegment.Name() = ccunit or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = ccunit ); |
| | | iscc := salessegment.Name().StartsWith( 'Changechun' ) or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( 'Changechun' ) ); |
| | | if( iscc ){ |
| | | product := forecast.Product_MP(); |
| | | productparents := product.GetAllParent(); |
| | |
| | | //æ¥è¯¢å¯¹åºçå卿ºææ¬ |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() |
| | | and engine.MLB_MQB() = product.MQBMLB() |
| | | and engine.Factory() = ccunit ); |
| | | and engine.Factory() = ccfactory ); |
| | | if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ |
| | | products.Add( forecast.Product_MP() ); |
| | | row := table.GetRow( forecast.ProductID() ); |
| | |
| | | } |
| | | } |
| | | } |
| | | //å¤ç§åºä»å¨è´¹ç¨ï¼ä»å¨æ°é/å
è£
容é*ä»å¨åä»·ï¼å¨Actual inventorieséåå°é¿æ¥å¤ç§åº/大è¿å¤ç§åºè¯¥å卿ºçä»å¨éï¼æ ¹æ®å卿ºå·æ¾å°å¯¹åºçGeneration 忍ªçºµå¶ï¼å¨å卿ºææ¬åæ°è¡¨éæ¾å°å¯¹åºçä»å¨åä»·åå
è£
容éï¼ç¨å
¬å¼è®¡ç®ï¼æåº¦è¿è¡æ±æ» |
| | | traverse( owner, StockingPoint_MP, stockingpoint ){ |
| | | unit := stockingpoint.Unit(); |
| | | parentunits := unit.GetAllParent(); |
| | | //æ¯å¦å±äºé¿æ¥å¤ç§åº |
| | | isccrent := stockingpoint.ID() = ccrent or unit.ID() = ccrent or exists( parentunits, Elements, punit, punit.ID() = ccrent ); |
| | | //æ¯å¦å±äºå¤§è¿å¤ç§åº |
| | | isdlrent := stockingpoint.ID() = dlrent or unit.ID() = dlrent or exists( parentunits, Elements, punit, punit.ID() = dlrent ); |
| | | if( isccrent or isdlrent ){ |
| | | traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() |
| | | and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){ |
| | | //è·åè¡ |
| | | product := pisp.Product_MP(); |
| | | productparents := product.GetAllParent(); |
| | | if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//æ¥è¯¢äº§åç±»åæ¯å卿º |
| | | row := table.GetRow( pisp.ProductID() ); |
| | | enginecosts := selectset( owner, LogisticsCostEngine, engine, engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() ); |
| | | if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){ |
| | | products.Add( pisp.Product_MP() ); |
| | | traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){ |
| | | periodtime := pispip.Start().StartOfMonth().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | column := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime ); |
| | | cell := selectobject( row, Cell, cell, cell.Column() = column ); |
| | | |
| | | if( isccrent ){ |
| | | //å¨å卿ºææ¬åæ°è¡¨æ¾å°å¯¹åºçå
è£
容é |
| | | enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date() |
| | | and engine.Factory() = ccunit ); |
| | | if( not isnull( enginecost ) ){ |
| | | cost := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//åèäºå
¥ |
| | | cell.CCRentStorCost( cell.CCRentStorCost() + cost ); |
| | | } |
| | | } else { |
| | | //å¨å卿ºææ¬åæ°è¡¨æ¾å°å¯¹åºçå
è£
容é |
| | | enginecost := selectobject( enginecosts, Elements, engine, engine.StartDate() <= pispip.Start().Date() and engine.EndDate() >= pispip.Start().Date() |
| | | and engine.Factory() = dlunit ); |
| | | if( not isnull( enginecost ) ){ |
| | | cost := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//åèäºå
¥ |
| | | cell.DLRentStorCost( cell.DLRentStorCost() + cost ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | rows := selectsortedset( table, Row, row, row.Name() ); |
| | | i := 0; |
| | | traverse( rows, Elements, e ){ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod InitiateSearch ( |
| | | MacroPlan owner |
| | | ) as DLEngineLogisticsCostReport |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Sep-29-2024 (created) |
| | | allunit := DLEngineLogisticsCostReport::GetDefaultAllUnit(); |
| | | search := owner.DLEngineLogisticsCostSearch(); |
| | | if( isnull( search ) ){ |
| | | owner.DLEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit ); |
| | | }else{ |
| | | search := owner.DLEngineLogisticsCostSearch(); |
| | | search.Generation( allunit ); |
| | | search.MqbMlb( allunit ); |
| | | search.Power( allunit ); |
| | | } |
| | | table := selectobject( owner, DLEngineLogisticsCostReport, table, table.IsShow() ); |
| | | if( not isnull( table ) ){ |
| | | products := selectset( owner, Product_MP, product, true ); |
| | | table.Generate( search, products ); |
| | | } |
| | | return table; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ChangeLossNumber |
| | | { |
| | | #keys: '3[415136.0.1176550071][415136.0.1176550070][415136.0.1176550072]' |
| | | ValueType: Real |
| | | } |
| | |
| | | Product_MP product2, |
| | | Date startdate, |
| | | Date enddate, |
| | | Number number |
| | | String number |
| | | ) as Boolean |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-5-2024 (created) |
| | | feedback := ''; |
| | | |
| | | if( isnull( unit ) or isnull( product1 ) or isnull( product2 ) or number < 1 ){ |
| | | if( [Number]number < 0 ){ |
| | | feedback := Translations::MP_ChangeLossSettingExcel_Import_PositiveInteger(); |
| | | } |
| | | if( isnull( unit ) or isnull( product1 ) or isnull( product2 ) or [Number]number = 0 ){ |
| | | feedback := Translations::MP_ChangeLossSetting_CheckNull(); |
| | | } |
| | | if( product1 = product2 ){ |
| | |
| | | error( Translations::MP_ChangeLossSettingExcel_Import_NullInputRequiredField() ); |
| | | } |
| | | //导å
¥çæ°éå°äº0 |
| | | if( exists( macroplan, ChangeLossSettingExcel, excel, [Real]excel.ChangeLossNumber() > 0 and ceil( [Real]excel.ChangeLossNumber() ) <> floor( [Real]excel.ChangeLossNumber() ) ) ){ |
| | | if( exists( macroplan, ChangeLossSettingExcel, excel, [Real]excel.ChangeLossNumber() <= 0 ) ){ |
| | | error( Translations::MP_ChangeLossSettingExcel_Import_PositiveInteger() ); |
| | | } |
| | | //导å
¥äº§åæ¯å¦åå¨ |
| | |
| | | [* |
| | | // çå
°é¸½ Aug-22-2024 (created) |
| | | traverse( macroplan, ChangeLossSetting, cls ){ |
| | | macroplan.ChangeLossSettingExcel( relnew, Product1 := cls.ProductFirst().ID(), Product2 := cls.ProductSecond().ID(), Unit := cls.Unit().ID(), ChangeLossNumber := [String]cls.ChangeLossNr(), StartDate := cls.StartDate(), EndDate := cls.EndDate() ); |
| | | macroplan.ChangeLossSettingExcel( relnew, Product1 := cls.ProductFirst().ID(), Product2 := cls.ProductSecond().ID(), Unit := cls.Unit().ID(), ChangeLossNumber := [String]cls.ChangeLossNumber(), StartDate := cls.StartDate(), EndDate := cls.EndDate() ); |
| | | } |
| | | value := macroplan.MP_ExportChangeLossSettingsBroker().ExecuteToXLS( isxlsxformat ).AsBinaryValue(); |
| | | macroplan.ChangeLossSettingExcel( relflush ); |
| | |
| | | and cls.Unit().ID() = excel.Unit() |
| | | and cls.StartDate() = excel.StartDate() |
| | | and cls.EndDate() = excel.EndDate() ); |
| | | info( excel.ChangeLossNumber() ); |
| | | if( isnull( cls ) ){ |
| | | product1 := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product1() ); |
| | | product2 := selectobject( macroplan, Product_MP, product, product.ID() = excel.Product2() ); |
| | | unit := selectobject( macroplan, Unit, unit, unit.ID() = excel.Unit() ); |
| | | feedback := ''; |
| | | if( ChangeLossSetting::ValidateInput( feedback, macroplan, null( ChangeLossSetting ), unit, product1, product2, excel.StartDate(), excel.EndDate(), [Number]excel.ChangeLossNumber() ) ){ |
| | | cls := macroplan.ChangeLossSetting( relnew, ChangeLossNr := [Number]excel.ChangeLossNumber() ); |
| | | if( ChangeLossSetting::ValidateInput( feedback, macroplan, null( ChangeLossSetting ), unit, product1, product2, excel.StartDate(), excel.EndDate(), excel.ChangeLossNumber() ) ){ |
| | | cls := macroplan.ChangeLossSetting( relnew, ChangeLossNumber := [Real]excel.ChangeLossNumber() ); |
| | | |
| | | cls.ProductFirst( relset, product1 ); |
| | | cls.ProductSecond( relset, product2 ); |
| | |
| | | error( feedback ); |
| | | } |
| | | }else { |
| | | cls.ChangeLossNr( [Number]excel.ChangeLossNumber() ); |
| | | cls.ChangeLossNumber( [Real]excel.ChangeLossNumber() ); |
| | | } |
| | | info( '-------------------', cls.ChangeLossNumber() ); |
| | | excel.Delete(); |
| | | } |
| | | *] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod InitiateSearch ( |
| | | MacroPlan owner |
| | | ) as EnginePipelineReport |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Sep-29-2024 (created) |
| | | search := owner.EnginePipelineSearch(); |
| | | if( isnull( search ) ){ |
| | | owner.EnginePipelineSearch( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() ); |
| | | }else{ |
| | | search := owner.EnginePipelineSearch(); |
| | | search.TimeUnit( Translations::MP_GlobalParameters_Day() ); |
| | | search.StartDate( Date::MinDate() ); |
| | | search.EndDate( Date::MaxDate() ); |
| | | } |
| | | table := selectobject( owner, EnginePipelineSource.Report, table, table.IsShow() ); |
| | | if( not isnull( table ) ){ |
| | | products := selectset( owner, Product_MP, product, true ); |
| | | table.Generate( search, products ); |
| | | } |
| | | return table; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Quantity |
| | | { |
| | | #keys: '3[415136.0.1167140019][415136.0.1167140018][415136.0.1167140020]' |
| | | Description: 'æ°é' |
| | | ValueType: Real |
| | | } |
| | |
| | | |
| | | sumcell := selectobject( column, FinancialProductionCell, c, c.FinancialProductionRow() = sumrow ); |
| | | if( isnull( sumcell ) ){ |
| | | sumcell := column.FinancialProductionCell( relnew, Value := '0' ); |
| | | sumcell := column.FinancialProductionCell( relnew, Quantity := 0 ); |
| | | sumrow.FinancialProductionCell( relinsert, sumcell ); |
| | | } |
| | | |
| | | showcell := column.FinancialProductionCell( relnew, Value := cell.Value() ); |
| | | showcell := column.FinancialProductionCell( relnew, Quantity := cell.Quantity() ); |
| | | showrow.FinancialProductionCell( relinsert, showcell ); |
| | | value := [Real]cell.Value() + [Real]sumcell.Value(); |
| | | sumcell.Value( [String]value ); |
| | | // value := [Real]cell.Value() + [Real]sumcell.Value(); |
| | | sumcell.Quantity( sumcell.Quantity() + cell.Quantity() ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | traverse( this, FinancialProductionRow, row ){ |
| | | traverse( row, FinancialProductionCell, cell ){ |
| | | cell.Value( [String]([Number]cell.Quantity()) ); |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := column.FinancialProductionCell( relnew, Value := '' ); |
| | | cell := column.FinancialProductionCell( relnew, Quantity := 0 ); |
| | | |
| | | this.FinancialProductionCell( relinsert, cell ); |
| | | if( unit <> FinancialProductionReport::GetDefaultAllUnit() ){ |
| | |
| | | #parent: #root |
| | | Method Initialize ( |
| | | FinancialProductionColumn column, |
| | | Number quantity |
| | | Real quantity |
| | | ) |
| | | { |
| | | TextBody: |
| | |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, FinancialProductionCell, cell, cell.FinancialProductionColumn() = column ); |
| | | |
| | | value := [Number]cell.Value() + quantity; |
| | | cell.Value( [String]value ); |
| | | //value := [Number]cell.Value() + quantity; |
| | | //cell.Value( [String]value ); |
| | | cell.Quantity( cell.Quantity() + quantity ); |
| | | *] |
| | | } |
| | |
| | | allcell := selectobject( allrow, FinancialProductionCell, allcell, allcell.FinancialProductionColumn().Name() = column.Name() ); |
| | | // info( isnull( unitcell ), isnull( allcell ), cell.Value(), unitcell.Value(), allcell.Value() ); |
| | | if( not isnull( unitcell ) ){ |
| | | unitcell.Value( cell.Value() ); |
| | | // unitcell.Value( cell.Value() ); |
| | | unitcell.Quantity( [Real]cell.Value() ); |
| | | } |
| | | if( not isnull( allcell ) ){ |
| | | value := [Real]cell.Value() + [Real]allcell.Value(); |
| | | allcell.Value( [String]value ); |
| | | // value := [Real]cell.Value() + [Real]allcell.Value(); |
| | | // allcell.Value( [String]value ); |
| | | allcell.Quantity( allcell.Quantity() + [Real]allcell.Value() ); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | tableElement.AppendChild( productcolumnelement ); |
| | | tableElement.AppendChild( unitcolumnelement ); |
| | | traverse ( table, FinancialProductionColumn, column ) { |
| | | minindex := min( table, FinancialProductionColumn, column, not column.IsDay(), column.Index() ); |
| | | traverse ( table, FinancialProductionColumn, column, not column.IsDay() ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | | nameelement := xmlDOM.CreateElement( "name" ); |
| | | typeelement := xmlDOM.CreateElement( "type" ); |
| | |
| | | cells := selectsortedset( column, FinancialProductionCell, cell, cell.FinancialProductionRow().RowNr() ); |
| | | |
| | | traverse ( cells, Elements, c ) { |
| | | if( column.Index() = 0 ){ |
| | | if( column.Index() = minindex ){ |
| | | row := c.FinancialProductionRow(); |
| | | //Product |
| | | productcellElement := xmlDOM.CreateElement( "cell" ); |
| | |
| | | table.GenerateColumn( owner ); |
| | | //åå½åçæ¬çproduct planningénew supplyåæ®µï¼å大è¿åé¿æ¥å·¥åç产线ï¼è¿è¡å æ» |
| | | //traverse( owner, StockingPoint_MP, stockingpoint ){ |
| | | traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( 'åå
åº' ) ){ |
| | | traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( 'åå
åº' ) or stockingpoint.ID() = '大è¿å¤ç§åº' ){ |
| | | iscc := stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( 'é¿æ¥' ); |
| | | isdl := stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '大è¿' ); |
| | | // unit := stockingpoint.Unit(); |
| | |
| | | dayperiodname := dayperiodtime.Format( "M2/D2/Y" ); |
| | | periodtime := pispip.Start().StartOfMonth().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | quantity := [Number]pispip.NewSupplyQuantity();//åèäºå
¥ |
| | | // quantity := [Number]pispip.NewSupplyQuantity();//åèäºå
¥ |
| | | daycolumn := selectobject( table, FinancialProductionColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() ); |
| | | column := selectobject( table, FinancialProductionColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() ); |
| | | factoryrow.Initialize( daycolumn, quantity ); |
| | | factoryrow.Initialize( column, quantity ); |
| | | allrow.Initialize( column, quantity ); |
| | | factoryrow.Initialize( daycolumn, pispip.NewSupplyQuantity() ); |
| | | factoryrow.Initialize( column, pispip.NewSupplyQuantity() ); |
| | | allrow.Initialize( column, pispip.NewSupplyQuantity() ); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod InitiateSearch ( |
| | | MacroPlan owner |
| | | ) as FinancialProductionReport |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Sep-29-2024 (created) |
| | | allunit := FinancialProductionReport::GetDefaultAllUnit(); |
| | | search := owner.FinancialProductionSearch(); |
| | | if( isnull( owner.FinancialProductionSearch() ) ){ |
| | | owner.FinancialProductionSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit ); |
| | | }else{ |
| | | search := owner.FinancialProductionSearch(); |
| | | search.Unit( allunit ); |
| | | search.Generation( allunit ); |
| | | search.MqbMlb( allunit ); |
| | | search.Power( allunit ); |
| | | } |
| | | table := selectobject( owner, FinancialProductionSource.FinancialProductionReport, table, table.IsShow() ); |
| | | if( not isnull( table ) ){ |
| | | products := selectset( owner, Product_MP, product, true ); |
| | | table.Generate( search, products ); |
| | | } |
| | | return table; |
| | | *] |
| | | } |
| | |
| | | |
| | | tableElement.AppendChild( productcolumnelement ); |
| | | tableElement.AppendChild( unitcolumnelement ); |
| | | traverse ( table, FinancialSalesColumn, column ) { |
| | | minindex := min( table, FinancialSalesColumn, column, not column.IsDay(), column.Index() ); |
| | | traverse ( table, FinancialSalesColumn, column, not column.IsDay() ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | | nameelement := xmlDOM.CreateElement( "name" ); |
| | | typeelement := xmlDOM.CreateElement( "type" ); |
| | |
| | | cells := selectsortedset( column, FinancialSalesCell, cell, cell.FinancialSalesRow().RowNr() ); |
| | | |
| | | traverse ( cells, Elements, c ) { |
| | | if( column.Index() = 0 ){ |
| | | if( column.Index() = minindex ){ |
| | | row := c.FinancialSalesRow(); |
| | | //Product |
| | | productcellElement := xmlDOM.CreateElement( "cell" ); |
| | |
| | | //æ¯å¦å±äºé¿æ¥è£
é
线 |
| | | // iscc := unit.ID() = ccspline or exists( parentunits, Elements, punit, punit.ID() = ccspline ); |
| | | // if( table.IsInUnit( stockingpoint, ccspline ) ){ |
| | | traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and pisp.Product_MP().MQBMLB() = 'MQB' |
| | | traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() |
| | | and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear |
| | | and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ) ){//产å为MQB |
| | | product := pisp.Product_MP(); |
| | | allrow := table.GetRow( allunit, product ); |
| | | ccrow := table.GetRow( ccunit, product ); |
| | | products.Add( product ); |
| | | traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() |
| | | and pispip.Period_MP().StartDate() < startofnextyear |
| | | and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){ |
| | | dayperiodtime := pispip.Start().Date(); |
| | | dayperiodname := dayperiodtime.Format( "M2/D2/Y" ); |
| | | periodtime := pispip.Start().StartOfMonth().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() ); |
| | | column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() ); |
| | | quantity := ifexpr( isdl, [Number]pispip.NewSupplyQuantity(), [Number]pispip.DependentDemandAndSalesDemandQuantity() );//åèäºå
¥ |
| | | |
| | | ccrow.Initialize( column, quantity );//åTotal Demandåæ®µæææ±æ»éæ±æ°é |
| | | ccrow.Initialize( daycolumn, quantity ); |
| | | allrow.Initialize( column, quantity ); |
| | | if( isdl or pisp.Product_MP().MQBMLB() = 'MQB' ){ |
| | | factoryrow := table.GetRow( ifexpr( isdl, dlunit, ccunit ), product ); |
| | | products.Add( product ); |
| | | traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() |
| | | and pispip.Period_MP().StartDate() < startofnextyear |
| | | and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){ |
| | | dayperiodtime := pispip.Start().Date(); |
| | | dayperiodname := dayperiodtime.Format( "M2/D2/Y" ); |
| | | periodtime := pispip.Start().StartOfMonth().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() ); |
| | | column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() ); |
| | | quantity := ifexpr( isdl, [Number]pispip.NewSupplyQuantity(), [Number]pispip.DependentDemandAndSalesDemandQuantity() );//åèäºå
¥ |
| | | |
| | | factoryrow.Initialize( column, quantity );//åTotal Demandåæ®µæææ±æ»éæ±æ°é |
| | | factoryrow.Initialize( daycolumn, quantity ); |
| | | allrow.Initialize( column, quantity ); |
| | | } |
| | | } |
| | | } |
| | | // } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod InitializeNew ( |
| | | MacroPlan owner |
| | | ) |
| | | { |
| | | Description: 'åå§å' |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | owner.FinancialSalesSource( relflush ); |
| | | products := construct( Product_MPs ); |
| | | allunit := FinancialSalesReport::GetDefaultAllUnit(); |
| | | ccunit := FinancialSalesReport::GetDefaultCCUnit(); |
| | | dlunit := FinancialSalesReport::GetDefaultDLUnit(); |
| | | ccsalessegment := FinancialSalesReport::GetSalesSegmentCC(); |
| | | tjsalessegment := FinancialSalesReport::GetSalesSegmentTJ(); |
| | | fssalessegment := FinancialSalesReport::GetSalesSegmentFS(); |
| | | //ccspline := FinancialSalesReport::GetStockingPointCCLine(); |
| | | //dlspline := FinancialSalesReport::GetStockingPointDLLine(); |
| | | //ccrent := FinancialSalesReport::GetStockingPointCCRent(); |
| | | |
| | | source := owner.FinancialSalesSource( relnew, IsImport := false, Name := FinancialSalesReport::GetDefaultName() ); |
| | | table := source.FinancialSalesReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false ); |
| | | showtable := source.FinancialSalesReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsImport := false, IsShow := true ); |
| | | startofplanning := owner.StartOfPlanning().Date(); |
| | | //startofyear := startofplanning.StartOfYear(); |
| | | startofnextyear := startofplanning.StartOfNextYear(); |
| | | |
| | | search := owner.FinancialSalesSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit ); |
| | | |
| | | table.GenerateColumn( owner ); |
| | | |
| | | //é¦å
å¨forecastç颿¥æ¾sales segmentä¸ºé¿æ¥çææéæ±ï¼è¯å«åºMLBçææäº§åï¼æ¯ä¸ªäº§åæææ±æ»éæ±æ°é |
| | | traverse( owner, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.SalesSegment_MP() ) and forecast.StartDate() < startofnextyear and forecast.Quantity() <> 0 |
| | | and exists( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ) ){ |
| | | salessegment := forecast.SalesSegment_MP(); |
| | | parentsalessegments := salessegment.GetAllParent(); |
| | | stockingpoint := forecast.StockingPointID(); |
| | | product := forecast.Product_MP(); |
| | | //æ¯å¦å±äºé¿æ¥ |
| | | iscc := salessegment.Name().StartsWith( ccsalessegment ) or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( ccsalessegment ) ); |
| | | isccrent := iscc and stockingpoint.EndsWith( 'å¤ç§åº' ) and ( stockingpoint.StartsWith( 'CC' ) or stockingpoint.StartsWith( 'é¿æ¥' ) ); |
| | | isdl := salessegment.Name().StartsWith( tjsalessegment ) or salessegment.Name().StartsWith( fssalessegment ) |
| | | or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( tjsalessegment ) ) |
| | | or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( fssalessegment ) ); |
| | | //ForecastçSales Segmentä¸ºé¿æ¥ï¼è¯å«åºMLBçææäº§åæ±æ» |
| | | //大è¿è´¢å¡ééï¼é¦å
å¨forecastç颿¥æ¾Sales Segmentæ¯å¤©æ´¥åä½å±±çææéæ±ï¼æ¯ä¸ªäº§åæææ±æ»éæ±æ°é and forecast.Product_MP().MQBMLB() = 'MLB' ) |
| | | if( ( iscc and product.MQBMLB() = 'MLB' ) or ( isccrent and product.MQBMLB() = 'MQB' ) or isdl ){ |
| | | |
| | | //è·ååè®¡è¡ |
| | | allrow := table.GetRow( allunit, product ); |
| | | //è·åå·¥åè¡ |
| | | factoryrow := table.GetRow( ifexpr( isdl, dlunit, ccunit ), product ); |
| | | |
| | | products.Add( product ); |
| | | traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ){ |
| | | dayperiodtime := psdip.StartDate(); |
| | | dayperiodname := dayperiodtime.Format( "M2/D2/Y" ); |
| | | periodtime := psdip.StartDate().StartOfMonth(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | // info( '-------------------------', periodname, periodtime ); |
| | | daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() ); |
| | | column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() ); |
| | | // info( '-------------------------', column.Name() ); |
| | | quantity := [Number]psdip.Quantity();//åèäºå
¥ |
| | | |
| | | factoryrow.Initialize( column, quantity ); |
| | | factoryrow.Initialize( daycolumn, quantity ); |
| | | allrow.Initialize( column, quantity ); |
| | | } |
| | | } |
| | | } |
| | | //ä»Product planningæ¥æ¾åºåç¹ä¸ºå¤§è¿å卿ºçé¿æ¥å¤ç§åºï¼åNew supplyåæ®µæææ±æ»éæ±æ°é |
| | | traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID() = '大è¿å卿ºçé¿æ¥å¤ç§åº' ){ |
| | | traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() |
| | | and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear |
| | | and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ) ){//产å为MQB |
| | | product := pisp.Product_MP(); |
| | | allrow := table.GetRow( allunit, product ); |
| | | factoryrow := table.GetRow( dlunit, product ); |
| | | products.Add( product ); |
| | | traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() |
| | | and pispip.Period_MP().StartDate() < startofnextyear |
| | | and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){ |
| | | dayperiodtime := pispip.Start().Date(); |
| | | dayperiodname := dayperiodtime.Format( "M2/D2/Y" ); |
| | | periodtime := pispip.Start().StartOfMonth().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() ); |
| | | column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() ); |
| | | quantity := [Number]pispip.NewSupplyQuantity();//åèäºå
¥ |
| | | |
| | | factoryrow.Initialize( column, quantity );//åTotal Demandåæ®µæææ±æ»éæ±æ°é |
| | | factoryrow.Initialize( daycolumn, quantity ); |
| | | allrow.Initialize( column, quantity ); |
| | | } |
| | | } |
| | | // } |
| | | } |
| | | //startofnextyearlead := startofplanning.StartOfNextYear() + FinancialSalesReport::GetDefaultTripLeadingTime(); |
| | | //大è¿è´¢å¡ééï¼é¿æ¥çéæ±éè¦å¨trip plané颿¾å°èµ·å§åºåç¹ä¸ºå¤§è¿è£
é
线边åºï¼ç®çå°ä¸ºé¿æ¥å¤ç§åºç产åï¼ç±äºéè¦èè产åè¿è¾lead timeï¼æ¯ä¸ªæçæ±æ»æ°æ®éè¦æ¨è¿ä¸¤å¤©è¿è¡è®¡ç® |
| | | //traverse( owner, Unit.Lane.LaneLeg, laneleg ){ |
| | | // //èµ·å§åºåç¹æ¯å¦æ¯å¤§è¿è£
é
çº¿è¾¹åº |
| | | // originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() ); |
| | | // isdlspline := table.IsInUnit( originsp, dlspline ); |
| | | // //ç®çå°æ¯å¦æ¯é¿æ¥å¤ç§åº |
| | | // destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() ); |
| | | // isccrent := table.IsInUnit( destisp, ccrent ); |
| | | // if( isdlspline and isccrent ){ |
| | | // traverse( laneleg, Trip, trip, trip.Arrival() < startofnextyearlead and exists( trip, ProductInTrip, pit, pit.Quantity() <> 0 ) ){ |
| | | //// periodtime := ( trip.Arrival() - FinancialSalesReport::GetDefaultTripLeadingTime() ).StartOfMonth().Date(); |
| | | // dayperiodtime := trip.Departure().Date(); |
| | | // dayperiodname := dayperiodtime.Format( "M2/D2/Y" ); |
| | | // periodtime := trip.Departure().StartOfMonth().Date(); |
| | | // periodname := periodtime.Format( "M2/D2/Y" ); |
| | | // |
| | | // daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() ); |
| | | // column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() ); |
| | | // if( not isnull( column ) ){ |
| | | // traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 ){ |
| | | // product := pit.Product_MP(); |
| | | // products.Add( product ); |
| | | // quantity := [Number]pit.Quantity();//åèäºå
¥ |
| | | // dlrow := table.GetRow( dlunit, pit.Product_MP() ); |
| | | // dlrow.Initialize( column, quantity );//æ±æ»æ°é |
| | | // dlrow.Initialize( daycolumn, quantity ); |
| | | // |
| | | // allrow := table.GetRow( allunit, pit.Product_MP() ); |
| | | // allrow.Initialize( column, quantity ); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | rows := selectsortedset( table, FinancialSalesRow, row, row.Name() ); |
| | | i := 0; |
| | | traverse( rows, Elements, e ){ |
| | | e.RowNr( i ); |
| | | i := i + 1; |
| | | } |
| | | showtable.Generate( search, products ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod InitiateSearch ( |
| | | MacroPlan owner |
| | | ) as FinancialSalesReport |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Sep-29-2024 (created) |
| | | allunit := FinancialSalesReport::GetDefaultAllUnit(); |
| | | search := owner.FinancialSalesSearch(); |
| | | if( isnull( search ) ){ |
| | | owner.FinancialSalesSearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit ); |
| | | }else{ |
| | | search := owner.FinancialSalesSearch(); |
| | | search.Unit( allunit ); |
| | | search.Generation( allunit ); |
| | | search.MqbMlb( allunit ); |
| | | search.Power( allunit ); |
| | | } |
| | | table := selectobject( owner, FinancialSalesSource.FinancialSalesReport, table, table.IsShow() ); |
| | | if( not isnull( table ) ){ |
| | | products := selectset( owner, Product_MP, product, true ); |
| | | table.Generate( search, products ); |
| | | } |
| | | return table; |
| | | *] |
| | | } |
| | |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | return 'é¿æ¥å·¥å'; |
| | | //return 'é¿æ¥å·¥å'; |
| | | return 'VWED CC'; |
| | | //return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
| | |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | return '大è¿å·¥å'; |
| | | //return '大è¿å·¥å'; |
| | | return 'VWED DL'; |
| | | //return 'Assembly Plant (Spain)'; |
| | | *] |
| | | } |
| | |
| | | ccsvaluecumulant := [Real]0; |
| | | |
| | | traverse( table, FinancialWeeklyColumn, column ){ |
| | | productioncolumn := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() ); |
| | | salescolumn := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() ); |
| | | productioncolumn := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() and not pcolumn.IsDay() ); |
| | | salescolumn := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() and not scolumn.IsDay() ); |
| | | |
| | | //äº§éæ±æ» |
| | | totalpvalue := [Real]0; |
| | | dlpvalue := [Real]0; |
| | | ccpvalue := [Real]0; |
| | | traverse( productioncolumn, FinancialProductionCell, cell, [Real]cell.Value() > 0 ){ |
| | | traverse( productioncolumn, FinancialProductionCell, cell, cell.Quantity() > 0 ){ |
| | | unit := cell.FinancialProductionRow().Unit(); |
| | | |
| | | if( unit = allunit ){ |
| | | totalpvalue := totalpvalue + [Real]cell.Value(); |
| | | totalpvalue := totalpvalue + cell.Quantity(); |
| | | if( column.Period() = startofplanning.StartOfMonth().Date() ){ |
| | | totalpvaluecumulant := totalpvaluecumulant - cell.PlanValue(); |
| | | } |
| | | }else if( unit = dlunit ){ |
| | | dlpvalue := dlpvalue + [Real]cell.Value(); |
| | | dlpvalue := dlpvalue + cell.Quantity(); |
| | | if( column.Period() = startofplanning.StartOfMonth().Date() ){ |
| | | dlpvaluecumulant := dlpvaluecumulant - cell.PlanValue(); |
| | | } |
| | | }else if( unit = ccunit ){ |
| | | ccpvalue := ccpvalue + [Real]cell.Value(); |
| | | ccpvalue := ccpvalue + cell.Quantity(); |
| | | if( column.Period() = startofplanning.StartOfMonth().Date() ){ |
| | | ccpvaluecumulant := ccpvaluecumulant - cell.PlanValue(); |
| | | } |
| | | } |
| | | } |
| | | totalpcell := column.FinancialWeeklyCell( relnew, Value := [String]totalpvalue ); |
| | | totalpcell := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]totalpvalue ) ); |
| | | totalproduction.FinancialWeeklyCell( relinsert, totalpcell ); |
| | | dlpcell := column.FinancialWeeklyCell( relnew, Value := [String]dlpvalue ); |
| | | dlpcell := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]dlpvalue ) ); |
| | | dlproduction.FinancialWeeklyCell( relinsert, dlpcell ); |
| | | ccpcell := column.FinancialWeeklyCell( relnew, Value := [String]ccpvalue ); |
| | | ccpcell := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]ccpvalue ) ); |
| | | ccproduction.FinancialWeeklyCell( relinsert, ccpcell ); |
| | | |
| | | //ééæ±æ» |
| | |
| | | startofyear := startofplanning.StartOfYear(); |
| | | startofnextyear := startofplanning.StartOfNextYear(); |
| | | |
| | | search := owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() ); |
| | | search := owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, Category := Translations::MP_GlobalParameters_Day(), StartDate := Date::MinDate(), EndDate := Date::MaxDate() ); |
| | | |
| | | table.GenerateColumn( owner, 'All', startofyear, startofnextyear ); |
| | | //info( '-----------------------------------', table.InventorySummaryColumn( relsize ) ); |
| | | //åºåæ°é为Actual inventorieséé¢çç¹Planned inventoriesåæ®µåºåéå æ» |
| | | //traverse( owner, StockingPoint_MP, stockingpoint ){ |
| | | traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( 'åå
åº' ) ){ |
| | | traverse( owner, StockingPoint_MP, stockingpoint ){ |
| | | //traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( 'åå
åº' ) ){ |
| | | // unit := stockingpoint.Unit(); |
| | | // parentunits := unit.GetAllParent(); |
| | | //æ¯å¦å±äºé¿æ¥å·¥å |
| | | iscc := stockingpoint.ID().StartsWith( 'CC' );//unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit ); |
| | | iscc := stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID() = 'é¿æ¥' ;//unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit ); |
| | | // iscc := stockingpoint.ID().StartsWith( 'CC' ) or unit.ID().StartsWith( 'CC' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'CC' ) ); |
| | | //æ¯å¦å±äºå¤§è¿å·¥å |
| | | isdl := stockingpoint.ID().StartsWith( '大è¿' );//unit.ID() = dlalienunit or unit.ID() = dlmplineunit or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit ); |
| | |
| | | and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() ); |
| | | |
| | | traverse( pispips, Elements, pispip ){ |
| | | products.Add( pisp.Product_MP() ); |
| | | period := pispip.Period_MP(); |
| | | periodtime := period.Start().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | |
| | | if( exists( e, InventorySummaryCell, cell, cell.AverageInventory() <> 0 or cell.EndingInventory() <> 0 or cell.MaximumInventory() <> 0 or cell.MinimumInventory() <> 0 ) ){ |
| | | e.RowNr( i ); |
| | | i := i + 1; |
| | | }{ |
| | | }else{ |
| | | e.Delete(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod InitiateSearch ( |
| | | MacroPlan owner |
| | | ) as InventorySummaryReport |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Sep-29-2024 (created) |
| | | allunit := InventorySummaryReport::GetDefaultAllUnit(); |
| | | search := owner.InventorySummarySearch(); |
| | | if( isnull( search ) ){ |
| | | owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, Category := Translations::MP_GlobalParameters_Day(), StartDate := Date::MinDate(), EndDate := Date::MaxDate() ); |
| | | }else{ |
| | | search := owner.InventorySummarySearch(); |
| | | search.Unit( allunit ); |
| | | search.Generation( allunit ); |
| | | search.MqbMlb( allunit ); |
| | | search.Power( allunit ); |
| | | search.Category( Translations::MP_GlobalParameters_Day() ); |
| | | search.StartDate( Date::MinDate() ); |
| | | search.EndDate( Date::MaxDate() ); |
| | | } |
| | | table := selectobject( owner, InventorySummarySource.InventorySummaryReport, table, table.IsShow() ); |
| | | if( not isnull( table ) ){ |
| | | products := selectset( owner, Product_MP, product, true ); |
| | | table.Generate( search, products ); |
| | | } |
| | | return table; |
| | | *] |
| | | } |
| | |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | owner.FinancialProductionSource( relflush ); |
| | | productparent := MachiningPipelineReport::GetDefaultProductParent(); |
| | | ccunit := MachiningPipelineReport::GetDefaultCCUnit(); |
| | | dlunit := MachiningPipelineReport::GetDefaultDLUnit(); |
| | | //ccunit := MachiningPipelineReport::GetDefaultCCUnit(); |
| | | //dlunit := MachiningPipelineReport::GetDefaultDLUnit(); |
| | | //allunit := EnginePipelineReport::GetDefaultAllUnit(); |
| | | source := owner.MachiningPipelineSource( relnew, Name := MachiningPipelineReport::GetDefaultName() ); |
| | | table := source.Report( relnew, ID := source.Name(), Name := source.Name() ); |
| | |
| | | //æ¯å¦å±äºå¤§è¿å·¥å |
| | | isdl := stockingpoint.ID().StartsWith( 'DL' ) or unit.ID().StartsWith( 'DL' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'DL' ) );//unit.ID() = dlunit or exists( parentunits, Elements, punit, punit.ID() = dlunit ); |
| | | //æ¯å¦å±äºé¿æ¥è£
é
线CCåå
åº |
| | | isccassemnly := stockingpoint.ID().EndsWith( 'åå
åº' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( 'é¿æ¥' ) );//unit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() ); |
| | | // isccassemnly := stockingpoint.ID().EndsWith( 'åå
åº' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( 'é¿æ¥' ) );//unit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCAssemnlyUnit() ); |
| | | //æ¯å¦å±äºå¤§è¿è£
é
线DLåå
åº |
| | | isdlassemnly := stockingpoint.ID().EndsWith( 'åå
åº' ) and ( stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '大è¿' ) );//unit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() ); |
| | | // isdlassemnly := stockingpoint.ID().EndsWith( 'åå
åº' ) and ( stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '大è¿' ) );//unit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLAssemnlyUnit() ); |
| | | //æ¯å¦å±äºé¿æ¥æºå 产线 |
| | | isccproduction := stockingpoint.ID().EndsWith( '线边åº' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( 'é¿æ¥' ) );//unit.ID() = MachiningPipelineReport::GetDefaultCCProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultCCProductionUnit() ); |
| | | //æ¯å¦å±äºå¤§è¿æºå 产线 |
| | | isdlproduction := unit.ID().EndsWith( 'MoMo' ) and unit.ID().StartsWith( 'DL' );//unit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() ); |
| | | if( iscc or isdl ){ |
| | | traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and not pisp.IsSystem() |
| | | // and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent ) |
| | | and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 ) ) ){ |
| | | and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent ) |
| | | and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 or pispip.DependentDemandAndSalesDemandQuantity() <> 0 ) ) ){ |
| | | isccassemnly := stockingpoint.ID().EndsWith( pisp.Product_MP().ParentID() + '线边åº' ) and ( stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID().StartsWith( 'é¿æ¥' ) ); |
| | | isdlassemnly := stockingpoint.ID().EndsWith( pisp.Product_MP().ParentID() ) and ( stockingpoint.ID().StartsWith( 'DL' ) or stockingpoint.ID().StartsWith( '大è¿' ) ); |
| | | pispips := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() |
| | | and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 ), pispip.Start() ); |
| | | and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 or pispip.DependentDemandAndSalesDemandQuantity() <> 0 ), pispip.Start() ); |
| | | traverse( pispips, Elements, pispip ){ |
| | | supplyquantity := [Number]pispip.NewSupplyQuantity();//åèäºå
¥ |
| | | //天 |
| | |
| | | |
| | | //è£
é
线 |
| | | if( isccassemnly or isdlassemnly ){ |
| | | quantity := [Number]pispip.DependentDemandAndSalesDemandQuantity();//åèäºå
¥ |
| | | if( isccassemnly ){ |
| | | daycolumn.CCAssemblyPlanQty( daycolumn.CCAssemblyPlanQty() + supplyquantity ); |
| | | weekcolumn.CCAssemblyPlanQty( weekcolumn.CCAssemblyPlanQty() + supplyquantity ); |
| | | daycolumn.CCAssemblyPlanQty( daycolumn.CCAssemblyPlanQty() + quantity ); |
| | | weekcolumn.CCAssemblyPlanQty( weekcolumn.CCAssemblyPlanQty() + quantity ); |
| | | } else { |
| | | daycolumn.DLAssemblyPlanQty( daycolumn.DLAssemblyPlanQty() + supplyquantity ); |
| | | weekcolumn.DLAssemblyPlanQty( weekcolumn.DLAssemblyPlanQty() + supplyquantity ); |
| | | daycolumn.DLAssemblyPlanQty( daycolumn.DLAssemblyPlanQty() + quantity ); |
| | | weekcolumn.DLAssemblyPlanQty( weekcolumn.DLAssemblyPlanQty() + quantity ); |
| | | } |
| | | } |
| | | |
| | |
| | | productparents := product.GetAllParent(); |
| | | if( exists( productparents, Elements, e, e.ID() = productparent ) ){//æ¥è¯¢äº§åç±»åæ¯å卿º |
| | | //èµ·å§åºåç¹æ¯å¦æ¯å¤§è¿oré¿æ¥ |
| | | originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() ); |
| | | originunit := originsp.Unit(); |
| | | originparentunits := originunit.GetAllParent(); |
| | | originiscc := originsp.ID() = ccunit or originunit.ID() = ccunit or exists( originparentunits, Elements, punit, punit.ID() = ccunit ); |
| | | originisdl := originsp.ID() = dlunit or originunit.ID() = dlunit or exists( originparentunits, Elements, punit, punit.ID() = dlunit ); |
| | | // originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() ); |
| | | // originunit := originsp.Unit(); |
| | | // originparentunits := originunit.GetAllParent(); |
| | | originiscc := tprow.SourceStockpoingPointID() = 'CC';//originsp.ID() = ccunit or originunit.ID() = ccunit or exists( originparentunits, Elements, punit, punit.ID() = ccunit ); |
| | | originisdl := tprow.SourceStockpoingPointID() = 'DL';//originsp.ID() = dlunit or originunit.ID() = dlunit or exists( originparentunits, Elements, punit, punit.ID() = dlunit ); |
| | | //ç®çå°æ¯å¦æ¯é¿æ¥å¤ç§åº |
| | | destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() ); |
| | | destiunit := destisp.Unit(); |
| | | destiparentunits := destiunit.GetAllParent(); |
| | | destiiscc := destisp.ID() = ccunit or destiunit.ID() = ccunit or exists( destiparentunits, Elements, punit, punit.ID() = ccunit ); |
| | | destiisdl := destisp.ID() = dlunit or destiunit.ID() = dlunit or exists( destiparentunits, Elements, punit, punit.ID() = dlunit ); |
| | | // destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() ); |
| | | // destiunit := destisp.Unit(); |
| | | // destiparentunits := destiunit.GetAllParent(); |
| | | destiiscc := tprow.TargetStockpoingPointID() = 'CC';//destisp.ID() = ccunit or destiunit.ID() = ccunit or exists( destiparentunits, Elements, punit, punit.ID() = ccunit ); |
| | | destiisdl := tprow.TargetStockpoingPointID() = 'DL';//destisp.ID() = dlunit or destiunit.ID() = dlunit or exists( destiparentunits, Elements, punit, punit.ID() = dlunit ); |
| | | if( ( originiscc and destiisdl ) or ( originisdl and destiiscc ) ){ |
| | | row := table.GetRow( tprow.ProductID() ); |
| | | traverse( tprow, TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() <> Date::MinDate() ){ |
| | |
| | | //å¨ |
| | | weekcolumn := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), tpcell.TransferPlanColumn().ColumnDate() ); |
| | | quantity := [Real]tpcell.Value();//åèäºå
¥ |
| | | |
| | | if( not isnull( daycolumn ) ){ |
| | | row.SetCellTransferValue( daycolumn, ( originiscc and destiisdl ), quantity ); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod InitiateSearch ( |
| | | MacroPlan owner |
| | | ) as MachiningPipelineReport |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Sep-29-2024 (created) |
| | | search := owner.MachiningPipelineSearch(); |
| | | if( isnull( search ) ){ |
| | | owner.MachiningPipelineSearch( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() ); |
| | | }else{ |
| | | search := owner.MachiningPipelineSearch(); |
| | | search.TimeUnit( Translations::MP_GlobalParameters_Day() ); |
| | | search.StartDate( Date::MinDate() ); |
| | | search.EndDate( Date::MaxDate() ); |
| | | } |
| | | table := selectobject( owner, MachiningPipelineSource.Report, table, table.IsShow() ); |
| | | if( not isnull( table ) ){ |
| | | products := selectset( owner, Product_MP, product, true ); |
| | | table.Generate( search, products ); |
| | | } |
| | | return table; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute A_PreviousScenaioName |
| | | { |
| | | #keys: '3[413988.0.1581730054][413988.0.1581730053][413988.0.1581730055]' |
| | | Description: 'ç¨äºä¸çº¿è®¡å确认åè½' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute IsQuantity |
| | | { |
| | | #keys: '3[413988.0.1565814440][413988.0.1565814439][413988.0.1565814441]' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcIsQuantity |
| | | { |
| | | TextBody: |
| | | [* |
| | | // lihongji Sep-27-2024 (created) |
| | | |
| | | value := ifexpr( this.OfflinePlanRow().Type() = "1" and this.OfflinePlanColumn().ColumnIndex() > 1 and this.Quantity() > 0, true, false ); |
| | | |
| | | this.IsQuantity( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcQuantity |
| | | { |
| | | TextBody: |
| | | [* |
| | | // lihongji Sep-27-2024 (created) |
| | | |
| | | value := ifexpr( ( this.OfflinePlanRow().Type() = "1" or this.OfflinePlanRow().Type() = "2" ) and this.OfflinePlanColumn().ColumnIndex() > 1, |
| | | guard( [Number]this.Value(), 0 ), 0 ); |
| | | |
| | | this.Quantity( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method QuantityGreaterThan0 ( |
| | | String type, |
| | | String pl |
| | | ) as Boolean |
| | | { |
| | | TextBody: 'return this.OfflinePlanRow().Type() = type and this.OfflinePlanRow().ProductionLine() = pl and this.Quantity() > 0.0;' |
| | | } |
| | |
| | | tempOPC.OfflinePlanRow().Type() = "1" and |
| | | tempOPC.OfflinePlanRow().ProductID() = firstOrderCell.OfflinePlanRow().ProductID() |
| | | ); |
| | | firstQuantityCell.Value( [String] ( [Number]firstQuantityCell.Value() - cls.ChangeLossNr() ) ); |
| | | firstQuantityCell.Value( [String] ( [Number]firstQuantityCell.Value() - cls.ChangeLossNumber() ) ); |
| | | // info( "å½ååæ¶é´ï¼", opc.ColumnDate().Format( "Y-M2-D2" ), " å½ååºå·ï¼", i, " åå
æ ¼çå¼ï¼", firstOrderCell.Value(), " 产ååï¼", firstOrderCell.OfflinePlanRow().ProductID(), |
| | | // "ä¸ä¸ä¸ªåºå·ï¼", i + 1, " åå
æ ¼çå¼ï¼", secondOrderCell.Value(), " 产ååï¼", secondOrderCell.OfflinePlanRow().ProductID() ); |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan |
| | | MacroPlan macroPlan, |
| | | OfflinePlanRows selectedOPRs |
| | | ) as BinaryValue |
| | | { |
| | | TextBody: |
| | |
| | | |
| | | opt := maxselect( macroPlan, OfflinePlanTable, tempOPT, true, tempOPT.SaveDateTime() ); |
| | | opcs := selectsortedset( opt, OfflinePlanColumn, tempOPC, true, tempOPC.ColumnDate() ); |
| | | oprs := selectsortedset( opt, OfflinePlanRow, tempOPR, true, tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() ); |
| | | oprs := selectsortedset( selectedOPRs, Elements, tempOPR, true, tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() ); |
| | | traverse ( opcs, Elements, opc ) { |
| | | column := xmlDOM.CreateElement( "column" ); |
| | | name := xmlDOM.CreateElement( "name" ); |
| | | type := xmlDOM.CreateElement( "type" ); |
| | | name.TextContent( ifexpr( opc.ColumnDate() < macroPlan.StartOfPlanning().Date(), "", opc.ColumnDate().Format( "Y/M2/D2" ) ) ); |
| | | name.TextContent( ifexpr( opc.ColumnDate() < macroPlan.StartOfPlanning().Date(), "*", opc.ColumnDate().Format( "Y/M2/D2" ) ) ); |
| | | type.TextContent( "String" ); |
| | | column.AppendChild( name ); |
| | | column.AppendChild( type ); |
| | |
| | | } |
| | | |
| | | // èµå¼åå
æ ¼ |
| | | cellQuantity := opc.OfflinePlanCell( relnew, Value := [String]ns.Quantity().Round( 0 ), Shift := ns.PeriodTask_MP().UnitPeriod().astype( UnitPeriodTimeBase ).ShiftPattern().Name(), Quantity := ns.Quantity() ); |
| | | cellQuantity.OfflinePlanRow( relset, oprQuantity ); |
| | | cellOrder := opc.OfflinePlanCell( relnew, Value := "åå·" + [String]ns.Quantity().Round( 0 ) + "_" + [String]( ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() ), |
| | | Quantity := ns.Quantity(), |
| | | InventoryWeight := ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() ); |
| | | cellOrder.OfflinePlanRow( relset, oprOrder ); |
| | | cellQuantity := oprQuantity.OfflinePlanCell( relnew, Value := [String]ns.Quantity().Round( 0 ), Shift := ns.PeriodTask_MP().UnitPeriod().astype( UnitPeriodTimeBase ).ShiftPattern().Name() ); |
| | | cellQuantity.OfflinePlanColumn( relset, opc ); |
| | | cellOrder := oprOrder.OfflinePlanCell( relnew, |
| | | // Value := "åå·" + [String]ns.Quantity().Round( 0 ) + "_" + [String]( ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() ), |
| | | Value := [String]ns.Quantity().Round( 0 ), |
| | | InventoryWeight := ns.ProductInStockingPointInPeriodPlanningLeaf().InventoryLevelEnd() - ns.ProductInStockingPointInPeriodPlanningLeaf().MinInventoryLevel() ); |
| | | cellOrder.OfflinePlanColumn( relset, opc ); |
| | | } |
| | | } |
| | | |
| | |
| | | typeOPC := opt.OfflinePlanColumn( relnew, ColumnDate := macroPlan.StartOfPlanning().Date() - 1 ); |
| | | traverse ( opt, OfflinePlanRow, opr ) { |
| | | if ( opr.Type() = "0" ) { |
| | | productLineCell := productOPC.OfflinePlanCell( relnew, Value := opr.ProductionLine() ); |
| | | productLineCell.OfflinePlanRow( relset, opr ); |
| | | productLineCell := opr.OfflinePlanCell( relnew, Value := opr.ProductionLine() ); |
| | | productLineCell.OfflinePlanColumn( relset, productOPC ); |
| | | } else if( opr.Type() = "1" ) { |
| | | productCell := productOPC.OfflinePlanCell( relnew, Value := opr.ProductID() + ifexpr( opr.Notes() = "", "", "-" + opr.Notes() ) ); |
| | | productCell.OfflinePlanRow( relset, opr ); |
| | | typeCell := typeOPC.OfflinePlanCell( relnew, Value := "Quantity" ); |
| | | typeCell.OfflinePlanRow( relset, opr ); |
| | | productCell := opr.OfflinePlanCell( relnew, Value := opr.ProductID() + ifexpr( opr.Notes() = "", "", "-" + opr.Notes() ) ); |
| | | productCell.OfflinePlanColumn( relset, productOPC ); |
| | | typeCell := opr.OfflinePlanCell( relnew, Value := "Quantity" ); |
| | | typeCell.OfflinePlanColumn( relset, typeOPC ); |
| | | } else if ( opr.Type() = "2" ) { |
| | | typeCell := typeOPC.OfflinePlanCell( relnew, Value := "Order" ); |
| | | typeCell.OfflinePlanRow( relset, opr ); |
| | | typeCell := opr.OfflinePlanCell( relnew, Value := "Order" ); |
| | | typeCell.OfflinePlanColumn( relset, typeOPC ); |
| | | } else if ( opr.Type() = "3" ) { |
| | | totalCell := productOPC.OfflinePlanCell( relnew, Value := "å计" ); |
| | | totalCell.OfflinePlanRow( relset, opr ); |
| | | totalCell := typeOPC.OfflinePlanCell( relnew, Value := "æ»é" ); |
| | | totalCell.OfflinePlanRow( relset, opr ); |
| | | totalCell := opr.OfflinePlanCell( relnew, Value := "å计" ); |
| | | totalCell.OfflinePlanColumn( relset, productOPC ); |
| | | totalCell := opr.OfflinePlanCell( relnew, Value := "æ»é" ); |
| | | totalCell.OfflinePlanColumn( relset, typeOPC ); |
| | | } else if ( opr.Type() = "4" ) { |
| | | shiftCell := typeOPC.OfflinePlanCell( relnew, Value := "çæ¬¡" ); |
| | | shiftCell.OfflinePlanRow( relset, opr ); |
| | | shiftCell := opr.OfflinePlanCell( relnew, Value := "çæ¬¡" ); |
| | | shiftCell.OfflinePlanColumn( relset, typeOPC ); |
| | | } else if ( opr.Type() = "5" ) { |
| | | shiftStartDateCell := typeOPC.OfflinePlanCell( relnew, Value := "çæ¬¡å¼å§æ¶é´" ); |
| | | shiftStartDateCell.OfflinePlanRow( relset, opr ); |
| | | shiftStartDateCell := opr.OfflinePlanCell( relnew, Value := "çæ¬¡å¼å§æ¶é´" ); |
| | | shiftStartDateCell.OfflinePlanColumn( relset, typeOPC ); |
| | | } else if ( opr.Type() = "6" ) { |
| | | shiftEndDateCell := typeOPC.OfflinePlanCell( relnew, Value := "çæ¬¡ç»ææ¶é´" ); |
| | | shiftEndDateCell.OfflinePlanRow( relset, opr ); |
| | | shiftEndDateCell := opr.OfflinePlanCell( relnew, Value := "çæ¬¡ç»ææ¶é´" ); |
| | | shiftEndDateCell.OfflinePlanColumn( relset, typeOPC ); |
| | | } |
| | | } |
| | | |
| | |
| | | shiftStartDateOPRs := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "5" ); |
| | | shiftEndDateOPRs := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "6" ); |
| | | traverse ( opt, OfflinePlanColumn, opc, opc.OfflinePlanCell( relsize ) > 0 and opc.ColumnDate() >= macroPlan.StartOfPlanning().Date() ) { |
| | | // è¡¥å
¨æ»é |
| | | traverse ( totalOPRs, Elements, totalOPR ) { |
| | | total := sum( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = totalOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1", [Real]tempOPC.Value() ); |
| | | totalCell := opc.OfflinePlanCell( relnew, Value := [String]total ); |
| | | totalCell.OfflinePlanRow( relset, totalOPR ); |
| | | totalCell := totalOPR.OfflinePlanCell( relnew, Value := [String]total ); |
| | | totalCell.OfflinePlanColumn( relset, opc ); |
| | | } |
| | | |
| | | // &çæ¬¡ |
| | | traverse ( shiftOPRs, Elements, shiftOPR ) { |
| | | shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = shiftOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" ); |
| | | if ( not isnull( shift ) ) { |
| | | shiftCell := opc.OfflinePlanCell( relnew, Value := shift.Shift() ); |
| | | shiftCell.OfflinePlanRow( relset, shiftOPR ); |
| | | shiftCell := shiftOPR.OfflinePlanCell( relnew, Value := shift.Shift() ); |
| | | shiftCell.OfflinePlanColumn( relset, opc ); |
| | | } |
| | | } |
| | | |
| | | // çæ¬¡å¼å§æ¶é´ |
| | | traverse ( shiftStartDateOPRs, Elements, ssdOPR ) { |
| | | shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = ssdOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" ); |
| | | if ( not isnull( shift ) ) { |
| | | startDate := guard( minselect( macroPlan, ShiftPattern.ShiftDayTime, tempSDT, tempSDT.ShiftPattern().Name() = shift.Shift(), tempSDT.Sequence() ).StartDateTime().Format( "H:m" ), "" ); |
| | | startDateCell := opc.OfflinePlanCell( relnew, Value := startDate ); |
| | | startDateCell.OfflinePlanRow( relset, ssdOPR ); |
| | | startDateCell := ssdOPR.OfflinePlanCell( relnew, Value := startDate ); |
| | | startDateCell.OfflinePlanColumn( relset, opc ); |
| | | } |
| | | } |
| | | |
| | | // çæ¬¡ç»ææ¶é´ |
| | | traverse ( shiftEndDateOPRs, Elements, sedOPR ) { |
| | | shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = sedOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" ); |
| | | if ( not isnull( shift ) ) { |
| | | endDate := guard( maxselect( macroPlan, ShiftPattern.ShiftDayTime, tempSDT, tempSDT.ShiftPattern().Name() = shift.Shift(), tempSDT.Sequence() ).EndDateTIme().Format( "H:m" ), "" ); |
| | | endDateCell := opc.OfflinePlanCell( relnew, Value := endDate ); |
| | | endDateCell.OfflinePlanRow( relset, sedOPR ); |
| | | endDateCell := sedOPR.OfflinePlanCell( relnew, Value := endDate ); |
| | | endDateCell.OfflinePlanColumn( relset, opc ); |
| | | } |
| | | } |
| | | } |
| | |
| | | indexDate := indexDate + 1; |
| | | } |
| | | |
| | | // è¡¥å
¨ç©ºæ ¼å |
| | | traverse ( opt, OfflinePlanRow, opr ) { |
| | | traverse ( opt, OfflinePlanColumn, opc ) { |
| | | cell := select( opr, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanColumn() = opc ); |
| | | if ( isnull( cell ) ) { |
| | | cell := opr.OfflinePlanCell( relnew, Value := "" ); |
| | | cell.OfflinePlanColumn( relset, opc ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | Transaction::Transaction().Propagate( attribute( OfflinePlanCell, Quantity ) ); |
| | | Transaction::Transaction().PropagateAll(); |
| | | |
| | | // 设置çäº§é¡ºåº |
| | |
| | | nextColumn := indexColumn.NextColumn(); |
| | | |
| | | while ( not isnull( indexColumn.NextColumn() ) |
| | | // and indexColumn.ColumnDate() <= Date::Construct( 2024, 4, 16 ) // æµè¯å®é
åºæ¯æ¶å¯ä»¥è¿æ»¤ |
| | | // and indexColumn.ColumnDate() <= Date::Construct( 2020, 4, 1 ) // æµè¯å®é
åºæ¯æ¶å¯ä»¥è¿æ»¤ |
| | | ) { |
| | | productionSerialNumber := 1; |
| | | opcs := selectsortedset( indexColumn, OfflinePlanCell, tempOPC, tempOPC.FindType( "2", pl ), tempOPC.InventoryWeight() ); |
| | | initialSize := opcs.Size(); |
| | | if ( opcs.Size() > 0 ) { |
| | | info( "计åå¼å§æ¶é´ï¼", macroPlan.StartOfPlanning().Date().Format( "Y-M2-D2" ), " ç´¢å¼æ¶é´ï¼", indexDate.Format( "Y-M2-D2" ), " 个æ°ï¼", opcs.Size() ); |
| | | if ( opcs.Size() > 0 ) { |
| | | // å¤å®1 |
| | | previousOPC := maxselect( previousColumn, OfflinePlanCell, tempOPC, tempOPC.FindType( "2", pl ), tempOPC.ProductionSerialNumber() ); |
| | | if ( isnull( previousOPC ) or indexColumn.ColumnDate() = macroPlan.StartOfPlanning().Date() ) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute IsShow |
| | | { |
| | | #keys: '3[413988.0.1565821671][413988.0.1565821670][413988.0.1565821672]' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | ISOValue: 'true' |
| | | TargetAttribute: IsShow |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcColumnIndex |
| | | { |
| | | TextBody: |
| | | [* |
| | | // lihongji Sep-27-2024 (created) |
| | | |
| | | value := guard( this.PreviousColumn().ColumnIndex() + 1, 0 ) |
| | | |
| | | this.ColumnIndex( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Date |
| | | { |
| | | #keys: '3[413988.0.1558681449][413988.0.1558681448][413988.0.1558681450]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Order |
| | | { |
| | | #keys: '3[413988.0.1558681429][413988.0.1558681428][413988.0.1558681430]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductID |
| | | { |
| | | #keys: '3[413988.0.1558681419][413988.0.1558681418][413988.0.1558681420]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Quantity |
| | | { |
| | | #keys: '3[413988.0.1558681439][413988.0.1558681438][413988.0.1558681440]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod UpdateCell ( |
| | | GeneralExcelImportAndExportDataTable table, |
| | | GeneralExcelImportAndExportDataRow row, |
| | | OfflinePlanTable opt, |
| | | OfflinePlanRow opr |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | traverse ( table, GeneralExcelImportAndExportDataColumn, column ) { |
| | | if ( column.ColumnIndex() = 0 ) { |
| | | cell := select( column, GeneralExcelImportAndExportDataCell, tempColumn, tempColumn.GeneralExcelImportAndExportDataRow() = row ); |
| | | opc := select( opt, OfflinePlanColumn, tempOPC, tempOPC.ColumnIndex() = 0 ); |
| | | opcell := opr.OfflinePlanCell( relnew, Value := cell.Value() ); |
| | | opcell.OfflinePlanColumn( relset, opc ); |
| | | } else if ( column.ColumnIndex() = 1 ) { |
| | | cell := select( column, GeneralExcelImportAndExportDataCell, tempColumn, tempColumn.GeneralExcelImportAndExportDataRow() = row ); |
| | | opc := select( opt, OfflinePlanColumn, tempOPC, tempOPC.ColumnIndex() = 1 ); |
| | | opcell := opr.OfflinePlanCell( relnew, Value := cell.Value() ); |
| | | opcell.OfflinePlanColumn( relset, opc ); |
| | | } else { |
| | | cell := select( column, GeneralExcelImportAndExportDataCell, tempColumn, tempColumn.GeneralExcelImportAndExportDataRow() = row ); |
| | | opc := select( opt, OfflinePlanColumn, tempOPC, tempOPC.ColumnName() = column.Name() ); |
| | | opcell := opr.OfflinePlanCell( relnew, Value := cell.Value() ); |
| | | opcell.OfflinePlanColumn( relset, opc ); |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Upload ( |
| | | MacroPlan macroPlan, |
| | | OfflinePlanTable opt, |
| | | GeneralExcelImportAndExportDataTable table |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | indexUnitID := ""; |
| | | indexProductID := ""; |
| | | |
| | | traverse ( table, GeneralExcelImportAndExportDataRow, row ) { |
| | | firstColumn := select( table, GeneralExcelImportAndExportDataColumn, tempC, tempC.ColumnIndex() = 0 ); |
| | | secondColumn := select( table, GeneralExcelImportAndExportDataColumn, tempC, tempC.ColumnIndex() = 1 ); |
| | | |
| | | firstCell := select( row, GeneralExcelImportAndExportDataCell, tempC, tempC.GeneralExcelImportAndExportDataColumn() = firstColumn ); |
| | | u := select( macroPlan, Unit, tempU, tempU.ID() = firstCell.Value() ); |
| | | product := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = firstCell.Value() ); |
| | | |
| | | secondCell := select( row, GeneralExcelImportAndExportDataCell, tempC, tempC.GeneralExcelImportAndExportDataColumn() = secondColumn ); |
| | | |
| | | if ( not isnull( u ) and secondCell.Value() = "" ) { |
| | | indexUnitID := u.ID(); |
| | | opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "" and tempOPR.Type() = "0" ); |
| | | opr.OfflinePlanCell( relflush ); |
| | | |
| | | OfflinePlanImportData::UpdateCell( table, row, opt, opr ); |
| | | } else if ( not isnull( product ) and secondCell.Value() = "Quantity" ) { |
| | | indexProductID := product.ID(); |
| | | opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = indexProductID and tempOPR.Type() = "1" ); |
| | | opr.OfflinePlanCell( relflush ); |
| | | |
| | | OfflinePlanImportData::UpdateCell( table, row, opt, opr ); |
| | | } else if ( isnull( product ) and secondCell.Value() = "Order" ) { |
| | | opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = indexProductID and tempOPR.Type() = "2" ); |
| | | opr.OfflinePlanCell( relflush ); |
| | | |
| | | OfflinePlanImportData::UpdateCell( table, row, opt, opr ); |
| | | } else if ( firstCell.Value() = "å计" and secondCell.Value() = "æ»é" ) { |
| | | opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "Z" and tempOPR.Type() = "3" ); |
| | | opr.OfflinePlanCell( relflush ); |
| | | |
| | | OfflinePlanImportData::UpdateCell( table, row, opt, opr ); |
| | | } else if ( firstCell.Value() = "" and secondCell.Value() = "çæ¬¡" ) { |
| | | opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "Z" and tempOPR.Type() = "4" ); |
| | | opr.OfflinePlanCell( relflush ); |
| | | |
| | | OfflinePlanImportData::UpdateCell( table, row, opt, opr ); |
| | | } else if ( firstCell.Value() = "" and secondCell.Value() = "çæ¬¡å¼å§æ¶é´" ) { |
| | | opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "Z" and tempOPR.Type() = "5" ); |
| | | opr.OfflinePlanCell( relflush ); |
| | | |
| | | OfflinePlanImportData::UpdateCell( table, row, opt, opr ); |
| | | } else if ( firstCell.Value() = "" and secondCell.Value() = "çæ¬¡ç»ææ¶é´" ) { |
| | | opr := select( opt, OfflinePlanRow, tempOPR, tempOPR.ProductionLine() = indexUnitID and tempOPR.ProductID() = "Z" and tempOPR.Type() = "6" ); |
| | | opr.OfflinePlanCell( relflush ); |
| | | |
| | | OfflinePlanImportData::UpdateCell( table, row, opt, opr ); |
| | | } else { |
| | | error( "导å
¥å¤±è´¥ï¼æ°æ®å¼å¸¸" ); |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type OfflinePlanImportData |
| | | { |
| | | #keys: '5[413988.0.1558681402][413988.0.1558681400][0.0.0][413988.0.1558681401][413988.0.1558681403]' |
| | | BaseType: Object |
| | | StructuredName: 'OfflinePlanImportDatas' |
| | | } |
| | |
| | | Attribute Notes |
| | | { |
| | | #keys: '3[415754.0.180041713][415754.0.180041712][415754.0.180041714]' |
| | | Description: '4ä½ç ' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductID |
| | | { |
| | | #keys: '3[413988.0.1584313375][413988.0.1584313374][413988.0.1584313376]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Quantity |
| | | { |
| | | #keys: '3[413988.0.1584313385][413988.0.1584313384][413988.0.1584313386]' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type TransferMinimumQuantity |
| | | { |
| | | #keys: '5[413988.0.1584313371][413988.0.1584313369][0.0.0][413988.0.1584313370][413988.0.1584313372]' |
| | | BaseType: Object |
| | | StructuredName: 'TransferMinimumQuantitys' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method WholeShiftFiltering () declarative remote as Boolean |
| | | { |
| | | TextBody: 'return this.HasCapacityTypeTime() or this.HasCapacityTypeTransportQuantity();' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | TypeRepresentation OfflinePlanCell |
| | | { |
| | | AttributeRepresentation Value |
| | | { |
| | | AttributeKey: '[413988.0.1296697079]' |
| | | Conditional: |
| | | [ |
| | | DataRepresentation.Conditional |
| | | { |
| | | BackgroundColor: '$FF3399' |
| | | ConditionBody: 'object.IsQuantity()' |
| | | ConversionBody: '' |
| | | DefaultBackgroundColor: false |
| | | InheritConversion: false |
| | | } |
| | | ] |
| | | } |
| | | RelationRepresentation OfflinePlanColumn { RelationKey: '[413988.0.1296697090]' Visibility: 'Normal' } |
| | | } |
| | |
| | | Component ComponentMenu702 { #keys: '[413988.0.1234424010]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysis822' Text: 'Interface Dataset' ] } |
| | | Component menuSeparator891 { #keys: '[413988.0.1263894630]' BaseType: 'Menu' Properties: [ Separator: true ] } |
| | | Component MenuWholeShift { #keys: '[413988.0.1263894682]' BaseType: 'Menu' Properties: [ Image: 'FISH_BOWL' Text: 'æµè¯æ´ç' ] } |
| | | Component menuSeparator604 { #keys: '[413988.0.1559834087]' BaseType: 'Menu' Properties: [ Separator: true ] } |
| | | Component ComponentMenu710 { #keys: '[413988.0.1559834106]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysis627' Text: '' ] } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | c: ComponentMenu469 |
| | | c: ComponentMenu357 |
| | | c: ComponentMenu702 |
| | | c: ComponentMenu710 |
| | | c: menuSeparator222 |
| | | c: ComponentMenu347 |
| | | c: menuSeparator891 |
| | | c: MenuWholeShift |
| | | c: menuSeparator604 |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component swTop |
| | | { |
| | | #keys: '[530.0.3531806]' |
| | | BaseType: 'swTop' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | Component spTopLeft |
| | | { |
| | | #keys: '[530.0.3531807]' |
| | | BaseType: 'spTopLeft' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | Component Analysis |
| | | { |
| | | #keys: '[530.0.3532065]' |
| | | BaseType: 'Analysis' |
| | | IsDerived: true |
| | | Properties: |
| | | [ |
| | | GlobalInstance: 'RecycleBin' |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component swTopMost |
| | | { |
| | | #keys: '[530.0.3531801]' |
| | | BaseType: 'swTopMost' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | Component SplitterPane1 |
| | | { |
| | | #keys: '[530.0.3531802]' |
| | | BaseType: 'SplitterPane1' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | #child: swTop |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlanner |
| | | OrphanComponent frmStandardAnalysis627 |
| | | { |
| | | #keys: '[413988.0.1559834123]' |
| | | BaseType: 'frmStandardAnalysis' |
| | | Children: |
| | | [ |
| | | #child: swTopMost |
| | | ] |
| | | Properties: |
| | | [ |
| | | Title: 'RecycleBin' |
| | | ] |
| | | } |
| | |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component npDLZKM |
| | | { |
| | | #keys: '[415754.0.318111807]' |
| | | BaseType: 'WebNumberPicker' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'MacroPlan.AssemblyOnlineQuantity.DLZKM' |
| | | Label: 'DL-ZKM (pcs)' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pnlActions |
| | | { |
| | | #keys: '[413988.0.1584412873]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component btnOk |
| | | { |
| | | #keys: '[413988.0.1584412877]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'OK' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component btnCancel |
| | | { |
| | | #keys: '[413988.0.1584412879]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Cancel' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Alignment: 'trailing' |
| | | Border: true |
| | | ExcludeFromActiveComponent: true |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Padding: 'true' |
| | | Style: 'footer' |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pnlContent |
| | | { |
| | | #keys: '[413988.0.1584412871]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component ddslProductID |
| | | { |
| | | #keys: '[413988.0.1584413067]' |
| | | BaseType: 'WebDropDownStringList' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'DataHolderDialogData.Data.ProductID' |
| | | Label: 'Product ID' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component npQuantity |
| | | { |
| | | #keys: '[413988.0.1584413087]' |
| | | BaseType: 'WebNumberPicker' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'DataHolderDialogData.Data.Quantity' |
| | | Label: 'Quantity' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Padding: 'true' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Edit ( |
| | | TransferMinimumQuantity selection |
| | | ) id:Method_DialogCreateEditTransferMinimumQuantity_Edit |
| | | { |
| | | #keys: '[413988.0.1584413050]' |
| | | Body: |
| | | [* |
| | | data := shadow( selection ); |
| | | |
| | | DataHolderDialogData.Data( &data ); |
| | | |
| | | ApplicationMacroPlanner.ShowFormModal( this ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method New () id:Method_DialogCreateEditTransferMinimumQuantity_New |
| | | { |
| | | #keys: '[413988.0.1584413052]' |
| | | Body: |
| | | [* |
| | | data := MacroPlan.TransferMinimumQuantity( relshadow ); |
| | | |
| | | DataHolderDialogData.Data( &data ); |
| | | |
| | | ApplicationMacroPlanner.ShowFormModal( this ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method OnOK () id:Method_DialogCreateEditTransferMinimumQuantity_OnOK |
| | | { |
| | | #keys: '[413988.0.1584413053]' |
| | | Body: |
| | | [* |
| | | // On ok |
| | | Form.ApplyChanges(); |
| | | |
| | | data := DataHolderDialogData.Data(); |
| | | |
| | | data.Commit(); |
| | | |
| | | Form.Close(); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pnlActions/btnCancel |
| | | Response OnClick () id:Response_pnlActions_btnCancel_OnClick |
| | | { |
| | | #keys: '[413988.0.1584412883]' |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | Form.Close(); |
| | | *] |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pnlActions/btnOk |
| | | Response OnClick () id:Response_pnlActions_btnOk_OnClick |
| | | { |
| | | #keys: '[413988.0.1584412882]' |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | Form.OnOK(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pnlContent/ddslProductID |
| | | Response OnCreated () id:Response_pnlContent_ddslProductID_OnCreated |
| | | { |
| | | #keys: '[413988.0.1584413155]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnCreated' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | ids := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.ID() ); |
| | | |
| | | this.Strings( ids.Concatenate( ";" ) ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent DialogCreateEditTransferMinimumQuantity |
| | | { |
| | | #keys: '[413988.0.1584412869]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: pnlContent |
| | | #child: pnlActions |
| | | Component DataHolderDialogData id:DataHolderDialogData_438 |
| | | { |
| | | #keys: '[413988.0.1584413005]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'shadow[TransferMinimumQuantity]*' |
| | | Properties: |
| | | [ |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Alignment: 'trailing' |
| | | EnterButton: 'btnOk' |
| | | EscapeButton: 'btnCancel' |
| | | ExcludeFromActiveComponent: true |
| | | Padding: 'false' |
| | | Title: 'TransferMinimumQuantity' |
| | | ] |
| | | } |
| | |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component npChangeLossNr |
| | | { |
| | | #keys: '[415136.0.738250237]' |
| | | BaseType: 'WebNumberPicker' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'dhDialogData.Data.ChangeLossNr' |
| | | Label: 'Change loss number' |
| | | Min: '0' |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | Component dsStartDate |
| | | { |
| | | #keys: '[415136.0.1132411785]' |
| | |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | Component efChangeLossNr |
| | | { |
| | | #keys: '[415136.0.1176801957]' |
| | | BaseType: 'WebEditField' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'dhDialogData.Data.ChangeLossNumber' |
| | | Label: 'Change loss number' |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return ChangeLossSetting::ValidateInput( feedback, MacroPlan, dhDialogData.Data().WrappedInstance(), ddlUnit.Data(), ddlProduct1.Data(), ddlProduct2.Data(), dsStartDate.Date(), dsEndDate.Date(), [Number]npChangeLossNr.Number() ); |
| | | return ChangeLossSetting::ValidateInput( feedback, MacroPlan, dhDialogData.Data().WrappedInstance(), ddlUnit.Data(), ddlProduct1.Data(), ddlProduct2.Data(), dsStartDate.Date(), dsEndDate.Date(), efChangeLossNr.Text() ); |
| | | *] |
| | | QuillAction |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component abpContent |
| | | { |
| | | #keys: '[413988.0.1584413600]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component cmContent |
| | | { |
| | | #keys: '[413988.0.1584413605]' |
| | | BaseType: 'listContextMenu' |
| | | Children: |
| | | [ |
| | | Component MenuSeparator |
| | | { |
| | | #keys: '[121142.1.1147171519]' |
| | | BaseType: 'MenuSeparator' |
| | | IsDerived: true |
| | | Properties: |
| | | [ |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component mSelectAll |
| | | { |
| | | #keys: '[413988.0.1584413729]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'SELECTION_VIEW' |
| | | Shortcut: 'Ctrl+A' |
| | | Taborder: 2 |
| | | Title: 'Select all' |
| | | ] |
| | | } |
| | | Component mNew |
| | | { |
| | | #keys: '[413988.0.1584413791]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'ADD2' |
| | | Taborder: 4 |
| | | Title: 'New' |
| | | ] |
| | | } |
| | | Component mEdit |
| | | { |
| | | #keys: '[413988.0.1584413813]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | BindOnDoubleClick: true |
| | | Image: 'PENCIL' |
| | | Taborder: 5 |
| | | Title: 'Edit' |
| | | ] |
| | | } |
| | | Component mDelete |
| | | { |
| | | #keys: '[413988.0.1584413835]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'DELETE' |
| | | Taborder: 6 |
| | | Title: 'Delete' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component lstContent |
| | | { |
| | | #keys: '[413988.0.1584413597]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component deContent |
| | | { |
| | | #keys: '[413988.0.1584413598]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'TransferMinimumQuantity' |
| | | ] |
| | | } |
| | | #child: abpContent |
| | | Component dslContent |
| | | { |
| | | #keys: '[413988.0.1584413603]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: cmContent |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}}]' |
| | | ContextMenu: 'cmContent' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | | DelegatedResponseDefinition OnClick id:Responsedef_lstContent_WebMenu_OnClick |
| | | { |
| | | #keys: '[413988.0.1584413922]' |
| | | Initiator: 'WebMenu' |
| | | IsInherited: false |
| | | ResponseType: 'OnClick' |
| | | Arguments: |
| | | [ |
| | | ResponseDefinitionArgument selection |
| | | { |
| | | #keys: '[3751.0.8761425]' |
| | | Binding: 'this.Selection()' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component npCylinderBlock |
| | | { |
| | | #keys: '[413988.0.1273522242]' |
| | | BaseType: 'WebNumberPicker' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'MacroPlan.CylinderBlock' |
| | | Label: '缸ä½(pcs)' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component npCylinderHead |
| | | { |
| | | #keys: '[413988.0.1273522255]' |
| | | BaseType: 'WebNumberPicker' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'MacroPlan.CylinderHead' |
| | | Label: '缸ç(pcs)' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component npConnectingRod |
| | | { |
| | | #keys: '[413988.0.1273522267]' |
| | | BaseType: 'WebNumberPicker' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'MacroPlan.ConnectingRod' |
| | | Label: 'è¿æ(pcs)' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component npCrankshaft |
| | | { |
| | | #keys: '[413988.0.1273522280]' |
| | | BaseType: 'WebNumberPicker' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'MacroPlan.Crankshaft' |
| | | Label: 'æ²è½´(pcs)' |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component npBalanceAxis |
| | | { |
| | | #keys: '[413988.0.1273522292]' |
| | | BaseType: 'WebNumberPicker' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'MacroPlan.BalanceAxis' |
| | | Label: '平衡轴(pcs)' |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | #child: lstContent |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: lstContent |
| | | Response OnClick ( |
| | | structured[TransferMinimumQuantity] selection |
| | | ) id:Response_lstContent_mDelete_OnClick |
| | | { |
| | | #keys: '[413988.0.1584415019]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick |
| | | Initiator: 'mDelete' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | MacroPlan::DeleteObjects( selection ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: lstContent |
| | | Response OnClick ( |
| | | TransferMinimumQuantity selection |
| | | ) id:Response_lstContent_mEdit_OnClick |
| | | { |
| | | #keys: '[413988.0.1584414766]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick |
| | | Initiator: 'mEdit' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | dlg := construct( DialogCreateEditTransferMinimumQuantity ); |
| | | |
| | | dlg.Edit( selection ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: lstContent |
| | | Response OnClick () id:Response_lstContent_mNew_OnClick |
| | | { |
| | | #keys: '[413988.0.1584414263]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick |
| | | Initiator: 'mNew' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | dlg := construct( DialogCreateEditTransferMinimumQuantity ); |
| | | |
| | | dlg.New(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: lstContent |
| | | Response OnClick () id:Response_lstContent_mSelectAll_OnClick |
| | | { |
| | | #keys: '[413988.0.1584414036]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /lstContent/Responsedef_lstContent_WebMenu_OnClick |
| | | Initiator: 'mSelectAll' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.SelectAll(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | EnterButton: 'btnOk' |
| | | EscapeButton: 'btnCancel' |
| | | ExcludeFromActiveComponent: true |
| | | MinimumColumns: 50 |
| | | MinimumRows: 30 |
| | | Padding: 'false' |
| | | ] |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | FixedFilter: 'not object.GetIsSystem() and object.IsUnit();' |
| | | FixedFilter: 'not object.GetIsSystem() and object.IsUnit() and object.WholeShiftFiltering();' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'RootEntity' |
| | | Transformation: 'Unit' |
| | | ] |
| | | } |
| | | Component DataSetLevelRootEntity |
| | |
| | | Children: |
| | | [ |
| | | #child: listContextMenu902_1 |
| | | Component DataSetLevelChildEntity |
| | | { |
| | | #keys: '[414702.2.1845329623]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayName","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayCapacityType","title":"Capacity type","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayCapacityType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsToFill","title":"ImgIsToFill","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsToFill"}}]' |
| | | ContextMenu: 'listContextMenu902' |
| | | FixedFilter: 'not object.GetIsSystem() and object.IsUnit();' |
| | | RelationFromParent: 'ChildEntity' |
| | | RelationRepeating: 'ChildEntity' |
| | | SortCriteria: 'DisplayIndex' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayName","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayCapacityType","title":"Capacity type","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayCapacityType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ImgIsToFill","title":"ImgIsToFill","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ImgIsToFill"}}]' |
| | | ContextMenu: 'listContextMenu902' |
| | | RelationFromParent: 'ChildEntity' |
| | | SortCriteria: 'DisplayIndex' |
| | | Taborder: 1 |
| | | ] |
| | |
| | | Properties: |
| | | [ |
| | | DefaultExpandLevels: 100 |
| | | Taborder: 0 |
| | | Taborder: 1 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pHeader |
| | | { |
| | | #keys: '[413988.0.1584415148]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component bDeselectAll |
| | | { |
| | | #keys: '[413988.0.1585579042]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'SELECTION_DELETE' |
| | | Label: 'Deselect all' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Border: true |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | |
| | | Children: |
| | | [ |
| | | #child: ListEntity |
| | | #child: pHeader |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader/bDeselectAll |
| | | Response OnClick () id:Response_pHeader_bDeselectAll_OnClick |
| | | { |
| | | #keys: '[413988.0.1585579057]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | traverse ( MacroPlan, Unit, u ) { |
| | | u.IsToFill( false ); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Online quantity' |
| | | Label: 'Filing line volume' |
| | | Taborder: 2 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: MatrixEditor951_480 |
| | | Response OnUpdateValue ( |
| | | AssemblyOnlinePlanRow row, |
| | | AssemblyOnlinePlanColumn column, |
| | | AssemblyOnlinePlanCell cell, |
| | | String value, |
| | | String oldvalue |
| | | ) id:Response_MatrixEditor951_480_OnUpdateValue |
| | | { |
| | | #keys: '[415754.0.313052247]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebMatrixEditor_OnUpdateValue' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | if ( row.Type() = "1" and column.ColumnDate() >= MacroPlan.StartOfPlanning().Date() and cell.Value() <> "" ) { |
| | | cell.Value( value ); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Taborder: 1 |
| | | Label: '导åº' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component ButtonSearch |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'IMPORT1' |
| | | Taborder: 2 |
| | | Label: '导å
¥' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component bRefresh |
| | |
| | | Body: |
| | | [* |
| | | //åå§å |
| | | //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){ |
| | | // CCEngineLogisticsCostReport::Initialize( MacroPlan ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := CCEngineLogisticsCostReport::InitiateSearch( MacroPlan ); |
| | | //table := selectobject( MacroPlan, CCEngineLogisticsCostReport, table, table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsImport(), table.IsShow() ); |
| | | //DataHolderTable.Data( table ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | //dhSearch.Data( table.MacroPlan().CCEngineLogisticsCostSearch() ); |
| | | *] |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.ID","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductFirst.ID","title":"Product1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductFirst.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSecond.ID","title":"Product2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductSecond.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ChangeLossNr","title":"ChangeLossNr","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ChangeLossNr"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.ID","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductFirst.ID","title":"Product1","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductFirst.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSecond.ID","title":"Product2","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductSecond.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ChangeLossNumber","title":"ChangeLossNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ChangeLossNumber"}}]' |
| | | ContextMenu: 'listContextMenuChangeLossSetting' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'IMPORT1' |
| | | Label: '导å
¥' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | |
| | | Body: |
| | | [* |
| | | //åå§å |
| | | //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){ |
| | | // DLEngineLogisticsCostReport::Initialize( MacroPlan ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | //table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() ); |
| | | table := DLEngineLogisticsCostReport::InitiateSearch( MacroPlan ); |
| | | //table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );/ |
| | | //info( '------------------2----------------', table.IsImport(), table.IsShow() ); |
| | | //DataHolderTable.Data( table ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | //dhSearch.Data( table.MacroPlan().DLEngineLogisticsCostSearch() ); |
| | | //info( '------------------2----------------', isnull( dhSearch.Data() ) ); |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | DLEngineLogisticsCostReport::Initialize( MacroPlan ); |
| | | DLEngineLogisticsCostReport::InitializeNew( MacroPlan ); |
| | | |
| | | table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() ); |
| | | |
| | |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'IMPORT1' |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | //if( not isnull( MacroPlan.EnginePipelineSource() ) ){ |
| | | // EnginePipelineSource::Initialize( MacroPlan ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := EnginePipelineSource::InitiateSearch( MacroPlan ); |
| | | //table := selectobject( MacroPlan, EnginePipelineSource.Report, table, table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsShow() ); |
| | | //DataHolderTable.Data( table ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | //dhSearch.Data( table.Source().Search() ); |
| | | *] |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'IMPORT1' |
| | | Label: '导å
¥' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | |
| | | Body: |
| | | [* |
| | | //åå§å |
| | | //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){ |
| | | // FinancialProductionSource::Initialize( MacroPlan ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := FinancialProductionSource::InitiateSearch( MacroPlan ); |
| | | //table := selectobject( MacroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsImport(), table.IsShow() ); |
| | | //DataHolderTable.Data( table ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | //dhSearch.Data( MacroPlan.FinancialProductionSearch() ); |
| | | *] |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'IMPORT1' |
| | | Label: '导å
¥' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | //if( not exists( MacroPlan, FinancialSalesSource, source, not source.IsImport() ) ){ |
| | | // FinancialSalesSource::Initialize( MacroPlan ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := FinancialSalesSource::InitiateSearch( MacroPlan ); |
| | | //table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsImport(), table.IsShow() ); |
| | | //DataHolderTable.Data( table ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | //dhSearch.Data( MacroPlan.FinancialSalesSearch() ); |
| | | *] |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | FinancialSalesSource::Initialize( MacroPlan ); |
| | | FinancialSalesSource::InitializeNew( MacroPlan ); |
| | | |
| | | table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() ); |
| | | |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | //if( not isnull( MacroPlan.InventorySummarySource() ) ){ |
| | | // InventorySummarySource::Initialize( MacroPlan, InterfaceDataset ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := InventorySummarySource::InitiateSearch( MacroPlan ); |
| | | //table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsShow() ); |
| | | //DataHolderTable.Data( table ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | //dhSearch.Data( table.InventorySummarySource().InventorySummarySearch() ); |
| | | *] |
| | |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'IMPORT1' |
| | | Image: 'EXPORT1' |
| | | Label: '导å
¥' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | //if( not isnull( MacroPlan.EnginePipelineSource() ) ){ |
| | | // MachiningPipelineSource::Initialize( MacroPlan ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := MachiningPipelineSource::InitiateSearch( MacroPlan ); |
| | | //table := selectobject( MacroPlan, MachiningPipelineSource.Report, table, table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsShow() ); |
| | | //DataHolderTable.Data( table ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | //dhSearch.Data( table.Source().Search() ); |
| | | *] |
| | |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'OfflinePlanTable' |
| | | FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities' |
| | | FixedFilter: 'object.Filter( entities )' |
| | | Source: 'dhOfflinePlanTable' |
| | | DataType: 'structured[OfflinePlanRow]' |
| | | Source: 'dhSelectedOfflinePlanRow' |
| | | Taborder: 0 |
| | | Transformation: 'OfflinePlanRow' |
| | | Transformation: 'Elements' |
| | | ] |
| | | } |
| | | ] |
| | |
| | | Properties: |
| | | [ |
| | | DataType: 'OfflinePlanTable' |
| | | FixedFilter: 'object.IsShow()' |
| | | Source: 'dhOfflinePlanTable' |
| | | Taborder: 0 |
| | | Transformation: 'OfflinePlanColumn' |
| | |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component dhSelectedOfflinePlanRow |
| | | { |
| | | #keys: '[413988.0.1557550767]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[OfflinePlanRow]*' |
| | | Children: |
| | | [ |
| | | Component deSelectedOfflinePlanRow |
| | | { |
| | | #keys: '[413988.0.1557550817]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'OfflinePlanTable' |
| | | FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities' |
| | | FixedFilter: 'object.Filter( entities )' |
| | | Source: 'dhOfflinePlanTable' |
| | | Taborder: 0 |
| | | Transformation: 'OfflinePlanRow' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pHeader |
| | | { |
| | | #keys: '[413988.0.1296872680]' |
| | | #keys: '[413988.0.1568330469]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component bRefresh |
| | | { |
| | | #keys: '[413988.0.1296860898]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'REFRESH' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component bDownload |
| | | { |
| | | #keys: '[413988.0.1296875316]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Download' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component bDeductionOfReplacementLoss |
| | | { |
| | | #keys: '[413988.0.1297911732]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Deduction of replacement loss' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component bRestore |
| | | { |
| | | #keys: '[413988.0.1297911774]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Restore' |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component bSaveAsDraft |
| | | { |
| | | #keys: '[413988.0.1297973728]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Save as draft' |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | Component bConfirm |
| | | { |
| | | #keys: '[413988.0.1297973782]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Confirm' |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | #child: pHeader1_799 |
| | | #child: pHeader2 |
| | | ] |
| | | Properties: |
| | | [ |
| | | Border: true |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pHeader1 id:pHeader1_799 |
| | | { |
| | | #keys: '[413988.0.1568330588]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component bGenerateReport |
| | | { |
| | | #keys: '[413988.0.1568330589]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Generate report' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component bDownload |
| | | { |
| | | #keys: '[413988.0.1568330590]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Download' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component bDeductChangeoverLoss |
| | | { |
| | | #keys: '[413988.0.1568330591]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Deduct changeover loss' |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component bRestore |
| | | { |
| | | #keys: '[413988.0.1568330592]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Restore' |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | Component bSaveAsDraft |
| | | { |
| | | #keys: '[413988.0.1568330593]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Save as draft' |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | Component bConfirm |
| | | { |
| | | #keys: '[413988.0.1568330594]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Confirm' |
| | | Taborder: 6 |
| | | ] |
| | | } |
| | | Component bImport |
| | | { |
| | | #keys: '[413988.0.1568330595]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Import' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pHeader2 |
| | | { |
| | | #keys: '[413988.0.1568330735]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component sDateFilter |
| | | { |
| | | #keys: '[413988.0.1567271085]' |
| | | BaseType: 'WebSlider' |
| | | Properties: |
| | | [ |
| | | NumberOfColumns: 100 |
| | | Taborder: 0 |
| | | Visible: false |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | cell.IsQuantityChange( true ); |
| | | cell.Value( value ); |
| | | cell.Quantity( [Real]value ); |
| | | } else if ( row.Type() = "2" and column.ColumnDate() >= MacroPlan.StartOfPlanning().Date() ) { |
| | | cell.Value( value ); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader1_799/bConfirm |
| | | Response OnClick () id:Response_pHeader1_799_bConfirm_OnClick |
| | | { |
| | | #keys: '[413988.0.1568330582]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName(); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | OfflinePlanCell::SynchronizeToNewSupply( MacroPlan, dhOfflinePlanTable.Data() ); |
| | | |
| | | MacroPlan.A_PreviousScenaioName( MacroPlan.ScenarioName() ); |
| | | |
| | | WebMessageBox::Success( Translations::A_VWED_Success() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDeductionOfReplacementLoss_OnClick.def ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader/bDeductionOfReplacementLoss |
| | | Response OnClick () id:Response_pHeader_bDeductionOfReplacementLoss_OnClick |
| | | #parent: pHeader1_799/bDeductChangeoverLoss |
| | | Response OnClick () id:Response_pHeader1_799_bDeductChangeoverLoss_OnClick |
| | | { |
| | | #keys: '[413988.0.1297973984]' |
| | | #keys: '[413988.0.1568330585]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName(); |
| | | *] |
| | | QuillAction |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader1_799/bDownload |
| | | Response OnClick () id:Response_pHeader1_799_bDownload_OnClick |
| | | { |
| | | #keys: '[413988.0.1568330586]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | binaryValue := OfflinePlanCell::Download( MacroPlan, dhSelectedOfflinePlanRow.Data() ); |
| | | |
| | | Application.Download( "Offline plan.xlsx", binaryValue.AsBinaryData() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRefresh_OnClick.def ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader/bRefresh |
| | | Response OnClick () id:Response_pHeader_bRefresh_OnClick |
| | | #parent: pHeader1_799/bGenerateReport |
| | | Response OnClick () id:Response_pHeader1_799_bGenerateReport_OnClick |
| | | { |
| | | #keys: '[413988.0.1297973814]' |
| | | #keys: '[413988.0.1568330587]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName(); |
| | | *] |
| | | QuillAction |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader1_799/bImport |
| | | Response OnClick () id:Response_pHeader1_799_bImport_OnClick |
| | | { |
| | | #keys: '[413988.0.1568330581]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName(); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | try { |
| | | uploadJsonString := Application.GetFile(); |
| | | if ( uploadJsonString <> "" ) { |
| | | uploadJson := JSON::Parse( uploadJsonString ); |
| | | Archive::VerifyTheFileName( uploadJson ); |
| | | |
| | | fileName := uploadJson.Get( "name" ).GetString(); |
| | | base64String := uploadJson.Get( "data" ).GetString(); |
| | | |
| | | webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue(); |
| | | |
| | | generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( RecycleBin, webFileBinaryData, fileName ); |
| | | generalExcelImportAndExportDataSource.ReadStructure(); |
| | | |
| | | selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, tempGEIAEDT.Name() = "Sheet1" ); |
| | | |
| | | OfflinePlanImportData::Upload( MacroPlan, dhOfflinePlanTable.Data(), selection ); |
| | | |
| | | // åç»å é¤ |
| | | // generalExcelImportAndExportDataSource.Delete(); |
| | | |
| | | WebMessageBox::Success( Translations::A_VWED_Success() ); |
| | | } |
| | | } onerror { |
| | | WebMessageBox::Error( e.GeneralInformation() ); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRestore_OnClick.def ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader/bRestore |
| | | Response OnClick () id:Response_pHeader_bRestore_OnClick |
| | | #parent: pHeader1_799/bRestore |
| | | Response OnClick () id:Response_pHeader1_799_bRestore_OnClick |
| | | { |
| | | #keys: '[413988.0.1297974069]' |
| | | #keys: '[413988.0.1568330584]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName(); |
| | | *] |
| | | QuillAction |
| | | { |
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bSaveAsDraft_OnClick.def ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader/bSaveAsDraft |
| | | Response OnClick () id:Response_pHeader_bSaveAsDraft_OnClick |
| | | #parent: pHeader1_799/bSaveAsDraft |
| | | Response OnClick () id:Response_pHeader1_799_bSaveAsDraft_OnClick |
| | | { |
| | | #keys: '[413988.0.1297974155]' |
| | | #keys: '[413988.0.1568330583]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | return not isnull( MacroPlan ) and MacroPlan.A_PreviousScenaioName() <> MacroPlan.ScenarioName(); |
| | | *] |
| | | QuillAction |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader2/sDateFilter |
| | | Response OnUserChanged () id:Response_pHeader2_sDateFilter_OnUserChanged |
| | | { |
| | | #keys: '[413988.0.1568579788]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebSlider_OnUserChanged' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | traverse ( dhOfflinePlanTable.Data(), OfflinePlanColumn, opc ) { |
| | | opc.IsShow( true ); |
| | | |
| | | if ( opc.ColumnIndex() > 1 and opc.ColumnIndex() < this.EndReal() ) { |
| | | opc.IsShow( false ); |
| | | } |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: pHeader |
| | | #child: pContent |
| | | #child: pHeader |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_ChangeLossNr |
| | | column_ChangeLossNumber |
| | | { |
| | | columnId: 'ChangeLossNr' |
| | | dataPath: 'ChangeLossNr' |
| | | dataType: 'number' |
| | | columnId: 'ChangeLossNumber' |
| | | dataPath: 'ChangeLossNumber' |
| | | dataType: 'real' |
| | | index: 5 |
| | | subtotals: '' |
| | | width: 150 |
| | | width: 183 |
| | | } |
| | | } |
| | | } |
| | |
| | | component=submodel |
| | | kind=Quintiq Metadata File |
| | | name=MacroPlanner |
| | | version.component=2022.3.0.0 |
| | | version.component=2022.3.0.56 |
| | | version.fileformat=2 |
| | | version.quintiq=6.3.3.0 , build 248673 |