Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
| | |
| | | unit := selectobject( macroplan, Unit, unit, unit.ID() = excel.Unit() ); |
| | | feedback := ''; |
| | | if( ChangeLossSetting::ValidateInput( feedback, macroplan, null( ChangeLossSetting ), unit, product1, product2, excel.StartDate(), excel.EndDate(), excel.ChangeLossNumber() ) ){ |
| | | cls := macroplan.ChangeLossSetting( relnew, ChangeLossNumber := [Real]excel.ChangeLossNumber() ); |
| | | cls := macroplan.ChangeLossSetting( relnew, ChangeLossNumber := [Real]excel.ChangeLossNumber(), StartDate := excel.StartDate(), EndDate := excel.EndDate() ); |
| | | |
| | | cls.ProductFirst( relset, product1 ); |
| | | cls.ProductSecond( relset, product2 ); |
| | |
| | | error( feedback ); |
| | | } |
| | | }else { |
| | | cls.StartDate( excel.StartDate() ); |
| | | cls.EndDate( excel.EndDate() ); |
| | | cls.ChangeLossNumber( [Real]excel.ChangeLossNumber() ); |
| | | } |
| | | info( '-------------------', cls.ChangeLossNumber() ); |
| | |
| | | [* |
| | | // çå
°é¸½ Jun-27-2024 (created) |
| | | owner := this.FinancialProductionSource().MacroPlan(); |
| | | startofthisyear := owner.StartOfPlanning().StartOfYear().Date(); |
| | | startofnextyear := owner.StartOfPlanning().StartOfNextYear().Date(); |
| | | //startofthisyear := owner.StartOfPlanning().StartOfYear().Date(); |
| | | //startofnextyear := owner.StartOfPlanning().StartOfNextYear().Date(); |
| | | |
| | | if ( exists( this, FinancialProductionColumn, column, ( column.Index() = 0 and column.Name() <> "Product" ) or |
| | | ( column.Index() = 1 and column.Name() <> "Unit" ) ) ){ |
| | |
| | | } else { |
| | | cnv2 := StringToDate::StandardConverter(); |
| | | cnv2.SetCustomConversion(); |
| | | cnv2.CustomFormatString( "dd/MM/yyyy" ); |
| | | cnv2.CustomFormatString( "MM/dd/yyyy"); |
| | | |
| | | while ( not isnull( indexcolumn ) ) { |
| | | if ( not cnv2.CanConvert( indexcolumn.Name() ) ) { |
| | | error( Translations::MP_FinancialProductionReport_ImportIndetifyIllegalTime() ); |
| | | } |
| | | period := cnv2.Convert( indexcolumn.Name() ); |
| | | |
| | | // 夿æ¯å¦å¨è®¡å卿å
|
| | | if ( period < startofthisyear or period > startofnextyear ) { |
| | | error( Translations::MP_FinancialProductionReport_ImportIndetifyOverPeriod() ); |
| | | } |
| | | // period := cnv2.Convert( indexcolumn.Name() ); |
| | | // |
| | | // // 夿æ¯å¦å¨è®¡å卿å
|
| | | // if ( period < startofthisyear or period > startofnextyear ) { |
| | | // error( Translations::MP_FinancialProductionReport_ImportIndetifyOverPeriod() ); |
| | | // } |
| | | indexcolumn := indexcolumn.NextColumn(); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | //è¯»åæ¯ä¸è¡çåå
æ ¼ |
| | | traverse( row, FinancialProductionCell, cell, cell.FinancialProductionColumn() <> productcolumn and cell.FinancialProductionColumn() <> unitcolumn ){ |
| | | traverse( row, FinancialProductionCell, cell, cell.FinancialProductionColumn() <> productcolumn and cell.FinancialProductionColumn() <> unitcolumn and cnv2.Convert( cell.FinancialProductionColumn().Name() ) <> beforeyearday ){ |
| | | period := cnv2.Convert( cell.FinancialProductionColumn().Name() ) |
| | | tablecolumn := construct( FinancialProductionColumn ); |
| | | if( period = beforeyearday ){ |
| | | periodname := yearday.Format( "M2/D2/Y" ); |
| | | //è·å被导å
¥æ¥è¡¨çæ¥æå |
| | | tablecolumn := selectobject( table, FinancialProductionColumn, column, not column.IsDay() and column.Name() = periodname ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialProductionColumn( relnew, Name := periodname, Period := yearday.Date() ); |
| | | } |
| | | }else{ |
| | | tablecolumn := selectobject( table, FinancialProductionColumn, column, not column.IsDay() and column.Name() = cell.FinancialProductionColumn().Name() ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialProductionColumn( relnew, Name := cell.FinancialProductionColumn().Name(), Period := cnv2.Convert( cell.FinancialProductionColumn().Name() ) ); |
| | | } |
| | | periodname := yearday.Format( "M2/D2/Y" ); |
| | | //è·å被导å
¥æ¥è¡¨çæ¥æå |
| | | tablecolumn := selectobject( table, FinancialProductionColumn, column, not column.IsDay() and column.Name() = periodname ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialProductionColumn( relnew, Name := periodname, Period := yearday.Date() ); |
| | | } |
| | | //è·å被导å
¥æ¥è¡¨çåå
æ ¼ |
| | | unitcell := selectobject( unitrow, FinancialProductionCell, unitcell, unitcell.FinancialProductionColumn() = tablecolumn ); |
| | |
| | | unitcell := tablecolumn.FinancialProductionCell( relnew, Quantity := [Real]cell.Value(), Value := cell.Value() ); |
| | | unitrow.FinancialProductionCell( relinsert, unitcell ); |
| | | }else{ |
| | | if( unitcell.Quantity() <> [Real]cell.Value() ){ |
| | | unitcell.Quantity( [Real]cell.Value() ); |
| | | unitcell.IsUpdate( true ); |
| | | previouscolumn := cell.FinancialProductionColumn().PreviousColumn(); |
| | | if( period = yearday.Date() and not isnull( previouscolumn ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){ |
| | | previouscell := selectobject( row, FinancialProductionCell, previouscell, previouscell.FinancialProductionColumn() = previouscolumn ); |
| | | quantity := [Real]cell.Value() + [Real]previouscell.Value(); |
| | | if( unitcell.Quantity() <> quantity ){ |
| | | unitcell.Quantity( quantity ); |
| | | unitcell.IsUpdate( true ); |
| | | } |
| | | } |
| | | } |
| | | allcell := selectobject( allrow, FinancialProductionCell, allcell, allcell.FinancialProductionColumn() = tablecolumn ); |
| | |
| | | allcell := tablecolumn.FinancialProductionCell( relnew, Quantity := [Real]cell.Value(), Value := cell.Value() ); |
| | | allrow.FinancialProductionCell( relinsert, allcell ); |
| | | }else{ |
| | | if( allcell.Quantity() <> [Real]cell.Value() ){ |
| | | allcell.Quantity( [Real]cell.Value() ); |
| | | allcell.IsUpdate( true ); |
| | | previouscolumn := cell.FinancialProductionColumn().PreviousColumn(); |
| | | if( period = yearday.Date() and not isnull( previouscolumn ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){ |
| | | previouscell := selectobject( row, FinancialProductionCell, previouscell, previouscell.FinancialProductionColumn() = previouscolumn ); |
| | | quantity := [Real]cell.Value() + [Real]previouscell.Value(); |
| | | if( unitcell.Quantity() <> quantity ){ |
| | | allcell.Quantity( [Real]cell.Value() ); |
| | | allcell.IsUpdate( true ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan |
| | | MacroPlan macroPlan, |
| | | Factorys factorys, |
| | | ProductGenerations generations, |
| | | ProductPowers powers, |
| | | ProductMLBMQBs mlbmqls |
| | | ) as BinaryValue |
| | | { |
| | | Description: 'ä¸è½½è´¢å¡æ¥è¡¨æ°æ®' |
| | |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | //Search |
| | | searchcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | searchnameelement := xmlDOM.CreateElement( "name" ); |
| | | searchtypeelement := xmlDOM.CreateElement( "type" ); |
| | | searchnameelement.TextContent( 'Search' ); |
| | | searchtypeelement.TextContent( "String" ); |
| | | searchcolumnelement.AppendChild( searchnameelement ); |
| | | searchcolumnelement.AppendChild( searchtypeelement ); |
| | | //Product |
| | | productcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | productnameelement := xmlDOM.CreateElement( "name" ); |
| | |
| | | unitcolumnelement.AppendChild( unitnameelement ); |
| | | unitcolumnelement.AppendChild( unittypeelement ); |
| | | |
| | | tableElement.AppendChild( searchcolumnelement ); |
| | | tableElement.AppendChild( productcolumnelement ); |
| | | tableElement.AppendChild( unitcolumnelement ); |
| | | searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 4 ; |
| | | searchunitElement := xmlDOM.CreateElement( "cell" ); |
| | | searchunitElement.SetAttribute( "value", 'Unit' ); |
| | | searchcolumnelement.AppendChild( searchunitElement ); |
| | | traverse( factorys, Elements, factory ){ |
| | | searchunitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchunitcellElement.SetAttribute( "value", factory.Name() ); |
| | | searchcolumnelement.AppendChild( searchunitcellElement ); |
| | | } |
| | | searchgenerationElement := xmlDOM.CreateElement( "cell" ); |
| | | searchgenerationElement.SetAttribute( "value", 'Generation' ); |
| | | searchcolumnelement.AppendChild( searchgenerationElement ); |
| | | traverse( generations, Elements, generation ){ |
| | | generationcellElement := xmlDOM.CreateElement( "cell" ); |
| | | generationcellElement.SetAttribute( "value", generation.Generation() ); |
| | | searchcolumnelement.AppendChild( generationcellElement ); |
| | | } |
| | | searchpowerElement := xmlDOM.CreateElement( "cell" ); |
| | | searchpowerElement.SetAttribute( "value", 'Power' ); |
| | | searchcolumnelement.AppendChild( searchpowerElement ); |
| | | traverse( powers, Elements, power ){ |
| | | searchpowercellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchpowercellElement.SetAttribute( "value", power.Power() ); |
| | | searchcolumnelement.AppendChild( searchpowercellElement ); |
| | | } |
| | | searchmlbmqlElement := xmlDOM.CreateElement( "cell" ); |
| | | searchmlbmqlElement.SetAttribute( "value", 'MQBMLB' ); |
| | | searchcolumnelement.AppendChild( searchmlbmqlElement ); |
| | | traverse( mlbmqls, Elements, mlbmql ){ |
| | | searchmlbmqlcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchmlbmqlcellElement.SetAttribute( "value", mlbmql.MLBMQB() ); |
| | | searchcolumnelement.AppendChild( searchmlbmqlcellElement ); |
| | | } |
| | | |
| | | minindex := min( table, FinancialProductionColumn, column, not column.IsDay(), column.Index() ); |
| | | traverse ( table, FinancialProductionColumn, column, not column.IsDay() ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | |
| | | unitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement.SetAttribute( "value", row.Unit() ); |
| | | unitcolumnelement.AppendChild( unitcellElement ); |
| | | if( cells.Size() > searchtotal ){ |
| | | for( i := searchtotal; i < cells.Size(); i := i + 1 ){ |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", '' ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | } |
| | | } |
| | | } |
| | | cellElement := xmlDOM.CreateElement( "cell" ); |
| | | cellElement.SetAttribute( "value", c.Value() ); |
| | | columnelement.AppendChild( cellElement ); |
| | | } |
| | | if( cells.Size() < searchtotal ){ |
| | | for( i := cells.Size(); i < searchtotal; i := i + 1 ){ |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", '' ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | } |
| | | } |
| | | tableElement.AppendChild( columnelement ); |
| | | } |
| | | |
| | |
| | | [* |
| | | // çå
°é¸½ Jun-27-2024 (created) |
| | | owner := this.FinancialSalesSource().MacroPlan(); |
| | | startofthisyear := owner.StartOfPlanning().StartOfYear().Date(); |
| | | startofnextyear := owner.StartOfPlanning().StartOfNextYear().Date(); |
| | | //startofthisyear := owner.StartOfPlanning().StartOfYear().Date(); |
| | | //startofnextyear := owner.StartOfPlanning().StartOfNextYear().Date(); |
| | | |
| | | if ( exists( this, FinancialSalesColumn, column, ( column.Index() = 0 and column.Name() <> "Product" ) or |
| | | ( column.Index() = 1 and column.Name() <> "Unit" ) ) ){ |
| | |
| | | } else { |
| | | cnv2 := StringToDate::StandardConverter(); |
| | | cnv2.SetCustomConversion(); |
| | | cnv2.CustomFormatString( "dd/MM/yyyy" ); |
| | | cnv2.CustomFormatString( "MM/dd/yyyy" ); |
| | | |
| | | while ( not isnull( indexcolumn ) ) { |
| | | if ( not cnv2.CanConvert( indexcolumn.Name() ) ) { |
| | | error( Translations::MP_FinancialProductionReport_ImportIndetifyIllegalTime() ); |
| | | } |
| | | period := cnv2.Convert( indexcolumn.Name() ); |
| | | // info( "å¼å§æ¶é´ï¼", this.SalesForecastInputSource().PlanningStartDate().Format( "Y-M2-D2" ), |
| | | // "ç»ææ¶é´ï¼", this.SalesForecastInputSource().PlanningEndDate().Format( "Y-M2-D2" ), |
| | | // "åæ¶é´ï¼", cnv2.Convert( indexColumn.name() ).Format( "Y-M2-D2" ) ); |
| | | // 夿æ¯å¦å¨è®¡å卿å
|
| | | if ( period < startofthisyear or period > startofnextyear ) { |
| | | error( Translations::MP_FinancialProductionReport_ImportIndetifyOverPeriod() ); |
| | | } |
| | | // period := cnv2.Convert( indexcolumn.Name() ); |
| | | // // info( "å¼å§æ¶é´ï¼", this.SalesForecastInputSource().PlanningStartDate().Format( "Y-M2-D2" ), |
| | | // // "ç»ææ¶é´ï¼", this.SalesForecastInputSource().PlanningEndDate().Format( "Y-M2-D2" ), |
| | | // // "åæ¶é´ï¼", cnv2.Convert( indexColumn.name() ).Format( "Y-M2-D2" ) ); |
| | | // // 夿æ¯å¦å¨è®¡å卿å
|
| | | // if ( period < startofthisyear or period > startofnextyear ) { |
| | | // error( Translations::MP_FinancialProductionReport_ImportIndetifyOverPeriod() ); |
| | | // } |
| | | indexcolumn := indexcolumn.NextColumn(); |
| | | } |
| | | } |
| | |
| | | allrow := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit ); |
| | | } |
| | | |
| | | traverse( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn ){ |
| | | traverse( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn and cnv2.Convert( cell.FinancialSalesColumn().Name() ) <> beforeyearday ){ |
| | | column := cell.FinancialSalesColumn(); |
| | | period := cnv2.Convert( column.Name() ) |
| | | periodname := period.Format( "M2/D2/Y" ) |
| | | |
| | | tablecolumn := construct( FinancialSalesColumn ); |
| | | if( period = beforeyearday ){ |
| | | periodname := yearday.Format( "M2/D2/Y" ); |
| | | //è·å被导å
¥æ¥è¡¨çæ¥æå |
| | | tablecolumn := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() ); |
| | | } |
| | | }else{ |
| | | tablecolumn := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = column.Name() ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialSalesColumn( relnew, Name := column.Name(), Period := cnv2.Convert( column.Name() ) ); |
| | | } |
| | | //è·å被导å
¥æ¥è¡¨çæ¥æå |
| | | tablecolumn := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname ); |
| | | if( isnull( tablecolumn ) ){ |
| | | tablecolumn := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() ); |
| | | } |
| | | unitcell := selectobject( unitrow, FinancialSalesCell, unitcell, unitcell.FinancialSalesColumn().Name() = column.Name() ); |
| | | if( isnull( unitcell ) ){ |
| | | unitcell := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() ); |
| | | unitrow.FinancialSalesCell( relinsert, unitcell ); |
| | | }else{ |
| | | if( unitcell.Value() <> cell.Value() ){ |
| | | unitcell.Value( cell.Value() ); |
| | | unitcell.IsUpdate( true ); |
| | | previouscolumn := cell.FinancialSalesColumn().PreviousColumn(); |
| | | if( period = yearday.Date() and not isnull( previouscolumn ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){ |
| | | previouscell := selectobject( row, FinancialSalesCell, previouscell, previouscell.FinancialSalesColumn() = previouscolumn ); |
| | | quantity := [Real]cell.Value() + [Real]previouscell.Value(); |
| | | if( [Real]unitcell.Value() <> quantity ){ |
| | | unitcell.Value( [String]( [Number]cell.Value() ) ); |
| | | unitcell.IsUpdate( true ); |
| | | } |
| | | } |
| | | } |
| | | allcell := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn().Name() = column.Name() ); |
| | |
| | | allcell := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() ); |
| | | allrow.FinancialSalesCell( relinsert, allcell ); |
| | | }else{ |
| | | if( allcell.Value() <> cell.Value() ){ |
| | | allcell.Value( cell.Value() ); |
| | | allcell.IsUpdate( true ); |
| | | previouscolumn := cell.FinancialSalesColumn().PreviousColumn(); |
| | | if( period = yearday.Date() and not isnull( previouscolumn ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){ |
| | | previouscell := selectobject( row, FinancialSalesCell, previouscell, previouscell.FinancialSalesColumn() = previouscolumn ); |
| | | quantity := [Real]cell.Value() + [Real]previouscell.Value(); |
| | | if( [Real]allcell.Value() <> quantity ){ |
| | | allcell.Value( [String]( [Number]cell.Value() ) ); |
| | | allcell.IsUpdate( true ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan |
| | | MacroPlan macroPlan, |
| | | Factorys factorys, |
| | | ProductGenerations generations, |
| | | ProductPowers powers, |
| | | ProductMLBMQBs mlbmqls |
| | | ) as BinaryValue |
| | | { |
| | | Description: 'ä¸è½½è´¢å¡æ¥è¡¨æ°æ®' |
| | |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | //Search |
| | | searchcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | searchnameelement := xmlDOM.CreateElement( "name" ); |
| | | searchtypeelement := xmlDOM.CreateElement( "type" ); |
| | | searchnameelement.TextContent( 'Search' ); |
| | | searchtypeelement.TextContent( "String" ); |
| | | searchcolumnelement.AppendChild( searchnameelement ); |
| | | searchcolumnelement.AppendChild( searchtypeelement ); |
| | | //Product |
| | | productcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | productnameelement := xmlDOM.CreateElement( "name" ); |
| | |
| | | unitcolumnelement.AppendChild( unitnameelement ); |
| | | unitcolumnelement.AppendChild( unittypeelement ); |
| | | |
| | | tableElement.AppendChild( searchcolumnelement ); |
| | | tableElement.AppendChild( productcolumnelement ); |
| | | tableElement.AppendChild( unitcolumnelement ); |
| | | searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 4 ; |
| | | searchunitElement := xmlDOM.CreateElement( "cell" ); |
| | | searchunitElement.SetAttribute( "value", 'Unit' ); |
| | | searchcolumnelement.AppendChild( searchunitElement ); |
| | | traverse( factorys, Elements, factory ){ |
| | | searchunitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchunitcellElement.SetAttribute( "value", factory.Name() ); |
| | | searchcolumnelement.AppendChild( searchunitcellElement ); |
| | | } |
| | | searchgenerationElement := xmlDOM.CreateElement( "cell" ); |
| | | searchgenerationElement.SetAttribute( "value", 'Generation' ); |
| | | searchcolumnelement.AppendChild( searchgenerationElement ); |
| | | traverse( generations, Elements, generation ){ |
| | | generationcellElement := xmlDOM.CreateElement( "cell" ); |
| | | generationcellElement.SetAttribute( "value", generation.Generation() ); |
| | | searchcolumnelement.AppendChild( generationcellElement ); |
| | | } |
| | | searchpowerElement := xmlDOM.CreateElement( "cell" ); |
| | | searchpowerElement.SetAttribute( "value", 'Power' ); |
| | | searchcolumnelement.AppendChild( searchpowerElement ); |
| | | traverse( powers, Elements, power ){ |
| | | searchpowercellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchpowercellElement.SetAttribute( "value", power.Power() ); |
| | | searchcolumnelement.AppendChild( searchpowercellElement ); |
| | | } |
| | | searchmlbmqlElement := xmlDOM.CreateElement( "cell" ); |
| | | searchmlbmqlElement.SetAttribute( "value", 'MQBMLB' ); |
| | | searchcolumnelement.AppendChild( searchmlbmqlElement ); |
| | | traverse( mlbmqls, Elements, mlbmql ){ |
| | | searchmlbmqlcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchmlbmqlcellElement.SetAttribute( "value", mlbmql.MLBMQB() ); |
| | | searchcolumnelement.AppendChild( searchmlbmqlcellElement ); |
| | | } |
| | | minindex := min( table, FinancialSalesColumn, column, not column.IsDay(), column.Index() ); |
| | | traverse ( table, FinancialSalesColumn, column, not column.IsDay() ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | |
| | | unitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | unitcellElement.SetAttribute( "value", row.Unit() ); |
| | | unitcolumnelement.AppendChild( unitcellElement ); |
| | | if( cells.Size() > searchtotal ){ |
| | | for( i := searchtotal; i < cells.Size(); i := i + 1 ){ |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", '' ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | } |
| | | } |
| | | } |
| | | cellElement := xmlDOM.CreateElement( "cell" ); |
| | | cellElement.SetAttribute( "value", c.Value() ); |
| | | columnelement.AppendChild( cellElement ); |
| | | } |
| | | if( cells.Size() < searchtotal ){ |
| | | for( i := cells.Size(); i < searchtotal; i := i + 1 ){ |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", '' ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | } |
| | | } |
| | | tableElement.AppendChild( columnelement ); |
| | | } |
| | | |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Download ( |
| | | MacroPlan macroPlan |
| | | MacroPlan macroPlan, |
| | | Factorys factorys, |
| | | ProductGenerations generations, |
| | | ProductPowers powers, |
| | | ProductMLBMQBs mlbmqls, |
| | | InventorySummarySearch search |
| | | ) as BinaryValue |
| | | { |
| | | Description: 'ä¸è½½è´¢å¡æ¥è¡¨æ°æ®' |
| | |
| | | xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' ); |
| | | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | //Search |
| | | searchcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | searchnameelement := xmlDOM.CreateElement( "name" ); |
| | | searchtypeelement := xmlDOM.CreateElement( "type" ); |
| | | searchnameelement.TextContent( 'Search' ); |
| | | searchtypeelement.TextContent( "String" ); |
| | | searchcolumnelement.AppendChild( searchnameelement ); |
| | | searchcolumnelement.AppendChild( searchtypeelement ); |
| | | //Product |
| | | productcolumnelement := xmlDOM.CreateElement( "column" ); |
| | | productnameelement := xmlDOM.CreateElement( "name" ); |
| | |
| | | attricolumnelement.AppendChild( attrinameelement ); |
| | | attricolumnelement.AppendChild( attritypeelement ); |
| | | |
| | | tableElement.AppendChild( searchcolumnelement ); |
| | | tableElement.AppendChild( productcolumnelement ); |
| | | tableElement.AppendChild( unitcolumnelement ); |
| | | tableElement.AppendChild( attricolumnelement ); |
| | | searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 10 ; |
| | | searchunitElement := xmlDOM.CreateElement( "cell" ); |
| | | searchunitElement.SetAttribute( "value", 'Unit' ); |
| | | searchcolumnelement.AppendChild( searchunitElement ); |
| | | traverse( factorys, Elements, factory ){ |
| | | searchunitcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchunitcellElement.SetAttribute( "value", factory.Name() ); |
| | | searchcolumnelement.AppendChild( searchunitcellElement ); |
| | | } |
| | | searchgenerationElement := xmlDOM.CreateElement( "cell" ); |
| | | searchgenerationElement.SetAttribute( "value", 'Generation' ); |
| | | searchcolumnelement.AppendChild( searchgenerationElement ); |
| | | traverse( generations, Elements, generation ){ |
| | | generationcellElement := xmlDOM.CreateElement( "cell" ); |
| | | generationcellElement.SetAttribute( "value", generation.Generation() ); |
| | | searchcolumnelement.AppendChild( generationcellElement ); |
| | | } |
| | | searchpowerElement := xmlDOM.CreateElement( "cell" ); |
| | | searchpowerElement.SetAttribute( "value", 'Power' ); |
| | | searchcolumnelement.AppendChild( searchpowerElement ); |
| | | traverse( powers, Elements, power ){ |
| | | searchpowercellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchpowercellElement.SetAttribute( "value", power.Power() ); |
| | | searchcolumnelement.AppendChild( searchpowercellElement ); |
| | | } |
| | | searchmlbmqlElement := xmlDOM.CreateElement( "cell" ); |
| | | searchmlbmqlElement.SetAttribute( "value", 'MQBMLB' ); |
| | | searchcolumnelement.AppendChild( searchmlbmqlElement ); |
| | | traverse( mlbmqls, Elements, mlbmql ){ |
| | | searchmlbmqlcellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchmlbmqlcellElement.SetAttribute( "value", mlbmql.MLBMQB() ); |
| | | searchcolumnelement.AppendChild( searchmlbmqlcellElement ); |
| | | } |
| | | searchstartdateElement := xmlDOM.CreateElement( "cell" ); |
| | | searchstartdateElement.SetAttribute( "value", 'Start date' ); |
| | | searchcolumnelement.AppendChild( searchstartdateElement ); |
| | | searchstartdatecellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchstartdatecellElement.SetAttribute( "value", search.StartDate().Format( 'M2/D2/Y' ) ); |
| | | searchcolumnelement.AppendChild( searchstartdatecellElement ); |
| | | searchenddateElement := xmlDOM.CreateElement( "cell" ); |
| | | searchenddateElement.SetAttribute( "value", 'End date' ); |
| | | searchcolumnelement.AppendChild( searchenddateElement ); |
| | | searchenddatecellElement := xmlDOM.CreateElement( "cell" ); |
| | | searchenddatecellElement.SetAttribute( "value", search.EndDate().Format( 'M2/D2/Y' ) ); |
| | | searchcolumnelement.AppendChild( searchenddatecellElement ); |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", 'Periods' ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", search.Category() ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | traverse ( table, InventorySummaryColumn, column ) { |
| | | columnelement := xmlDOM.CreateElement( "column" ); |
| | | nameelement := xmlDOM.CreateElement( "name" ); |
| | |
| | | avecellElement := xmlDOM.CreateElement( "cell" ); |
| | | avecellElement.SetAttribute( "value", 'å¹³ååºå' );//AverageInventory |
| | | attricolumnelement.AppendChild( avecellElement ); |
| | | |
| | | if( cells.Size() > searchtotal ){ |
| | | for( i := searchtotal; i < cells.Size(); i := i + 1 ){ |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", '' ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | } |
| | | } |
| | | } |
| | | //ææ«åºå |
| | | endcellElement := xmlDOM.CreateElement( "cell" ); |
| | |
| | | avecellElement.SetAttribute( "value", [String]c.AverageInventory() ); |
| | | columnelement.AppendChild( avecellElement ); |
| | | } |
| | | if( cells.Size() < searchtotal ){ |
| | | for( i := cells.Size(); i < searchtotal; i := i + 1 ){ |
| | | searchcellElement1 := xmlDOM.CreateElement( "cell" ); |
| | | searchcellElement1.SetAttribute( "value", '' ); |
| | | searchcolumnelement.AppendChild( searchcellElement1 ); |
| | | } |
| | | } |
| | | tableElement.AppendChild( columnelement ); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | // å¤çæ¥åäºä»¶ |
| | | //pls := selectuniquevalues( macroPlan, AssemblyOnlinePlanRow, tempAOPR, true, tempAOPR.ProductionLine() ); |
| | | //traverse ( pls, Elements, pl ) { |
| | | // targetQuantity := ifexpr( pl = "CC MoMo", guard( macroPlan.AssemblyOnlineQuantity().CCMoMo(), 0 ), |
| | | // ifexpr( pl = "DL MoMo", guard( macroPlan.AssemblyOnlineQuantity().DLMoMo(), 0 ), guard( macroPlan.AssemblyOnlineQuantity().DLZKM(), 0 ) ) |
| | | // ); |
| | | // |
| | | // u := select( macroPlan, Unit, tempU, tempU.ID() = pl ); |
| | | // drainPs := selectset( u, UnitCalendar.Participation, tempP, guard( tempP.Event().Subject().Regex( "æç©º" ), false ) ); |
| | | // lineLyingPs := selectset( u, UnitCalendar.Participation, tempP, guard( tempP.Event().Subject().Regex( "éºçº¿" ), false ) ); |
| | | // |
| | | // // å¤çæç©º |
| | | pls := selectuniquevalues( macroPlan, NewAssemblyOnlinePlanRow, tempNAOPR, true, tempNAOPR.ProductionLine() ); |
| | | traverse ( pls, Elements, pl ) { |
| | | targetQuantity := ifexpr( pl = "CC MoMo", guard( macroPlan.AssemblyOnlineQuantity().CCMoMo(), 0 ), |
| | | ifexpr( pl = "DL MoMo", guard( macroPlan.AssemblyOnlineQuantity().DLMoMo(), 0 ), guard( macroPlan.AssemblyOnlineQuantity().DLZKM(), 0 ) ) |
| | | ); |
| | | |
| | | u := select( macroPlan, Unit, tempU, tempU.ID() = pl ); |
| | | drainPs := selectset( u, UnitCalendar.Participation, tempP, guard( tempP.Event().Subject().Regex( "æç©º" ), false ) ); |
| | | lineLyingPs := selectset( u, UnitCalendar.Participation, tempP, guard( tempP.Event().Subject().Regex( "éºçº¿" ), false ) ); |
| | | |
| | | // å¤çæç©º |
| | | // info( "å½å产线ï¼", pl, " å¤çæç©º--------------------------" ); |
| | | // traverse ( drainPs, Elements, p ) { |
| | | // traverse ( p, ExplicitTimeInterval, eti ) { |
| | | traverse ( drainPs, Elements, p ) { |
| | | traverse ( p, ExplicitTimeInterval, eti ) { |
| | | // info( "å¼å§æ¶é´ï¼", eti.Start().Format( "Y-M2-D2" ), " ç»ææ¶é´ï¼", eti.End().Format( "Y-M2-D2" ) ); |
| | | // // åä¸å¤©æ¥å |
| | | // aopc := select( macroPlan, AssemblyOnlinePlanColumn, tempAOPC, tempAOPC.ColumnDate() = ( eti.Start().Date() - 1 ) ); |
| | | // info( "éè¦æç©ºçä¸çº¿è®¡åæ¶é´ï¼", aopc.ColumnDate().Format( "Y-M2-D2" ) ); |
| | | // aoprs := selectset( macroPlan, AssemblyOnlinePlanRow, tempAOPR, tempAOPR.ProductionLine() = pl and tempAOPR.Type() = "2" and |
| | | // exists( tempAOPR, AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanColumn() = aopc and tempAOPC.Value() <> "" ) ); |
| | | // aopr := maxselect( aoprs, Elements.AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanColumn() = aopc, |
| | | // [Number]tempAOPC.Value().ReplaceAll( "#0", "" ) ); |
| | | // cell := select( macroPlan, AssemblyOnlinePlanRow.AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanRow().ProductionLine() = pl and tempAOPC.AssemblyOnlinePlanColumn() = aopc and |
| | | // tempAOPC.AssemblyOnlinePlanRow().Type() = "1" and tempAOPC.AssemblyOnlinePlanRow().ProductID() = aopr.AssemblyOnlinePlanRow().ProductID() ); |
| | | // |
| | | // cell.Value( [String] ( [Number]cell.Value() - targetQuantity ) ); |
| | | // } |
| | | // } |
| | | // |
| | | // info( "å½å产线ï¼", pl, " å¤çéºçº¿--------------------------" ); |
| | | // // å¤çéºçº¿ |
| | | // traverse ( lineLyingPs, Elements, p ) { |
| | | // traverse ( p, ExplicitTimeInterval, eti ) { |
| | | // info( "å¼å§æ¶é´ï¼", eti.Start().Format( "Y-M2-D2" ), " ç»ææ¶é´ï¼", eti.End().Format( "Y-M2-D2" ) ); |
| | | // info( "éè¦éºçº¿çä¸çº¿è®¡åæ¶é´ï¼", eti.Start().Format( "Y-M2-D2" ) ); |
| | | // aopc := select( macroPlan, AssemblyOnlinePlanColumn, tempAOPC, tempAOPC.ColumnDate() = eti.Start().Date() ); |
| | | // aoprs := selectset( macroPlan, AssemblyOnlinePlanRow, tempAOPR, tempAOPR.ProductionLine() = pl and tempAOPR.Type() = "2" and |
| | | // exists( tempAOPR, AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanColumn() = aopc and tempAOPC.Value() <> "" ) ); |
| | | // aopr := minselect( aoprs, Elements.AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanColumn() = aopc, |
| | | // [Number]tempAOPC.Value().ReplaceAll( "#0", "" ) ); |
| | | // cell := select( macroPlan, AssemblyOnlinePlanRow.AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanRow().ProductionLine() = pl and tempAOPC.AssemblyOnlinePlanColumn() = aopc and |
| | | // tempAOPC.AssemblyOnlinePlanRow().Type() = "1" and tempAOPC.AssemblyOnlinePlanRow().ProductID() = aopr.AssemblyOnlinePlanRow().ProductID() ); |
| | | // cell.Value( [String] ( [Number]cell.Value() + targetQuantity ) ); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | cell := maxselect( macroPlan, NewAssemblyOnlinePlanRow.NewAssemblyOnlinePlanCell, tempNAOPCell, |
| | | tempNAOPCell.NewAssemblyOnlinePlanRow().ProductionLine() = pl and |
| | | tempNAOPCell.NewAssemblyOnlinePlanColumn().StartDate() = ( eti.Start().Date() - 1 ) and |
| | | tempNAOPCell.NewAssemblyOnlinePlanRow().Type() = "1", |
| | | tempNAOPCell.OrderNr() ); |
| | | |
| | | if ( not isnull( cell ) ) { |
| | | cell.Quantity( cell.Quantity() - targetQuantity ); |
| | | } |
| | | } |
| | | } |
| | | |
| | | info( "å½å产线ï¼", pl, " å¤çéºçº¿--------------------------" ); |
| | | // å¤çéºçº¿ |
| | | traverse ( lineLyingPs, Elements, p ) { |
| | | traverse ( p, ExplicitTimeInterval, eti ) { |
| | | info( "å¼å§æ¶é´ï¼", eti.Start().Format( "Y-M2-D2" ), " ç»ææ¶é´ï¼", eti.End().Format( "Y-M2-D2" ) ); |
| | | |
| | | cell := minselect( macroPlan, NewAssemblyOnlinePlanRow.NewAssemblyOnlinePlanCell, tempNAOPCell, |
| | | tempNAOPCell.NewAssemblyOnlinePlanRow().ProductionLine() = pl and |
| | | tempNAOPCell.NewAssemblyOnlinePlanColumn().StartDate() = eti.Start().Date() and |
| | | tempNAOPCell.NewAssemblyOnlinePlanRow().Type() = "1" and |
| | | tempNAOPCell.OrderNr() > 0, |
| | | tempNAOPCell.OrderNr() ); |
| | | if ( not isnull( cell ) ) { |
| | | cell.Quantity( cell.Quantity() + targetQuantity ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | // åå»ºè¡ |
| | | ppr := select( macroPlan, PackagingPlanRow, tempPPR, tempPPR.ProductID() = pisp.ProductID() and tempPPR.Factory() = factory ); |
| | | if ( isnull( ppr ) ) { |
| | | ppr := macroPlan.PackagingPlanRow( relnew, ProductID := pisp.ProductID(), StockingPointID := pisp.StockingPointID(), Factory := factory, Category := guard( pisp.Product_MP().ParentID(), "" ) ); |
| | | ppr := macroPlan.PackagingPlanRow( relnew, ProductID := pisp.ProductID(), Factory := factory, Category := guard( pisp.Product_MP().ParentID(), "" ) ); |
| | | } |
| | | |
| | | // åºåå°åºåç¹Trip |
| | | originTrips := selectset( macroPlan, Unit.Lane.LaneLeg.Trip, tempT, tempT.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().ID().Regex( factoryAbbreviation ) and |
| | | TransferPlanRow::IdentifyTheFactory( tempT.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ) <> TransferPlanRow::IdentifyTheFactory( tempT.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ) ); |
| | | // ç®çå°åºåç¹Trip |
| | | destinationTrips := selectset( macroPlan, Unit.Lane.LaneLeg.Trip, tempT, tempT.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID().Regex( factoryAbbreviation ) and |
| | | TransferPlanRow::IdentifyTheFactory( tempT.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ) <> TransferPlanRow::IdentifyTheFactory( tempT.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ) ); |
| | | |
| | | // 循ç¯pispippl |
| | | traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispipl, not pispipl.IsPeriodFrozen() ) { |
| | |
| | | cell := select( ppr, PackagingPlanCell, tempPPCell, tempPPCell.PackagingPlanColumn() = ppc ); |
| | | if ( isnull( cell ) ) { |
| | | cell := ppr.PackagingPlanCell( relnew ); |
| | | cell.NetDemand( pispipl.DependentDemandAndSalesDemandQuantity() - pispipl.NewSupplyQuantity() ); |
| | | cell.NetDemand( pispipl.InventoryLevelEnd() + pispipl.NewSupplyQuantity() - pispipl.DependentDemandAndSalesDemandQuantity() ); |
| | | cell.EndingInventory( pispipl.InventoryLevelEnd() ); |
| | | cell.PackagingPlanColumn( relset, ppc ); |
| | | } else { |
| | | cell.NetDemand( cell.NetDemand() + ( pispipl.DependentDemandAndSalesDemandQuantity() - pispipl.NewSupplyQuantity() ) ); |
| | | cell.NetDemand( cell.NetDemand() + ( pispipl.InventoryLevelEnd() + pispipl.NewSupplyQuantity() - pispipl.DependentDemandAndSalesDemandQuantity() ) ); |
| | | cell.EndingInventory( cell.EndingInventory() + pispipl.InventoryLevelEnd() ); |
| | | } |
| | | |
| | | // 设置è°åº |
| | | outs := selectset( originTrips, Elements, tempT, tempT.Departure().Date() = pispipl.Start().Date() ); |
| | | traverse ( outs, Elements.ProductInTrip, outPIT, outPIT.ProductID() = pisp.ProductID() ) { |
| | | cell.Out( cell.Out() + outPIT.Quantity() ); |
| | | traverse ( pispipl, AsDeparturePISPIP, pit, |
| | | pit.Quantity() > 0 and |
| | | pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().ID().Regex( factoryAbbreviation ) and |
| | | TransferPlanRow::IdentifyTheFactory( pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ) <> TransferPlanRow::IdentifyTheFactory( pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ) |
| | | ) |
| | | { |
| | | cell.Out( cell.Out() + pit.Quantity() ); |
| | | } |
| | | |
| | | // 设置è°è¿ |
| | | transferIns := selectset( destinationTrips, Elements, tempT, tempT.Arrival().Date() = pispipl.Start().Date() ); |
| | | traverse ( transferIns, Elements.ProductInTrip, tiPIT, tiPIT.ProductID() = pisp.ProductID() ) { |
| | | cell.TransferIn( cell.TransferIn() + tiPIT.Quantity() ); |
| | | traverse ( pispipl, AsArrivalPISPIP, pit, |
| | | pit.Quantity() > 0 and |
| | | pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID().Regex( factoryAbbreviation ) and |
| | | TransferPlanRow::IdentifyTheFactory( pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ) <> TransferPlanRow::IdentifyTheFactory( pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ) |
| | | ) |
| | | { |
| | | cell.TransferIn( cell.TransferIn() + pit.Quantity() ); |
| | | } |
| | | |
| | | // é¿æ¥å·¥åç¹æ®æ
åµè®¾ç½®å
è£
åºååéå
è£
åºå |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | binaryValue := FinancialProductionSource::Download( MacroPlan ); |
| | | binaryValue := FinancialProductionSource::Download( MacroPlan, dhFactorys.Data(), dhGenerations.Data(), dhPowers.Data(), dhMQBMLBs.Data() ); |
| | | |
| | | Application.Download( FinancialProductionReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() ); |
| | | *] |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | binaryValue := FinancialSalesSource::Download( MacroPlan ); |
| | | binaryValue := FinancialSalesSource::Download( MacroPlan, dhFactorys.Data(), dhGenerations.Data(), dhPowers.Data(), dhMQBMLBs.Data() ); |
| | | |
| | | Application.Download( FinancialSalesReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() ); |
| | | //owner.FinancialSalesSource( relflush ); |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | binaryValue := InventorySummarySource::Download( MacroPlan ); |
| | | binaryValue := InventorySummarySource::Download( MacroPlan, dhFactorys.Data(), dhGenerations.Data(), dhPowers.Data(), dhMQBMLBs.Data(), dhSearch.Data() ); |
| | | |
| | | Application.Download( InventorySummaryReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() ); |
| | | *] |
| | |
| | | BaseType: 'WebDropDownStringList' |
| | | Properties: |
| | | [ |
| | | InitialValue: '大è¿å·¥å' |
| | | Label: 'å·¥å' |
| | | Sorting: 'none' |
| | | Strings: '大è¿å·¥å;é¿æ¥å·¥å' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pHeader/ddslFactorySelection |
| | | Response OnCreated () id:Response_pHeader_ddslFactorySelection_OnCreated |
| | | { |
| | | #keys: '[413988.1.1602019]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnCreated' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.Text( dhSelectedFactory.Data() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |