lazhen
2024-10-29 4419b51e5cfed824ca592ae5cba7654994ee005d
下线计划存档前端
已复制2个文件
已重命名1个文件
已修改18个文件
已添加35个文件
已删除4个文件
1421 ■■■■ 文件已修改
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_GenerateData.qbl 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GenerateData.qbl 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonOfflinePlanArchiveRe.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPublish_ButtonPublish_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll#720.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan#679.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContent.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand#462.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan#119.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan#520.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan#780.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnOk_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_720_cbAll_OnChanged.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/_ROOT_Component_DialogPublishPlan.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Method_OnOK.def 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnOk_OnClick.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_ddslMQBMLB_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_937_ddslProduct_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelGeneration.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelGeneration743.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelProduct.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration743_ddslGeneration859_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration_ddslGeneration_OnSelectionChanged#187.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelMLBMQB_ddslMQBMLB_OnSelectionChanged#456.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelPower_ddslPower_OnSelectionChanged#136.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelProduct_ddslProduct_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/_ROOT_Component_FormCustomerDemandPPAIDS.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelHeader.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelPeriod#858.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProductLine#603.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTable.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelUnit#844.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_matrixEditorActionBarPageTable.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_matrixeditorContextMenuTable.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_858_DateSelectorEnd_OnChanged.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_858_DateSelectorStart_OnChanged.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_603_ddslMQBMLB_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_603_ddslMQBMLB_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnCreated.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/_ROOT_Component_FormOfflinePlanArchive.def 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Offline__plan_archive_report.vw 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
@@ -51,25 +51,25 @@
      }
    }
    
    //traverse( version, OfflinePlanTable, table ){
    //  traverse( table, OfflinePlanColumn, column, column.ColumnDate() >= startdate and column.ColumnDate() <= enddate ){
    //    traverse( column, OfflinePlanCell, cell, ( werk = 'All' or cell.OfflinePlanRow().ProductionLine().FindString( werk, 0 ) > -1 )
    //              and ( cell.OfflinePlanRow().ProductionLine() <> 'DL_MOMO' or cell.OfflinePlanRow().ProductionLine() <> 'CC_MOMO' )
    //              and cell.OfflinePlanRow().Type() = '1' ){
    //      row              := cell.OfflinePlanRow();
    //      if( not exists( productids, Elements, e, e = row.ProductID() ) ){
    //        productids.Add( row.ProductID() );
    //      }
    //      pirdata          := selectobject(  pir, PIRData, pirdata, pirdata.Product() = row.ProductID() and pirdata.PlanningDate() = column.ColumnDate() );
    //      if( isnull( pirdata ) ){
    //        pirdata          := pir.PIRData( relnew, Product         := row.ProductID()
    //                                         , PlanningDate            := column.ColumnDate()
    //                                         , PlanningQty             := 0 );
    //      }
    //      pirdata.PlanningQty( pirdata.PlanningQty() + [Number]cell.Value() );
    //    }
    //  }
    //}
    traverse( owner, OfflinePlanArchiveVersion, table ){
      traverse( table, Column, column, column.StartDate() >= startdate and column.StartDate() <= enddate ){
        traverse( column, Cell, cell, ( werk = 'All' or cell.Row().ProductionLine().FindString( werk, 0 ) > -1 )
                  and ( cell.Row().ProductionLine() <> 'DL_MOMO' or cell.Row().ProductionLine() <> 'CC_MOMO' )
                  and cell.Row().Type() = '1' ){
          row              := cell.Row();
          if( not exists( productids, Elements, e, e = row.ProductID() ) ){
            productids.Add( row.ProductID() );
          }
          pirdata          := selectobject(  pir, PIRData, pirdata, pirdata.Product() = row.ProductID() and pirdata.PlanningDate() = column.StartDate() );
          if( isnull( pirdata ) ){
            pirdata          := pir.PIRData( relnew, Product           := row.ProductID()
                                             , PlanningDate            := column.StartDate()
                                             , PlanningQty             := 0 );
          }
          pirdata.PlanningQty( pirdata.PlanningQty() + [Number]cell.Value() );
        }
      }
    }
    traverse( productids, Elements, e ){
      for( date := startdate.StartOfWeek(); date <= enddate; date := ( date + Duration::Days( 1 ) ).Date() ){
        if( not exists( pir, PIRData, pirdata, pirdata.Product() = e and pirdata.PlanningDate() = date ) ){
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_GenerateData.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl
@@ -13,7 +13,6 @@
    owner.FPImportData( relflush );
    ccunit                    := FinancialProductionReport::GetDefaultCCUnit();
    dlunit                    := FinancialProductionReport::GetDefaultDLUnit();
    //allunit                   := FinancialProductionReport::GetDefaultAllUnit();
    source                    := owner.FinancialProductionSource( relnew, IsImport := false, Name := FinancialProductionReport::GetDefaultName() );
    table                     := source.FinancialProductionReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false );
    source.FinancialProductionReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsImport := false, IsShow := true );
@@ -29,15 +28,13 @@
      
      if( iscc or isdl ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() 
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and ( pispip.Start() + Duration::Days( 1 ) ).Date() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
          //获取工厂行
          factoryrow          := table.GetRowByUnit( pisp.Product_MP(), ifexpr( iscc, ccunit, dlunit ) );
          //获取合计行
    //      allrow              := table.GetRowByUnit( pisp.Product_MP(), allunit );
          productids.Add( pisp.ProductID() );
          //当product planning的日期区间在需要的日期区间内 
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){
            dayperiodtime     := pispip.Start().Date();
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and ( pispip.Start() + Duration::Days( 1 ) ).Date() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){
            dayperiodtime     := ( pispip.Start() + Duration::Days( 1 ) ).Date();
            dayperiodname     := dayperiodtime.Format( "M2/D2/Y" );
            periodtime        := dayperiodtime.StartOfMonth();
            periodname        := periodtime.Format( "M2/D2/Y" );
@@ -51,8 +48,5 @@
        }
      }
    }
    //factorys                  := selectset( owner, Factory, factory, factory.ID() = FinancialProductionReport::GetDefaultAllUnit() );
    //showtable.Generate( search, factorys, productids );
  *]
}
_Main/BL/Type_FinancialSalesSource/StaticMethod_InitializeNew.qbl
@@ -13,7 +13,6 @@
    }
    owner.FSImportData( relflush );
    productids                := construct( Strings );
    //allunit                   := FinancialSalesReport::GetDefaultAllUnit();
    ccunit                    := FinancialSalesReport::GetDefaultCCUnit();
    dlunit                    := FinancialSalesReport::GetDefaultDLUnit();
    ccsalessegment            := FinancialSalesReport::GetSalesSegmentCC();
@@ -32,7 +31,7 @@
    table.GenerateColumn( owner );
    
    //首先在forecast界面查找sales segment为长春的所有需求,识别出MLB的所有产品,每个产品按月汇总需求数量
    traverse( owner, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.SalesSegment_MP() ) and forecast.StartDate() <= startofnextyear and forecast.Quantity() <> 0
    traverse( owner, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.SalesSegment_MP() ) and ( forecast.StartDate() + Duration::Days( 1 ) ).Date() < startofnextyear and forecast.Quantity() <> 0
              and exists( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ) ){
      salessegment            := forecast.SalesSegment_MP();
      parentsalessegments     := salessegment.GetAllParent();
@@ -47,17 +46,14 @@
      //Forecast的Sales Segment为长春,识别出MLB的所有产品汇总
      //大连财务销量:首先在forecast界面查找Sales Segment是天津和佛山的所有需求,每个产品按月汇总需求数量 and forecast.Product_MP().MQBMLB() = 'MLB' ) 
      if( ( iscc and product.MQBMLB() = 'MLB' ) or ( isccrent and product.MQBMLB() = 'MQB' ) or isdl ){
        //获取合计行
    //    allrow               := table.GetRow( allunit, product );
        //获取工厂行
        factoryrow           := table.GetRow( ifexpr( isdl, dlunit, ccunit ), product );
      
        productids.Add( forecast.ProductID() );
        traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ){
          dayperiodtime      := psdip.StartDate();
        traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 and ( psdip.StartDate() + Duration::Days( 1 ) ).Date() < startofnextyear ){
          dayperiodtime      := ( psdip.StartDate() + Duration::Days( 1 ) ).Date();//psdip.StartDate();
          dayperiodname      := dayperiodtime.Format( "M2/D2/Y" );
          periodtime         := psdip.StartDate().StartOfMonth();
          periodtime         := dayperiodtime.StartOfMonth();
          periodname         := periodtime.Format( "M2/D2/Y" );
    //      info( '-------------------------', periodname, periodtime );
          daycolumn          := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
@@ -67,23 +63,21 @@
          
          factoryrow.Initialize( column, quantity );
          factoryrow.Initialize( daycolumn, quantity );
    //      allrow.Initialize( column, quantity );
        }
      }
    }
    //从Product planning查找库存点为大连发动机的长春外租库,取New supply字段按月汇总需求数量
    traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID() = '大连发动机的长春外租库' ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf()
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and ( pispip.Start() + Duration::Days( 1 ) ).Date() < startofnextyear
                              and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ) ){//产品为MQB
          product           := pisp.Product_MP();
    //      allrow            := table.GetRow( allunit, product );
          factoryrow        := table.GetRow( dlunit, product );
          productids.Add( pisp.ProductID() );
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
                    and pispip.Period_MP().StartDate() < startofnextyear
                    and ( pispip.Start() + Duration::Days( 1 ) ).Date() < startofnextyear
                    and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){
            dayperiodtime   := pispip.Start().Date();
            dayperiodtime   := ( pispip.Start() + Duration::Days( 1 ) ).Date();//pispip.Start().Date();
            dayperiodname   := dayperiodtime.Format( "M2/D2/Y" );
            periodtime      := dayperiodtime.StartOfMonth();
            periodname      := periodtime.Format( "M2/D2/Y" );
@@ -93,7 +87,6 @@
            
            factoryrow.Initialize( column, quantity );//取Total Demand字段按月汇总需求数量
            factoryrow.Initialize( daycolumn, quantity );
    //        allrow.Initialize( column, quantity );
          }
        }
    //  }
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl
@@ -1,16 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method GetRow (
  const AssemblyOnlinePlanRow aoprow
  const NewOfflinePlanRow noprow
) as OfflinePlanArchiveRow
{
  TextBody:
  [*
    // ç”„兰鸽 Oct-11-2024 (created)
    row := selectobject( this, Row, row, row.ProductID() = aoprow.ProductID() and row.ProductionLine() = aoprow.ProductionLine() and row.Type() = aoprow.Type() );
    row := selectobject( this, Row, row, row.ProductID() = noprow.ProductID() and row.ProductionLine() = noprow.ProductionLine() and row.Type() = noprow.Type() );
    
    if( isnull( row ) ){
      row := this.Row( relnew, ProductID := aoprow.ProductID(), ProductionLine := aoprow.ProductionLine(), Type := aoprow.Type() );
      row := this.Row( relnew, ProductID := noprow.ProductID(), ProductionLine := noprow.ProductionLine(), Type := noprow.Type() );
      //初始化单元格
      row.InitializeCell();
    }
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_GenerateData.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_OfflinePlanArchiveVersion/StaticMethod_RefreshData.qbl
@@ -7,30 +7,33 @@
{
  TextBody:
  [*
    //根据当前版本的装配上线计划
    allunit                := AssemblyOnlinePlanVersion::GetDefaultAllUnit();
    name                   := AssemblyOnlinePlanVersion::GetDefaultName();
    search                 := interface.AssemblyOnlinePlanVersionSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    table                  := selectobject( interface, AssemblyOnlinePlanVersion, version, not version.IsShow() );
    //根据当前版本的下线计划
    allunit                := OfflinePlanArchiveVersion::GetDefaultAllUnit();
    name                   := OfflinePlanArchiveVersion::GetDefaultName();
    search                 := interface.OfflinePlanArchiveSearch( relnew, Product := allunit, ProductionLine := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    table                  := selectobject( interface, OfflinePlanArchiveVersion, version, not version.IsShow() );
    if( isnull( table ) ){
      table                := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name );
      table                := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name );
    }
    showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
    showtable              := selectobject( interface, OfflinePlanArchiveVersion, version, version.IsShow() );
    if( isnull( table ) ){
      showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
      showtable               := interface.OfflinePlanArchiveVersion( relnew, ID := name, Name := name, IsShow := true );
    }
    aopcolumns             := selectuniquevalues(  macroPlan, AssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcolumn.ColumnDate() ), aopcolumn.ColumnDate() );
    table.GenerateColumn( aopcolumns, search.TimeUnit(), search.StartDate(), search.EndDate() );
    traverse( macroPlan, AssemblyOnlinePlanRow, aoprow ){
      row                  := table.GetRow( aoprow );
      traverse( aoprow, AssemblyOnlinePlanCell, aopcell ){
        column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcell.AssemblyOnlinePlanColumn().ColumnDate() );
    nopcolumns             := selectuniquevalues(  macroPlan, NewOfflinePlanTable.NewOfflinePlanColumn, nopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = nopcolumn.StartDate() ), nopcolumn.StartDate() );
    table.GenerateColumn( nopcolumns, search.TimeUnit(), search.StartDate(), search.EndDate() );
    traverse( macroPlan, NewOfflinePlanTable, noptable ){
      traverse( noptable, NewOfflinePlanRow, noprow ){
        row                  := table.GetRow( noprow );
        traverse( noprow, NewOfflinePlanCell, nopcell ){
          column             := selectobject( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = nopcell.NewOfflinePlanColumn().StartDate() );
        cell               := selectobject( row, Cell, cell, cell.Column() = column );
        cell.InventoryWeight( aopcell.InventoryWeight() );
        cell.ProductionSerialNumber( aopcell.ProductionSerialNumber() );
        cell.Quantity( aopcell.Quantity() );
        cell.Shift( aopcell.Shift() );
        cell.Value( aopcell.Value() );
          cell.InventoryWeight( nopcell.InventoryWeight() );
    //      cell.ProductionSerialNumber( nopcell.ProductionSerialNumber() );
          cell.Quantity( nopcell.Quantity() );
    //      cell.Shift( nopcell.Shift() );
    //      cell.Value( nopcell.Value() );
        }
      }
    }
    //showtable.Generate( search, products );
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def
@@ -27,6 +27,17 @@
        Taborder: 1
      ]
    }
    Component ButtonOfflinePlanArchiveReport
    {
      #keys: '[415136.0.1255420048]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'PAPER_JET'
        Label: 'Offline plan archive'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonOfflinePlanArchiveRe.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ActionBarGroupArchiveReport/ButtonOfflinePlanArchiveReport
Response OnClick () id:Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonOfflinePlanArchiveReport_OnClick
{
  #keys: '[415136.0.1255420166]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "Offline__plan_archive_report", true);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPublish_ButtonPublish_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ActionBarGroupPublish/ButtonPublish
Response OnClick () id:Response_MacroPlanner_ActionBarGroupPublish_ButtonPublish_OnClick
{
  #keys: '[415136.0.1255982999]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogPublishPlan );
      ApplicationMacroPlanner.ShowFormModal( dlg );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[415136.0.1255981718]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[415136.0.1255981722]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[415136.0.1255981724]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAll#720.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
Component pnlAll id:pnlAll_720
{
  #keys: '[415136.0.1255982465]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lblAll
    {
      #keys: '[415136.0.1255982466]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: 'All'
        Taborder: 0
      ]
    }
    Component cbAll
    {
      #keys: '[415136.0.1255982467]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 5
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlAssembleOnlinePlan#679.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
Component pnlAssembleOnlinePlan id:pnlAssembleOnlinePlan_679
{
  #keys: '[415136.0.1255982426]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lblAssembleOnlinePlan
    {
      #keys: '[415136.0.1255982427]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '装配上线计划'
        Taborder: 0
      ]
    }
    Component cbAssembleOnlinePlan
    {
      #keys: '[415136.0.1255982428]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[415136.0.1255981716]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: pnlCustomDemand_462
    #child: pnlOfflinePlan_520
    #child: pnlAssembleOnlinePlan_679
    #child: pnlInventoryPlan_119
    #child: pnlAll_720
    #child: pnlShiftPlan_780
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlCustomDemand#462.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
Component pnlCustomDemand id:pnlCustomDemand_462
{
  #keys: '[415136.0.1255981813]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lblCustomDemand
    {
      #keys: '[415136.0.1255981814]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '全年日度需求'
        Taborder: 0
      ]
    }
    Component cbCustomDemand
    {
      #keys: '[415136.0.1255981815]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlInventoryPlan#119.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
Component pnlInventoryPlan id:pnlInventoryPlan_119
{
  #keys: '[415136.0.1255982447]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lblInventoryPlan
    {
      #keys: '[415136.0.1255982448]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '计划库存'
        Taborder: 0
      ]
    }
    Component cbInventoryPlan
    {
      #keys: '[415136.0.1255982449]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlOfflinePlan#520.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
Component pnlOfflinePlan id:pnlOfflinePlan_520
{
  #keys: '[415136.0.1255981829]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lblOfflinePlan
    {
      #keys: '[415136.0.1255981830]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '下线计划'
        Taborder: 0
      ]
    }
    Component cbOfflinePlan
    {
      #keys: '[415136.0.1255981831]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Component_pnlShiftPlan#780.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
Component pnlShiftPlan id:pnlShiftPlan_780
{
  #keys: '[415136.0.1255982410]'
  BaseType: 'WebPanel'
  Children:
  [
    Component lblShiftPlan
    {
      #keys: '[415136.0.1255982411]'
      BaseType: 'WebLabel'
      Properties:
      [
        Label: '班次计划'
        Taborder: 0
      ]
    }
    Component cbShiftPlan
    {
      #keys: '[415136.0.1255982412]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Method_OnOK.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
#parent: #root
Method OnOK () id:Method_DialogPublishPlan_OnOK
{
  #keys: '[415136.0.1255982634]'
  Body:
  [*
    this.ApplyChanges();
      showlabel := '是否发送';
      plannames := construct( Strings );
      if( cbCustomDemand.Checked() ){
        plannames.Add( lblCustomDemand.Label() );
      }
      if( cbOfflinePlan.Checked() ){
        plannames.Add( lblOfflinePlan.Label() );
      }
      if( cbShiftPlan.Checked() ){
        plannames.Add( lblShiftPlan.Label() );
      }
      if( cbAssembleOnlinePlan.Checked() ){
        plannames.Add( lblAssembleOnlinePlan.Label() );
      }
      if( cbInventoryPlan.Checked() ){
        plannames.Add( lblInventoryPlan.Label() );
      }
      showlabel := showlabel.Concat( plannames.Concatenate( "、" ) ).Concat( '?' );
      if( WebMessageBox::Question( this, showlabel, 'OK|Cancel' ) = 0 ){
      }
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnCancel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[415136.0.1255981728]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[415136.0.1255981727]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not ( not cbCustomDemand.Checked() and not cbOfflinePlan.Checked() and not cbShiftPlan.Checked() and not cbAssembleOnlinePlan.Checked() and not cbInventoryPlan.Checked() );
  *]
  QuillAction
  {
    Body:
    [*
      Form.OnOK();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/Response_pnlAll_720_cbAll_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: pnlAll_720/cbAll
Response OnChanged () id:Response_pnlAll_720_cbAll_OnChanged
{
  #keys: '[415136.0.1255982464]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebCheckbox_OnChanged'
  QuillAction
  {
    Body:
    [*
      if( this.Checked() ){
        cbCustomDemand.Checked( true );
        cbOfflinePlan.Checked( true );
        cbShiftPlan.Checked( true );
        cbAssembleOnlinePlan.Checked( true );
        cbInventoryPlan.Checked( true );
      }else{
        cbCustomDemand.Checked( false );
        cbOfflinePlan.Checked( false );
        cbShiftPlan.Checked( false );
        cbAssembleOnlinePlan.Checked( false );
        cbInventoryPlan.Checked( false );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogPublishPlan/_ROOT_Component_DialogPublishPlan.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogPublishPlan
{
  #keys: '[415136.0.1255981714]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Image: 'INBOX_OUT'
    Padding: 'false'
    Title: '发布计划'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Method_OnOK.def
@@ -6,23 +6,16 @@
  Body:
  [*
    this.ApplyChanges();
    info( '------------------',cbCustomDemand.Checked()
        ,cbOfflinePlan.Checked()
        ,cbShiftPlan.Checked()
        ,cbAssembleOnlinePlan.Checked()
        ,cbInventoryPlan.Checked()
        ,cbTRCDemand.Checked()
        ,cbTransferPlan.Checked()
        ,cbPackagePlan.Checked() );
      showlabel := '是否存档';
    if( cbCustomDemand.Checked()
        or cbOfflinePlan.Checked()
        or cbShiftPlan.Checked()
        or cbAssembleOnlinePlan.Checked()
        or cbInventoryPlan.Checked()
        or cbTRCDemand.Checked()
        or cbTransferPlan.Checked()
        or cbPackagePlan.Checked() ){
    //showlabel := '是否存档';
    //if( cbCustomDemand.Checked()
    //    or cbOfflinePlan.Checked()
    //    or cbShiftPlan.Checked()
    //    or cbAssembleOnlinePlan.Checked()
    //    or cbInventoryPlan.Checked()
    //    or cbTRCDemand.Checked()
    //    or cbTransferPlan.Checked()
    //    or cbPackagePlan.Checked() ){
      showlabel := '是否存档';
      plannames := construct( Strings );
      if( cbCustomDemand.Checked() ){
@@ -50,14 +43,13 @@
        plannames.Add( lblPackagePlan.Label() );
      }
      showlabel := showlabel.Concat( plannames.Concatenate( "、" ) ).Concat( '?' );
      info( '*****************************' );
    //  info( '*****************************' );
      if( WebMessageBox::Question( this, showlabel, 'OK|Cancel' ) = 0 ){
      }
    }else{
      info( '************###########*****************' );
      WebMessageBox::Information( this, '未选择任何计划进行存档' )
    }
    //}else{
    //  info( '************###########*****************' );
    //  WebMessageBox::Information( this, '未选择任何计划进行存档' )
    //}
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogReportArchiveConfirm/Response_pnlActions_btnOk_OnClick.def
@@ -4,6 +4,11 @@
{
  #keys: '[415136.0.1249021383]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not ( not cbCustomDemand.Checked() and not cbOfflinePlan.Checked() and not cbShiftPlan.Checked() and not cbAssembleOnlinePlan.Checked() and not cbInventoryPlan.Checked()
        and not cbTRCDemand.Checked() and not cbTransferPlan.Checked() and not cbPackagePlan.Checked() );
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_ddslMQBMLB_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().ProductionLine() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().ProductionLine() <> selection ){
        dhSearch.Data().ProductionLine( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); 
      }
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_937_ddslProduct_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Product() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Product() <> selection ){
        dhSearch.Data().Product( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); 
      }
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Unit() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Unit() <> selection ){
        dhSearch.Data().Unit( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); 
      }
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelGeneration.def
@@ -15,7 +15,6 @@
        Taborder: 0
      ]
    }
    #child: PanelGeneration743
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelGeneration743.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelProduct.def
@@ -19,6 +19,7 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration743_ddslGeneration859_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration_ddslGeneration_OnSelectionChanged#187.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Generation() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Generation() <> selection ){
        dhSearch.Data().Generation( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); 
      }
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelMLBMQB_ddslMQBMLB_OnSelectionChanged#456.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().MqbMlb() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().MqbMlb() <> selection ){
        dhSearch.Data().MqbMlb( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); 
      }
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelPower_ddslPower_OnSelectionChanged#136.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Power() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Power() <> selection ){
        dhSearch.Data().Power( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); 
      }
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelProduct_ddslProduct_OnSelectionChanged.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      if( dhSearch.Data().Product() <> selection ){
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Product() <> selection ){
        dhSearch.Data().Product( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() ); 
      }
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/_ROOT_Component_FormCustomerDemandPPAIDS.def
@@ -14,6 +14,21 @@
      #keys: '[415136.0.1121750597]'
      BaseType: 'WebDataHolder'
      Databinding: 'CustomerDemandIDSSearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1256142023]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'CustomerDemandIDSSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 0
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_MatrixEditorTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
Quintiq file version 2.0
Component MatrixEditorTable
{
  #keys: '[415136.0.1252790401]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCellTable
    {
      #keys: '[415136.0.1252790402]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractorCells
        {
          #keys: '[415136.0.1252790403]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: 'object.Column().TimeUnit() = search.TimeUnit() and object.Column().StartDate() >= search.StartDate() and object.Column().StartDate() <= search.EndDate()'
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'OfflinePlanArchiveVersion.Row.Cell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'Value'
        Column: 'Column'
        Row: 'Row'
        Taborder: 0
      ]
    }
    Component MatrixEditorRowsTable
    {
      #keys: '[415136.0.1252790404]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorRows
        {
          #keys: '[415136.0.1252790405]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            Description: "( search.Generation() = '<All>' or object.Product_MP().Generation() = search.Generation() ) and ( search.MqbMlb() = '<All>' or object.Product_MP().MQBMLB() = search.MqbMlb() ) and ( search.Power() = '<All>' or object.Product_MP().Power() = search.Power() )"
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: "( search.Product() = '<All>' or object.ProductID() = search.Product() ) and ( search.ProductionLine() = '<All>' or object.ProductionLine() = search.ProductionLine() )"
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'OfflinePlanArchiveVersion.Row'
          ]
        }
      ]
      Properties:
      [
        Legend: 'ProductID'
        SortCriteria: 'ProductID'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumnsTable
    {
      #keys: '[415136.0.1252790406]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorColumns
        {
          #keys: '[415136.0.1252790407]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            FilterArguments: 'search:QMacroPlanner::FormAssemblyOnlinePlanVersion.dhSearch'
            FixedFilter: 'object.TimeUnit() = search.TimeUnit() and object.StartDate() >= search.StartDate() and object.StartDate() <= search.EndDate()'
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'OfflinePlanArchiveVersion.Column'
          ]
        }
      ]
      Properties:
      [
        Legend: 'ColumnName'
        SortCriteria: 'StartDate'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPageTable
    #child: matrixeditorContextMenuTable
  ]
  Properties:
  [
    Columns: 'MatrixEditorColumnsTable'
    ContextMenu: 'matrixeditorContextMenuTable'
    Rows: 'MatrixEditorRowsTable'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
Component PanelHeader
{
  #keys: '[415136.0.1252790294]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelProduct
    #child: PanelPeriod_858
    #child: PanelTimeUnit
    #child: PanelOperation
    #child: PanelProductLine_603
    #child: PanelUnit_844
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelOperation
{
  #keys: '[415136.0.1252790299]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonSearch
    {
      #keys: '[415136.0.1252790300]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'VIEW'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Taborder: 5
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelPeriod#858.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component PanelPeriod id:PanelPeriod_858
{
  #keys: '[415136.0.1252790303]'
  BaseType: 'WebPanel'
  Children:
  [
    Component DateSelectorStart
    {
      #keys: '[415136.0.1252790304]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Label: 'Start date'
        Taborder: 0
      ]
    }
    Component DateSelectorEnd
    {
      #keys: '[415136.0.1252790305]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        Date: 9999-12-31
        Label: 'End date'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component PanelProduct
{
  #keys: '[415136.0.1252790306]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslProduct
    {
      #keys: '[415136.0.1252790307]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        FixedSize: false
        Label: 'Product'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProductLine#603.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelProductLine id:PanelProductLine_603
{
  #keys: '[415136.0.1252790297]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslMQBMLB
    {
      #keys: '[415136.0.1252790298]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'MQB/MLB'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelTable
{
  #keys: '[415136.0.1252790400]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditorTable
  ]
  Properties:
  [
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component PanelTimeUnit
{
  #keys: '[415136.0.1252790301]'
  BaseType: 'WebPanel'
  Children:
  [
    Component RadioButtonGroupUseForTimeUnit
    {
      #keys: '[415136.0.1252790302]'
      BaseType: 'WebRadioButtonGroup'
      Properties:
      [
        ButtonLabels: 'Day;Week;Month'
        ButtonValues: 'Day;Week;Month'
        Orientation: 'horizontal'
        Taborder: 0
        Title: 'Periods'
      ]
    }
  ]
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelUnit#844.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelUnit id:PanelUnit_844
{
  #keys: '[415136.0.1252790295]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslUnit
    {
      #keys: '[415136.0.1252790296]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Unit'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_matrixEditorActionBarPageTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPageTable
{
  #keys: '[415136.0.1252790408]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_matrixeditorContextMenuTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenuTable
{
  #keys: '[415136.0.1252790409]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_858_DateSelectorEnd_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: PanelPeriod_858/DateSelectorEnd
Response OnChanged () id:Response_PanelPeriod_858_DateSelectorEnd_OnChanged
{
  #keys: '[415136.0.1252790286]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      //日期改变后刷新显示
      if( this.Date() < DateSelectorStart.Date() ){
        this.HintError( 'The end date cannot be less than the start date!' );
      }else{
        if( dhSearch.Data().EndDate() <> this.Date() ){
          dhSearch.Data().EndDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_858_DateSelectorStart_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: PanelPeriod_858/DateSelectorStart
Response OnChanged () id:Response_PanelPeriod_858_DateSelectorStart_OnChanged
{
  #keys: '[415136.0.1252790287]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
  {
    Body:
    [*
      //日期改变后刷新显示
      if( this.Date() > DateSelectorEnd.Date() ){
        this.HintError( 'The start date cannot be later than the end date!' );
      }else{
        if( dhSearch.Data().StartDate() <> this.Date() ){
          dhSearch.Data().StartDate( this.Date() );
      //    DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_603_ddslMQBMLB_OnCreated.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration743_ddslGeneration859_OnCreated.def copy to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_603_ddslMQBMLB_OnCreated.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration743_ddslGeneration859_OnCreated.def ¸´ÖÆ
@@ -1,15 +1,15 @@
Quintiq file version 2.0
#parent: PanelGeneration743/ddslGeneration859
Response OnCreated () id:Response_PanelGeneration743_ddslGeneration859_OnCreated
#parent: PanelProductLine_603/ddslMQBMLB
Response OnCreated () id:Response_PanelProductLine_603_ddslMQBMLB_OnCreated
{
  #keys: '[415136.0.1137311845]'
  #keys: '[415136.0.1252790291]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Generation() );
      values := selectuniquevalues( InterfaceDataset, AssemblyOnlinePlanVersion.Row, row, true, row.ProductionLine() );
      
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_603_ddslMQBMLB_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelProductLine_603/ddslMQBMLB
Response OnSelectionChanged () id:Response_PanelProductLine_603_ddslMQBMLB_OnSelectionChanged
{
  #keys: '[415136.0.1252790290]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().ProductionLine() <> selection ){
        dhSearch.Data().ProductionLine( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnCreated.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration743_ddslGeneration859_OnCreated.def ÐÞ¸Ä
@@ -1,15 +1,15 @@
Quintiq file version 2.0
#parent: PanelGeneration743/ddslGeneration859
Response OnCreated () id:Response_PanelGeneration743_ddslGeneration859_OnCreated
#parent: PanelProduct/ddslProduct
Response OnCreated () id:Response_PanelProduct_ddslProduct_OnCreated
{
  #keys: '[415136.0.1137311845]'
  #keys: '[415136.0.1252790285]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Generation() );
      values := selectuniquevalues( InterfaceDataset, AssemblyOnlinePlanVersion.Row, row, true, row.ProductID() );
      
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelProduct/ddslProduct
Response OnSelectionChanged () id:Response_PanelProduct_ddslProduct_OnSelectionChanged
{
  #keys: '[415136.0.1252790284]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Product() <> selection ){
        dhSearch.Data().Product( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: PanelTimeUnit/RadioButtonGroupUseForTimeUnit
Response OnChanged () id:Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged
{
  #keys: '[415136.0.1252790289]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged'
  QuillAction
  {
    Body:
    [*
      //区间改变后刷新显示
      if( dhSearch.Data().TimeUnit() <> this.BoundValue() ){
        dhSearch.Data().TimeUnit( this.BoundValue() );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelTimeUnit/RadioButtonGroupUseForTimeUnit
Response OnCreated () id:Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated
{
  #keys: '[415136.0.1252790288]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      this.ButtonValues( Translations::MP_GlobalParameters_Day() + ';' + Translations::MP_GlobalParameters_Week() + ';' + Translations::MP_GlobalParameters_Month() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnCreated.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration743_ddslGeneration859_OnCreated.def copy to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnCreated.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Response_PanelGeneration743_ddslGeneration859_OnCreated.def ¸´ÖÆ
@@ -1,15 +1,15 @@
Quintiq file version 2.0
#parent: PanelGeneration743/ddslGeneration859
Response OnCreated () id:Response_PanelGeneration743_ddslGeneration859_OnCreated
#parent: PanelUnit_844/ddslUnit
Response OnCreated () id:Response_PanelUnit_844_ddslUnit_OnCreated
{
  #keys: '[415136.0.1137311845]'
  #keys: '[415136.0.1252790293]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Generation() );
      values := selectuniquevalues( InterfaceDataset, AssemblyOnlinePlanVersion.Row, row, true, row.Type() );
      
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelUnit_844/ddslUnit
Response OnSelectionChanged () id:Response_PanelUnit_844_ddslUnit_OnSelectionChanged
{
  #keys: '[415136.0.1252790292]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( not isnull( dhSearch.Data() ) and dhSearch.Data().Unit() <> selection ){
        dhSearch.Data().Unit( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/_ROOT_Component_FormOfflinePlanArchive.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormOfflinePlanArchive
{
  #keys: '[415136.0.1252790190]'
  BaseType: 'WebForm'
  Children:
  [
    Component dhSearch id:dhSearch_715
    {
      #keys: '[415136.0.1252790226]'
      BaseType: 'WebDataHolder'
      Databinding: 'OfflinePlanArchiveSearch'
      Children:
      [
        Component deSearch
        {
          #keys: '[415136.0.1252790227]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'InterfaceDataset'
            Source: 'InterfaceDataset'
            Taborder: 0
            Transformation: 'OfflinePlanArchiveSearch'
          ]
        }
      ]
      Properties:
      [
        Taborder: 0
      ]
    }
    #child: PanelHeader
    #child: PanelTable
  ]
  Properties:
  [
    Image: 'PAPER_JET'
    Title: 'Offline plan archive'
  ]
}
_Main/UI/MacroPlannerWebApp/Views/Offline__plan_archive_report.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,116 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormOfflinePlanArchive
      {
        title: 'QMacroPlanner::FormOfflinePlanArchive'
        shown: true
        componentID: 'QMacroPlanner::FormOfflinePlanArchive'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 15
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormOfflinePlanArchive_PanelHeader
          {
            sizeRatio: 1
          }
          FormOfflinePlanArchive_PanelUnit
          {
            sizeRatio: 1
          }
          FormOfflinePlanArchive_PanelProductLine
          {
            sizeRatio: 1
          }
          FormOfflinePlanArchive_PanelProduct
          {
            sizeRatio: 1
          }
          FormOfflinePlanArchive_PanelPeriod
          {
            sizeRatio: 1
          }
          FormOfflinePlanArchive_PanelTimeUnit
          {
            sizeRatio: 1
          }
          FormOfflinePlanArchive_PanelOperation
          {
            sizeRatio: 1
          }
          FormOfflinePlanArchive_PanelTable
          {
            sizeRatio: 1
          }
          FormOfflinePlanArchive_MatrixEditorTable
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormOfflinePlanArchive.MatrixEditorTable'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_Value
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Value'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'StartDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'ProductID'"
                  }
                }
              }
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 30
    image: 'PAPER_JET'
    description: ''
  }
  formatversion: 2
  id: 'Offline__plan_archive_report'
  name: 'Offline  plan archive report'
  isglobal: false
  isroot: true
}