xiaoding721
2024-10-16 acffa3d576342b2d24001d8410d53e6972eeb9e5
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已修改16个文件
已添加1个文件
480 ■■■■ 文件已修改
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_ImportVerification.qbl 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_ImportVerification.qbl 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewAssemblyOnlinePlanCell/StaticMethod_RefreshData.qbl 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PackagingPlanCell/StaticMethod_GenerateReport.qbl 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelHeader.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_ButtonExport696_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelHeader.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_ButtonExport570_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_ButtonSummaryExport_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPackagingPlan/Component_pHeader.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPackagingPlan/Response_pHeader_ddslFactorySelection_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ChangeLossSettingExcel/StaticMethod_Import.qbl
@@ -35,7 +35,7 @@
        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 );
@@ -48,6 +48,8 @@
          error( feedback );
        }
      }else {
        cls.StartDate( excel.StartDate() );
        cls.EndDate( excel.EndDate() );
        cls.ChangeLossNumber( [Real]excel.ChangeLossNumber() );
      }
      info( '-------------------', cls.ChangeLossNumber() );
_Main/BL/Type_FinancialProductionReport/Method_ImportVerification.qbl
@@ -6,8 +6,8 @@
  [*
    // ç”„兰鸽 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" )  ) ){
@@ -20,18 +20,18 @@
    } 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();
      }
    }
_Main/BL/Type_FinancialProductionSource/Method_AfterImport.qbl
@@ -35,21 +35,13 @@
        }
        
        //读取每一行的单元格
        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 );
@@ -57,9 +49,14 @@
            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 );
@@ -67,9 +64,14 @@
            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 );
              }
            }
          }
        }
_Main/BL/Type_FinancialProductionSource/StaticMethod_Download.qbl
@@ -1,7 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
  MacroPlan macroPlan
  MacroPlan macroPlan,
  Factorys factorys,
  ProductGenerations generations,
  ProductPowers powers,
  ProductMLBMQBs mlbmqls
) as BinaryValue
{
  Description: '下载财务报表数据'
@@ -14,6 +18,14 @@
    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" );
@@ -31,8 +43,43 @@
    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" );
@@ -56,11 +103,25 @@
          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 );  
    }
    
_Main/BL/Type_FinancialSalesReport/Method_ImportVerification.qbl
@@ -6,8 +6,8 @@
  [*
    // ç”„兰鸽 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" )  ) ){
@@ -20,20 +20,20 @@
    } 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();
      }
    }
_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
@@ -30,32 +30,30 @@
          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() );
@@ -63,9 +61,14 @@
            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 );
              }
            }
          }
        }
_Main/BL/Type_FinancialSalesSource/StaticMethod_Download.qbl
@@ -1,7 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
  MacroPlan macroPlan
  MacroPlan macroPlan,
  Factorys factorys,
  ProductGenerations generations,
  ProductPowers powers,
  ProductMLBMQBs mlbmqls
) as BinaryValue
{
  Description: '下载财务报表数据'
@@ -14,6 +18,14 @@
    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" );
@@ -31,8 +43,42 @@
    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" );
@@ -56,11 +102,25 @@
          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 );  
    }
    
_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl
@@ -1,7 +1,12 @@
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: '下载财务报表数据'
@@ -14,6 +19,14 @@
    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" );
@@ -39,9 +52,61 @@
    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" );
@@ -99,6 +164,14 @@
          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" );
@@ -117,6 +190,13 @@
        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 );  
    }
    
_Main/BL/Type_NewAssemblyOnlinePlanCell/StaticMethod_RefreshData.qbl
@@ -54,51 +54,51 @@
    }
    
    // å¤„理日历事件
    //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 );
          }
        }
      }
    }
  *]
}
_Main/BL/Type_PackagingPlanCell/StaticMethod_GenerateReport.qbl
@@ -22,15 +22,8 @@
      // åˆ›å»ºè¡Œ
      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() ) {
@@ -44,24 +37,32 @@
        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() );
        }
        
        // é•¿æ˜¥å·¥åŽ‚ç‰¹æ®Šæƒ…å†µè®¾ç½®åŒ…è£…åº“å­˜å’ŒéžåŒ…è£…åº“å­˜
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Component_PanelHeader.def
@@ -10,6 +10,7 @@
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/Response_PanelExport_369_ButtonExport696_OnClick.def
@@ -13,7 +13,7 @@
  {
    Body:
    [*
      binaryValue := FinancialProductionSource::Download( MacroPlan );
      binaryValue := FinancialProductionSource::Download( MacroPlan, dhFactorys.Data(), dhGenerations.Data(), dhPowers.Data(), dhMQBMLBs.Data() );
      
      Application.Download( FinancialProductionReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() );
    *]
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Component_PanelHeader.def
@@ -10,6 +10,7 @@
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/Response_PanelExport_ButtonExport570_OnClick.def
@@ -13,7 +13,7 @@
  {
    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 );
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/Response_PanelExport_ButtonSummaryExport_OnClick.def
@@ -13,7 +13,7 @@
  {
    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() );
    *]
_Main/UI/MacroPlannerWebApp/Component_FormPackagingPlan/Component_pHeader.def
@@ -61,7 +61,6 @@
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        InitialValue: '大连工厂'
        Label: '工厂'
        Sorting: 'none'
        Strings: '大连工厂;长春工厂'
_Main/UI/MacroPlannerWebApp/Component_FormPackagingPlan/Response_pHeader_ddslFactorySelection_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
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
  }
}