¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineCellValue_Column_EnginePipelineColumn_CellValue |
| | | { |
| | | #keys: '1[415136.0.886711679]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Column |
| | | { |
| | | #keys: '3[415136.0.886711681][415136.0.886711680][415136.0.886711682]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineCellValue |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide CellValue |
| | | { |
| | | #keys: '3[415136.0.886711684][415136.0.886711683][415136.0.886711685]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: EnginePipelineColumn |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineCell_Production_EnginePipelineProduction_Cell |
| | | { |
| | | #keys: '1[415136.0.883590181]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Production |
| | | { |
| | | #keys: '3[415136.0.883590183][415136.0.883590182][415136.0.883590184]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineCell |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide Cell |
| | | { |
| | | #keys: '3[415136.0.883590186][415136.0.883590185][415136.0.883590187]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineProduction |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineColumn_Cell_EnginePipelineCell_Column |
| | | { |
| | | #keys: '1[415136.0.883590111]' |
| | | ProceduralSequenceRelationStrategy |
| | | { |
| | | #keys: '13[0.0.0][415136.0.883590130][415136.0.883590124][415136.0.883590131][415136.0.883590125][415136.0.883590132][415136.0.883590126][415136.0.883590133][415136.0.883590127][415136.0.883590134][415136.0.883590128][415136.0.883590135][415136.0.883590129]' |
| | | SequenceElementSuffix: 'CellInColumn' |
| | | SequenceSuffix: 'CellInColumn' |
| | | } |
| | | RelationSide.LeftSide Cell |
| | | { |
| | | #keys: '3[415136.0.883590113][415136.0.883590112][415136.0.883590114]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: EnginePipelineColumn |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide Column |
| | | { |
| | | #keys: '3[415136.0.883590116][415136.0.883590115][415136.0.883590117]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineCell |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineDemand_Cell_EnginePipelineCell_Demand |
| | | { |
| | | #keys: '1[415136.0.883590237]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Cell |
| | | { |
| | | #keys: '3[415136.0.883590239][415136.0.883590238][415136.0.883590240]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineDemand |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide Demand |
| | | { |
| | | #keys: '3[415136.0.883590242][415136.0.883590241][415136.0.883590243]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: EnginePipelineCell |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineReport_Column_EnginePipelineColumn_Report |
| | | { |
| | | #keys: '1[415136.0.883590042]' |
| | | ProceduralSequenceRelationStrategy |
| | | { |
| | | #keys: '13[0.0.0][415136.0.883590073][415136.0.883590067][415136.0.883590074][415136.0.883590068][415136.0.883590075][415136.0.883590069][415136.0.883590076][415136.0.883590070][415136.0.883590077][415136.0.883590071][415136.0.883590078][415136.0.883590072]' |
| | | SequenceElementSuffix: 'Column' |
| | | SequenceSuffix: 'Column' |
| | | } |
| | | RelationSide.LeftSide Column |
| | | { |
| | | #keys: '3[415136.0.883590044][415136.0.883590043][415136.0.883590045]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: EnginePipelineReport |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide Report |
| | | { |
| | | #keys: '3[415136.0.883590047][415136.0.883590046][415136.0.883590048]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineColumn |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineReport_Row_EnginePipelineRow_Report |
| | | { |
| | | #keys: '1[415136.0.883590084]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Row |
| | | { |
| | | #keys: '3[415136.0.883590086][415136.0.883590085][415136.0.883590087]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: EnginePipelineReport |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide Report |
| | | { |
| | | #keys: '3[415136.0.883590089][415136.0.883590088][415136.0.883590090]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineRow |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineRow_CellValue_EnginePipelineCellValue_Row |
| | | { |
| | | #keys: '1[415136.0.886711663]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide CellValue |
| | | { |
| | | #keys: '3[415136.0.886711665][415136.0.886711664][415136.0.886711666]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: EnginePipelineRow |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide Row |
| | | { |
| | | #keys: '3[415136.0.886711668][415136.0.886711667][415136.0.886711669]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineCellValue |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineRow_Cell_EnginePipelineCell_Row |
| | | { |
| | | #keys: '1[415136.0.883590141]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Cell |
| | | { |
| | | #keys: '3[415136.0.883590143][415136.0.883590142][415136.0.883590144]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: EnginePipelineRow |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide Row |
| | | { |
| | | #keys: '3[415136.0.883590146][415136.0.883590145][415136.0.883590147]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineCell |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineSource_MacroPlan_MacroPlan_EnginePipelineSource |
| | | { |
| | | #keys: '1[415136.0.883574775]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide MacroPlan |
| | | { |
| | | #keys: '3[415136.0.883574777][415136.0.883574776][415136.0.883574778]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineSource |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide EnginePipelineSource |
| | | { |
| | | #keys: '3[415136.0.883574780][415136.0.883574779][415136.0.883574781]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: MacroPlan |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineSource_Report_EnginePipelineReport_Source |
| | | { |
| | | #keys: '1[415136.0.883590029]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Report |
| | | { |
| | | #keys: '3[415136.0.883590031][415136.0.883590030][415136.0.883590032]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: EnginePipelineSource |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide Source |
| | | { |
| | | #keys: '3[415136.0.883590034][415136.0.883590033][415136.0.883590035]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineReport |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation EnginePipelineSource_Search_EnginePipelineSearch_Source |
| | | { |
| | | #keys: '1[415136.0.883574788]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Search |
| | | { |
| | | #keys: '3[415136.0.883574790][415136.0.883574789][415136.0.883574791]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineSource |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide Source |
| | | { |
| | | #keys: '3[415136.0.883574793][415136.0.883574792][415136.0.883574794]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: EnginePipelineSearch |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute DemandQuantity |
| | | { |
| | | #keys: '3[415136.0.883574849][415136.0.883574848][415136.0.883574850]' |
| | | Description: 'éæ±' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute InventoryQuantity |
| | | { |
| | | #keys: '3[415136.0.883574836][415136.0.883574835][415136.0.883574837]' |
| | | Description: 'åºå' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductionQuantity |
| | | { |
| | | #keys: '3[415136.0.883574826][415136.0.883574825][415136.0.883574827]' |
| | | Description: 'ç产' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcDemandQuantity |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jul-9-2024 (created) |
| | | |
| | | value := sum( this, Demand, demand, demand.Quantity() ); |
| | | |
| | | this.DemandQuantity( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcProductionQuantity |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jul-9-2024 (created) |
| | | production := this.Production(); |
| | | value := [Real]0; |
| | | if( not isnull( production ) ){ |
| | | value := production.CCProduction() + production.DLProduction(); |
| | | } |
| | | |
| | | this.ProductionQuantity( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Copy ( |
| | | EnginePipelineColumn column |
| | | ) as EnginePipelineCell |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jul-9-2024 (created) |
| | | cell := column.Cell( relnew, InventoryQuantity := this.InventoryQuantity() ); |
| | | |
| | | traverse( this, Demand, demand ){ |
| | | cell.Demand( relnew, EngineType := demand.EngineType(), Model := demand.Model(), Period := demand.Period(), Quantity := demand.Quantity() ); |
| | | } |
| | | production := this.Production(); |
| | | cell.Production( relnew, EngineType := production.EngineType(), Period := production.Period(), DLProduction := production.DLProduction(), CCProduction := production.CCProduction() ); |
| | | return cell; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineCell |
| | | { |
| | | #keys: '5[415136.0.883574656][415136.0.883574654][0.0.0][415136.0.883574655][415136.0.883574657]' |
| | | BaseType: Object |
| | | Description: 'å卿ºç®¡çº¿æ¥è¡¨åå
æ ¼' |
| | | StructuredName: 'EnginePipelineCells' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Value |
| | | { |
| | | #keys: '3[415136.0.886711654][415136.0.886711653][415136.0.886711655]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Value |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineCellValue |
| | | { |
| | | #keys: '5[415136.0.886711642][415136.0.886711640][0.0.0][415136.0.886711641][415136.0.886711643]' |
| | | BaseType: Object |
| | | Description: 'å卿ºç®¡çº¿æ¥è¡¨æ¾ç¤ºåå
æ ¼' |
| | | StructuredName: 'EnginePipelineCellValues' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Index |
| | | { |
| | | #keys: '3[415136.0.883574675][415136.0.883574674][415136.0.883574676]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.883574678][415136.0.883574677][415136.0.883574679]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Period |
| | | { |
| | | #keys: '3[415136.0.883574681][415136.0.883574680][415136.0.883574682]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute TimeUnit |
| | | { |
| | | #keys: '3[415136.0.883590099][415136.0.883590098][415136.0.883590100]' |
| | | Description: 'æ¥æç±»å' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcIndex |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-21-2024 (created) |
| | | |
| | | value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 ); |
| | | |
| | | this.Index( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineColumn |
| | | { |
| | | #keys: '5[415136.0.883574672][415136.0.883574670][0.0.0][415136.0.883574671][415136.0.883574673]' |
| | | BaseType: Object |
| | | Description: 'å卿ºç®¡çº¿æ¥è¡¨å' |
| | | StructuredName: 'EnginePipelineColumns' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute EngineType |
| | | { |
| | | #keys: '3[415136.0.883590198][415136.0.883590197][415136.0.883590199]' |
| | | Description: 'å卿ºåå·' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Model |
| | | { |
| | | #keys: '3[415136.0.883590218][415136.0.883590217][415136.0.883590219]' |
| | | Description: '车å' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Period |
| | | { |
| | | #keys: '3[415136.0.883590208][415136.0.883590207][415136.0.883590209]' |
| | | Description: 'æ¥æ' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Quantity |
| | | { |
| | | #keys: '3[415136.0.883590228][415136.0.883590227][415136.0.883590229]' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineDemand |
| | | { |
| | | #keys: '5[415136.0.883574869][415136.0.883574867][0.0.0][415136.0.883574868][415136.0.883574870]' |
| | | BaseType: Object |
| | | Description: 'éæ±å表' |
| | | StructuredName: 'EnginePipelineDemands' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute CCProduction |
| | | { |
| | | #keys: '3[415136.0.883590169][415136.0.883590168][415136.0.883590170]' |
| | | Description: 'é¿æ¥äº§é' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute DLProduction |
| | | { |
| | | #keys: '3[415136.0.883574893][415136.0.883574892][415136.0.883574894]' |
| | | Description: '大è¿äº§é' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute EngineType |
| | | { |
| | | #keys: '3[415136.0.883574873][415136.0.883574872][415136.0.883574874]' |
| | | Description: 'å卿ºåå·' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Period |
| | | { |
| | | #keys: '3[415136.0.883574883][415136.0.883574882][415136.0.883574884]' |
| | | Description: 'æ¥æ' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineProduction |
| | | { |
| | | #keys: '5[415136.0.883574864][415136.0.883574862][0.0.0][415136.0.883574863][415136.0.883574865]' |
| | | BaseType: Object |
| | | Description: 'ç产å表' |
| | | StructuredName: 'EnginePipelineProductions' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ID |
| | | { |
| | | #keys: '3[415136.0.883574713][415136.0.883574712][415136.0.883574714]' |
| | | IsReadOnly: true |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute IsShow |
| | | { |
| | | #keys: '3[415136.0.883574719][415136.0.883574718][415136.0.883574720]' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.883574722][415136.0.883574721][415136.0.883574723]' |
| | | Description: 'åç§°' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: ID |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Clear ( |
| | | String timeunit, |
| | | Date startdate, |
| | | Date enddate |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | this.Column( relflush ); |
| | | this.Row( relflush ); |
| | | this.Column( relnew, Name := '', TimeUnit := timeunit ); |
| | | this.Column( relnew, Name := '', TimeUnit := timeunit ); |
| | | this.GenerateColumn( this.Source().MacroPlan(), timeunit, startdate, enddate ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Generate ( |
| | | EnginePipelineSearch search, |
| | | Product_MPs products |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | table := selectobject( this, Source.Report, report, not report.IsShow() ); |
| | | |
| | | //æ¸
空ä¹ååå¨çæ¾ç¤ºæ°æ® |
| | | this.Clear( search.TimeUnit(), search.StartDate(), search.EndDate() ); |
| | | Transaction::Transaction().Propagate( attribute( EnginePipelineColumn, Index ) ); |
| | | Transaction::Transaction().Propagate( attribute( EnginePipelineCell, ProductionQuantity ) ); |
| | | Transaction::Transaction().Propagate( attribute( EnginePipelineCell, DemandQuantity ) ); |
| | | //è¿æ»¤åç产åid |
| | | productids := selectuniquevalues( products, Elements, product, true, product.ID() ); |
| | | rows := selectsortedset( table, Row, row, row.RowNr() ); |
| | | //æ¾ç¤ºå |
| | | productcolumn := selectobject( this, Column, column, column.Index() = 0 ); |
| | | attricolumn := selectobject( this, Column, column, column.Index() = 1 ); |
| | | models := selectuniquevalues( table, Column.Cell.Demand, demand, demand.Model() ); |
| | | cellnr := 5 + models.Size(); |
| | | //åè®¡è¡ |
| | | sumrowproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', 'ç产', rows.Size() * cellnr, true ); |
| | | sumrowdlproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', '大è¿äº§é', sumrowproduction.RowNr() + 1, false ); |
| | | sumrowccproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', 'é¿æ¥äº§é', sumrowproduction.RowNr() + 2, false ); |
| | | sumrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', 'éæ±', sumrowproduction.RowNr() + 3, false ); |
| | | rowno := sumrowproduction.RowNr() + 4; |
| | | traverse( models, Elements, model ){ |
| | | EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', model, rowno, false ); |
| | | rowno := rowno + 1; |
| | | } |
| | | sumrowinventory := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, 'SUM', 'åºå', rowno, false ); |
| | | |
| | | //è¡è®¡æ° |
| | | rownr := 0; |
| | | traverse( rows, Elements, row, productids.Find( row.Name() ) >= 0 ){ |
| | | |
| | | showrowproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), 'ç产', rownr, true );; |
| | | showrowdlproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '大è¿äº§é', rownr + 1, false ); |
| | | showrowccproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), 'é¿æ¥äº§é', rownr + 2, false ); |
| | | showrowdemand := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), 'éæ±', rownr + 3, false ); |
| | | rownr := rownr + 4; |
| | | traverse( models, Elements, model ){ |
| | | EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), model, rownr, false ); |
| | | rownr := rownr + 1; |
| | | } |
| | | showrowinventory := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), 'åºå', rownr, false ); |
| | | |
| | | traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){ |
| | | |
| | | column := selectobject( this, Column, column, column.Name() = cell.Column().Name() and column.TimeUnit() = search.TimeUnit() ); |
| | | |
| | | if( not isnull( column ) ){ |
| | | |
| | | //ç产 |
| | | production := column.CellValue( relnew, Value := [String]cell.ProductionQuantity() ); |
| | | showrowproduction.CellValue( relinsert, production ); |
| | | sumproduction := selectobject( column, CellValue, c, c.Row() = sumrowproduction ); |
| | | if( isnull( sumproduction ) ){ |
| | | sumproduction := column.CellValue( relnew, Value := [String]0 ); |
| | | sumrowproduction.CellValue( relinsert, sumproduction ); |
| | | } |
| | | sumproduction.Value( [String]( [Real]sumproduction.Value() + cell.ProductionQuantity() ) ); |
| | | |
| | | //大è¿äº§é |
| | | dlproductionquantity := guard( cell.Production().DLProduction(), 0 ); |
| | | dlproduction := column.CellValue( relnew, Value := [String]dlproductionquantity ); |
| | | showrowdlproduction.CellValue( relinsert, dlproduction ); |
| | | sumdlproduction := selectobject( column, CellValue, c, c.Row() = sumrowdlproduction ); |
| | | if( isnull( sumdlproduction ) ){ |
| | | sumdlproduction := column.CellValue( relnew, Value := [String]0 ); |
| | | sumrowdlproduction.CellValue( relinsert, sumdlproduction ); |
| | | } |
| | | sumdlproduction.Value( [String]( [Real]sumdlproduction.Value() + dlproductionquantity ) ); |
| | | |
| | | //é¿æ¥äº§é |
| | | ccproductionquantity := guard( cell.Production().CCProduction(), 0 ); |
| | | ccproduction := column.CellValue( relnew, Value := [String]ccproductionquantity ); |
| | | showrowccproduction.CellValue( relinsert, ccproduction ); |
| | | sumccproduction := selectobject( column, CellValue, c, c.Row() = sumrowccproduction ); |
| | | if( isnull( sumccproduction ) ){ |
| | | sumccproduction := column.CellValue( relnew, Value := [String]0 ); |
| | | sumrowccproduction.CellValue( relinsert, sumccproduction ); |
| | | } |
| | | sumccproduction.Value( [String]( [Real]sumccproduction.Value() + ccproductionquantity ) ); |
| | | |
| | | //éæ± |
| | | totaldemand := column.CellValue( relnew, Value := [String]cell.DemandQuantity() ); |
| | | showrowdemand.CellValue( relinsert, totaldemand ); |
| | | sumdemand := selectobject( column, CellValue, c, c.Row() = sumrowdemand ); |
| | | if( isnull( sumdemand ) ){ |
| | | sumdemand := column.CellValue( relnew, Value := [String]0 ); |
| | | sumrowdemand.CellValue( relinsert, sumdemand ); |
| | | } |
| | | sumdemand.Value( [String]( [Real]sumdemand.Value() + cell.DemandQuantity() ) ); |
| | | |
| | | traverse( cell, Demand, demand ){ |
| | | demandrow := selectobject( this, Row, r, r.Name() = row.Name() and exists( r, CellValue, cv, cv.Value() = demand.Model() ) ); |
| | | sumdemandrow := selectobject( this, Row, r, r.Name() = 'SUM' and exists( r, CellValue, cv, cv.Value() = demand.Model() ) ); |
| | | |
| | | if( not isnull( demandrow ) ){ |
| | | demandcell := column.CellValue( relnew, Value := [String]demand.Quantity() ); |
| | | demandrow.CellValue( relinsert, demandcell ); |
| | | } |
| | | |
| | | sumdemandcell := selectobject( column, CellValue, c, c.Row() = sumdemandrow ); |
| | | if( isnull( sumdemandcell ) ){ |
| | | sumdemandcell := column.CellValue( relnew, Value := [String]0 ); |
| | | sumdemandrow.CellValue( relinsert, sumdemandcell ); |
| | | } |
| | | sumdemandcell.Value( [String]( [Real]sumdemandcell.Value() + demand.Quantity() ) ); |
| | | } |
| | | |
| | | for( demandr := showrowdemand.RowNr() + 1; demandr < showrowinventory.RowNr(); demandr := demandr + 1 ){ |
| | | demandrow := selectobject( this, Row, r, r.RowNr() = demandr ); |
| | | if( not isnull( demandrow ) and not exists( demandrow, CellValue, cv, cv.Column() = column ) ){ |
| | | demandcell := column.CellValue( relnew, Value := '' ); |
| | | demandrow.CellValue( relinsert, demandcell ); |
| | | } |
| | | } |
| | | |
| | | |
| | | //åºå |
| | | inventory := column.CellValue( relnew, Value := [String]cell.InventoryQuantity() ); |
| | | showrowinventory.CellValue( relinsert, inventory ); |
| | | suminventory := selectobject( column, CellValue, c, c.Row() = sumrowinventory ); |
| | | if( isnull( suminventory ) ){ |
| | | suminventory := column.CellValue( relnew, Value := [String]0 ); |
| | | sumrowinventory.CellValue( relinsert, suminventory ); |
| | | } |
| | | suminventory.Value( [String]( [Real]suminventory.Value() + cell.InventoryQuantity() ) ); |
| | | |
| | | } |
| | | } |
| | | } |
| | | traverse( this, Column, column ){ |
| | | for( demandr := sumrowdemand.RowNr() + 1; demandr < sumrowinventory.RowNr(); demandr := demandr + 1 ){ |
| | | demandrow := selectobject( this, Row, r, r.RowNr() = demandr ); |
| | | if( not isnull( demandrow ) and not exists( demandrow, CellValue, cv, cv.Column() = column ) ){ |
| | | demandcell := column.CellValue( relnew, Value := '' ); |
| | | demandrow.CellValue( relinsert, demandcell ); |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GenerateColumn ( |
| | | MacroPlan owner, |
| | | String timeunit, |
| | | Date startdate, |
| | | Date enddate |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | //æ¥è¯¢æ¥æè¿åéè¦å¨è®¡åæ¥æä¹å
|
| | | traverse( owner, Period_MP, period, not period.IsHistorical() and period.StartDate() >= startdate and period.EndDate() <= enddate |
| | | and ( ( timeunit = 'All' and ( period.TimeUnit() = Translations::MP_GlobalParameters_Day() or period.TimeUnit() = Translations::MP_GlobalParameters_Week() ) ) |
| | | or period.TimeUnit() = timeunit ) ){ |
| | | periodtime := period.StartDate(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | |
| | | this.Column( relnew, Name := periodname, Period := periodtime, TimeUnit := period.TimeUnit() ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GetRow ( |
| | | String product |
| | | ) as EnginePipelineRow |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | row := selectobject( this, Row, row, row.Name() = product ); |
| | | |
| | | if( isnull( row ) ){ |
| | | row := this.Row( relnew, Name := product ); |
| | | //åå§ååå
æ ¼ |
| | | row.InitializeCell( this ); |
| | | } |
| | | |
| | | return row; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultAllUnit () const declarative as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return '<All>'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultCCUnit () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return 'é¿æ¥'; |
| | | //return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultDLUnit () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return '大è¿'; |
| | | //return 'Assembly Plant (Spain)'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultName () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return 'Engine pipelines'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineReport |
| | | { |
| | | #keys: '5[415136.0.883574710][415136.0.883574708][0.0.0][415136.0.883574709][415136.0.883574711]' |
| | | BaseType: Object |
| | | Description: 'å卿ºç®¡çº¿æ¥è¡¨' |
| | | StructuredName: 'EnginePipelineReports' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.883574695][415136.0.883574694][415136.0.883574696]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute RowNr |
| | | { |
| | | #keys: '3[415136.0.883574698][415136.0.883574697][415136.0.883574699]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Initialize ( |
| | | EnginePipelineColumn column |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := column.Cell( relnew, InventoryQuantity := 0 ); |
| | | |
| | | this.Cell( relinsert, cell ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method InitializeCell ( |
| | | EnginePipelineReport table |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | traverse( table, Column, column ){ |
| | | this.Initialize( column ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetCellDemandValue ( |
| | | EnginePipelineColumn column, |
| | | String segment, |
| | | Real quantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, Cell, cell, cell.Column() = column ); |
| | | |
| | | demand := selectobject( cell, Demand, demand, demand.EngineType() = cell.Row().Name() and demand.Model() = segment and demand.Period() = column.Period() ); |
| | | |
| | | if( isnull( demand ) ){ |
| | | demand := cell.Demand( relnew, EngineType := cell.Row().Name(), Period := column.Period(), Model := segment, Quantity := 0 ); |
| | | } |
| | | |
| | | demand.Quantity( demand.Quantity() + quantity ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetCellInventoryValue ( |
| | | EnginePipelineColumn column, |
| | | Real quantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, Cell, cell, cell.Column() = column ); |
| | | |
| | | cell.InventoryQuantity( cell.InventoryQuantity() + quantity ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetCellProductionValue ( |
| | | EnginePipelineColumn column, |
| | | String unit, |
| | | Real quantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, Cell, cell, cell.Column() = column ); |
| | | |
| | | production := cell.Production(); |
| | | |
| | | if( isnull( production ) ){ |
| | | production := cell.Production( relnew, EngineType := cell.Row().Name(), Period := column.Period(), DLProduction := 0, CCProduction := 0 ); |
| | | } |
| | | |
| | | if( unit = EnginePipelineReport::GetDefaultCCUnit() ){ |
| | | production.CCProduction( production.CCProduction() + quantity ); |
| | | }else if( unit = EnginePipelineReport::GetDefaultDLUnit() ){ |
| | | production.DLProduction( production.DLProduction() + quantity ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CraeteCellValueForRow ( |
| | | EnginePipelineReport table, |
| | | EnginePipelineColumn productcolumn, |
| | | EnginePipelineColumn attricolumn, |
| | | String productname, |
| | | String attriname, |
| | | Number rownr, |
| | | Boolean isfirst |
| | | ) as EnginePipelineRow |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jul-11-2024 (created) |
| | | row := table.Row( relnew, Name := productname, RowNr := rownr ); |
| | | if( not isfirst ){ |
| | | productname := ''; |
| | | } |
| | | pcell := productcolumn.CellValue( relnew, Value := productname ); |
| | | acell := attricolumn.CellValue( relnew, Value := attriname ); |
| | | row.CellValue( relinsert, pcell ); |
| | | row.CellValue( relinsert, acell ); |
| | | return row; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineRow |
| | | { |
| | | #keys: '5[415136.0.883574689][415136.0.883574687][0.0.0][415136.0.883574688][415136.0.883574690]' |
| | | BaseType: Object |
| | | Description: 'å卿ºç®¡çº¿è¡' |
| | | StructuredName: 'EnginePipelineRows' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute EndDate |
| | | { |
| | | #keys: '3[415136.0.883574814][415136.0.883574813][415136.0.883574815]' |
| | | Description: 'ç»ææ¥æ' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StartDate |
| | | { |
| | | #keys: '3[415136.0.883574802][415136.0.883574801][415136.0.883574803]' |
| | | Description: 'å¼å§æ¶é´' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute TimeUnit |
| | | { |
| | | #keys: '3[415136.0.883590020][415136.0.883590019][415136.0.883590021]' |
| | | Description: 'æ¥æç±»å' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineSearch |
| | | { |
| | | #keys: '5[415136.0.883574730][415136.0.883574728][0.0.0][415136.0.883574729][415136.0.883574731]' |
| | | BaseType: Object |
| | | Description: 'å卿ºç®¡çº¿æ¥è¯¢ç±»' |
| | | StructuredName: 'EnginePipelineSearchs' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.883574762][415136.0.883574761][415136.0.883574763]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan |
| | | ) as BinaryValue |
| | | { |
| | | Description: 'ä¸è½½å卿ºç®¡çº¿æ°æ®' |
| | | TextBody: |
| | | [* |
| | | |
| | | table := selectobject( macroPlan, EnginePipelineSource.Report, table, table.IsShow() ); |
| | | |
| | | xmlDOMI := XMLDOMImplementation::Create(); |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | |
| | | traverse ( table, Column, column ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | | nameelement := xmlDOM.CreateElement( "name" ); |
| | | typeelement := xmlDOM.CreateElement( "type" ); |
| | | if( column.Index() = 0 ){ |
| | | nameelement.TextContent( 'Product' ); |
| | | }else if( column.Index() = 1 ){ |
| | | nameelement.TextContent( 'Attribute' ); |
| | | }else{ |
| | | nameelement.TextContent( column.Name() ); |
| | | } |
| | | typeelement.TextContent( "String" ); |
| | | columnelement.AppendChild( nameelement ); |
| | | columnelement.AppendChild( typeelement ); |
| | | |
| | | cells := selectsortedset( column, CellValue, cell, cell.Row().RowNr() ); |
| | | |
| | | traverse ( cells, Elements, c ) { |
| | | cellElement := xmlDOM.CreateElement( "cell" ); |
| | | cellElement.SetAttribute( "value", c.Value() ); |
| | | columnelement.AppendChild( cellElement ); |
| | | } |
| | | tableElement.AppendChild( columnelement ); |
| | | } |
| | | |
| | | xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ); |
| | | |
| | | //info( xmlString ); |
| | | |
| | | tableGroupHandle := TableGroupHandle::Create( EnginePipelineReport::GetDefaultName() ); |
| | | 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 Initialize ( |
| | | MacroPlan owner |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | owner.FinancialProductionSource( relflush ); |
| | | ccunit := EnginePipelineReport::GetDefaultCCUnit(); |
| | | dlunit := EnginePipelineReport::GetDefaultDLUnit(); |
| | | //allunit := EnginePipelineReport::GetDefaultAllUnit(); |
| | | source := owner.EnginePipelineSource( relnew, Name := EnginePipelineReport::GetDefaultName() ); |
| | | table := source.Report( relnew, ID := source.Name(), Name := source.Name() ); |
| | | showtable := source.Report( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsShow := true ); |
| | | |
| | | search := source.Search( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() ); |
| | | |
| | | products := construct( Product_MPs ); |
| | | //åå§åå |
| | | table.GenerateColumn( owner, 'All', search.StartDate(), search.EndDate() ); |
| | | |
| | | //çæç产ååºåæ°æ® |
| | | traverse( owner, Product_MP.ProductInStockingPoint_MP, pisp, pisp.IsLeaf() and not pisp.IsSystem() ){ |
| | | unit := pisp.StockingPoint_MP().UnitID(); |
| | | // info( unit, pisp.ProductID() ); |
| | | //åå§åè¡ |
| | | row := table.GetRow( pisp.ProductID() ); |
| | | |
| | | traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() |
| | | and ( pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() |
| | | or pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Week() ) ){ |
| | | periodtime := pispip.Period_MP().StartDate(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | // info( '---------------------------------', periodtime, table.Column( relsize ), pispip.Period_MP().TimeUnit() ); |
| | | column := selectobject( table, Column, column, column.Name() = periodname and column.Period() = periodtime and column.TimeUnit() = pispip.Period_MP().TimeUnit() ); |
| | | // info( '---------------------------------', isnull( column ), isnull( row ) ); |
| | | // info( '---------------------------------', column.Name(), row.Name() ); |
| | | if( unit = ccunit or unit = dlunit ){ |
| | | row.SetCellProductionValue( column, unit, pispip.NewSupplyProductionQuantity() ); |
| | | } |
| | | row.SetCellInventoryValue( column, pispip.PlannedInventoryLevelEnd() ); |
| | | } |
| | | } |
| | | |
| | | //çæéæ±æ°æ® |
| | | traverse( owner, SalesDemand.astype( Forecast ), forecast, ( forecast.EndDate() - forecast.StartDate() ) < 8){ |
| | | row := table.GetRow( forecast.ProductID() ); |
| | | weekdate := ( forecast.StartDate() - Duration::Days( 7 ) ).Date(); |
| | | periodtime := forecast.StartDate(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | |
| | | column := selectobject( table, Column, column, column.Name() = periodname and column.Period() = periodtime and column.TimeUnit() = Translations::MP_GlobalParameters_Day() ); |
| | | weekcolumn := minobject( table, Column, wcolumn, wcolumn.Period() <= weekdate and wcolumn.TimeUnit() = Translations::MP_GlobalParameters_Week(), wcolumn.Period() ); |
| | | |
| | | if( not isnull( column ) ){ |
| | | row.SetCellDemandValue( column, forecast.SalesSegmentName(), forecast.Quantity() ); |
| | | } |
| | | |
| | | if( not isnull( weekcolumn ) ){ |
| | | row.SetCellDemandValue( weekcolumn, forecast.SalesSegmentName(), forecast.Quantity() ); |
| | | } |
| | | } |
| | | rows := selectsortedset( table, Row, row, row.Name() ); |
| | | i := 0; |
| | | traverse( rows, Elements, e ){ |
| | | e.RowNr( i ); |
| | | i := i + 1; |
| | | } |
| | | showtable.Generate( search, products ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type EnginePipelineSource |
| | | { |
| | | #keys: '5[415136.0.883574750][415136.0.883574748][0.0.0][415136.0.883574749][415136.0.883574751]' |
| | | BaseType: Object |
| | | Description: 'å卿ºç®¡çº¿æ¥è¡¨' |
| | | StructuredName: 'EnginePipelineSources' |
| | | } |
| | |
| | | traverse( row, InventorySummaryCell, cell, cell.InventorySummaryColumn().TimeUnit() = search.Category() ){ |
| | | column := selectobject( this, InventorySummaryColumn, column, column.Name() = cell.InventorySummaryColumn().Name() ); |
| | | |
| | | sumcell := selectobject( column, InventorySummaryCell, c, c.InventroySummaryRow() = sumrow ); |
| | | |
| | | showcell := column.InventorySummaryCell( relnew, EndingInventory := cell.EndingInventory(), MinimumInventory := cell.MinimumInventory(), MaximumInventory := cell.MaximumInventory(), AverageInventory := cell.AverageInventory() ); |
| | | showrow.InventorySummaryCell( relinsert, showcell ); |
| | | sumcell.EndingInventory( sumcell.EndingInventory() + cell.EndingInventory() ); |
| | | sumcell.MinimumInventory( sumcell.MinimumInventory() + cell.MinimumInventory() ); |
| | | sumcell.MaximumInventory( sumcell.MaximumInventory() + cell.MaximumInventory() ); |
| | | sumcell.AverageInventory( sumcell.AverageInventory() + cell.AverageInventory() ); |
| | | if( not isnull( column ) ){ |
| | | sumcell := selectobject( column, InventorySummaryCell, c, c.InventroySummaryRow() = sumrow ); |
| | | |
| | | showcell := column.InventorySummaryCell( relnew, EndingInventory := cell.EndingInventory(), MinimumInventory := cell.MinimumInventory(), MaximumInventory := cell.MaximumInventory(), AverageInventory := cell.AverageInventory() ); |
| | | showrow.InventorySummaryCell( relinsert, showcell ); |
| | | sumcell.EndingInventory( sumcell.EndingInventory() + cell.EndingInventory() ); |
| | | sumcell.MinimumInventory( sumcell.MinimumInventory() + cell.MinimumInventory() ); |
| | | sumcell.MaximumInventory( sumcell.MaximumInventory() + cell.MaximumInventory() ); |
| | | sumcell.AverageInventory( sumcell.AverageInventory() + cell.AverageInventory() ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | if( endtime > startofendyear ){ |
| | | endtime := startofendyear; |
| | | } |
| | | for( start := starttime; start <= endtime; start := start.StartOfNextDay() ){ |
| | | periodtime := start.Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | |
| | | if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Day() ){ |
| | | this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() ); |
| | | } |
| | | if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){ |
| | | weekend := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date(); |
| | | for( start := starttime; start <= endtime; start := start.StartOfNextDay() ){ |
| | | periodtime := start.Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | |
| | | if( periodtime = weekend ){ |
| | | this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Week() ); |
| | | if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Day() ){ |
| | | this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() ); |
| | | } |
| | | if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){ |
| | | weekend := ( start.StartOfNextWeek() - Duration::Days( 1 ) ).Date(); |
| | | |
| | | if( periodtime = weekend ){ |
| | | this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Week() ); |
| | | } |
| | | } |
| | | if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Month() ){ |
| | | monthend := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date(); |
| | | |
| | | if( periodtime = monthend ){ |
| | | this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Month() ); |
| | | } |
| | | } |
| | | } |
| | | if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Month() ){ |
| | | monthend := ( start.StartOfNextMonth() - Duration::Days( 1 ) ).Date(); |
| | | |
| | | if( periodtime = monthend ){ |
| | | this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Month() ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute DemandQuantity |
| | | { |
| | | #keys: '3[415136.0.886711537][415136.0.886711536][415136.0.886711538]' |
| | | Description: 'éæ±' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute InventoryQuantity |
| | | { |
| | | #keys: '3[415136.0.886711534][415136.0.886711533][415136.0.886711535]' |
| | | Description: 'åºå' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductionQuantity |
| | | { |
| | | #keys: '3[415136.0.886711531][415136.0.886711530][415136.0.886711532]' |
| | | Description: 'ç产' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type MachiningPipelineCell |
| | | { |
| | | #keys: '5[415136.0.886711528][415136.0.886711526][0.0.0][415136.0.886711527][415136.0.886711529]' |
| | | BaseType: Object |
| | | Description: 'æºå 工管线æ¥è¡¨åå
æ ¼' |
| | | StructuredName: 'MachiningPipelineCells' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Index |
| | | { |
| | | #keys: '3[415136.0.886711548][415136.0.886711547][415136.0.886711549]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.886711551][415136.0.886711550][415136.0.886711552]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Period |
| | | { |
| | | #keys: '3[415136.0.886711554][415136.0.886711553][415136.0.886711555]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute TimeUnit |
| | | { |
| | | #keys: '3[415136.0.886711557][415136.0.886711556][415136.0.886711558]' |
| | | Description: 'æ¥æç±»å' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: TimeUnit |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcIndex |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-21-2024 (created) |
| | | |
| | | value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 ); |
| | | |
| | | this.Index( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type MachiningPipelineColumn |
| | | { |
| | | #keys: '5[415136.0.886711545][415136.0.886711543][0.0.0][415136.0.886711544][415136.0.886711546]' |
| | | BaseType: Object |
| | | Description: 'æºå 工管线æ¥è¡¨å' |
| | | StructuredName: 'MachiningPipelineColumns' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ID |
| | | { |
| | | #keys: '3[415136.0.886711585][415136.0.886711584][415136.0.886711586]' |
| | | IsReadOnly: true |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute IsShow |
| | | { |
| | | #keys: '3[415136.0.886711588][415136.0.886711587][415136.0.886711589]' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.886711591][415136.0.886711590][415136.0.886711592]' |
| | | Description: 'åç§°' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: ID |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Clear ( |
| | | String timeunit, |
| | | Date startdate, |
| | | Date enddate |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | this.Column( relflush ); |
| | | this.Row( relflush ); |
| | | |
| | | this.GenerateColumn( this.Source().MacroPlan(), timeunit, startdate, enddate ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Generate ( |
| | | EnginePipelineSearch search, |
| | | Product_MPs products |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | table := selectobject( this, Source.Report, report, not report.IsShow() ); |
| | | //æ¸
空ä¹ååå¨çæ¾ç¤ºæ°æ® |
| | | this.Clear( search.TimeUnit(), search.StartDate(), search.EndDate() ); |
| | | //è¿æ»¤åç产åid |
| | | productids := selectuniquevalues( products, Elements, product, true, product.ID() ); |
| | | sumrow := this.Row( relnew, Name := 'SUM', RowNr := table.Row( relsize ) ); |
| | | traverse( table, Row, row, productids.Find( row.Name() ) >= 0 ){ |
| | | showrow := this.Row( relnew, Name := row.Name(), RowNr := row.RowNr() ); |
| | | |
| | | traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){ |
| | | column := selectobject( this, Column, column, column.Name() = cell.Column().Name() and column.TimeUnit() = search.TimeUnit() ); |
| | | |
| | | if( not isnull( column ) ){ |
| | | sumcell := selectobject( column, Cell, c, c.Row() = sumrow ); |
| | | if( isnull( sumcell ) ){ |
| | | sumcell := column.Cell( relnew, InventoryQuantity := 0 ); |
| | | sumrow.Cell( relinsert, sumcell ); |
| | | } |
| | | |
| | | showcell := cell.Copy( column ); |
| | | showrow.Cell( relinsert, showcell ); |
| | | |
| | | sumcell.InventoryQuantity( cell.InventoryQuantity() + sumcell.InventoryQuantity() ); |
| | | |
| | | traverse( cell, Demand, demand ){ |
| | | sumcell.Demand( relnew, EngineType := demand.EngineType(), Model := demand.Model(), Period := demand.Period(), Quantity := demand.Quantity() ); |
| | | } |
| | | |
| | | traverse( cell, Production, production ){ |
| | | sumcell.Production( relnew, EngineType := production.EngineType(), Period := production.Period(), DLProduction := production.DLProduction(), CCProduction := production.CCProduction() ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GenerateColumn ( |
| | | MacroPlan owner, |
| | | String timeunit, |
| | | Date startdate, |
| | | Date enddate |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | //æ¥è¯¢æ¥æè¿åéè¦å¨è®¡åæ¥æä¹å
|
| | | traverse( owner, Period_MP, period, not period.IsHistorical() and period.StartDate() >= startdate and period.EndDate() <= enddate |
| | | and ( ( timeunit = 'All' and ( period.TimeUnit() = Translations::MP_GlobalParameters_Day() or period.TimeUnit() = Translations::MP_GlobalParameters_Week() ) ) |
| | | or period.TimeUnit() = timeunit ) ){ |
| | | periodtime := period.StartDate(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | |
| | | this.Column( relnew, Name := periodname, Period := periodtime, TimeUnit := period.TimeUnit() ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GetRow ( |
| | | String product |
| | | ) as EnginePipelineRow |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | row := selectobject( this, Row, row, row.Name() = product ); |
| | | |
| | | if( isnull( row ) ){ |
| | | row := this.Row( relnew, Name := product ); |
| | | //åå§ååå
æ ¼ |
| | | row.InitializeCell( this ); |
| | | } |
| | | |
| | | return row; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultAllUnit () const declarative as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return '<All>'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultCCUnit () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | //return 'é¿æ¥'; |
| | | return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultDLUnit () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | //return '大è¿'; |
| | | return 'Assembly Plant (Spain)'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultName () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return 'Engine pipelines'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type MachiningPipelineReport |
| | | { |
| | | #keys: '5[415136.0.886711582][415136.0.886711580][0.0.0][415136.0.886711581][415136.0.886711583]' |
| | | BaseType: Object |
| | | Description: 'æºå 工管线æ¥è¡¨' |
| | | StructuredName: 'MachiningPipelineReports' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.886711571][415136.0.886711570][415136.0.886711572]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute RowNr |
| | | { |
| | | #keys: '3[415136.0.886711574][415136.0.886711573][415136.0.886711575]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Initialize ( |
| | | EnginePipelineColumn column |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := column.Cell( relnew, InventoryQuantity := 0 ); |
| | | |
| | | this.Cell( relinsert, cell ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method InitializeCell ( |
| | | EnginePipelineReport table |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | traverse( table, Column, column ){ |
| | | this.Initialize( column ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetCellDemandValue ( |
| | | EnginePipelineColumn column, |
| | | String segment, |
| | | Real quantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, Cell, cell, cell.Column() = column ); |
| | | |
| | | demand := selectobject( cell, Demand, demand, demand.EngineType() = cell.Row().Name() and demand.Model() = segment and demand.Period() = column.Period() ); |
| | | |
| | | if( isnull( demand ) ){ |
| | | demand := cell.Demand( relnew, EngineType := cell.Row().Name(), Period := column.Period(), Model := segment, Quantity := 0 ); |
| | | } |
| | | |
| | | demand.Quantity( demand.Quantity() + quantity ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetCellInventoryValue ( |
| | | EnginePipelineColumn column, |
| | | Real quantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, Cell, cell, cell.Column() = column ); |
| | | |
| | | cell.InventoryQuantity( cell.InventoryQuantity() + quantity ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetCellProductionValue ( |
| | | EnginePipelineColumn column, |
| | | String unit, |
| | | Real quantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, Cell, cell, cell.Column() = column ); |
| | | |
| | | production := selectobject( cell, Production, production, production.EngineType() = cell.Row().Name() and production.Period() = column.Period() ); |
| | | |
| | | if( isnull( production ) ){ |
| | | production := cell.Production( relnew, EngineType := cell.Row().Name(), Period := column.Period(), DLProduction := 0, CCProduction := 0 ); |
| | | } |
| | | |
| | | if( unit = EnginePipelineReport::GetDefaultCCUnit() ){ |
| | | production.CCProduction( production.CCProduction() + quantity ); |
| | | }else if( unit = EnginePipelineReport::GetDefaultDLUnit() ){ |
| | | production.DLProduction( production.DLProduction() + quantity ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type MachiningPipelineRow |
| | | { |
| | | #keys: '5[415136.0.886711568][415136.0.886711566][0.0.0][415136.0.886711567][415136.0.886711569]' |
| | | BaseType: Object |
| | | Description: 'æºå 工管线è¡' |
| | | StructuredName: 'MachiningPipelineRows' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute EndDate |
| | | { |
| | | #keys: '3[415136.0.886711605][415136.0.886711604][415136.0.886711606]' |
| | | Description: 'ç»ææ¥æ' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StartDate |
| | | { |
| | | #keys: '3[415136.0.886711602][415136.0.886711601][415136.0.886711603]' |
| | | Description: 'å¼å§æ¶é´' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute TimeUnit |
| | | { |
| | | #keys: '3[415136.0.886711608][415136.0.886711607][415136.0.886711609]' |
| | | Description: 'æ¥æç±»å' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: TimeUnit |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type MachiningPipelineSearch |
| | | { |
| | | #keys: '5[415136.0.886711599][415136.0.886711597][0.0.0][415136.0.886711598][415136.0.886711600]' |
| | | BaseType: Object |
| | | Description: 'æºå 工管线æ¥è¯¢ç±»' |
| | | StructuredName: 'MachiningPipelineSearchs' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.886711619][415136.0.886711618][415136.0.886711620]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan |
| | | ) as BinaryValue |
| | | { |
| | | Description: 'ä¸è½½å卿ºç®¡çº¿æ°æ®' |
| | | TextBody: |
| | | [* |
| | | |
| | | table := selectobject( macroPlan, EnginePipelineSource.Report, table, table.IsShow() ); |
| | | |
| | | xmlDOMI := XMLDOMImplementation::Create(); |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | //Product |
| | | productcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | productnameelement := xmlDOM.CreateElement( "name" ); |
| | | producttypeelement := xmlDOM.CreateElement( "type" ); |
| | | productnameelement.TextContent( 'Product' ); |
| | | producttypeelement.TextContent( "String" ); |
| | | productcolumnelement.AppendChild( productnameelement ); |
| | | productcolumnelement.AppendChild( producttypeelement ); |
| | | //Attribute |
| | | attricolumnelement := xmlDOM.CreateElement( "column" ); |
| | | attrinameelement := xmlDOM.CreateElement( "name" ); |
| | | attritypeelement := xmlDOM.CreateElement( "type" ); |
| | | attrinameelement.TextContent( 'Attribute' ); |
| | | attritypeelement.TextContent( "String" ); |
| | | attricolumnelement.AppendChild( attrinameelement ); |
| | | attricolumnelement.AppendChild( attritypeelement ); |
| | | |
| | | tableElement.AppendChild( productcolumnelement ); |
| | | tableElement.AppendChild( attricolumnelement ); |
| | | traverse ( table, Column, column ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | | nameelement := xmlDOM.CreateElement( "name" ); |
| | | typeelement := xmlDOM.CreateElement( "type" ); |
| | | nameelement.TextContent( column.Name() ); |
| | | typeelement.TextContent( "String" ); |
| | | columnelement.AppendChild( nameelement ); |
| | | columnelement.AppendChild( typeelement ); |
| | | |
| | | cells := selectsortedset( column, Cell, cell, cell.Row().RowNr() ); |
| | | |
| | | traverse ( cells, Elements, c ) { |
| | | if( column.Index() = 0 ){ |
| | | row := c.Row(); |
| | | //Product |
| | | productcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | productcellElement1.SetAttribute( "value", row.Name() ); |
| | | productcolumnelement.AppendChild( productcellElement1 ); |
| | | productcellElement2 := xmlDOM.CreateElement( "cell" ); |
| | | productcellElement2.SetAttribute( "value", row.Name() ); |
| | | productcolumnelement.AppendChild( productcellElement2 ); |
| | | productcellElement3 := xmlDOM.CreateElement( "cell" ); |
| | | productcellElement3.SetAttribute( "value", row.Name() ); |
| | | productcolumnelement.AppendChild( productcellElement3 ); |
| | | //Attribute |
| | | //ç产 |
| | | endcellElement := xmlDOM.CreateElement( "cell" ); |
| | | endcellElement.SetAttribute( "value", 'ProductionQuantity' ); |
| | | attricolumnelement.AppendChild( endcellElement ); |
| | | //éæ± |
| | | mincellElement := xmlDOM.CreateElement( "cell" ); |
| | | mincellElement.SetAttribute( "value", 'DemandQuantity' ); |
| | | attricolumnelement.AppendChild( mincellElement ); |
| | | //åºå |
| | | maxcellElement := xmlDOM.CreateElement( "cell" ); |
| | | maxcellElement.SetAttribute( "value", 'InventoryQUantity' ); |
| | | attricolumnelement.AppendChild( maxcellElement ); |
| | | } |
| | | //ç产 |
| | | endcellElement := xmlDOM.CreateElement( "cell" ); |
| | | endcellElement.SetAttribute( "value", [String]c.ProductionQuantity() ); |
| | | columnelement.AppendChild( endcellElement ); |
| | | //éæ± |
| | | mincellElement := xmlDOM.CreateElement( "cell" ); |
| | | mincellElement.SetAttribute( "value", [String]c.DemandQuantity() ); |
| | | columnelement.AppendChild( mincellElement ); |
| | | //åºå |
| | | maxcellElement := xmlDOM.CreateElement( "cell" ); |
| | | maxcellElement.SetAttribute( "value", [String]c.InventoryQuantity() ); |
| | | columnelement.AppendChild( maxcellElement ); |
| | | } |
| | | tableElement.AppendChild( columnelement ); |
| | | } |
| | | |
| | | xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM ); |
| | | |
| | | //info( xmlString ); |
| | | |
| | | tableGroupHandle := TableGroupHandle::Create( EnginePipelineReport::GetDefaultName() ); |
| | | 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 Initialize ( |
| | | MacroPlan owner |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | owner.FinancialProductionSource( relflush ); |
| | | ccunit := EnginePipelineReport::GetDefaultCCUnit(); |
| | | dlunit := EnginePipelineReport::GetDefaultDLUnit(); |
| | | //allunit := EnginePipelineReport::GetDefaultAllUnit(); |
| | | source := owner.EnginePipelineSource( relnew, Name := FinancialProductionReport::GetDefaultName() ); |
| | | table := source.Report( relnew, ID := source.Name(), Name := source.Name() ); |
| | | showtable := source.Report( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsShow := true ); |
| | | |
| | | search := source.Search( relnew, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day() ); |
| | | |
| | | products := construct( Product_MPs ); |
| | | //åå§åå |
| | | table.GenerateColumn( owner, 'All', search.StartDate(), search.EndDate() ); |
| | | |
| | | //çæç产ååºåæ°æ® |
| | | traverse( owner, Product_MP.ProductInStockingPoint_MP, pisp, pisp.IsLeaf() and not pisp.IsSystem() ){ |
| | | unit := pisp.StockingPoint_MP().UnitID(); |
| | | // info( unit, pisp.ProductID() ); |
| | | //åå§åè¡ |
| | | row := table.GetRow( pisp.ProductID() ); |
| | | |
| | | traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() |
| | | and ( pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() |
| | | or pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Week() ) ){ |
| | | periodtime := pispip.Period_MP().StartDate(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | // info( '---------------------------------', periodtime, table.Column( relsize ), pispip.Period_MP().TimeUnit() ); |
| | | column := selectobject( table, Column, column, column.Name() = periodname and column.Period() = periodtime and column.TimeUnit() = pispip.Period_MP().TimeUnit() ); |
| | | // info( '---------------------------------', isnull( column ), isnull( row ) ); |
| | | // info( '---------------------------------', column.Name(), row.Name() ); |
| | | if( unit = ccunit or unit = dlunit ){ |
| | | row.SetCellProductionValue( column, unit, pispip.NewSupplyProductionQuantity() ); |
| | | } |
| | | row.SetCellInventoryValue( column, pispip.PlannedInventoryLevelEnd() ); |
| | | } |
| | | } |
| | | |
| | | //çæéæ±æ°æ® |
| | | traverse( owner, SalesDemand.astype( Forecast ), forecast, ( forecast.EndDate() - forecast.StartDate() ) < 8){ |
| | | row := table.GetRow( forecast.ProductID() ); |
| | | weekdate := ( forecast.StartDate() - Duration::Days( 7 ) ).Date(); |
| | | periodtime := forecast.StartDate(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | |
| | | column := selectobject( table, Column, column, column.Name() = periodname and column.Period() = periodtime and column.TimeUnit() = Translations::MP_GlobalParameters_Day() ); |
| | | weekcolumn := minobject( table, Column, wcolumn, wcolumn.Period() <= weekdate and wcolumn.TimeUnit() = Translations::MP_GlobalParameters_Week(), wcolumn.Period() ); |
| | | |
| | | if( not isnull( column ) ){ |
| | | row.SetCellDemandValue( column, forecast.SalesSegmentName(), forecast.Quantity() ); |
| | | } |
| | | |
| | | if( not isnull( weekcolumn ) ){ |
| | | row.SetCellDemandValue( weekcolumn, forecast.SalesSegmentName(), forecast.Quantity() ); |
| | | } |
| | | } |
| | | rows := selectsortedset( table, Row, row, row.Name() ); |
| | | i := 0; |
| | | traverse( rows, Elements, e ){ |
| | | e.RowNr( i ); |
| | | i := i + 1; |
| | | } |
| | | showtable.Generate( search, products ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type MachiningPipelineSource |
| | | { |
| | | #keys: '5[415136.0.886711616][415136.0.886711614][0.0.0][415136.0.886711615][415136.0.886711617]' |
| | | BaseType: Object |
| | | Description: 'æºå 工管线æ¥è¡¨' |
| | | StructuredName: 'MachiningPipelineSources' |
| | | } |
| | |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component ButtonEnginePipelineReport |
| | | { |
| | | #keys: '[415136.0.884991586]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'DOCUMENT_CONNECTION' |
| | | Label: 'Engine pipeline report' |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ActionBarGroupReport/ButtonEnginePipelineReport |
| | | Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonEnginePipelineReport_OnClick |
| | | { |
| | | #keys: '[415136.0.888144270]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | ApplicationScope.ViewManager().ResetUserViewById( "Engine_pipleline_report", true); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListEnginePipelineDemand |
| | | { |
| | | #keys: '[415136.0.889610579]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorEnginePipelineDemand |
| | | { |
| | | #keys: '[415136.0.889610580]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[external[EnginePipelineCell]]' |
| | | Source: 'FormEnginePipelineReport.dhEnginePipelineCells' |
| | | Taborder: 0 |
| | | Transformation: 'Elements.Demand' |
| | | ] |
| | | } |
| | | #child: listActionBarPageEnginePipelineDemand |
| | | Component DataSetLevelEnginePipelineDemand |
| | | { |
| | | #keys: '[415136.0.889610585]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenuEnginePipelineDemand |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EngineType","title":"EngineType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EngineType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Model","title":"Model","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Model"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Period","title":"Period","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Period"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}}]' |
| | | ContextMenu: 'listContextMenuEnginePipelineDemand' |
| | | SortCriteria: 'EngineType;Model;Period' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPageEnginePipelineDemand |
| | | { |
| | | #keys: '[415136.0.889610582]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuEnginePipelineDemand |
| | | { |
| | | #keys: '[415136.0.889610587]' |
| | | BaseType: 'listContextMenu' |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormEnginePipelineDemand |
| | | { |
| | | #keys: '[415136.0.889610518]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: ListEnginePipelineDemand |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'NOTE' |
| | | Title: 'Engine pipeline demand' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListEnginePipelineProduction |
| | | { |
| | | #keys: '[415136.0.888050782]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorEnginePipelineProduction |
| | | { |
| | | #keys: '[415136.0.888050783]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[EnginePipelineCell]' |
| | | Source: 'FormEnginePipelineReport.dhEnginePipelineCells' |
| | | Taborder: 0 |
| | | Transformation: 'Elements.Production' |
| | | ] |
| | | } |
| | | #child: listActionBarPageEnginePipelineProduction |
| | | Component DataSetLevelEnginePipelineProduction |
| | | { |
| | | #keys: '[415136.0.888050788]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenuEnginePipelineProduction |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EngineType","title":"EngineType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EngineType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Period","title":"Period","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Period"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DLProduction","title":"DLProduction","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DLProduction"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CCProduction","title":"CCProduction","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CCProduction"}}]' |
| | | ContextMenu: 'listContextMenuEnginePipelineProduction' |
| | | SortCriteria: 'EngineType;Period' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPageEnginePipelineProduction |
| | | { |
| | | #keys: '[415136.0.888050785]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuEnginePipelineProduction |
| | | { |
| | | #keys: '[415136.0.888050790]' |
| | | BaseType: 'listContextMenu' |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormEnginePipelineProduction |
| | | { |
| | | #keys: '[415136.0.886943096]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: ListEnginePipelineProduction |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'NOTE' |
| | | Title: 'Engine pipeline production' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component MatrixEditorTable |
| | | { |
| | | #keys: '[415136.0.884991429]' |
| | | BaseType: 'WebMatrixEditor' |
| | | Children: |
| | | [ |
| | | Component MatrixEditorCellTable |
| | | { |
| | | #keys: '[415136.0.884991430]' |
| | | BaseType: 'WebMatrixEditorCell' |
| | | Children: |
| | | [ |
| | | Component DataExtractorCell |
| | | { |
| | | #keys: '[415136.0.884991431]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'EnginePipelineReport' |
| | | Source: 'DataHolderTable' |
| | | Taborder: 0 |
| | | Transformation: 'Column.CellValue' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Attributes: 'Value' |
| | | Column: 'Column' |
| | | Row: 'Row' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component MatrixEditorRowsTable |
| | | { |
| | | #keys: '[415136.0.884991434]' |
| | | BaseType: 'WebMatrixEditorHeaderLevel' |
| | | Children: |
| | | [ |
| | | Component DataExtractorRow |
| | | { |
| | | #keys: '[415136.0.884991435]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'EnginePipelineReport' |
| | | Source: 'DataHolderTable' |
| | | Taborder: 0 |
| | | Transformation: 'Row' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Legend: 'RowNr' |
| | | SortCriteria: 'RowNr' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component MatrixEditorColumnsTable |
| | | { |
| | | #keys: '[415136.0.884991438]' |
| | | BaseType: 'WebMatrixEditorHeaderLevel' |
| | | Children: |
| | | [ |
| | | Component DataExtractorColumn |
| | | { |
| | | #keys: '[415136.0.884991439]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'EnginePipelineReport' |
| | | Source: 'DataHolderTable' |
| | | Taborder: 0 |
| | | Transformation: 'Column' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Legend: 'Name' |
| | | SortCriteria: 'Index' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | #child: matrixEditorActionBarPageTable |
| | | #child: matrixeditorContextMenuTable |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: 'MatrixEditorColumnsTable' |
| | | ContextMenu: 'matrixeditorContextMenuTable' |
| | | Rows: 'MatrixEditorRowsTable' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelExport id:PanelExport_570 |
| | | { |
| | | #keys: '[415136.0.884991008]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component ButtonSummaryExport |
| | | { |
| | | #keys: '[415136.0.884991009]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'IMPORT1' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Orientation: 'horizontal' |
| | | Taborder: 2 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelHeader |
| | | { |
| | | #keys: '[415136.0.884990889]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | #child: PanelSearch |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Taborder: 3 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelPeriod id:PanelPeriod_325 |
| | | { |
| | | #keys: '[415136.0.884991005]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component DateSelectorStart |
| | | { |
| | | #keys: '[415136.0.884991006]' |
| | | BaseType: 'WebDateSelector' |
| | | Properties: |
| | | [ |
| | | Label: 'Start date' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component DateSelectorEnd |
| | | { |
| | | #keys: '[415136.0.884991007]' |
| | | BaseType: 'WebDateSelector' |
| | | Properties: |
| | | [ |
| | | Date: 9999-12-31 |
| | | Label: 'End date' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelSearch |
| | | { |
| | | #keys: '[415136.0.884991004]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | #child: PanelPeriod_325 |
| | | #child: PanelExport_570 |
| | | #child: PanelTimeUnit |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelTable |
| | | { |
| | | #keys: '[415136.0.884991246]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | #child: MatrixEditorTable |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 4 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelTimeUnit |
| | | { |
| | | #keys: '[415136.0.884991010]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component RadioButtonGroupUseForTimeUnit |
| | | { |
| | | #keys: '[415136.0.884991011]' |
| | | BaseType: 'WebRadioButtonGroup' |
| | | Properties: |
| | | [ |
| | | ButtonLabels: 'Day;Week' |
| | | ButtonValues: 'Day;Week' |
| | | Orientation: 'horizontal' |
| | | ShowTitle: false |
| | | Taborder: 0 |
| | | Title: 'Periods' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Orientation: 'horizontal' |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component matrixEditorActionBarPageTable |
| | | { |
| | | #keys: '[415136.0.884991442]' |
| | | BaseType: 'matrixEditorActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 3 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component matrixeditorContextMenuTable |
| | | { |
| | | #keys: '[415136.0.884991445]' |
| | | BaseType: 'matrixeditorContextMenu' |
| | | Properties: |
| | | [ |
| | | Taborder: 4 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: MatrixEditorTable |
| | | Response OnSelectionChanged ( |
| | | structured[EnginePipelineCell] selection |
| | | ) id:Response_MatrixEditorTable_OnSelectionChanged |
| | | { |
| | | #keys: '[415136.0.886943328]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebMatrixEditor_OnSelectionChanged' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | //éæ©çåå
æ ¼ |
| | | dhEnginePipelineCells.Data( selection.Copy() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Response OnCreated () id:Response_FormEnginePipelineReport_OnCreated |
| | | { |
| | | #keys: '[415136.0.884991340]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnCreated' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | //if( not isnull( MacroPlan.EnginePipelineSource() ) ){ |
| | | EnginePipelineSource::Initialize( MacroPlan ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := selectobject( MacroPlan, EnginePipelineSource.Report, table, table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsShow() ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | dhSearch.Data( table.Source().Search() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelExport_570/ButtonSummaryExport |
| | | Response OnClick () id:Response_PanelExport_570_ButtonSummaryExport_OnClick |
| | | { |
| | | #keys: '[415136.0.884991001]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | binaryValue := EnginePipelineSource::Download( MacroPlan ); |
| | | |
| | | Application.Download( EnginePipelineReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelPeriod_325/DateSelectorEnd |
| | | Response OnChanged () id:Response_PanelPeriod_325_DateSelectorEnd_OnChanged |
| | | { |
| | | #keys: '[415136.0.884991002]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | //æ¥ææ¹ååå·æ°æ¾ç¤º |
| | | if( this.Date() < DateSelectorStart.Date() ){ |
| | | this.HintError( 'The end date cannot be less than the start date!' ); |
| | | }else{ |
| | | if( dhSearch.Data().EndDate() <> this.Date() ){ |
| | | dhSearch.Data().EndDate( this.Date() ); |
| | | DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); |
| | | } |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelPeriod_325/DateSelectorStart |
| | | Response OnChanged () id:Response_PanelPeriod_325_DateSelectorStart_OnChanged |
| | | { |
| | | #keys: '[415136.0.884991003]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | //æ¥ææ¹ååå·æ°æ¾ç¤º |
| | | if( this.Date() > DateSelectorEnd.Date() ){ |
| | | this.HintError( 'The start date cannot be later than the end date!' ); |
| | | }else{ |
| | | if( dhSearch.Data().StartDate() <> this.Date() ){ |
| | | dhSearch.Data().StartDate( this.Date() ); |
| | | DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); |
| | | } |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelTimeUnit/RadioButtonGroupUseForTimeUnit |
| | | Response OnChanged () id:Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged |
| | | { |
| | | #keys: '[415136.0.884991000]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | //åºé´æ¹ååå·æ°æ¾ç¤º |
| | | if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){ |
| | | dhSearch.Data().TimeUnit( this.BoundValue() ); |
| | | DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelTimeUnit/RadioButtonGroupUseForTimeUnit |
| | | Response OnCreated () id:Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated |
| | | { |
| | | #keys: '[415136.0.884990999]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnCreated' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.ButtonValues( Translations::MP_GlobalParameters_Day() + ';' + Translations::MP_GlobalParameters_Week() + ';' + Translations::MP_GlobalParameters_Month() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormEnginePipelineReport |
| | | { |
| | | #keys: '[415136.0.884990753]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | Component DataHolderTable id:DataHolderTable_750 |
| | | { |
| | | #keys: '[415136.0.884990847]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'EnginePipelineReport' |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component dhSearch id:dhSearch_316 |
| | | { |
| | | #keys: '[415136.0.884990864]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'EnginePipelineSearch' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | #child: PanelHeader |
| | | #child: PanelTable |
| | | Component dhEnginePipelineCells id:dhEnginePipelineCells_430 |
| | | { |
| | | #keys: '[415136.0.888401920]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[EnginePipelineCell]*' |
| | | Properties: |
| | | [ |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'DOCUMENT_CONNECTION' |
| | | Title: 'Engine pipeline report' |
| | | ] |
| | | } |
| | |
| | | ShowTitle: false |
| | | Taborder: 0 |
| | | Title: 'Periods' |
| | | Tooltip: '<html>Select if the periods are used for planning or merely for visualization.<br>The planning periods define the granularity at which planning is done.<br>In case of overlapping planning periods, the smallest ones are used.<br>The planning periods are shown in the period overview in blue.</html>' |
| | | ] |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | { |
| | | viewcontents |
| | | { |
| | | forms |
| | | { |
| | | form_FormEnginePipelineReport |
| | | { |
| | | title: 'QMacroPlanner::FormEnginePipelineReport' |
| | | shown: true |
| | | componentID: 'QMacroPlanner::FormEnginePipelineReport' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 15 |
| | | columnPosition: 1 |
| | | columnSpan: 12 |
| | | } |
| | | components |
| | | { |
| | | FormEnginePipelineReport_PanelHeader |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormEnginePipelineReport_PanelSearch |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormEnginePipelineReport_PanelPeriod |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormEnginePipelineReport_PanelTimeUnit |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormEnginePipelineReport_PanelExport |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormEnginePipelineReport_PanelTable |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormEnginePipelineReport_MatrixEditorTable |
| | | { |
| | | gridColor: '#c4c4c4' |
| | | totalHeaderWidth: 200 |
| | | attributeHeaderWidthRatio: 0.6 |
| | | nameHeaderWidthRatio: 0.4 |
| | | columnWidth: 100 |
| | | horizontalGrid: true |
| | | verticalGrid: true |
| | | backendState |
| | | { |
| | | componentId: 'QMacroPlanner::FormEnginePipelineReport.MatrixEditorTable' |
| | | state |
| | | { |
| | | cells |
| | | { |
| | | attributes |
| | | { |
| | | attribute_ProductionQuantity |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 0 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'ProductionQuantity' |
| | | } |
| | | attribute_DemandQuantity |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 1 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'DemandQuantity' |
| | | } |
| | | attribute_InventoryQuantity |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 2 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'InventoryQuantity' |
| | | } |
| | | } |
| | | } |
| | | columns |
| | | { |
| | | sorting |
| | | { |
| | | criteria: "datamember:'Index'" |
| | | } |
| | | } |
| | | rows |
| | | { |
| | | sorting |
| | | { |
| | | criteria: "datamember:'RowNr'" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormEnginePipelineProduction |
| | | { |
| | | title: 'QMacroPlanner::FormEnginePipelineProduction' |
| | | shown: true |
| | | componentID: 'QMacroPlanner::FormEnginePipelineProduction' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 16 |
| | | rowSpan: 6 |
| | | columnPosition: 1 |
| | | columnSpan: 6 |
| | | } |
| | | components |
| | | { |
| | | FormEnginePipelineProduction_ListEnginePipelineProduction |
| | | { |
| | | } |
| | | FormEnginePipelineProduction_DataSetLevelEnginePipelineProduction |
| | | { |
| | | groupDepth: -1 |
| | | column_EngineType |
| | | { |
| | | columnId: 'EngineType' |
| | | dataPath: 'EngineType' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Period |
| | | { |
| | | columnId: 'Period' |
| | | dataPath: 'Period' |
| | | dataType: 'date' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_DLProduction |
| | | { |
| | | columnId: 'DLProduction' |
| | | dataPath: 'DLProduction' |
| | | dataType: 'real' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_CCProduction |
| | | { |
| | | columnId: 'CCProduction' |
| | | dataPath: 'CCProduction' |
| | | dataType: 'real' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormEnginePipelineDemand |
| | | { |
| | | title: 'QMacroPlanner::FormEnginePipelineDemand' |
| | | shown: true |
| | | componentID: 'QMacroPlanner::FormEnginePipelineDemand' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 16 |
| | | rowSpan: 6 |
| | | columnPosition: 7 |
| | | columnSpan: 6 |
| | | } |
| | | components |
| | | { |
| | | FormEnginePipelineDemand_ListEnginePipelineDemand |
| | | { |
| | | } |
| | | FormEnginePipelineDemand_DataSetLevelEnginePipelineDemand |
| | | { |
| | | groupDepth: -1 |
| | | column_EngineType |
| | | { |
| | | columnId: 'EngineType' |
| | | dataPath: 'EngineType' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Model |
| | | { |
| | | columnId: 'Model' |
| | | dataPath: 'Model' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Period |
| | | { |
| | | columnId: 'Period' |
| | | dataPath: 'Period' |
| | | dataType: 'date' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Quantity |
| | | { |
| | | columnId: 'Quantity' |
| | | dataPath: 'Quantity' |
| | | dataType: 'real' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormOptimizerPuzzles |
| | | { |
| | | title: 'Optimizer Puzzles' |
| | | shown: false |
| | | componentID: 'FormOptimizerPuzzles' |
| | | layout |
| | | { |
| | | mode: 'dockright' |
| | | index: 0 |
| | | } |
| | | components |
| | | { |
| | | FormOptimizerPuzzles_ListOptimizerPuzzles |
| | | { |
| | | } |
| | | FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles |
| | | { |
| | | groupDepth: -1 |
| | | column_All_constraints |
| | | { |
| | | columnId: 'All constraints' |
| | | dataPath: 'All constraints' |
| | | dataType: 'string' |
| | | title: 'All constraints' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Name |
| | | { |
| | | columnId: 'Name' |
| | | dataPath: 'Name' |
| | | dataType: 'string' |
| | | title: 'Name' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 109 |
| | | } |
| | | column_Description |
| | | { |
| | | columnId: 'Description' |
| | | dataPath: 'Description' |
| | | dataType: 'string' |
| | | title: 'Description' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 207 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormKPI |
| | | { |
| | | title: 'KPI Dashboard' |
| | | shown: true |
| | | componentID: 'FormKPI' |
| | | layout |
| | | { |
| | | mode: 'dockright' |
| | | index: 1 |
| | | } |
| | | components |
| | | { |
| | | FormKPI_PanelKPI |
| | | { |
| | | sizeRatio: 1 |
| | | activeChild: 'PanelKPISelection' |
| | | } |
| | | FormKPI_PanelKPIDashboard |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormKPI_PanelKPISelection |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormKPI_ListKPISelection |
| | | { |
| | | QuillViewData |
| | | { |
| | | Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume' |
| | | } |
| | | } |
| | | FormKPI_DataSetLevelKPISelection |
| | | { |
| | | groupDepth: -1 |
| | | column_All_constraints |
| | | { |
| | | columnId: 'All constraints' |
| | | dataPath: 'All constraints' |
| | | dataType: 'string' |
| | | title: 'All constraints' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Name |
| | | { |
| | | columnId: 'Name' |
| | | dataPath: 'Name' |
| | | dataType: 'string' |
| | | title: 'Name' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 200 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | userconfigurableinformation |
| | | { |
| | | } |
| | | page: '' |
| | | group: '' |
| | | index: 20 |
| | | image: 'DOCUMENT_CONNECTION' |
| | | description: '' |
| | | } |
| | | formatversion: 2 |
| | | id: 'Engine_pipleline_report' |
| | | name: 'Engine pipleline report' |
| | | isglobal: false |
| | | isroot: true |
| | | } |