lazhen
2024-11-15 2f810c64ce22dabb7bb3bd0d6cf901da8d9f5ca4
部分存档界面排版调整
已复制19个文件
已重命名29个文件
已修改11个文件
已添加13个文件
已删除19个文件
1223 ■■■■■ 文件已修改
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/Method_CalcEngineCost#911.qbl 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/Method_CalcEngineCost.qbl 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/Method_CalcEngineCost0.qbl 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/Method_CalcTransCost#652.qbl 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandIDS/Attribute_IsShow.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandIDS/Method_Clear.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandIDS/Method_Generate.qbl 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandIDS/Method_GenerateColumn.qbl 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandIDS/Method_GetRowByUnit.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandIDS/StaticMethod_GenerateData.qbl 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerDemandIDS/StaticMethod_InitiateSearch.qbl 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelColumnSearch.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelHeader#952.def 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation#283.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelPeriod#384.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProduct#937.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProduct.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProductLine#623.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProductSearch.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit#234.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelUnit#424.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelOperation_283_ButtonSearch_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelOperation_ButtonSearch_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelPeriod_384_DateSelectorEnd_OnChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelPeriod_384_DateSelectorStart_OnChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_623_ddslProductLine_OnCreated.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_623_ddslProductLine_OnSelectionChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_937_ddslProduct_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_937_ddslProduct_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_ddslProduct_OnCreated.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_ddslProduct_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_234_RadioButtonGroupUseForTimeUnit_OnChanged.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_424_ddslUnit_OnCreated.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_424_ddslUnit_OnSelectionChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelProduct.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelColumnSearch.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelHeader#503.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelOperation#414.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelOperation.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelPeriod#71.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelPeriod.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelProduct#133.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelProduct.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelRowSearch.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit#805.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelUnit#925.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelOperation_ButtonSearch_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_71_DateSelectorEnd_OnChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_71_DateSelectorStart_OnChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_DateSelectorEnd_OnChanged.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_DateSelectorStart_OnChanged.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_ddslProduct_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_ddslProduct_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_925_ddslUnit_OnCreated.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_925_ddslUnit_OnSelectionChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnCreated.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelColumnSaerch.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelHeader.def 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation#679.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelPeriod.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct#780.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProductLine#603.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProductLine.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelRowSearch.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit#720.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelUnit#844.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelUnit.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelOperation_679_ButtonSearch_OnClick.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_DateSelectorEnd_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_DateSelectorStart_OnChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_603_ddsProductLine_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_ddsProductLine_OnCreated.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_ddsProductLine_OnSelectionChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_780_ddslProduct_OnCreated.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_780_ddslProduct_OnSelectionChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnCreated.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_ddslUnit_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_ddslUnit_OnSelectionChanged.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/StaticMethod_RefreshData.qbl
@@ -17,7 +17,7 @@
      table                := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name );
    }
    showtable              := selectobject( interface, AssemblyOnlinePlanVersion, version, version.IsShow() );
    if( isnull( table ) ){
    if( isnull( showtable ) ){
      showtable               := interface.AssemblyOnlinePlanVersion( relnew, ID := name, Name := name, IsShow := true );
    }
    aopcolumns             := selectuniquevalues(  macroPlan, NewAssemblyOnlinePlanColumn, aopcolumn, not exists( table, Column, column, column.TimeUnit() = Translations::MP_GlobalParameters_Day() and column.StartDate() = aopcolumn.StartDate() ), aopcolumn.StartDate() );
_Main/BL/Type_CCEngineLogisticsCostColumn0/Method_CalcEngineCost#911.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
#parent: #root
Method CalcEngineCost (
  BaseSalesDemandInPeriods psdips,
  LogisticsCostEngines enginecosts
) as Real
{
  TextBody:
  [*
    // ç”„兰鸽 Nov-14-2024 (created)
    outcost          := 0.0;
    enginecost       := selectobject( enginecosts, Elements, engine, engine.StartDate() <= this.StartDate() and engine.EndDate() >= this.EndDate() );
    if( isnull( enginecost ) ){
      fenginecost    := selectobject( enginecosts, Elements, engine, engine.EndDate() > this.StartDate() and engine.EndDate() <= this.EndDate() and engine.StartDate() < this.StartDate() );
      if( not isnull( fenginecost ) ){
        quantity     := sum( psdips, Elements, psdip, psdip.StartDate() >= fenginecost.StartDate() and psdip.StartDate() <= fenginecost.EndDate(), psdip.Quantity() );
        outcost      := outcost + ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice();
      }
      menginecost    := selectobject( enginecosts, Elements, engine, engine.StartDate() > this.StartDate() and engine.EndDate() < this.EndDate() );
      if( not isnull( menginecost ) ){
        quantity     := sum( psdips, Elements, psdip, psdip.StartDate() >= menginecost.StartDate() and psdip.StartDate() <= menginecost.EndDate(), psdip.Quantity() );
        outcost      := outcost + ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice();
      }
      benginecost    := selectobject( enginecosts, Elements, engine, engine.StartDate() > this.StartDate() and engine.StartDate() <= this.EndDate() and engine.EndDate() > this.EndDate() );
      if( not isnull( benginecost ) ){
        quantity     := sum( psdips, Elements, psdip, psdip.StartDate() >= benginecost.StartDate() and psdip.StartDate() <= benginecost.EndDate(), psdip.Quantity() )
        outcost      := outcost + ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice();
      }
    }else{
      quantity       := sum( psdips, Elements, psdip, psdip.Quantity() );
      outcost        := outcost + ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice();
    }
    return outcost;
  *]
}
_Main/BL/Type_CCEngineLogisticsCostColumn0/Method_CalcEngineCost.qbl
@@ -20,90 +20,90 @@
      fenginecost    := selectobject( enginecosts, Elements, engine, engine.EndDate() > this.StartDate() and engine.EndDate() <= this.EndDate() and engine.StartDate() < this.StartDate() and engine.Factory() = factory );
      if( not isnull( fenginecost ) ){
        fpispips     := selectset( pispips, Elements, pispip, pispip.Start().Date() >= fenginecost.StartDate() and pispip.Start().Date() <= fenginecost.EndDate() );
        if( entercost.IsMaxInfinity() ){
        if( not entercost.IsMaxInfinity() ){
          newsqty    := sum( fpispips, Elements, e, e.NewSupplyQuantity() );
          entercost  := entercost + ceil( newsqty / fenginecost.PackagingCapacity() ) * fenginecost.WarehousingPrice();
        }
        if( othercost.IsMaxInfinity() ){
        if( not othercost.IsMaxInfinity() ){
          newsqty    := sum( fpispips, Elements, e, e.NewSupplyQuantity() );
          othercost  := othercost + ceil( newsqty / fenginecost.PackagingCapacity() ) * fenginecost.OtherPrice();
        }
        if( outcost.IsMaxInfinity() ){
        if( not outcost.IsMaxInfinity() ){
          newsqty    := sum( fpispips, Elements, e, e.NewSupplyQuantity() );
          outcost    := outcost + ceil( newsqty / fenginecost.PackagingCapacity() ) * fenginecost.OutboundPrice();
        }
        if( storecost.IsMaxInfinity() ){
        if( not storecost.IsMaxInfinity() ){
          pinvqty    := sum( fpispips, Elements, e, e.PlannedInventoryLevelEnd() );
          storecost  := storecost + ceil( pinvqty / fenginecost.PackagingCapacity() ) * fenginecost.StoragePrice();//四舍五入
        }
        if( transcost.IsMaxInfinity() ){
        if( not transcost.IsMaxInfinity() ){
          this.CalcTransCost( fpispips, transcosts, fenginecost, transcost );
        }
      }
      menginecost    := selectobject( enginecosts, Elements, engine, engine.StartDate() > this.StartDate() and engine.EndDate() < this.EndDate() and engine.Factory() = factory );
      if( not isnull( menginecost ) ){
        mpispips     := selectset( pispips, Elements, pispip, pispip.Start().Date() >= menginecost.StartDate() and pispip.Start().Date() <= menginecost.EndDate() );
        if( entercost.IsMaxInfinity() ){
        if( not entercost.IsMaxInfinity() ){
          newsqty    := sum( mpispips, Elements, e, e.NewSupplyQuantity() );
          entercost  := entercost + ceil( newsqty / menginecost.PackagingCapacity() ) * menginecost.WarehousingPrice();
        }
        if( othercost.IsMaxInfinity() ){
        if( not othercost.IsMaxInfinity() ){
          newsqty    := sum( mpispips, Elements, e, e.NewSupplyQuantity() );
          othercost  := othercost + ceil( newsqty / menginecost.PackagingCapacity() ) * menginecost.OtherPrice();
        }
        if( outcost.IsMaxInfinity() ){
        if( not outcost.IsMaxInfinity() ){
          newsqty    := sum( mpispips, Elements, e, e.NewSupplyQuantity() );
          outcost    := outcost + ceil( newsqty / menginecost.PackagingCapacity() ) * menginecost.OutboundPrice();
        }
        if( storecost.IsMaxInfinity() ){
        if( not storecost.IsMaxInfinity() ){
          pinvqty    := sum( mpispips, Elements, e, e.PlannedInventoryLevelEnd() );
          storecost  := storecost + ceil( pinvqty / menginecost.PackagingCapacity() ) * menginecost.StoragePrice();//四舍五入
        }
        if( transcost.IsMaxInfinity() ){
        if( not transcost.IsMaxInfinity() ){
          this.CalcTransCost( mpispips, transcosts, menginecost, transcost );
        }
      }
      benginecost    := selectobject( enginecosts, Elements, engine, engine.StartDate() > this.StartDate() and engine.StartDate() <= this.EndDate() and engine.EndDate() > this.EndDate() and engine.Factory() = factory );
      if( not isnull( benginecost ) ){
        bpispips     := selectset( pispips, Elements, pispip, pispip.Start().Date() >= benginecost.StartDate() and pispip.Start().Date() <= benginecost.EndDate() )
        if( entercost.IsMaxInfinity() ){
        if( not entercost.IsMaxInfinity() ){
          newsqty    := sum( bpispips, Elements, e, e.NewSupplyQuantity() );
          entercost  := entercost + ceil( newsqty / benginecost.PackagingCapacity() ) * benginecost.WarehousingPrice();
        }
        if( othercost.IsMaxInfinity() ){
        if( not othercost.IsMaxInfinity() ){
          newsqty    := sum( bpispips, Elements, e, e.NewSupplyQuantity() );
          othercost  := othercost + ceil( newsqty / benginecost.PackagingCapacity() ) * benginecost.OtherPrice();
        }
        if( outcost.IsMaxInfinity() ){
        if( not outcost.IsMaxInfinity() ){
          newsqty    := sum( bpispips, Elements, e, e.NewSupplyQuantity() );
          outcost    := outcost + ceil( newsqty / benginecost.PackagingCapacity() ) * benginecost.OutboundPrice();
        }
        if( storecost.IsMaxInfinity() ){
        if( not storecost.IsMaxInfinity() ){
          pinvqty    := sum( bpispips, Elements, e, e.PlannedInventoryLevelEnd() );
          storecost  := storecost + ceil( pinvqty / benginecost.PackagingCapacity() ) * benginecost.StoragePrice();//四舍五入
        }
        if( transcost.IsMaxInfinity() ){
        if( not transcost.IsMaxInfinity() ){
          this.CalcTransCost( bpispips, transcosts, benginecost, transcost );
        }
      }
    }else{
      if( entercost.IsMaxInfinity() ){
      if( not entercost.IsMaxInfinity() ){
        newsqty      := sum( pispips, Elements, pispip, pispip.NewSupplyQuantity() );
        entercost    := entercost + ceil( newsqty / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
      }
      if( othercost.IsMaxInfinity() ){
      if( not othercost.IsMaxInfinity() ){
        newsqty      := sum( pispips, Elements, pispip, pispip.NewSupplyQuantity() );
        othercost    := othercost + ceil( newsqty / enginecost.PackagingCapacity() ) * enginecost.OtherPrice();
      }
      if( outcost.IsMaxInfinity() ){
      if( not outcost.IsMaxInfinity() ){
        newsqty      := sum( pispips, Elements, pispip, pispip.NewSupplyQuantity() );
        outcost      := outcost + ceil( newsqty / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice();
      }
      if( storecost.IsMaxInfinity() ){
      if( not storecost.IsMaxInfinity() ){
        pinvqty      := sum( pispips, Elements, pispip, pispip.PlannedInventoryLevelEnd() );
        storecost    := storecost + ceil( pinvqty / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//四舍五入
      }
      if( transcost.IsMaxInfinity() ){
      if( not transcost.IsMaxInfinity() ){
        this.CalcTransCost( pispips, transcosts, enginecost, transcost );
      }
    }
_Main/BL/Type_CCEngineLogisticsCostColumn0/Method_CalcEngineCost0.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
#parent: #root
Method CalcEngineCost (
  ProductInTrips pits,
  LogisticsCostEngines enginecosts,
  LogisticsCostTransports transcosts
) as Real
{
  TextBody:
  [*
    // ç”„兰鸽 Nov-14-2024 (created)
    transcost        := 0.0;
    enginecost       := selectobject( enginecosts, Elements, engine, engine.StartDate() <= this.StartDate() and engine.EndDate() >= this.EndDate() );
    if( isnull( enginecost ) ){
      fenginecost    := selectobject( enginecosts, Elements, engine, engine.EndDate() > this.StartDate() and engine.EndDate() <= this.EndDate() and engine.StartDate() < this.StartDate() );
      if( not isnull( fenginecost ) ){
        fpits        := selectset( pits, Elements, pit, pit.Trip().Arrival().Date() >= fenginecost.StartDate() and pit.Trip().Arrival().Date() <= fenginecost.EndDate() );
        transcost    := transcost + this.CalcTransCost( fpits, transcosts, fenginecost );
      }
      menginecost    := selectobject( enginecosts, Elements, engine, engine.StartDate() > this.StartDate() and engine.EndDate() < this.EndDate() );
      if( not isnull( menginecost ) ){
        mpits        := selectset( pits, Elements, pit, pit.Trip().Arrival().Date() >= menginecost.StartDate() and pit.Trip().Arrival().Date() <= menginecost.EndDate() );
        transcost    := transcost + this.CalcTransCost( mpits, transcosts, menginecost );
      }
      benginecost    := selectobject( enginecosts, Elements, engine, engine.StartDate() > this.StartDate() and engine.StartDate() <= this.EndDate() and engine.EndDate() > this.EndDate() );
      if( not isnull( benginecost ) ){
        bpits        := selectset( pits, Elements, pit, pit.Trip().Arrival().Date() >= benginecost.StartDate() and pit.Trip().Arrival().Date() <= benginecost.EndDate() )
        transcost    := transcost + this.CalcTransCost( bpits, transcosts, benginecost );
      }
    }else{
      transcost      := transcost + this.CalcTransCost( pits, transcosts, enginecost );
    }
    return transcost;
  *]
}
_Main/BL/Type_CCEngineLogisticsCostColumn0/Method_CalcTransCost#652.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
#parent: #root
Method CalcTransCost (
  ProductInTrips pits,
  LogisticsCostTransports transcosts,
  LogisticsCostEngine enginecost
) as Real
{
  TextBody:
  [*
    // ç”„兰鸽 Nov-14-2024 (created)
    transcost        := 0.0
    tran             := selectobject( transcosts, Elements, trans, trans.StartDate() <= this.StartDate() and trans.EndDate() >= this.StartDate() );
    if( isnull( tran ) ){
      ftranscost     := selectobject( transcosts, Elements, trans, trans.EndDate() > this.StartDate() and this.EndDate() <= this.EndDate() and trans.StartDate() < this.StartDate() );
      if( not isnull( ftranscost ) ){
        newsqty      := sum( pits, Elements, pit, pit.Trip().Arrival().Date() >= ftranscost.StartDate() and pit.Trip().Arrival().Date() <= ftranscost.EndDate(), pit.Quantity() );
        transcost    := transcost + ceil( ceil( newsqty / enginecost.PackagingCapacity() ) / ftranscost.LoadingCapacity() ) * ftranscost.TransportPrice();
      }
      mtranscost     := selectobject( transcosts, Elements, trans, trans.StartDate() > this.StartDate() and trans.EndDate() < this.EndDate() );
      if( not isnull( mtranscost ) ){
        newsqty      := sum( pits, Elements, pit, pit.Trip().Arrival().Date() >= mtranscost.StartDate() and pit.Trip().Arrival().Date() <= mtranscost.EndDate(), pit.Quantity() );
        transcost    := transcost + ceil( ceil( newsqty / enginecost.PackagingCapacity() ) / mtranscost.LoadingCapacity() ) * mtranscost.TransportPrice();
      }
      btranscost    := selectobject( transcosts, Elements, trans, trans.StartDate() > this.StartDate() and trans.StartDate() <= this.EndDate() and trans.EndDate() > this.EndDate() );
      if( not isnull( btranscost ) ){
        newsqty      := sum( pits, Elements, pit, pit.Trip().Arrival().Date() >= btranscost.StartDate() and pit.Trip().Arrival().Date() <= btranscost.EndDate(), pit.Quantity() );
        transcost    := transcost + ceil( ceil( newsqty / enginecost.PackagingCapacity() ) / btranscost.LoadingCapacity() ) * btranscost.TransportPrice();
      }
    }else{
      newsqty        := sum( pits, Elements, pit, pit.Quantity() );
      transcost      := transcost + ceil( ceil( newsqty / enginecost.PackagingCapacity() ) / tran.LoadingCapacity() ) * tran.TransportPrice();
    }
    return transcost;
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
@@ -22,10 +22,12 @@
    
    table                     := selectobject(owner, CCEngineLogisticsCostReport, report, report.ID() = name );
    if( isnull( table ) ){
      owner.CCEngineLogisticsCostReport( relnew, ID := name, Name := name );
      table                   := owner.CCEngineLogisticsCostReport( relnew, ID := name, Name := name );
    }
    table.Column( relflush );
    table.Row( relflush );
    showname                  := name + 'Show';
    if( exists( owner, CCEngineLogisticsCostReport, report, report.ID() = showname and report.IsShow() ) ){
    if( not exists( owner, CCEngineLogisticsCostReport, report, report.ID() = showname and report.IsShow() ) ){
      owner.CCEngineLogisticsCostReport( relnew, ID := showname, Name := name, IsShow := true );
    }
    if( isnull( owner.CCEngineLogisticsCostSearch() ) ){
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl
@@ -7,7 +7,7 @@
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    owner.DLEngineLogisticsCostReport( relflush );
    //owner.DLEngineLogisticsCostReport( relflush );
    produtparent              := DLEngineLogisticsCostReport::GetDefaultProductParent();
    name                      := DLEngineLogisticsCostReport::GetDefaultName();
    allunit                   := DLEngineLogisticsCostReport::GetDefaultAllUnit();
@@ -17,9 +17,19 @@
    startofplanning           := owner.StartOfPlanning().Date();
    startofnextyear           := startofplanning.StartOfNextYear();
    
    table                     := owner.DLEngineLogisticsCostReport( relnew, ID := name, Name := name );
    owner.DLEngineLogisticsCostReport( relnew, ID := name + 'Show', Name := name, IsShow := true );
    owner.DLEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit );
    table                     := selectobject(owner, DLEngineLogisticsCostReport, report, report.ID() = name );
    if( isnull( table ) ){
      table                   := owner.DLEngineLogisticsCostReport( relnew, ID := name, Name := name );
    }
    table.Column( relflush );
    table.Row( relflush );
    showname                  := name + 'Show';
    if( not exists( owner, DLEngineLogisticsCostReport, report, report.ID() = showname and report.IsShow() ) ){
      owner.DLEngineLogisticsCostReport( relnew, ID := name + 'Show', Name := name, IsShow := true );
    }
    if( isnull( owner.DLEngineLogisticsCostSearch() ) ){
      owner.DLEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit );
    }
    
    products                  := construct( Product_MPs );
    
@@ -82,32 +92,26 @@
      isdl                    := laneleg.OriginStockingPointID().EndsWith( '厂内库' ) and ( laneleg.OriginStockingPointID().StartsWith( '大连' ) or laneleg.OriginStockingPointID().StartsWith( 'DL' ) );
      //目的地库存点是否是长春(长春外租库)
      iscc                    := laneleg.DestinationStockingPointID() = '大连发动机的长春外租库';
        if( isdl and iscc ){
        traverse( table, Column, column){//, column.StartDate().Month() = 1
          alltrips            := selectset( laneleg, Trip, trip, trip.Arrival().Date() < column.StartDate().StartOfNextMonth() and trip.Arrival().Date() >= column.StartDate() );
          enginecosts         := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.StartDate() <= column.StartDate() and engine.EndDate() >= column.StartDate() );
          transcosts          := selectset( owner, LogisticsCostTransport, trans, trans.LoadingCapacity() <> 0 and trans.StartDate() <= column.StartDate() and trans.EndDate() >= column.StartDate() );
          if( not isnull( enginecosts ) and enginecosts.Size() > 0 and not isnull( transcosts ) and transcosts.Size() > 0 ){
            producttrips      := selectuniquevalues( alltrips, Elements.ProductInTrip, pit, pit.Quantity() <> 0 and exists( pit.Product_MP().GetAllParent(), Elements, e, e.ID() = produtparent ), pit.ProductID() );
            traverse( producttrips, Elements, producttrip ){//, producttrip = '6912'
              row             := table.GetRow( producttrip );
              product         := selectobject( owner, Product_MP, product, product.ID() = producttrip );
              products.Add( product );
              quantity        := sum( alltrips, Elements.ProductInTrip, pit, pit.Product_MP() = product, pit.Quantity() );
              enginecost      := selectobject( enginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower()
                                                   and engine.MLB_MQB() = product.MQBMLB()
                                                   and engine.Factory() = ccfactory );
                //在运输成本参数表里找到发动机对应运输单价和装载容量
                transcost     := selectobject( transcosts, Elements, trans, trans.Origin() = laneleg.OriginStockingPointID()
                                                  and trans.Destination() = laneleg.DestinationStockingPointID()
                                                  and exists( product.GetAllParent(), Elements, e, ifexpr( trans.Product().FindString( '发动机', 0 ) >= 0, e.ID() = produtparent,  e.ID() = trans.Product() ) ) );
                if( not isnull( enginecost ) and not isnull( transcost ) ){
                  cost        := ceil( ceil( quantity / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();//四舍五入
                  cell        := selectobject( row, Cell, cell, cell.Column() = column );
                  cell.CCLongTransCost( cell.CCLongTransCost() + cost )
                }
      if( isdl and iscc ){
        allenginecosts        := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.Factory() = ccfactory );
        alltranscosts         := selectset( owner, LogisticsCostTransport, trans, trans.LoadingCapacity() <> 0 and trans.Origin() = laneleg.OriginStockingPointID() and trans.Destination() = laneleg.DestinationStockingPointID() );
        if( allenginecosts.Size() > 0 and alltranscosts.Size() > 0 ){
          alltrips            := selectset( laneleg, Trip, trip, exists( trip, ProductInTrip, pit, pit.Quantity() <> 0 and exists( pit.Product_MP().GetAllParent(), Elements, e, e.ID() = produtparent ) ) );
          productids          := selectuniquevalues( alltrips, Elements.ProductInTrip, pit, pit.Quantity() <> 0 and exists( pit.Product_MP().GetAllParent(), Elements, e, e.ID() = produtparent ), pit.ProductID() );
          traverse( productids, Elements, productid ){
            product           := selectobject( owner, Product_MP, product, product.ID() = productid );
            row               := table.GetRow( productid );
            products.Add( product );
            producttrips      := selectset( alltrips, Elements.ProductInTrip, pit, pit.Quantity() > 0 and pit.ProductID() = productid );
            enginecosts       := selectset( allenginecosts, Elements, engine, engine.Generation().ToLower() = product.Generation().ToLower() and engine.MLB_MQB() = product.MQBMLB() );
            //在运输成本参数表里找到发动机对应运输单价和装载容量
            transcosts        := selectset( alltranscosts, Elements, trans, exists( product.GetAllParent(), Elements, e, ifexpr( trans.Product().FindString( '发动机', 0 ) >= 0, e.ID() = produtparent,  e.ID() = trans.Product() ) ) );
            if( not isnull( enginecosts ) and enginecosts.Size() > 0 and not isnull( transcosts ) and transcosts.Size() > 0 ){
              traverse( table, Column, column){//, column.StartDate().Month() = 1
                columntrips   := selectset( producttrips, Elements, pit, pit.Trip().Arrival().Date() < column.StartDate().StartOfNextMonth() and pit.Trip().Arrival().Date() >= column.StartDate() );
                cell          := selectobject( row, Cell, cell, cell.Column() = column );
                cell.CCLongTransCost( column.CalcEngineCost( columntrips, enginecosts, transcosts ) );
              }
            }
          }
        }
@@ -186,24 +190,19 @@
    //    }
    //  }
    //}
    traverse( dlproducts, Elements, ccproduct){
    traverse( dlproducts, Elements, productid){
      
      row                     := table.GetRow( ccproduct )
      product                 := selectobject( owner, Product_MP, product, product.ID() = ccproduct );
      //查询对应的发动机成本
          enginecosts         := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.Generation().ToLower() = product.Generation().ToLower()
      row                     := table.GetRow( productid )
      product                 := selectobject( owner, Product_MP, product, product.ID() = productid );
      //查询对应的发动机成本
      enginecosts             := selectset( owner, LogisticsCostEngine, engine, engine.PackagingCapacity() <> 0 and engine.Generation().ToLower() = product.Generation().ToLower()
                                                 and engine.MLB_MQB() = product.MQBMLB()and engine.Factory() = dlfactory );
      if( not isnull( enginecosts ) and enginecosts.Size() > 0 ){
        products.Add( product );
        allpsdips             := selectset( dlforecasts, Elements.PlanningSalesDemandInPeriod, psdip, psdip.ProductID() = productid and psdip.Quantity() > 0 );
        traverse( table, Column, column ){
          allpsdips           := selectset( dlforecasts, Elements.PlanningSalesDemandInPeriod, psdip, psdip.ProductID() = ccproduct and psdip.Quantity() > 0 and psdip.StartDate() < column.StartDate().StartOfNextMonth() and psdip.StartDate() >= column.StartDate() );
          enginecost          := selectobject( enginecosts, Elements, engine, engine.StartDate() <= column.StartDate() and engine.EndDate() >= column.StartDate() );
          if( not isnull( enginecost ) ){
            products.Add( product );
            quantity          := sum( allpsdips, Elements, psdip, psdip.Quantity() );// + psdip.FulfilledQuantity()
            cost              := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.OutboundPrice();
            row.SetDLRentOutCost( column, cost );
          }
          psdips              := selectset( allpsdips, Elements, psdip, psdip.StartDate() <= column.EndDate() and psdip.StartDate() >= column.StartDate() );
          row.SetDLRentOutCost( column, column.CalcEngineCost( psdips, enginecosts ) );
        }
      }
    }
_Main/BL/Type_CustomerDemandIDS/Attribute_IsShow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute IsShow
{
  #keys: '3[415136.0.1306254772][415136.0.1306254771][415136.0.1306254773]'
  Description: '是否显示'
  ValueType: Boolean
}
_Main/BL/Type_CustomerDemandIDS/Method_Clear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method Clear (
  Dates periods
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    this.Column( relflush );
    this.Row( relflush );
    if( periods.Size() > 0 ){
      this.GenerateColumn( periods, true );
    }
  *]
}
_Main/BL/Type_CustomerDemandIDS/Method_Generate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
#parent: #root
Method Generate (
  CustomerDemandIDSSearch search
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    info( '-----------Search start-------' );
    table                   := selectobject( this,InterfaceDataset.CustomerDemandIDS, report, not report.IsShow() );
    //清空之前存储的显示数据
    idscolumns              := selectuniquevalues(  table, Column, idscolumn, idscolumn.TimeUnit() = search.TimeUnit() and idscolumn.StartDate() >= search.StartDate() and idscolumn.StartDate() <= search.EndDate(), idscolumn.StartDate() );
    this.Clear( idscolumns );
    traverse( table, Row, row, ( search.Unit() = FinancialProductionReport::GetDefaultAllUnit() or row.Factory() = search.Unit() )
              and ( search.Product() = FinancialProductionReport::GetDefaultAllUnit() or search.Product() = row.Name() ) ){
      showrow               := selectobject( this, Row, showrow, showrow.Name() = row.Name() and showrow.Factory() = search.Unit() );
      if( isnull( showrow ) ){
        showrow             := this.Row( relnew, Name := row.Name(), Factory := search.Unit() );
      }
      traverse( row, Cell, cell, cell.Column().TimeUnit() = search.TimeUnit() ){
        column              := selectobject( this, Column, column, column.Name() = cell.Column().Name() );
        if( not isnull( column ) ){
          showcell          := selectobject( showrow, Cell, showcell, showcell.Column() = column );
          if( isnull( showcell ) ){
            showcell        := column.Cell( relnew, Value := '' );
            showrow.Cell( relinsert, showcell );
          }
          showcell.Value( [String]( [Number]cell.Value() + [Number]showcell.Value() ) );
        }
      }
    }
    info( '-----------Search end-------' );
  *]
}
_Main/BL/Type_CustomerDemandIDS/Method_GenerateColumn.qbl
@@ -1,40 +1,47 @@
Quintiq file version 2.0
#parent: #root
Method GenerateColumn (
  Dates periods
  Dates periods,
  Boolean isshow
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    timeunit              := guard( this.InterfaceDataset().CustomerDemandIDSSearch().TimeUnit(), Translations::MP_GlobalParameters_Day() ) ;
    weekstart             := periods.Element( 0 );
    
    monthstart            := periods.Element( 0 );
    traverse( periods, Elements, periodtime ){
      periodname          := periodtime.Format( "M2/D2/Y" );
      this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      weekend             := ( weekstart + Duration::Days( 6 ) ).Date();
      if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
        weekstart         := periodtime;
      }
      if( periodtime = weekstart ){
        weekperiodname    := weekstart.Format( "M2/D2/Y" );
        this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Day() ){
        periodname        := periodtime.Format( "M2/D2/Y" );
        
        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      }
      if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
        monthstart        := periodtime;
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Week() ){
        weekend           := ( weekstart + Duration::Days( 6 ) ).Date();
        if( ( weekend.Year() <> periodtime.Year() and weekend.Month() > 1 ) or ( abs( weekstart.Week() - periodtime.Week() ) > 1 and weekend.Year() = periodtime.Year() ) ){
          weekstart       := periodtime;
        }
        if( periodtime = weekstart ){
          weekperiodname  := weekstart.Format( "M2/D2/Y" );
          this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart.StartOfNextWeek() - Duration::Days( 1 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
        }
        weekstart         := periodtime.StartOfNextWeek();
      }
      if( periodtime = monthstart ){
        monthperiodname   := monthstart.Format( "M2/D2/Y" );
        enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
        this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
      if( not isshow or timeunit = Translations::MP_GlobalParameters_Month() ){
        if( ( monthstart.Year() <> periodtime.Year() and abs( monthstart.Month() - periodtime.Month() ) <> 11 ) or ( abs( monthstart.Month() - periodtime.Month() ) > 1 and monthstart.Year() = periodtime.Year() ) ){
          monthstart        := periodtime;
        }
        if( periodtime = monthstart ){
          monthperiodname   := monthstart.Format( "M2/D2/Y" );
          enddate           := ( monthstart.StartOfNextMonth() - Duration::Days( 1 ) ).Date();
          this.Column( relnew, Name := monthperiodname, StartDate := monthstart, EndDate := enddate, TimeUnit := Translations::MP_GlobalParameters_Month() );
        }
        monthstart        := periodtime.StartOfNextMonth();
      }
      weekstart         := periodtime.StartOfNextWeek();
      monthstart        := periodtime.StartOfNextMonth();
    }
  *]
}
_Main/BL/Type_CustomerDemandIDS/Method_GetRowByUnit.qbl
@@ -8,10 +8,10 @@
  TextBody:
  [*
    // ç”„兰鸽 Sep-6-2024 (created)
    row := selectobject( this, Row, row, row.Name() = product and row.Factory() = unit );
    row                     := selectobject( this, Row, row, row.Name() = product and row.Factory() = unit );
    if( isnull( row ) ){
      //初始化单元格 
      row := this.Row( relnew, Name := product, Factory := unit );
      row                   := this.Row( relnew, Name := product, Factory := unit );
      traverse( this, Column, column ){
        row.Initialize( column );
      }
_Main/BL/Type_CustomerDemandIDS/StaticMethod_GenerateData.qbl
@@ -2,7 +2,7 @@
#parent: #root
StaticMethod GenerateData (
  InterfaceDataset interface,
  const MacroPlan macroplan,
  MacroPlan macroplan,
  RecycleBin recycle,
  const Archive archive
)
@@ -15,12 +15,15 @@
    //interface.CustomerDemandIDSSearch( relflush );
    info( '-------------------------Start---------------------');
    allunit               := CustomerDemandIDS::GetDefaultAllUnit();
    if( isnull( interface.CustomerDemandIDSSearch() ) ){
      interface.CustomerDemandIDSSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit );
    }
    idstable              := selectobject( interface, CustomerDemandIDS, idstable, idstable.ID() = '客户需求' );
    search                := interface.CustomerDemandIDSSearch( relnew, Product := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate(), TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit );
    name                  := '客户需求';
    idstable              := selectobject( interface, CustomerDemandIDS, idstable, idstable.ID() = name );
    if( isnull( idstable ) ){
      idstable            := interface.CustomerDemandIDS( relnew, ID := '客户需求', Name := '客户需求' );
      idstable            := interface.CustomerDemandIDS( relnew, ID := name, Name := name );
    }
    showtable             := selectobject( interface, CustomerDemandIDS, version, version.IsShow() );
    if( isnull( showtable ) ){
      showtable           := interface.CustomerDemandIDS( relnew, ID := name + 'Show', Name := name, IsShow := true );
    }
    binaryValue           := TemplateManager::GetIDSFullTable( archive, Date::ActualDate().Year() );
    source                := GeneralExcelImportAndExportDataSource::Upload( recycle, binaryValue, OS::TempPath() + "template.xlsx" );
@@ -34,7 +37,7 @@
    periods               := idsdates.Union( ppadates );
    periods               := selectuniquevalues( periods, Elements, e, not exists( idstable, Column, column, column.StartDate() = e ), e );
    if( periods.Size() > 0 ){
      idstable.GenerateColumn( periods.Sort() );
      idstable.GenerateColumn( periods.Sort(), false );
    }
    traverse( recycle, GeneralExcelImportAndExportDataSource.GeneralExcelImportAndExportDataTable, table ){
      traverse( table, GeneralExcelImportAndExportDataRow, row ){
@@ -54,8 +57,12 @@
      }
    }
    traverse ( macroplan, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.Product_MP() ) and forecast.Origin() = 'PPA' ){
      unitname              := ifexpr( forecast.SalesSegment_MP().Name().StartsWith( 'Changchun' )
                                       or exists( forecast.SalesSegment_MP().GetAllParent(), Elements, psalessegment, psalessegment.Name().StartsWith( 'Changchun' ) )
                                       , FinancialProductionReport::GetDefaultCCUnit()
                                       , FinancialProductionReport::GetDefaultDLUnit() );
      traverse( forecast, PlanningSalesDemandInPeriod, sdip ){
        idsrow              := idstable.GetRowByUnit( forecast.ProductID(), forecast.SalesSegmentName() );
        idsrow              := idstable.GetRowByUnit( forecast.ProductID(), unitname );
        daycolumn           := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Day(), sdip.StartDate() );
        weekcolumn          := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Week(), sdip.StartDate() );
        monthcolumn         := idstable.GetColumnByTimeUnit( Translations::MP_GlobalParameters_Month(), sdip.StartDate() );
@@ -68,5 +75,6 @@
    
    source.Delete();
    info( '-------------------------End---------------------');
    showtable.Generate( search );
  *]
}
_Main/BL/Type_CustomerDemandIDS/StaticMethod_InitiateSearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: #root
StaticMethod InitiateSearch (
  InterfaceDataset owner
) as CustomerDemandIDS
{
  TextBody:
  [*
    // ç”„兰鸽 Sep-29-2024 (created)
    allunit                   := FinancialProductionReport::GetDefaultAllUnit();
    search                    := owner.CustomerDemandIDSSearch();
    if( isnull( search ) ){
      search                  := owner.CustomerDemandIDSSearch( relnew, Product := allunit, TimeUnit := Translations::MP_GlobalParameters_Day(), Unit := allunit, StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
    }else{
      search                  := owner.CustomerDemandIDSSearch();
      search.Product( allunit );
      search.TimeUnit(  Translations::MP_GlobalParameters_Day() );
      search.Unit( allunit );
      search.StartDate( Date::MinDate() );
      search.EndDate( Date::MaxDate() );
    }
    table                     := selectobject( owner, CustomerDemandIDS, table, table.IsShow() );
    if( not isnull( table ) ){
      table.Generate( search);
    }
    return table;
  *]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelColumnSearch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelColumnSearch
{
  #keys: '[415136.0.1307730419]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelPeriod_384
    #child: PanelTimeUnit
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelHeader#952.def
@@ -5,17 +5,12 @@
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelUnit
    #child: PanelProductLine
    #child: PanelOperation_283
    #child: PanelTimeUnit_234
    #child: PanelPeriod
    #child: PanelProduct_937
    #child: PanelProductSearch
    #child: PanelColumnSearch
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation#283.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation.def copy to _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelOperation.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelOperation
{
  #keys: '[415136.0.1252790299]'
  #keys: '[415136.0.1307730510]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonSearch
    {
      #keys: '[415136.0.1252790300]'
      #keys: '[415136.0.1307730511]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -18,6 +18,6 @@
  ]
  Properties:
  [
    Taborder: 5
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelPeriod#384.def
copy from "_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelPeriod\043858.def" copy to "_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelPeriod\043384.def"
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelPeriod#858.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelPeriod id:PanelPeriod_858
Component PanelPeriod id:PanelPeriod_384
{
  #keys: '[415136.0.1252790303]'
  #keys: '[415136.0.1307730458]'
  BaseType: 'WebPanel'
  Children:
  [
    Component DateSelectorStart
    {
      #keys: '[415136.0.1252790304]'
      #keys: '[415136.0.1307730459]'
      BaseType: 'WebDateSelector'
      Properties:
      [
@@ -17,7 +17,7 @@
    }
    Component DateSelectorEnd
    {
      #keys: '[415136.0.1252790305]'
      #keys: '[415136.0.1307730460]'
      BaseType: 'WebDateSelector'
      Properties:
      [
@@ -30,6 +30,6 @@
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProduct#937.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProduct.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelProduct
{
  #keys: '[415136.0.1252790306]'
  #keys: '[415136.0.1307730409]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslProduct
    {
      #keys: '[415136.0.1252790307]'
      #keys: '[415136.0.1307730410]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
@@ -20,7 +20,6 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProductLine#623.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProductLine.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelProductLine
Component PanelProductLine id:PanelProductLine_623
{
  #keys: '[415136.0.1199302072]'
  #keys: '[415136.0.1307730382]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslProductLine
    {
      #keys: '[415136.0.1199302073]'
      #keys: '[415136.0.1307730383]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
@@ -18,7 +18,6 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProductSearch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
Component PanelProductSearch
{
  #keys: '[415136.0.1307730296]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelOperation
    #child: PanelUnit_424
    #child: PanelProductLine_623
    #child: PanelProduct
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit#234.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelTimeUnit.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTimeUnit
{
  #keys: '[415136.0.1252790301]'
  #keys: '[415136.0.1307730486]'
  BaseType: 'WebPanel'
  Children:
  [
    Component RadioButtonGroupUseForTimeUnit
    {
      #keys: '[415136.0.1252790302]'
      #keys: '[415136.0.1307730487]'
      BaseType: 'WebRadioButtonGroup'
      Properties:
      [
@@ -21,6 +21,6 @@
  ]
  Properties:
  [
    Taborder: 4
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelUnit#424.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelUnit.def copy to "_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelUnit\043424.def"
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelUnit.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelUnit
Component PanelUnit id:PanelUnit_424
{
  #keys: '[415136.0.1199302066]'
  #keys: '[415136.0.1307730355]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslUnit
    {
      #keys: '[415136.0.1199302067]'
      #keys: '[415136.0.1307730356]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
@@ -18,7 +18,6 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelOperation_283_ButtonSearch_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelOperation_ButtonSearch_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelOperation_ButtonSearch_OnClick.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelOperation/ButtonSearch
Response OnClick () id:Response_PanelOperation_ButtonSearch_OnClick
{
  #keys: '[415136.0.1294002009]'
  #keys: '[415136.0.1307730509]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelPeriod_384_DateSelectorEnd_OnChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_858_DateSelectorEnd_OnChanged.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelPeriod_858/DateSelectorEnd
Response OnChanged () id:Response_PanelPeriod_858_DateSelectorEnd_OnChanged
#parent: PanelPeriod_384/DateSelectorEnd
Response OnChanged () id:Response_PanelPeriod_384_DateSelectorEnd_OnChanged
{
  #keys: '[415136.0.1252790286]'
  #keys: '[415136.0.1307730456]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelPeriod_384_DateSelectorStart_OnChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_858_DateSelectorStart_OnChanged.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelPeriod_858/DateSelectorStart
Response OnChanged () id:Response_PanelPeriod_858_DateSelectorStart_OnChanged
#parent: PanelPeriod_384/DateSelectorStart
Response OnChanged () id:Response_PanelPeriod_384_DateSelectorStart_OnChanged
{
  #keys: '[415136.0.1252790287]'
  #keys: '[415136.0.1307730457]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_623_ddslProductLine_OnCreated.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_ddslProductLine_OnCreated.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelProductLine/ddslProductLine
Response OnCreated () id:Response_PanelProductLine_ddslProductLine_OnCreated
#parent: PanelProductLine_623/ddslProductLine
Response OnCreated () id:Response_PanelProductLine_623_ddslProductLine_OnCreated
{
  #keys: '[415136.0.1199302058]'
  #keys: '[415136.0.1307730381]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_623_ddslProductLine_OnSelectionChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_ddslProductLine_OnSelectionChanged.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelProductLine/ddslProductLine
Response OnSelectionChanged () id:Response_PanelProductLine_ddslProductLine_OnSelectionChanged
#parent: PanelProductLine_623/ddslProductLine
Response OnSelectionChanged () id:Response_PanelProductLine_623_ddslProductLine_OnSelectionChanged
{
  #keys: '[415136.0.1199302057]'
  #keys: '[415136.0.1307730380]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_937_ddslProduct_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_937_ddslProduct_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_ddslProduct_OnCreated.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnCreated.def copy to _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_ddslProduct_OnCreated.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnCreated.def ¸´ÖÆ
@@ -2,14 +2,14 @@
#parent: PanelProduct/ddslProduct
Response OnCreated () id:Response_PanelProduct_ddslProduct_OnCreated
{
  #keys: '[415136.0.1252790285]'
  #keys: '[415136.0.1307730408]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( InterfaceDataset, AssemblyOnlinePlanVersion.Row, row, true, row.Name() );
      values := selectuniquevalues( InterfaceDataset, AssemblyOnlinePlanVersion.Row, row, true, row.Name());
      
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_ddslProduct_OnSelectionChanged.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnSelectionChanged.def copy to _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProduct_ddslProduct_OnSelectionChanged.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnSelectionChanged.def ¸´ÖÆ
@@ -2,7 +2,7 @@
#parent: PanelProduct/ddslProduct
Response OnSelectionChanged () id:Response_PanelProduct_ddslProduct_OnSelectionChanged
{
  #keys: '[415136.0.1252790284]'
  #keys: '[415136.0.1307730407]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_234_RadioButtonGroupUseForTimeUnit_OnChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def copy to _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def ¸´ÖÆ
@@ -2,7 +2,7 @@
#parent: PanelTimeUnit/RadioButtonGroupUseForTimeUnit
Response OnChanged () id:Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged
{
  #keys: '[415136.0.1252790289]'
  #keys: '[415136.0.1307730485]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelTimeUnit/RadioButtonGroupUseForTimeUnit
Response OnCreated () id:Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated
{
  #keys: '[415136.0.1252790288]'
  #keys: '[415136.0.1307730484]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_424_ddslUnit_OnCreated.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnCreated.def copy to _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_424_ddslUnit_OnCreated.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnCreated.def ¸´ÖÆ
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelUnit/ddslUnit
Response OnCreated () id:Response_PanelUnit_ddslUnit_OnCreated
#parent: PanelUnit_424/ddslUnit
Response OnCreated () id:Response_PanelUnit_424_ddslUnit_OnCreated
{
  #keys: '[415136.0.1199302062]'
  #keys: '[415136.0.1307730354]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_424_ddslUnit_OnSelectionChanged.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnSelectionChanged.def copy to _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_424_ddslUnit_OnSelectionChanged.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnSelectionChanged.def ¸´ÖÆ
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelUnit_844/ddslUnit
Response OnSelectionChanged () id:Response_PanelUnit_844_ddslUnit_OnSelectionChanged
#parent: PanelUnit_424/ddslUnit
Response OnSelectionChanged () id:Response_PanelUnit_424_ddslUnit_OnSelectionChanged
{
  #keys: '[415136.0.1252790292]'
  #keys: '[415136.0.1307730353]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnSelectionChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormCustomerDemandPPAIDS/Component_PanelProduct.def
@@ -20,7 +20,6 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelColumnSearch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelColumnSearch
{
  #keys: '[415136.0.1307935295]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelPeriod_71
    #child: PanelTimeUnit
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelHeader#503.def
@@ -5,16 +5,12 @@
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelUnit
    #child: PanelOperation_414
    #child: PanelTimeUnit_805
    #child: PanelPeriod
    #child: PanelProduct_133
    #child: PanelColumnSearch
    #child: PanelRowSearch
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelOperation#414.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelOperation.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelOperation
{
  #keys: '[415136.0.1252790299]'
  #keys: '[415136.0.1307935388]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonSearch
    {
      #keys: '[415136.0.1252790300]'
      #keys: '[415136.0.1307935389]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -18,6 +18,6 @@
  ]
  Properties:
  [
    Taborder: 5
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelPeriod#71.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelPeriod#858.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelPeriod id:PanelPeriod_858
Component PanelPeriod id:PanelPeriod_71
{
  #keys: '[415136.0.1252790303]'
  #keys: '[415136.0.1307935336]'
  BaseType: 'WebPanel'
  Children:
  [
    Component DateSelectorStart
    {
      #keys: '[415136.0.1252790304]'
      #keys: '[415136.0.1307935337]'
      BaseType: 'WebDateSelector'
      Properties:
      [
@@ -17,7 +17,7 @@
    }
    Component DateSelectorEnd
    {
      #keys: '[415136.0.1252790305]'
      #keys: '[415136.0.1307935338]'
      BaseType: 'WebDateSelector'
      Properties:
      [
@@ -30,6 +30,6 @@
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelPeriod.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelProduct#133.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelProduct.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct.def copy to _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelProduct.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelProduct
{
  #keys: '[415136.0.1252790306]'
  #keys: '[415136.0.1307935280]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslProduct
    {
      #keys: '[415136.0.1252790307]'
      #keys: '[415136.0.1307935281]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
@@ -20,7 +20,6 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 2
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelRowSearch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
Component PanelRowSearch
{
  #keys: '[415136.0.1307935211]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelUnit_925
    #child: PanelProduct
    #child: PanelOperation
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit#805.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit.def copy to _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelTimeUnit.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTimeUnit
{
  #keys: '[415136.0.1252790301]'
  #keys: '[415136.0.1307935364]'
  BaseType: 'WebPanel'
  Children:
  [
    Component RadioButtonGroupUseForTimeUnit
    {
      #keys: '[415136.0.1252790302]'
      #keys: '[415136.0.1307935365]'
      BaseType: 'WebRadioButtonGroup'
      Properties:
      [
@@ -21,6 +21,6 @@
  ]
  Properties:
  [
    Taborder: 4
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelUnit#925.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Component_PanelUnit.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelUnit
Component PanelUnit id:PanelUnit_925
{
  #keys: '[415136.0.1277502022]'
  #keys: '[415136.0.1307935253]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslUnit
    {
      #keys: '[415136.0.1277502023]'
      #keys: '[415136.0.1307935254]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
@@ -18,7 +18,6 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelOperation_ButtonSearch_OnClick.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelOperation_ButtonSearch_OnClick.def copy to _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelOperation_ButtonSearch_OnClick.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelOperation_ButtonSearch_OnClick.def ¸´ÖÆ
@@ -2,7 +2,7 @@
#parent: PanelOperation/ButtonSearch
Response OnClick () id:Response_PanelOperation_ButtonSearch_OnClick
{
  #keys: '[415136.0.1294002009]'
  #keys: '[415136.0.1307935387]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_71_DateSelectorEnd_OnChanged.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_858_DateSelectorEnd_OnChanged.def copy to _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_71_DateSelectorEnd_OnChanged.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_858_DateSelectorEnd_OnChanged.def ¸´ÖÆ
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelPeriod_858/DateSelectorEnd
Response OnChanged () id:Response_PanelPeriod_858_DateSelectorEnd_OnChanged
#parent: PanelPeriod_71/DateSelectorEnd
Response OnChanged () id:Response_PanelPeriod_71_DateSelectorEnd_OnChanged
{
  #keys: '[415136.0.1252790286]'
  #keys: '[415136.0.1307935334]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_71_DateSelectorStart_OnChanged.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelPeriod_DateSelectorStart_OnChanged.def copy to _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_71_DateSelectorStart_OnChanged.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelPeriod_DateSelectorStart_OnChanged.def ¸´ÖÆ
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelPeriod/DateSelectorStart
Response OnChanged () id:Response_PanelPeriod_DateSelectorStart_OnChanged
#parent: PanelPeriod_71/DateSelectorStart
Response OnChanged () id:Response_PanelPeriod_71_DateSelectorStart_OnChanged
{
  #keys: '[415136.0.1199302052]'
  #keys: '[415136.0.1307935335]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_DateSelectorEnd_OnChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelPeriod_DateSelectorStart_OnChanged.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_ddslProduct_OnCreated.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnCreated.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelProduct/ddslProduct
Response OnCreated () id:Response_PanelProduct_ddslProduct_OnCreated
{
  #keys: '[415136.0.1252790285]'
  #keys: '[415136.0.1307935279]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_ddslProduct_OnSelectionChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_ddslProduct_OnSelectionChanged.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelProduct/ddslProduct
Response OnSelectionChanged () id:Response_PanelProduct_ddslProduct_OnSelectionChanged
{
  #keys: '[415136.0.1252790284]'
  #keys: '[415136.0.1307935278]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelTimeUnit/RadioButtonGroupUseForTimeUnit
Response OnChanged () id:Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnChanged
{
  #keys: '[415136.0.1252790289]'
  #keys: '[415136.0.1307935363]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def copy to _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated.def ¸´ÖÆ
@@ -2,7 +2,7 @@
#parent: PanelTimeUnit/RadioButtonGroupUseForTimeUnit
Response OnCreated () id:Response_PanelTimeUnit_RadioButtonGroupUseForTimeUnit_OnCreated
{
  #keys: '[415136.0.1252790288]'
  #keys: '[415136.0.1307935362]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_925_ddslUnit_OnCreated.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnCreated.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelUnit_844/ddslUnit
Response OnCreated () id:Response_PanelUnit_844_ddslUnit_OnCreated
#parent: PanelUnit_925/ddslUnit
Response OnCreated () id:Response_PanelUnit_925_ddslUnit_OnCreated
{
  #keys: '[415136.0.1252790293]'
  #keys: '[415136.0.1307935252]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_925_ddslUnit_OnSelectionChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_844_ddslUnit_OnSelectionChanged.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelUnit_844/ddslUnit
Response OnSelectionChanged () id:Response_PanelUnit_844_ddslUnit_OnSelectionChanged
#parent: PanelUnit_925/ddslUnit
Response OnSelectionChanged () id:Response_PanelUnit_925_ddslUnit_OnSelectionChanged
{
  #keys: '[415136.0.1252790292]'
  #keys: '[415136.0.1307935251]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelColumnSaerch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
Component PanelColumnSaerch
{
  #keys: '[415136.0.1306620738]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelPeriod
    #child: PanelTimeUnit_720
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelHeader.def
@@ -5,17 +5,12 @@
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelProduct
    #child: PanelPeriod_858
    #child: PanelTimeUnit
    #child: PanelOperation
    #child: PanelProductLine_603
    #child: PanelUnit_844
    #child: PanelRowSearch
    #child: PanelColumnSaerch
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation#679.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation.def copy to "_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation\043679.def"
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelOperation.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelOperation
Component PanelOperation id:PanelOperation_679
{
  #keys: '[415136.0.1252790299]'
  #keys: '[415136.0.1306620726]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonSearch
    {
      #keys: '[415136.0.1252790300]'
      #keys: '[415136.0.1306620727]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -18,6 +18,6 @@
  ]
  Properties:
  [
    Taborder: 5
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelPeriod.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelPeriod.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelPeriod
{
  #keys: '[415136.0.1199302080]'
  #keys: '[415136.0.1306620778]'
  BaseType: 'WebPanel'
  Children:
  [
    Component DateSelectorStart
    {
      #keys: '[415136.0.1199302081]'
      #keys: '[415136.0.1306620779]'
      BaseType: 'WebDateSelector'
      Properties:
      [
@@ -17,7 +17,7 @@
    }
    Component DateSelectorEnd
    {
      #keys: '[415136.0.1199302082]'
      #keys: '[415136.0.1306620780]'
      BaseType: 'WebDateSelector'
      Properties:
      [
@@ -30,6 +30,6 @@
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct#780.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct.def copy to "_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct\043780.def"
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProduct.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelProduct
Component PanelProduct id:PanelProduct_780
{
  #keys: '[415136.0.1252790306]'
  #keys: '[415136.0.1306620702]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslProduct
    {
      #keys: '[415136.0.1252790307]'
      #keys: '[415136.0.1306620703]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
@@ -20,7 +20,6 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProductLine#603.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProductLine.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProductLine.def copy to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelProductLine.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelProductLine.def ¸´ÖÆ
@@ -1,24 +1,24 @@
Quintiq file version 2.0
Component PanelProductLine
{
  #keys: '[415136.0.1199302072]'
  #keys: '[415136.0.1306620675]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslProductLine
    Component ddsProductLine
    {
      #keys: '[415136.0.1199302073]'
      #keys: '[415136.0.1306620676]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Product line'
        Sorting: 'none'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelRowSearch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
Component PanelRowSearch
{
  #keys: '[415136.0.1306620605]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelUnit
    #child: PanelProductLine
    #child: PanelProduct_780
    #child: PanelOperation_679
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit#720.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit.def copy to "_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit\043720.def"
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelTimeUnit.def ¸´ÖÆ
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelTimeUnit
Component PanelTimeUnit id:PanelTimeUnit_720
{
  #keys: '[415136.0.1252790301]'
  #keys: '[415136.0.1306620806]'
  BaseType: 'WebPanel'
  Children:
  [
    Component RadioButtonGroupUseForTimeUnit
    {
      #keys: '[415136.0.1252790302]'
      #keys: '[415136.0.1306620807]'
      BaseType: 'WebRadioButtonGroup'
      Properties:
      [
@@ -21,6 +21,6 @@
  ]
  Properties:
  [
    Taborder: 4
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelUnit#844.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Component_PanelUnit.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Component_PanelUnit.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component PanelUnit
{
  #keys: '[415136.0.1199302066]'
  #keys: '[415136.0.1306620648]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslUnit
    {
      #keys: '[415136.0.1199302067]'
      #keys: '[415136.0.1306620649]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
@@ -18,7 +18,6 @@
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelOperation_679_ButtonSearch_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelOperation_414_ButtonSearch_OnClick.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelOperation_414/ButtonSearch
Response OnClick () id:Response_PanelOperation_414_ButtonSearch_OnClick
#parent: PanelOperation_679/ButtonSearch
Response OnClick () id:Response_PanelOperation_679_ButtonSearch_OnClick
{
  #keys: '[415136.0.1285202243]'
  #keys: '[415136.0.1306620725]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_DateSelectorEnd_OnChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelPeriod_DateSelectorEnd_OnChanged.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelPeriod/DateSelectorEnd
Response OnChanged () id:Response_PanelPeriod_DateSelectorEnd_OnChanged
{
  #keys: '[415136.0.1199302051]'
  #keys: '[415136.0.1306620776]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelPeriod_DateSelectorStart_OnChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelPeriod_DateSelectorStart_OnChanged.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelPeriod/DateSelectorStart
Response OnChanged () id:Response_PanelPeriod_DateSelectorStart_OnChanged
{
  #keys: '[415136.0.1199302052]'
  #keys: '[415136.0.1306620777]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_603_ddsProductLine_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_ddsProductLine_OnCreated.def
copy from _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_ddslProductLine_OnCreated.def copy to _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_ddsProductLine_OnCreated.def
Îļþ´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelProductLine_ddslProductLine_OnCreated.def ¸´ÖÆ
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelProductLine/ddslProductLine
Response OnCreated () id:Response_PanelProductLine_ddslProductLine_OnCreated
#parent: PanelProductLine/ddsProductLine
Response OnCreated () id:Response_PanelProductLine_ddsProductLine_OnCreated
{
  #keys: '[415136.0.1199302058]'
  #keys: '[415136.0.1306620674]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_ddsProductLine_OnSelectionChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProductLine_603_ddsProductLine_OnSelectionChanged.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelProductLine_603/ddsProductLine
Response OnSelectionChanged () id:Response_PanelProductLine_603_ddsProductLine_OnSelectionChanged
#parent: PanelProductLine/ddsProductLine
Response OnSelectionChanged () id:Response_PanelProductLine_ddsProductLine_OnSelectionChanged
{
  #keys: '[415136.0.1252790290]'
  #keys: '[415136.0.1306620673]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_780_ddslProduct_OnCreated.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_133_ddslProduct_OnCreated.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelProduct_133/ddslProduct
Response OnCreated () id:Response_PanelProduct_133_ddslProduct_OnCreated
#parent: PanelProduct_780/ddslProduct
Response OnCreated () id:Response_PanelProduct_780_ddslProduct_OnCreated
{
  #keys: '[415136.0.1277502009]'
  #keys: '[415136.0.1306620701]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelProduct_780_ddslProduct_OnSelectionChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelProduct_133_ddslProduct_OnSelectionChanged.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelProduct_133/ddslProduct
Response OnSelectionChanged () id:Response_PanelProduct_133_ddslProduct_OnSelectionChanged
#parent: PanelProduct_780/ddslProduct
Response OnSelectionChanged () id:Response_PanelProduct_780_ddslProduct_OnSelectionChanged
{
  #keys: '[415136.0.1277502008]'
  #keys: '[415136.0.1306620700]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnChanged.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelTimeUnit_805/RadioButtonGroupUseForTimeUnit
Response OnChanged () id:Response_PanelTimeUnit_805_RadioButtonGroupUseForTimeUnit_OnChanged
#parent: PanelTimeUnit_720/RadioButtonGroupUseForTimeUnit
Response OnChanged () id:Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnChanged
{
  #keys: '[415136.0.1277502005]'
  #keys: '[415136.0.1306620805]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnCreated.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelTimeUnit_234_RadioButtonGroupUseForTimeUnit_OnCreated.def ÐÞ¸Ä
@@ -1,8 +1,8 @@
Quintiq file version 2.0
#parent: PanelTimeUnit_234/RadioButtonGroupUseForTimeUnit
Response OnCreated () id:Response_PanelTimeUnit_234_RadioButtonGroupUseForTimeUnit_OnCreated
#parent: PanelTimeUnit_720/RadioButtonGroupUseForTimeUnit
Response OnCreated () id:Response_PanelTimeUnit_720_RadioButtonGroupUseForTimeUnit_OnCreated
{
  #keys: '[415136.0.1199302055]'
  #keys: '[415136.0.1306620804]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_ddslUnit_OnCreated.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormAssemblyOnlinePlanVersion/Response_PanelUnit_ddslUnit_OnCreated.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelUnit/ddslUnit
Response OnCreated () id:Response_PanelUnit_ddslUnit_OnCreated
{
  #keys: '[415136.0.1199302062]'
  #keys: '[415136.0.1306620647]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanArchive/Response_PanelUnit_ddslUnit_OnSelectionChanged.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormInventoryPlanArchive/Response_PanelUnit_ddslUnit_OnSelectionChanged.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: PanelUnit/ddslUnit
Response OnSelectionChanged () id:Response_PanelUnit_ddslUnit_OnSelectionChanged
{
  #keys: '[415136.0.1277502000]'
  #keys: '[415136.0.1306620646]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction