Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已重命名1个文件
已添加47个文件
已修改25个文件
已删除6个文件
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation FinancialWeeklyColumn_FinancialWeeklyCell_FinancialWeeklyCell_FinancialWeeklyColumn |
| | | { |
| | | #keys: '1[415136.0.880724166]' |
| | | ProceduralSequenceRelationStrategy |
| | | { |
| | | #keys: '13[0.0.0][415136.0.880724185][415136.0.880724179][415136.0.880724186][415136.0.880724180][415136.0.880724187][415136.0.880724181][415136.0.880724188][415136.0.880724182][415136.0.880724189][415136.0.880724183][415136.0.880724190][415136.0.880724184]' |
| | | SequenceElementSuffix: 'CellInColumn' |
| | | SequenceSuffix: 'CellInColumn' |
| | | } |
| | | RelationSide.LeftSide FinancialWeeklyCell |
| | | { |
| | | #keys: '3[415136.0.880724168][415136.0.880724167][415136.0.880724169]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: FinancialWeeklyColumn |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide FinancialWeeklyColumn |
| | | { |
| | | #keys: '3[415136.0.880724171][415136.0.880724170][415136.0.880724172]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: FinancialWeeklyCell |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation FinancialWeeklyReport_FinancialWeeklyColumn_FinancialWeeklyColumn_FinancialWeeklyReport |
| | | { |
| | | #keys: '1[415136.0.880724207]' |
| | | ProceduralSequenceRelationStrategy |
| | | { |
| | | #keys: '13[0.0.0][415136.0.880724228][415136.0.880724222][415136.0.880724229][415136.0.880724223][415136.0.880724230][415136.0.880724224][415136.0.880724231][415136.0.880724225][415136.0.880724232][415136.0.880724226][415136.0.880724233][415136.0.880724227]' |
| | | SequenceElementSuffix: 'Column' |
| | | SequenceSuffix: 'Column' |
| | | } |
| | | RelationSide.LeftSide FinancialWeeklyColumn |
| | | { |
| | | #keys: '3[415136.0.880724209][415136.0.880724208][415136.0.880724210]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: FinancialWeeklyReport |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide FinancialWeeklyReport |
| | | { |
| | | #keys: '3[415136.0.880724212][415136.0.880724211][415136.0.880724213]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: FinancialWeeklyColumn |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation FinancialWeeklyReport_FinancialWeeklyRow_FinancialWeeklyRow_FinancialWeeklyReport |
| | | { |
| | | #keys: '1[415136.0.880724123]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide FinancialWeeklyRow |
| | | { |
| | | #keys: '3[415136.0.880724125][415136.0.880724124][415136.0.880724126]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: FinancialWeeklyReport |
| | | OwningSide: 'Owned' |
| | | } |
| | | RelationSide.RightSide FinancialWeeklyReport |
| | | { |
| | | #keys: '3[415136.0.880724128][415136.0.880724127][415136.0.880724129]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: FinancialWeeklyRow |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation FinancialWeeklyReport_MacroPlan_MacroPlan_FinancialWeeklyReport |
| | | { |
| | | #keys: '1[415136.0.880700289]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide MacroPlan |
| | | { |
| | | #keys: '3[415136.0.880700291][415136.0.880700290][415136.0.880700292]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: FinancialWeeklyReport |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide FinancialWeeklyReport |
| | | { |
| | | #keys: '3[415136.0.880700294][415136.0.880700293][415136.0.880700295]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: MacroPlan |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation FinancialWeeklyRow_FinancialWeeklyCell_FinancialWeeklyCell_FinancialWeeklyRow |
| | | { |
| | | #keys: '1[415136.0.880700305]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide FinancialWeeklyCell |
| | | { |
| | | #keys: '3[415136.0.880700307][415136.0.880700306][415136.0.880700308]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: FinancialWeeklyRow |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide FinancialWeeklyRow |
| | | { |
| | | #keys: '3[415136.0.880700310][415136.0.880700309][415136.0.880700311]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: FinancialWeeklyCell |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute PlanValue |
| | | { |
| | | #keys: '3[415136.0.880970239][415136.0.880970238][415136.0.880970240]' |
| | | Description: '计åå¼' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcPlanValue |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jul-5-2024 (created) |
| | | |
| | | value := ifexpr( this.FinancialProductionColumn().FinancialProductionReport().FinancialProductionSource().MacroPlan().StartOfPlanning().StartOfMonth().Date() <= this.FinancialProductionColumn().Period(), [Real]this.Value(), 0 ); |
| | | |
| | | this.PlanValue( value ); |
| | | *] |
| | | } |
| | |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return 'é¿æ¥'; |
| | | //return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
| | |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | return '大è¿'; |
| | | //return 'Assembly Plant (Spain)'; |
| | | *] |
| | | } |
| | |
| | | #parent: #root |
| | | Method GetRow ( |
| | | String salessegment, |
| | | String product, |
| | | DateTime startdate, |
| | | DateTime enddate |
| | | String product |
| | | ) as FinancialSalesRow |
| | | { |
| | | TextBody: |
| | |
| | | if( isnull( row ) ){ |
| | | row := this.FinancialSalesRow( relnew, Name := product, Unit := salessegment ); |
| | | //åå§ååå
æ ¼ |
| | | row.InitializeCell( this, startdate, enddate ); |
| | | row.InitializeCell( this ); |
| | | } |
| | | |
| | | return row; |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method InitializeCell ( |
| | | FinancialSalesReport table, |
| | | DateTime startdate, |
| | | DateTime enddate |
| | | FinancialSalesReport table |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | for( start := startdate; start < enddate; start := start.StartOfNextMonth() ){ |
| | | periodtime := start.Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime ); |
| | | |
| | | traverse( table, FinancialSalesColumn, column ){ |
| | | this.Initialize( column, this.Unit() ); |
| | | } |
| | | *] |
| | |
| | | table := source.FinancialSalesReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false ); |
| | | showtable := source.FinancialSalesReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsImport := false, IsShow := true ); |
| | | startofplanning := owner.StartOfPlanning(); |
| | | startofyear := startofplanning.StartOfYear(); |
| | | //startofyear := startofplanning.StartOfYear(); |
| | | startofnextyear := startofplanning.StartOfNextYear(); |
| | | |
| | | search := source.FinancialSalesSearch( relnew, Unit := allsalessegment, Generation := allsalessegment, MqbMlb := allsalessegment, Power := allsalessegment ); |
| | |
| | | traverse( owner, SalesDemand.astype( Forecast ), forecast, forecast.StartDate() < startofnextyear.Date() and ( ( forecast.SalesSegmentName() = ccsalessegment and forecast.Product_MP().MQBMLB() = 'MLB' ) |
| | | or forecast.SalesSegmentName() = tjsalessegment or forecast.SalesSegmentName() = fssalessegment ) ){ |
| | | product := forecast.Product_MP(); |
| | | allrow := table.GetRow( allsalessegment, product.ID(), startofyear, startofnextyear ); |
| | | allrow := table.GetRow( allsalessegment, product.ID() ); |
| | | periodtime := forecast.StartDate().StartOfMonth(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | |
| | |
| | | //ForecastçSales Segmentä¸ºé¿æ¥ï¼è¯å«åºMLBçææäº§åæ±æ» |
| | | if( forecast.SalesSegmentName() = ccsalessegment and product.MQBMLB() = 'MLB' ){ |
| | | // info( '------------------------', column.Name() ); |
| | | ccrow := table.GetRow( ccsalessegment, product.ID(), startofyear, startofnextyear ); |
| | | ccrow := table.GetRow( ccsalessegment, product.ID() ); |
| | | // info( '------------------------', ccrow.FinancialSalesCell( relsize ), column.FinancialSalesCell( relsize ) ); |
| | | ccrow.Initialize( column, forecast.Quantity() ); |
| | | }else if( forecast.SalesSegmentName() = tjsalessegment or forecast.SalesSegmentName() = fssalessegment ){ |
| | | //大è¿è´¢å¡ééï¼é¦å
å¨forecastç颿¥æ¾Sales Segmentæ¯å¤©æ´¥åä½å±±çææéæ±ï¼æ¯ä¸ªäº§åæææ±æ»éæ±æ°é |
| | | // info( '------------------------', column.Name() ); |
| | | dlrow := table.GetRow( dlsalessegment, product.ID(), startofyear, startofnextyear ); |
| | | dlrow := table.GetRow( dlsalessegment, product.ID() ); |
| | | // info( '------------------------', dlrow.FinancialSalesCell( relsize ), column.FinancialSalesCell( relsize ) ); |
| | | dlrow.Initialize( column, forecast.Quantity() ); |
| | | } |
| | |
| | | periodtime := pispip.Start().StartOfMonth().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime ); |
| | | ccrow := table.GetRow( ccsalessegment, product.ID(), startofyear, startofnextyear ); |
| | | ccrow := table.GetRow( ccsalessegment, product.ID() ); |
| | | ccrow.Initialize( column, pispip.DependentDemandAndSalesDemandQuantity() );//åTotal Demandåæ®µæææ±æ»éæ±æ°é |
| | | |
| | | allrow := table.GetRow( allsalessegment, product.ID(), startofyear, startofnextyear ); |
| | | allrow := table.GetRow( allsalessegment, product.ID() ); |
| | | allrow.Initialize( column, pispip.DependentDemandAndSalesDemandQuantity() ); |
| | | } |
| | | } |
| | |
| | | |
| | | column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime ); |
| | | traverse( trip, ProductInTrip, pit ){ |
| | | dlrow := table.GetRow( dlsalessegment, pit.ProductID(), startofyear, startofnextyear ); |
| | | dlrow := table.GetRow( dlsalessegment, pit.ProductID() ); |
| | | dlrow.Initialize( column, pit.Quantity() );//åTotal Demandåæ®µæææ±æ»éæ±æ°é |
| | | |
| | | allrow := table.GetRow( allsalessegment, pit.ProductID(), startofyear, startofnextyear ); |
| | | allrow := table.GetRow( allsalessegment, pit.ProductID() ); |
| | | allrow.Initialize( column, pit.Quantity() ); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Value |
| | | { |
| | | #keys: '3[415136.0.880700281][415136.0.880700280][415136.0.880700282]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Value |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type FinancialWeeklyCell |
| | | { |
| | | #keys: '5[415136.0.880700278][415136.0.880700276][0.0.0][415136.0.880700277][415136.0.880700279]' |
| | | BaseType: Object |
| | | Description: 'è´¢å¡å¨æ¥æ¥è¡¨åå
æ ¼' |
| | | StructuredName: 'FinancialWeeklyCells' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Index |
| | | { |
| | | #keys: '3[415136.0.880700264][415136.0.880700263][415136.0.880700265]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.880700267][415136.0.880700266][415136.0.880700268]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Period |
| | | { |
| | | #keys: '3[415136.0.880700270][415136.0.880700269][415136.0.880700271]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcIndex |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-21-2024 (created)1 |
| | | |
| | | value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 ); |
| | | |
| | | this.Index( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type FinancialWeeklyColumn |
| | | { |
| | | #keys: '5[415136.0.880700261][415136.0.880700259][0.0.0][415136.0.880700260][415136.0.880700262]' |
| | | BaseType: Object |
| | | Description: 'è´¢å¡å¨æ¥å' |
| | | StructuredName: 'FinancialWeeklyColumns' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ID |
| | | { |
| | | #keys: '3[415136.0.880700226][415136.0.880700225][415136.0.880700227]' |
| | | IsReadOnly: true |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute IsShow |
| | | { |
| | | #keys: '3[415136.0.880700229][415136.0.880700228][415136.0.880700230]' |
| | | ValueType: Boolean |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.880700232][415136.0.880700231][415136.0.880700233]' |
| | | 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 GenerateColumn ( |
| | | MacroPlan owner |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | startofplanning := owner.StartOfPlanning(); |
| | | startofyear := startofplanning.StartOfYear(); |
| | | startofnextyear := startofplanning.StartOfNextYear(); |
| | | |
| | | for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){ |
| | | periodtime := start.Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | this.FinancialWeeklyColumn( relnew, Name := periodname, Period := periodtime ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan |
| | | ) as BinaryValue |
| | | { |
| | | Description: 'ä¸è½½è´¢å¡æ¥è¡¨æ°æ®' |
| | | TextBody: |
| | | [* |
| | | |
| | | table := macroPlan.FinancialWeeklyReport(); |
| | | |
| | | xmlDOMI := XMLDOMImplementation::Create(); |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | //è¡å |
| | | rowcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | rownameelement := xmlDOM.CreateElement( "name" ); |
| | | rowtypeelement := xmlDOM.CreateElement( "type" ); |
| | | rownameelement.TextContent( '' ); |
| | | rowtypeelement.TextContent( "String" ); |
| | | rowcolumnelement.AppendChild( rownameelement ); |
| | | rowcolumnelement.AppendChild( rowtypeelement ); |
| | | |
| | | tableElement.AppendChild( rowcolumnelement ); |
| | | traverse ( table, FinancialWeeklyColumn, 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, FinancialWeeklyCell, cell, cell.FinancialWeeklyRow().RowNr() ); |
| | | |
| | | traverse ( cells, Elements, c ) { |
| | | if( column.Index() = 0 ){ |
| | | row := c.FinancialWeeklyRow(); |
| | | //è¡å |
| | | rowcellElement := xmlDOM.CreateElement( "cell" ); |
| | | rowcellElement.SetAttribute( "value", row.Name() ); |
| | | rowcolumnelement.AppendChild( rowcellElement ); |
| | | } |
| | | 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( FinancialWeeklyReport::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 GetDefaultAllUnit () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | return '<All>'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultCCUnit () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | return 'é¿æ¥'; |
| | | //return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GetDefaultDLUnit () const as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-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 'Financial weekly'; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Initialize ( |
| | | MacroPlan owner |
| | | ) |
| | | { |
| | | Description: 'åå§å' |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jul-4-2024 (created) |
| | | owner.FinancialWeeklyReport( relflush ); |
| | | ccunit := FinancialWeeklyReport::GetDefaultCCUnit(); |
| | | dlunit := FinancialWeeklyReport::GetDefaultDLUnit(); |
| | | allunit := FinancialWeeklyReport::GetDefaultAllUnit(); |
| | | defaultname := FinancialWeeklyReport::GetDefaultName(); |
| | | startofplanning := owner.StartOfPlanning(); |
| | | |
| | | table := owner.FinancialWeeklyReport( relnew, ID := defaultname, Name := defaultname ); |
| | | //äº§éæ¥è¡¨ |
| | | productiontable := selectobject( owner, FinancialProductionSource.FinancialProductionReport, report, not report.IsImport() and not report.IsShow() ); |
| | | //ééæ¥è¡¨ |
| | | salestable := selectobject( owner, FinancialSalesSource.FinancialSalesReport, report, not report.IsImport() and not report.IsShow() ); |
| | | |
| | | table.GenerateColumn( owner ); |
| | | totalproduction := table.FinancialWeeklyRow( relnew, Name := 'æ»äº§é', RowNr := 1 ); |
| | | dlproduction := table.FinancialWeeklyRow( relnew, Name := 'DL产é', RowNr := 2 ); |
| | | ccproduction := table.FinancialWeeklyRow( relnew, Name := 'CC产é', RowNr := 3 ); |
| | | totalsales := table.FinancialWeeklyRow( relnew, Name := 'æ»éé', RowNr := 4 ); |
| | | dlsales := table.FinancialWeeklyRow( relnew, Name := 'DLéé', RowNr := 5 ); |
| | | ccsales := table.FinancialWeeklyRow( relnew, Name := 'CCéé', RowNr := 6 ); |
| | | //SUM |
| | | totalpvaluesum := [Real]0; |
| | | dlpvaluesum := [Real]0; |
| | | ccpvaluesum := [Real]0; |
| | | totalsvaluesum := [Real]0; |
| | | dlsvaluesum := [Real]0; |
| | | ccsvaluesum := [Real]0; |
| | | //累计é |
| | | totalpvaluecumulant := [Real]0; |
| | | dlpvaluecumulant := [Real]0; |
| | | ccpvaluecumulant := [Real]0; |
| | | totalsvaluecumulant := [Real]0; |
| | | dlsvaluecumulant := [Real]0; |
| | | ccsvaluecumulant := [Real]0; |
| | | |
| | | traverse( table, FinancialWeeklyColumn, column ){ |
| | | productioncolumn := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() ); |
| | | salescolumn := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() ); |
| | | |
| | | //äº§éæ±æ» |
| | | totalpvalue := [Real]0; |
| | | dlpvalue := [Real]0; |
| | | ccpvalue := [Real]0; |
| | | traverse( productioncolumn, FinancialProductionCell, cell, [Real]cell.Value() > 0 ){ |
| | | unit := cell.FinancialProductionRow().Unit(); |
| | | |
| | | if( unit = allunit ){ |
| | | totalpvalue := totalpvalue + [Real]cell.Value(); |
| | | if( column.Period() = startofplanning.StartOfMonth().Date() ){ |
| | | totalpvaluecumulant := totalpvaluecumulant - cell.PlanValue(); |
| | | } |
| | | }else if( unit = dlunit ){ |
| | | dlpvalue := dlpvalue + [Real]cell.Value(); |
| | | if( column.Period() = startofplanning.StartOfMonth().Date() ){ |
| | | dlpvaluecumulant := dlpvaluecumulant - cell.PlanValue(); |
| | | } |
| | | }else if( unit = ccunit ){ |
| | | ccpvalue := ccpvalue + [Real]cell.Value(); |
| | | if( column.Period() = startofplanning.StartOfMonth().Date() ){ |
| | | ccpvaluecumulant := ccpvaluecumulant - cell.PlanValue(); |
| | | } |
| | | } |
| | | } |
| | | totalpcell := column.FinancialWeeklyCell( relnew, Value := [String]totalpvalue ); |
| | | totalproduction.FinancialWeeklyCell( relinsert, totalpcell ); |
| | | dlpcell := column.FinancialWeeklyCell( relnew, Value := [String]dlpvalue ); |
| | | dlproduction.FinancialWeeklyCell( relinsert, dlpcell ); |
| | | ccpcell := column.FinancialWeeklyCell( relnew, Value := [String]ccpvalue ); |
| | | ccproduction.FinancialWeeklyCell( relinsert, ccpcell ); |
| | | |
| | | //ééæ±æ» |
| | | totalsvalue := [Real]0; |
| | | dlsvalue := [Real]0; |
| | | ccsvalue := [Real]0; |
| | | traverse( salescolumn, FinancialSalesCell, cell, [Real]cell.Value() > 0 ){ |
| | | unit := cell.FinancialSalesRow().Unit(); |
| | | if( unit = allunit ){ |
| | | totalsvalue := totalsvalue + [Real]cell.Value(); |
| | | }else if( unit = dlunit ){ |
| | | dlsvalue := dlsvalue + [Real]cell.Value(); |
| | | }else if( unit = ccunit ){ |
| | | ccsvalue := ccsvalue + [Real]cell.Value(); |
| | | } |
| | | } |
| | | totalscell := column.FinancialWeeklyCell( relnew, Value := [String]totalsvalue ); |
| | | totalsales.FinancialWeeklyCell( relinsert, totalscell ); |
| | | dlscell := column.FinancialWeeklyCell( relnew, Value := [String]dlsvalue ); |
| | | dlsales.FinancialWeeklyCell( relinsert, dlscell ); |
| | | ccscell := column.FinancialWeeklyCell( relnew, Value := [String]ccsvalue ); |
| | | ccsales.FinancialWeeklyCell( relinsert, ccscell ); |
| | | |
| | | if( column.Period() < startofplanning.StartOfMonth().Date() ){ |
| | | totalpvaluecumulant := totalpvaluecumulant + totalpvalue; |
| | | dlpvaluecumulant := dlpvaluecumulant + dlpvalue; |
| | | ccpvaluecumulant := ccpvaluecumulant + ccpvalue; |
| | | totalsvaluecumulant := totalsvaluecumulant + totalsvalue; |
| | | dlsvaluecumulant := dlsvaluecumulant + dlsvalue; |
| | | ccsvaluecumulant := ccsvaluecumulant + ccsvalue; |
| | | } |
| | | totalpvaluesum := totalpvaluesum + totalpvalue; |
| | | dlpvaluesum := dlpvaluesum + dlpvalue; |
| | | ccpvaluesum := ccpvaluesum + ccpvalue; |
| | | totalsvaluesum := totalsvaluesum + totalsvalue; |
| | | dlsvaluesum := dlsvaluesum + dlsvalue; |
| | | ccsvaluesum := ccsvaluesum + ccsvalue; |
| | | } |
| | | sumcolumn := table.FinancialWeeklyColumn( relnew, Name := 'SUM' ); |
| | | cumulantcolumn := table.FinancialWeeklyColumn( relnew, Name := '累计é' ); |
| | | proportioncolumn := table.FinancialWeeklyColumn( relnew, Name := 'å æ¯' ); |
| | | //SUM |
| | | totalpcellsum := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluesum ); |
| | | totalproduction.FinancialWeeklyCell( relinsert, totalpcellsum ); |
| | | dlpcellsum := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluesum ); |
| | | dlproduction.FinancialWeeklyCell( relinsert, dlpcellsum ); |
| | | ccpcellsum := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluesum ); |
| | | ccproduction.FinancialWeeklyCell( relinsert, ccpcellsum ); |
| | | totalscellsum := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluesum ); |
| | | totalsales.FinancialWeeklyCell( relinsert, totalscellsum ); |
| | | dlscellsum := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluesum ); |
| | | dlsales.FinancialWeeklyCell( relinsert, dlscellsum ); |
| | | ccscellsum := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluesum ); |
| | | ccsales.FinancialWeeklyCell( relinsert, ccscellsum ); |
| | | //累计é |
| | | totalpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluecumulant ); |
| | | totalproduction.FinancialWeeklyCell( relinsert, totalpcellcumulant ); |
| | | dlpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluecumulant ); |
| | | dlproduction.FinancialWeeklyCell( relinsert, dlpcellcumulant ); |
| | | ccpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluecumulant ); |
| | | ccproduction.FinancialWeeklyCell( relinsert, ccpcellcumulant ); |
| | | totalscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluecumulant ); |
| | | totalsales.FinancialWeeklyCell( relinsert, totalscellcumulant ); |
| | | dlscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluecumulant ); |
| | | dlsales.FinancialWeeklyCell( relinsert, dlscellcumulant ); |
| | | ccscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluecumulant ); |
| | | ccsales.FinancialWeeklyCell( relinsert, ccscellcumulant ); |
| | | //å æ¯ |
| | | totalpvalueproportion := guard( ( totalpvaluecumulant / totalpvaluesum ).Format( 'N(Dec(2))' ), '0.00' ); |
| | | totalpcellproportion := proportioncolumn.FinancialWeeklyCell( relnew, Value := totalpvalueproportion ); |
| | | totalproduction.FinancialWeeklyCell( relinsert, totalpcellproportion ); |
| | | |
| | | dlpvalueproportion := guard( ( dlpvaluecumulant / dlpvaluesum ).Format( 'N(Dec(2))' ), '0.00' ); |
| | | dlpcellproportion := proportioncolumn.FinancialWeeklyCell( relnew, Value := dlpvalueproportion ); |
| | | dlproduction.FinancialWeeklyCell( relinsert, dlpcellproportion ); |
| | | |
| | | ccpvalueproportion := guard( ( ccpvaluecumulant / ccpvaluesum ).Format( 'N(Dec(2))' ), '0.00' ); |
| | | ccpcellproportion := proportioncolumn.FinancialWeeklyCell( relnew, Value := ccpvalueproportion ); |
| | | ccproduction.FinancialWeeklyCell( relinsert, ccpcellproportion ); |
| | | |
| | | totalsvalueproportion := guard( ( totalsvaluecumulant / totalsvaluesum ).Format( 'N(Dec(2))' ), '0.00' ); |
| | | totalscellproportion := proportioncolumn.FinancialWeeklyCell( relnew, Value := totalsvalueproportion ); |
| | | totalsales.FinancialWeeklyCell( relinsert, totalscellproportion ); |
| | | |
| | | dlsvalueproportion := guard( ( dlsvaluecumulant / dlsvaluesum ).Format( 'N(Dec(2))' ), '0.00' ); |
| | | dlscellproportion := proportioncolumn.FinancialWeeklyCell( relnew, Value := dlsvalueproportion ); |
| | | dlsales.FinancialWeeklyCell( relinsert, dlscellproportion ); |
| | | |
| | | ccsvalueproportion := guard( ( ccsvaluecumulant / ccsvaluesum ).Format( 'N(Dec(2))' ), '0.00' ); |
| | | ccscellproportion := proportioncolumn.FinancialWeeklyCell( relnew, Value := ccsvalueproportion ); |
| | | ccsales.FinancialWeeklyCell( relinsert, ccscellproportion ); |
| | | |
| | | info( sumcolumn.FinancialWeeklyCell( relsize ), cumulantcolumn.FinancialWeeklyCell( relsize ), proportioncolumn.FinancialWeeklyCell( relsize ) ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type FinancialWeeklyReport |
| | | { |
| | | #keys: '5[415136.0.880700223][415136.0.880700221][0.0.0][415136.0.880700222][415136.0.880700224]' |
| | | BaseType: Object |
| | | Description: 'è´¢å¡å¨æ¥æ¥è¡¨' |
| | | StructuredName: 'FinancialWeeklyReports' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[415136.0.880700246][415136.0.880700245][415136.0.880700247]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute RowNr |
| | | { |
| | | #keys: '3[415136.0.880700249][415136.0.880700248][415136.0.880700250]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type FinancialWeeklyRow |
| | | { |
| | | #keys: '5[415136.0.880700240][415136.0.880700238][0.0.0][415136.0.880700239][415136.0.880700241]' |
| | | BaseType: Object |
| | | Description: 'è´¢å¡å¨æ¥è¡' |
| | | StructuredName: 'FinancialWeeklyRows' |
| | | } |
ÎļþÃû´Ó _Main/BL/Type_InventorySummaryColumn/Attribute_Category.qbl ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Category |
| | | Attribute TimeUnit |
| | | { |
| | | #keys: '3[415136.0.865101993][415136.0.865101992][415136.0.865101994]' |
| | | Description: 'day;week;month' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GenerateCell ( |
| | | InventoryPointSelections selections, |
| | | Strings ccstockingpointids, |
| | | Strings dlstockingpointids, |
| | | InventorySummaryReport table, |
| | | Date start, |
| | | Date end, |
| | | String productid, |
| | | String allunit, |
| | | String ccunit, |
| | | String dlunit |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jul-3-2024 (created) |
| | | //All |
| | | alldetails := selectset( selections, Elements.InventoryInterfaceDataDetail, detail, detail.PartNumber() = productid and detail.Date() >= start and detail.Date() <= end ); |
| | | if( alldetails.Size() > 0 ){ |
| | | allrow := table.GetRow( allunit, productid ); |
| | | allvalue := sum( alldetails, Elements, e, e.Quantity() ); |
| | | allrow.SetCellValue( this, allvalue ); |
| | | //é¿æ¥ |
| | | ccdetails := selectset( alldetails, Elements, detail, ccstockingpointids.Find( detail.InventoryPointSelection().StockpoingPoint() ) >= 0 ); |
| | | if( ccdetails.Size() > 0 ){ |
| | | ccrow := table.GetRow( ccunit, productid ); |
| | | value := sum( ccdetails, Elements, e, e.Quantity() ); |
| | | ccrow.SetCellValue( this, value ); |
| | | } |
| | | //å¤§è¿ |
| | | dldetails := selectset( alldetails, Elements, detail, dlstockingpointids.Find( detail.InventoryPointSelection().StockpoingPoint() ) >= 0 ); |
| | | if( dldetails.Size() > 0 ){ |
| | | dlrow := table.GetRow( dlunit, productid ); |
| | | value := sum( dldetails, Elements, e, e.Quantity() ); |
| | | dlrow.SetCellValue( this, value ); |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Clear |
| | | Method Clear ( |
| | | String timeunit, |
| | | DateTime starttime, |
| | | DateTime endtime |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | |
| | | this.InventorySummaryColumn( relflush ); |
| | | this.InventroySummaryRow( relflush ); |
| | | |
| | | this.GenerateColumn( this.InventorySummarySource().MacroPlan() ); |
| | | this.GenerateColumn( this.InventorySummarySource().MacroPlan(), timeunit, starttime, endtime ); |
| | | *] |
| | | } |
| | |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | table := selectobject( this, InventorySummarySource.InventorySummaryReport, report, not report.IsShow() ); |
| | | allunit := '<All>'; |
| | | //æ¸
空ä¹ååå¨çæ¾ç¤ºæ°æ® |
| | | this.Clear(); |
| | | //è¿æ»¤åç产åid |
| | | productids := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() ) |
| | | and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() ) |
| | | and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() ); |
| | | sumrow := this.InventroySummaryRow( relnew, Name := 'SUM', Unit := search.Unit(), RowNr := table.InventroySummaryRow( relsize ) ); |
| | | traverse( table, InventroySummaryRow, row, row.Unit() = search.Unit() ){ |
| | | productid := construct( Strings ); |
| | | productid.Add( row.Name() ); |
| | | |
| | | if( productids.ContainsAll( productid ) ){ |
| | | showrow := this.InventroySummaryRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() ); |
| | | startofplanning := search.InventorySummarySource().MacroPlan().StartOfPlanning(); |
| | | startofyear := startofplanning.StartOfYear(); |
| | | startofendyear := startofplanning.StartOfNextYear() - Duration::Days( 1 ); |
| | | //æ¥è¯¢æ¥æè¿åéè¦å¨è®¡åæ¥æä¹å
|
| | | if( search.StartDate().DateTime() < startofendyear and search.EndDate().DateTime() > startofyear ){ |
| | | table := selectobject( this, InventorySummarySource.InventorySummaryReport, report, not report.IsShow() ); |
| | | allunit := '<All>'; |
| | | //æ¸
空ä¹ååå¨çæ¾ç¤ºæ°æ® |
| | | this.Clear( search.Category(), search.StartDate().DateTime(), search.EndDate().DateTime() ); |
| | | //è¿æ»¤åç产åid |
| | | productids := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() ) |
| | | and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() ) |
| | | and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() ); |
| | | sumrow := this.InventroySummaryRow( relnew, Name := 'SUM', Unit := search.Unit(), RowNr := table.InventroySummaryRow( relsize ) ); |
| | | sumrow.InitializeCell( this ); |
| | | traverse( table, InventroySummaryRow, row, row.Unit() = search.Unit() ){ |
| | | productid := construct( Strings ); |
| | | productid.Add( row.Name() ); |
| | | |
| | | traverse( row, InventorySummaryCell, cell ){ |
| | | // column := selectobject( this, InventorySummaryColumn, column, column.Name() = cell.InventorySummaryColumn().Name() ); |
| | | // |
| | | // sumcell := selectobject( column, InventorySummaryCell, c, c.InventroySummaryRow() = sumrow ); |
| | | // if( isnull( sumcell ) ){ |
| | | // sumcell := column.InventorySummaryCell( relnew, Value := '0' ); |
| | | // sumrow.InventorySummaryCell( relinsert, sumcell ); |
| | | // } |
| | | // |
| | | // showcell := column.InventorySummaryCell( relnew, Value := cell.Value() ); |
| | | // showrow.InventorySummaryCell( relinsert, showcell ); |
| | | // value := [Real]cell.Value() + [Real]sumcell.Value(); |
| | | // sumcell.Value( [String]value ); |
| | | if( productids.ContainsAll( productid ) ){ |
| | | showrow := this.InventroySummaryRow( relnew, Name := row.Name(), Unit := row.Unit(), RowNr := row.RowNr() ); |
| | | |
| | | 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() ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GenerateColumn ( |
| | | MacroPlan owner |
| | | MacroPlan owner, |
| | | String timeunit, |
| | | DateTime starttime, |
| | | DateTime endtime |
| | | ) |
| | | { |
| | | TextBody: |
| | |
| | | // çå
°é¸½ Jun-25-2024 (created) |
| | | startofplanning := owner.StartOfPlanning(); |
| | | startofyear := startofplanning.StartOfYear(); |
| | | startofnextyear := startofplanning.StartOfNextYear(); |
| | | |
| | | for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){ |
| | | startofendyear := startofplanning.StartOfNextYear() - Duration::Days( 1 ); |
| | | //æ¥è¯¢æ¥æè¿åéè¦å¨è®¡åæ¥æä¹å
|
| | | if( starttime < startofendyear and endtime > startofyear ){ |
| | | if( starttime < startofyear ){ |
| | | starttime := startofyear; |
| | | } |
| | | if( endtime > startofendyear ){ |
| | | endtime := startofendyear; |
| | | } |
| | | for( start := starttime; start <= endtime; start := start.StartOfNextDay() ){ |
| | | periodtime := start.Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | this.InventorySummaryColumn( relnew, Name := periodname, Period := periodtime ); |
| | | |
| | | 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() ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | #parent: #root |
| | | Method GetRow ( |
| | | String unit, |
| | | String product, |
| | | DateTime startdate, |
| | | DateTime enddate |
| | | String product |
| | | ) as InventroySummaryRow |
| | | { |
| | | TextBody: |
| | |
| | | if( isnull( row ) ){ |
| | | row := this.InventroySummaryRow( relnew, Name := product, Unit := unit ); |
| | | //åå§ååå
æ ¼ |
| | | row.InitializeCell( this, startdate, enddate ); |
| | | row.InitializeCell( this ); |
| | | } |
| | | |
| | | return row; |
| | |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | return 'é¿æ¥'; |
| | | //return 'China'; |
| | | //return 'Assembly Plant (France)'; |
| | | *] |
| | | } |
| | |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | return '大è¿'; |
| | | //return 'Foregin'; |
| | | //return 'Assembly Plant (Spain)'; |
| | | *] |
| | | } |
| | |
| | | TextBody: |
| | | [* |
| | | |
| | | table := selectobject( macroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() ); |
| | | table := selectobject( macroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() ); |
| | | |
| | | xmlDOMI := XMLDOMImplementation::Create(); |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); |
| | |
| | | unittypeelement.TextContent( "String" ); |
| | | unitcolumnelement.AppendChild( unitnameelement ); |
| | | unitcolumnelement.AppendChild( unittypeelement ); |
| | | //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( unitcolumnelement ); |
| | | traverse ( table, FinancialSalesColumn, column ) { |
| | | tableElement.AppendChild( attricolumnelement ); |
| | | traverse ( table, InventorySummaryColumn, column ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | | nameelement := xmlDOM.CreateElement( "name" ); |
| | | typeelement := xmlDOM.CreateElement( "type" ); |
| | |
| | | columnelement.AppendChild( nameelement ); |
| | | columnelement.AppendChild( typeelement ); |
| | | |
| | | cells := selectsortedset( column, FinancialSalesCell, cell, cell.FinancialSalesRow().RowNr() ); |
| | | cells := selectsortedset( column, InventorySummaryCell, cell, cell.InventroySummaryRow().RowNr() ); |
| | | |
| | | traverse ( cells, Elements, c ) { |
| | | if( column.Index() = 0 ){ |
| | | row := c.FinancialSalesRow(); |
| | | row := c.InventroySummaryRow(); |
| | | //Product |
| | | productcellElement := xmlDOM.CreateElement( "cell" ); |
| | | productcellElement.SetAttribute( "value", row.Name() ); |
| | | productcolumnelement.AppendChild( productcellElement ); |
| | | 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 ); |
| | | productcellElement4 := xmlDOM.CreateElement( "cell" ); |
| | | productcellElement4.SetAttribute( "value", row.Name() ); |
| | | productcolumnelement.AppendChild( productcellElement4 ); |
| | | //Unit |
| | | unitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement.SetAttribute( "value", row.Unit() ); |
| | | unitcolumnelement.AppendChild( unitcellElement ); |
| | | unitcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement1.SetAttribute( "value", row.Unit() ); |
| | | unitcolumnelement.AppendChild( unitcellElement1 ); |
| | | unitcellElement2 := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement2.SetAttribute( "value", row.Unit() ); |
| | | unitcolumnelement.AppendChild( unitcellElement2 ); |
| | | unitcellElement3 := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement3.SetAttribute( "value", row.Unit() ); |
| | | unitcolumnelement.AppendChild( unitcellElement3 ); |
| | | unitcellElement4 := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement4.SetAttribute( "value", row.Unit() ); |
| | | unitcolumnelement.AppendChild( unitcellElement4 ); |
| | | //Attribute |
| | | //ææ«åºå |
| | | endcellElement := xmlDOM.CreateElement( "cell" ); |
| | | endcellElement.SetAttribute( "value", 'EndingInventory' ); |
| | | attricolumnelement.AppendChild( endcellElement ); |
| | | //æå°åºå |
| | | mincellElement := xmlDOM.CreateElement( "cell" ); |
| | | mincellElement.SetAttribute( "value", 'MinimumInventory' ); |
| | | attricolumnelement.AppendChild( mincellElement ); |
| | | //æå¤§åºå |
| | | maxcellElement := xmlDOM.CreateElement( "cell" ); |
| | | maxcellElement.SetAttribute( "value", 'MaximumInventory' ); |
| | | attricolumnelement.AppendChild( maxcellElement ); |
| | | //å¹³ååºå |
| | | avecellElement := xmlDOM.CreateElement( "cell" ); |
| | | avecellElement.SetAttribute( "value", 'AverageInventory' ); |
| | | attricolumnelement.AppendChild( avecellElement ); |
| | | } |
| | | cellElement := xmlDOM.CreateElement( "cell" ); |
| | | cellElement.SetAttribute( "value", c.Value() ); |
| | | columnelement.AppendChild( cellElement ); |
| | | //ææ«åºå |
| | | endcellElement := xmlDOM.CreateElement( "cell" ); |
| | | endcellElement.SetAttribute( "value", [String]c.EndingInventory() ); |
| | | columnelement.AppendChild( endcellElement ); |
| | | //æå°åºå |
| | | mincellElement := xmlDOM.CreateElement( "cell" ); |
| | | mincellElement.SetAttribute( "value", [String]c.MinimumInventory() ); |
| | | columnelement.AppendChild( mincellElement ); |
| | | //æå¤§åºå |
| | | maxcellElement := xmlDOM.CreateElement( "cell" ); |
| | | maxcellElement.SetAttribute( "value", [String]c.MaximumInventory() ); |
| | | columnelement.AppendChild( maxcellElement ); |
| | | //å¹³ååºå |
| | | avecellElement := xmlDOM.CreateElement( "cell" ); |
| | | avecellElement.SetAttribute( "value", [String]c.AverageInventory() ); |
| | | columnelement.AppendChild( avecellElement ); |
| | | } |
| | | tableElement.AppendChild( columnelement ); |
| | | } |
| | |
| | | |
| | | //info( xmlString ); |
| | | |
| | | tableGroupHandle := TableGroupHandle::Create( FinancialSalesReport::GetDefaultName() ); |
| | | tableGroupHandle := TableGroupHandle::Create( InventorySummaryReport::GetDefaultName() ); |
| | | tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) ); |
| | | tableGroupHandle.Add( tableHandle ); |
| | | |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Initialize ( |
| | | MacroPlan owner |
| | | MacroPlan owner, |
| | | InterfaceDataset interface |
| | | ) |
| | | { |
| | | Description: 'åå§å' |
| | |
| | | |
| | | search := source.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() ); |
| | | |
| | | table.GenerateColumn( owner ); |
| | | |
| | | //ä»Product planningæ¥æ¾åºåç¹ä¸ºé¿æ¥è£
é
线边åºçææMQB产åï¼åTotal Demandåæ®µæææ±æ»éæ±æ°é |
| | | table.GenerateColumn( owner, 'All', startofyear, startofnextyear ); |
| | | //info( '-----------------------------------', table.InventorySummaryColumn( relsize ) ); |
| | | //åºåæ°é为Actual inventorieséé¢çç¹Planned inventoriesåæ®µåºåéå æ» |
| | | traverse( owner, Product_MP.ProductInStockingPoint_MP, pisp, pisp.IsLeaf() and not pisp.IsSystem() and ( pisp.StockingPoint_MP().UnitID() = ccunit or pisp.StockingPoint_MP().UnitID() = dlunit ) ){ |
| | | unit := pisp.StockingPoint_MP().UnitID(); |
| | | product := pisp.Product_MP(); |
| | | traverse( pisp, ProductInStockingPointInPeriod, pispip, pispip.Start() >= startofplanning |
| | | and pispip.Start() < startofnextyear and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Month() ){ |
| | | periodtime := pispip.Start().StartOfMonth().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | column := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname and column.Period() = periodtime ); |
| | | ccrow := table.GetRow( ccunit, product.ID(), startofyear, startofnextyear ); |
| | | ccrow.Initialize( column, pispip );//åTotal Demandåæ®µæææ±æ»éæ±æ°é |
| | | // info( '-----------------------------------', unit, product.ID() ); |
| | | weekpispips := construct( ProductInStockingPointInPeriods ); |
| | | monthpispips := construct( ProductInStockingPointInPeriods ); |
| | | nextweek := startofplanning.StartOfNextWeek(); |
| | | nextmonth := startofplanning.StartOfNextMonth(); |
| | | |
| | | unitrow := table.GetRow( unit, product.ID() ); |
| | | allrow := table.GetRow( allunit, product.ID() ); |
| | | pispips := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, pispip.Start() >= startofplanning and pispip.Start() < startofnextyear and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() ); |
| | | // info( '-----------------------------------', isnull( allrow ), pispips.Size() ); |
| | | traverse( pispips, Elements, pispip, pispip.Start() = startofplanning ){ |
| | | // info( '-----------------------------------', pispip.Start() ); |
| | | period := pispip.Period_MP(); |
| | | periodtime := period.Start().Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | //天ï¼éæ©æ¥é¢ç²åº¦æ¶ï¼ææ«åºåï¼æå°åºåï¼æå¤§åºååå¹³ååºåçæ°å¼ä¿æä¸è´ |
| | | daycolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Day() ); |
| | | info( daycolumn.Name(), daycolumn.Period(), daycolumn.TimeUnit() ); |
| | | unitrow.SetCellValue( daycolumn, pispip.PlannedInventoryLevelEnd() ); |
| | | allrow.SetCellValue( daycolumn, pispip.PlannedInventoryLevelEnd() ); |
| | | |
| | | //å¨ï¼éæ©å¨æ¶ï¼ææ«åºå为æ¯ä¸å¨æåä¸å¤©çæ±æ»åºåä¿¡æ¯ï¼æå°åºå为è¿ä¸å¨åºåéæå°çä¸å¤©çæ°å¼ï¼æå¤§åºå为è¿ä¸å¨åºåéæå¤§çä¸å¤©çæ°å¼ï¼å¹³ååºå为该å¨çå¹³åå¼ |
| | | if( period.Start() < nextweek ){ |
| | | weekpispips.Add( pispip ); |
| | | |
| | | allrow := table.GetRow( allunit, product.ID(), startofyear, startofnextyear ); |
| | | allrow.Initialize( column, pispip ); |
| | | weekend := nextweek - Duration::Days( 1 ); |
| | | if( period.Start() = weekend ){ |
| | | weekcolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Week() ); |
| | | |
| | | maxinventory := max( weekpispips, Elements, e, e.PlannedInventoryLevelEnd() ); |
| | | mininventory := min( weekpispips, Elements, e, e.PlannedInventoryLevelEnd() ); |
| | | aveinventory := average( weekpispips, Elements, e, e.PlannedInventoryLevelEnd() ); |
| | | unitrow.SetCellValue( weekcolumn, pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, aveinventory ); |
| | | allrow.SetCellValue( weekcolumn, pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, aveinventory ); |
| | | } |
| | | }else{ |
| | | weekpispips.Flush(); |
| | | weekpispips.Add( pispip ); |
| | | nextweek := nextweek.StartOfNextWeek(); |
| | | } |
| | | |
| | | //æï¼éæ©ææ¶ï¼ææ«åºå为æ¯ä¸ææåä¸å¤©çæ±æ»åºåä¿¡æ¯ï¼æå°åºå为è¿ä¸ä¸ªæåºåéæå°çä¸å¤©çæ°å¼ï¼æå¤§åºå为è¿ä¸ä¸ªæåºåéæå¤§çä¸å¤©çæ°å¼ï¼å¹³ååºå为该æçå¹³åå¼ |
| | | if( period.Start() < nextmonth ){ |
| | | monthpispips.Add( pispip ); |
| | | |
| | | monthend := nextmonth - Duration::Days( 1 ); |
| | | if( period.Start() = monthend ){ |
| | | monthcolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Month() ); |
| | | |
| | | maxinventory := max( monthpispips, Elements, e, e.PlannedInventoryLevelEnd() ); |
| | | mininventory := min( monthpispips, Elements, e, e.PlannedInventoryLevelEnd() ); |
| | | aveinventory := average( monthpispips, Elements, e, e.PlannedInventoryLevelEnd() ); |
| | | unitrow.SetCellValue( monthcolumn, pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, aveinventory ); |
| | | allrow.SetCellValue( monthcolumn, pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, aveinventory ); |
| | | } |
| | | }else{ |
| | | monthpispips.Flush(); |
| | | monthpispips.Add( pispip ); |
| | | nextmonth := nextmonth.StartOfNextMonth(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //é¦å
å¨Entitieséè¯å«ç¶çº§Unitä¸ºé¿æ¥/大è¿çææåºåç¹ |
| | | //é¿æ¥åºåç¹ |
| | | ccsps := construct( Strings ); |
| | | //大è¿åºåç¹ |
| | | dlsps := construct( Strings ); |
| | | allsps := construct( Strings ); |
| | | traverse( owner, Unit, unit, unit.ID() = ccunit or unit.ID() = dlunit ){ |
| | | if( unit.ID() = ccunit ){ |
| | | ccsps := selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ); |
| | | } |
| | | if( unit.ID() = dlunit ){ |
| | | dlsps := selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ); |
| | | } |
| | | allsps := allsps.Union( selectuniquevalues( unit, StockingPoint_MP, sp, sp.ID() ) ); |
| | | } |
| | | //åå¨åºåæ´æ°çåçé¢åºåç¹éæ©ä¸æ¾å°è¿äºåºåç¹æå
³èçå·²å¾éåºä½ |
| | | selections := selectset( interface, InventoryPointSelection, selection, allsps.Find( selection.StockpoingPoint() ) >= 0 and selection.IsIncluded() ); |
| | | productids := selectuniquevalues( selections, Elements, selection, selection.ProductID() ); |
| | | //æåå°è¿äºåºä½ä¸é¶ä»¶å·çæ°éè¿è¡å æ» |
| | | traverse( table, InventorySummaryColumn, column, column.Period() < startofplanning.Date() ){ |
| | | traverse( productids, Elements, productid ){ |
| | | if( column.TimeUnit() = Translations::MP_GlobalParameters_Day() ){//天 |
| | | column.GenerateCell( selections, ccsps, dlsps, table, column.Period(), column.Period(), productid, allunit, ccunit, dlunit ); |
| | | }else if( column.TimeUnit() = Translations::MP_GlobalParameters_Week() ){//å¨ |
| | | column.GenerateCell( selections, ccsps, dlsps, table, column.Period().StartOfWeek(), column.Period(), productid, allunit, ccunit, dlunit ); |
| | | }else if( column.TimeUnit() = Translations::MP_GlobalParameters_Month() ){//æ |
| | | column.GenerateCell( selections, ccsps, dlsps, table, column.Period().StartOfMonth(), column.Period(), productid, allunit, ccunit, dlunit ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | rows := selectsortedset( table, InventroySummaryRow, row, row.Name() ); |
| | | i := 0; |
| | | traverse( rows, Elements, e ){ |
| | |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := column.InventorySummaryCell( relnew ); |
| | | cell := column.InventorySummaryCell( relnew, AverageInventory := 0, EndingInventory := 0, MaximumInventory := 0, MinimumInventory := 0 ); |
| | | |
| | | this.InventorySummaryCell( relinsert, cell ); |
| | | *] |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method InitializeCell ( |
| | | InventorySummaryReport table, |
| | | DateTime startdate, |
| | | DateTime enddate |
| | | InventorySummaryReport table |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-28-2024 (created) |
| | | for( start := startdate; start < enddate; start := start.StartOfNextMonth() ){ |
| | | periodtime := start.Date(); |
| | | periodname := periodtime.Format( "M2/D2/Y" ); |
| | | column := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname and column.Period() = periodtime ); |
| | | |
| | | traverse( table, InventorySummaryColumn, column ){ |
| | | this.Initialize( column, this.Unit() ); |
| | | } |
| | | *] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetCellValue ( |
| | | InventorySummaryColumn column, |
| | | Real quantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, InventorySummaryCell, cell, cell.InventorySummaryColumn() = column ); |
| | | |
| | | cell.AverageInventory( cell.AverageInventory() + quantity ); |
| | | cell.EndingInventory( cell.EndingInventory() + quantity ); |
| | | cell.MaximumInventory( cell.MaximumInventory() + quantity ); |
| | | cell.MinimumInventory( cell.MinimumInventory() + quantity ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method SetCellValue ( |
| | | InventorySummaryColumn column, |
| | | Real endinginventory, |
| | | Real minimuminventory, |
| | | Real maximuminventory, |
| | | Real averageinventory |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // çå
°é¸½ Jun-24-2024 (created) |
| | | cell := selectobject( this, InventorySummaryCell, cell, cell.InventorySummaryColumn() = column ); |
| | | |
| | | cell.AverageInventory( cell.AverageInventory() + averageinventory ); |
| | | cell.EndingInventory( cell.EndingInventory() + endinginventory ); |
| | | cell.MaximumInventory( cell.MaximumInventory() + maximuminventory ); |
| | | cell.MinimumInventory( cell.MinimumInventory() + minimuminventory ); |
| | | *] |
| | | } |
| | |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component ButtonFinancialWeeklyReport |
| | | { |
| | | #keys: '[415136.0.882254645]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'DOCUMENT_DIRTY' |
| | | Label: 'Financial weekly report' |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ActionBarGroupReport/ButtonFinancialWeeklyReport |
| | | Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonFinancialWeeklyReport_OnClick |
| | | { |
| | | #keys: '[415136.0.882254805]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | ApplicationScope.ViewManager().ResetUserViewById( "Financial_weekly_report_view", true); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | Body: |
| | | [* |
| | | //åå§å |
| | | if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){ |
| | | //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){ |
| | | FinancialProductionSource::Initialize( MacroPlan ); |
| | | } |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := selectobject( MacroPlan, FinancialProductionSource.FinancialProductionReport, table, not table.IsImport() and table.IsShow() ); |
| | | info( '------------------2----------------', table.IsImport(), table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsImport(), table.IsShow() ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | dhSearch.Data( table.FinancialProductionSource().FinancialProductionSearch() ); |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | if( not exists( MacroPlan, FinancialSalesSource, source, not source.IsImport() ) ){ |
| | | //if( not exists( MacroPlan, FinancialSalesSource, source, not source.IsImport() ) ){ |
| | | FinancialSalesSource::Initialize( MacroPlan ); |
| | | } |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := selectobject( MacroPlan, FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and table.IsShow() ); |
| | | info( '------------------2----------------', table.IsImport(), table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsImport(), table.IsShow() ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | dhSearch.Data( table.FinancialSalesSource().FinancialSalesSearch() ); |
| | |
| | | Body: |
| | | [* |
| | | |
| | | valueString := "<All>;" + FinancialProductionReport::GetDefaultCCUnit() + ";" + FinancialProductionReport::GetDefaultDLUnit(); |
| | | valueString := "<All>;" + FinancialSalesReport::GetSalesSegmentCC() + ";" + FinancialSalesReport::GetSalesSegmentDL(); |
| | | |
| | | this.Strings( valueString ); |
| | | *] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component MatrixEditorTable |
| | | { |
| | | #keys: '[415136.0.881011903]' |
| | | BaseType: 'WebMatrixEditor' |
| | | Children: |
| | | [ |
| | | Component MatrixEditorCellTable |
| | | { |
| | | #keys: '[415136.0.881011904]' |
| | | BaseType: 'WebMatrixEditorCell' |
| | | Children: |
| | | [ |
| | | Component DataExtractorTable |
| | | { |
| | | #keys: '[415136.0.881011905]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'FinancialWeeklyReport.FinancialWeeklyColumn.FinancialWeeklyCell' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Attributes: 'Value' |
| | | Column: 'FinancialWeeklyColumn' |
| | | Row: 'FinancialWeeklyRow' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component MatrixEditorRowsTable |
| | | { |
| | | #keys: '[415136.0.881011908]' |
| | | BaseType: 'WebMatrixEditorHeaderLevel' |
| | | Children: |
| | | [ |
| | | Component DataExtractorRow |
| | | { |
| | | #keys: '[415136.0.881011909]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'FinancialWeeklyReport.FinancialWeeklyRow' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Legend: 'Name' |
| | | SortCriteria: 'RowNr' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component MatrixEditorColumnsTable |
| | | { |
| | | #keys: '[415136.0.881011912]' |
| | | BaseType: 'WebMatrixEditorHeaderLevel' |
| | | Children: |
| | | [ |
| | | Component DataExtractorColumn |
| | | { |
| | | #keys: '[415136.0.881011913]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'FinancialWeeklyReport.FinancialWeeklyColumn' |
| | | ] |
| | | } |
| | | ] |
| | | 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 PanelHeader |
| | | { |
| | | #keys: '[415136.0.881011755]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component ButtonExport |
| | | { |
| | | #keys: '[415136.0.881011811]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelTable |
| | | { |
| | | #keys: '[415136.0.881011874]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | #child: MatrixEditorTable |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component matrixEditorActionBarPageTable |
| | | { |
| | | #keys: '[415136.0.881011916]' |
| | | BaseType: 'matrixEditorActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 3 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component matrixeditorContextMenuTable |
| | | { |
| | | #keys: '[415136.0.881011919]' |
| | | BaseType: 'matrixeditorContextMenu' |
| | | Properties: |
| | | [ |
| | | Taborder: 4 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Response OnCreated () id:Response_FormFinancialWeeklyReport_OnCreated |
| | | { |
| | | #keys: '[415136.0.882110991]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnCreated' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | FinancialWeeklyReport::Initialize( MacroPlan ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelHeader/ButtonExport |
| | | Response OnClick () id:Response_PanelHeader_ButtonExport_OnClick |
| | | { |
| | | #keys: '[415136.0.882111199]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | binaryValue := FinancialWeeklyReport::Download( MacroPlan ); |
| | | |
| | | Application.Download( FinancialWeeklyReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormFinancialWeeklyReport |
| | | { |
| | | #keys: '[415136.0.881011703]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: PanelHeader |
| | | #child: PanelTable |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'DOCUMENT_DIRTY' |
| | | Title: 'Financial weekly report' |
| | | ] |
| | | } |
| | |
| | | BaseType: 'WebRadioButtonGroup' |
| | | Properties: |
| | | [ |
| | | BoundValue: 'Day' |
| | | ButtonLabels: 'Day;Week;Month' |
| | | ButtonValues: 'Day;Week;Month' |
| | | Orientation: 'horizontal' |
| | |
| | | BaseType: 'WebDateSelector' |
| | | Properties: |
| | | [ |
| | | Date: 9999-12-31 |
| | | Label: 'End date' |
| | | Taborder: 1 |
| | | ] |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | if( not isnull( MacroPlan.InventorySummarySource() ) ){ |
| | | InventorySummarySource::Initialize( MacroPlan ); |
| | | } |
| | | //if( not isnull( MacroPlan.InventorySummarySource() ) ){ |
| | | InventorySummarySource::Initialize( MacroPlan, InterfaceDataset ); |
| | | //} |
| | | //info( '------------------1----------------' ); |
| | | table := selectobject( MacroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() ); |
| | | info( '------------------2----------------', table.IsShow() ); |
| | | //info( '------------------2----------------', table.IsShow() ); |
| | | DataHolderTable.Data( table ); |
| | | |
| | | dhSearch.Data( table.InventorySummarySource().InventorySummarySearch() ); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelCategory/RadioButtonGroupUseForPlanning_545 |
| | | Response OnCreated () id:Response_PanelCategory_RadioButtonGroupUseForPlanning_OnCreated |
| | | { |
| | | #keys: '[415136.0.875614032]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnCreated' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.ButtonValues( Translations::MP_GlobalParameters_Day() + ';' + Translations::MP_GlobalParameters_Week() + ';' + Translations::MP_GlobalParameters_Month() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | Body: |
| | | [* |
| | | //æ¥ææ¹ååå·æ°æ¾ç¤º |
| | | if( dhSearch.Data().EndDate() <> this.Date() ){ |
| | | dhSearch.Data().EndDate( this.Date() ); |
| | | DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); |
| | | 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 |
| | |
| | | Body: |
| | | [* |
| | | //æ¥ææ¹ååå·æ°æ¾ç¤º |
| | | if( dhSearch.Data().StartDate() <> this.Date() ){ |
| | | dhSearch.Data().StartDate( this.Date() ); |
| | | DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); |
| | | 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 |
| | |
| | | Body: |
| | | [* |
| | | |
| | | valueString := "<All>;" + FinancialProductionReport::GetDefaultCCUnit() + ";" + FinancialProductionReport::GetDefaultDLUnit(); |
| | | valueString := "<All>;" + InventorySummaryReport::GetDefaultCCUnit() + ";" + InventorySummaryReport::GetDefaultDLUnit(); |
| | | |
| | | this.Strings( valueString ); |
| | | *] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | { |
| | | viewcontents |
| | | { |
| | | forms |
| | | { |
| | | form_FormFinancialWeeklyReport |
| | | { |
| | | title: 'QMacroPlanner::FormFinancialWeeklyReport' |
| | | shown: true |
| | | componentID: 'QMacroPlanner::FormFinancialWeeklyReport' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 15 |
| | | columnPosition: 1 |
| | | columnSpan: 13 |
| | | } |
| | | components |
| | | { |
| | | FormFinancialWeeklyReport_PanelHeader |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormFinancialWeeklyReport_PanelTable |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormFinancialWeeklyReport_MatrixEditorTable |
| | | { |
| | | gridColor: '#c4c4c4' |
| | | totalHeaderWidth: 67 |
| | | attributeHeaderWidthRatio: 0.6 |
| | | nameHeaderWidthRatio: 0.4 |
| | | columnWidth: 100 |
| | | horizontalGrid: true |
| | | verticalGrid: true |
| | | backendState |
| | | { |
| | | componentId: 'QMacroPlanner::FormFinancialWeeklyReport.MatrixEditorTable' |
| | | state |
| | | { |
| | | cells |
| | | { |
| | | attributes |
| | | { |
| | | attribute_Value |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 0 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'Value' |
| | | } |
| | | } |
| | | } |
| | | columns |
| | | { |
| | | sorting |
| | | { |
| | | criteria: "datamember:'Index'" |
| | | } |
| | | } |
| | | rows |
| | | { |
| | | sorting |
| | | { |
| | | criteria: "datamember:'RowNr'" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | userconfigurableinformation |
| | | { |
| | | } |
| | | page: '' |
| | | group: '' |
| | | index: 19 |
| | | image: 'DOCUMENT_DIRTY' |
| | | description: '' |
| | | } |
| | | formatversion: 2 |
| | | id: 'Financial_weekly_report_view' |
| | | name: 'Financial weekly report view' |
| | | isglobal: false |
| | | isroot: true |
| | | } |