hongji.li
2023-09-11 8a69c2f5505f7d54a7ce097765ca7c6c0e265725
物料标签&计划策略优化
已重命名4个文件
已修改8个文件
已添加39个文件
已删除16个文件
1570 ■■■■■ 文件已修改
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CheckThePrecedingColumn.qbl 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CreateOrUpdateData.qbl 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_SynchronizeData.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyThatTheItemCodeIsNotDuplicated.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyTheTemplate.qbl 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/DefaultValue_fileName.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_VerifyTheFileName.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_BusinessType.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MaximumNumberOfDaysInInventory.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinimumNumberOfDaysInStock.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_SerialNumber.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTop.def 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTopMost.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/_ROOT_Component_frmStandardAnalysisGlobalOTDTable.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlContent.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_Edit.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_OnOK.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlActions.def 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlContent.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlGeneral.def 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Method_Edit.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnCancel_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnOk_OnClick.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/_ROOT_Component_DialogCreateEditMaterialLabelingAndPlanningStrategy.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_ListMatAttrSettingAndPlanStrategy.def 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listActionBarPageMatAttrSettingAndPlanStrategy.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listContextMenuMatAttrSettingAndPlanStrategy.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyExport_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyImport_OnClick.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ListMatAttrSettingAndPlanStrategy_MenuEdit_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_OnCreated.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/_ROOT_Component_FormMatAttrSettingAndPlanStrategy.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_ListMatAttrSettingAndPlanStrategyDetail#21.def 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listActionBarPageMatAttrSettingAndPlanStrategyDetail#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listContextMenuMatAttrSettingAndPlanStrategyDetail#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/_ROOT_Component_FormMatAttrSettingAndPlanStrategyDetail.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListChildMaterial.def 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListMaterialMaterialLabelingAndPlanningStrategy#880.def 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelChildMaterial#558.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterial.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport#136.def 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialLabelingAndPlanningStrategy.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialOperationButton.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageChildMaterial.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageMaterial790#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuChildMaterial.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuMaterial455#1.def 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuDeleteAll_O.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuSelectAll_O.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnDoubleClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheck#591.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedCh.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndExport_OnCl.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnCl.def 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterial_DataHolderCheckedMaterials_OnDataChanged.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/_ROOT_Component_FormMaterialLabelingAndPlanningStrategy.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
@@ -4,14 +4,16 @@
{
  TextBody:
  [*
    //this.MatAttrSettingAndPlanStrategy( relflush );
    // yypsybs Sep-8-2023 (created)
    mat1 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, "MAT_1", "MAT_1", "TYPE_1", 233.0, "通用", "长周期" );
    mat1 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 1, "手机事业部", "MAT_1", "MAT_1", "TYPE_1", 233.0, "通用", "长周期" );
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_1", 666.0, "PROD_1_DESC" );
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat1, "PROD_2", 777.0, "PROD_2_DESC" );
    mat2 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, "MAT_2", "MAT_2", "TYPE_2", 233.0, "专用", "长周期" );
    mat2 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 2, "手机事业部", "MAT_2", "MAT_2", "TYPE_2", 233.0, "专用", "长周期" );
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_1", 1666.0, "PROD_1_DESC" );
    MatAttrSettingAndPlanStrategyDetail::CreateIfNotExist( mat2, "PROD_2", 1777.0, "PROD_2_DESC" );
    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, "MAT_3", "MAT_3", "TYPE_1", 233.0, "通用", "短周期" );
    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, "MAT_4", "MAT_4", "TYPE_2", 233.0, "专用", "短周期" );
    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 3, "手机事业部", "MAT_3", "MAT_3", "TYPE_1", 233.0, "通用", "短周期" );
    MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, 4, "手机事业部", "MAT_4", "MAT_4", "TYPE_2", 233.0, "专用", "短周期" );
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CheckThePrecedingColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: #root
Method CheckThePrecedingColumn (
  GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    traverse ( this, MatAttrSettingAndPlanStrategyDataRow, masapsdr ) {
      itemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" );
      targetMatAttrSettingAndPlanStrategy := select( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() );
      if ( not isnull( targetMatAttrSettingAndPlanStrategy ) ) {
        businessType                      := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "业务类型" ).value();
        nameOfMaterial                    := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料名称" ).value();
        itemClassification                := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料分类" ).value();
        LTTimeDays                        := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "LT时间(天)" ).value();
        numberOfFinishedSKUs              := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "成品SKU数量" ).value();
        finishedProductDeliveryMinLTDays  := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "成品交付Min-LT(天)" ).value();
        longAndShortCycleLabels           := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "长短周期标签" ).value();
        genericSpecialLabels              := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "通用专用标签" ).value();
        automaticMaterialPlanningPolicies := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "自动物料计划策略" ).value();
        if ( businessType                           <> targetMatAttrSettingAndPlanStrategy.BusinessType()     or
             nameOfMaterial                         <> targetMatAttrSettingAndPlanStrategy.MatName()          or
             itemClassification                     <> targetMatAttrSettingAndPlanStrategy.MatType()          or
             [Real]LTTimeDays                       <> targetMatAttrSettingAndPlanStrategy.MatArrivalLT()     or
             [Real]numberOfFinishedSKUs             <> targetMatAttrSettingAndPlanStrategy.ProductCount()     or
             [Real]finishedProductDeliveryMinLTDays <> targetMatAttrSettingAndPlanStrategy.MinProdDeliverLT() or
             longAndShortCycleLabels                <> targetMatAttrSettingAndPlanStrategy.FlagLongTerm()     or
             genericSpecialLabels                   <> targetMatAttrSettingAndPlanStrategy.FlagGeneric()      or
             automaticMaterialPlanningPolicies      <> targetMatAttrSettingAndPlanStrategy.PlanningStrategyAuto() )
        {
          error( "导入失败,与当前系统字段不一致:", targetMatAttrSettingAndPlanStrategy.MatCode() );
        }
      }
    }
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_CreateOrUpdateData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
Quintiq file version 2.0
#parent: #root
Method CreateOrUpdateData (
  GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    traverse ( this, MatAttrSettingAndPlanStrategyDataRow, masapsdr ) {
      itemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" );
      targetMatAttrSettingAndPlanStrategy := select( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() );
      if ( not isnull( targetMatAttrSettingAndPlanStrategy ) ) {
        minimumNumberOfDaysInStock     := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最小天数" ).value();
        maximumNumberOfDaysInInventory := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最大天数" ).value();
        try {
          targetMatAttrSettingAndPlanStrategy.MinimumNumberOfDaysInStock( [Number]minimumNumberOfDaysInStock );
          targetMatAttrSettingAndPlanStrategy.MaximumNumberOfDaysInInventory( [Number]maximumNumberOfDaysInInventory );
          targetMatAttrSettingAndPlanStrategy.UpdateBy( QuintiqUser::CurrentUser().Username() );
          targetMatAttrSettingAndPlanStrategy.UpdateTime( DateTime::ActualTime() );
        } onerror {
          error( "库存最小天数或库存最大天数必须为整数:", targetMatAttrSettingAndPlanStrategy.MatCode() );
        }
      } else {
        businessType                      := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "业务类型" ).value();
        createItemCode                    := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" ).value();
        nameOfMaterial                    := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料名称" ).value();
        itemClassification                := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料分类" ).value();
        LTTimeDays                        := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "LT时间(天)" ).value();
    //    numberOfFinishedSKUs              := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "成品SKU数量" ).value();
    //    finishedProductDeliveryMinLTDays  := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "成品交付Min-LT(天)" ).value();
        longAndShortCycleLabels           := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "长短周期标签" ).value();
        genericSpecialLabels              := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "通用专用标签" ).value();
    //    automaticMaterialPlanningPolicies := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "自动物料计划策略" ).value();
        usersManuallySchedulePolicies     := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "用户手动计划策略" ).value();
        minimumNumberOfDaysInStock        := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最小天数" ).value();
        maximumNumberOfDaysInInventory    := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最大天数" ).value();
        try {
          matAttrSettingAndPlanStrategy := globalOTDTable.MatAttrSettingAndPlanStrategy( relnew,
                                                                                         BusinessType := businessType,
                                                                                         MatCode := createItemCode,
                                                                                         MatName := nameOfMaterial,
                                                                                         MatType := itemClassification,
                                                                                         MatArrivalLT := [Number]LTTimeDays,
    //                                                                                     ProductCount := [Number]numberOfFinishedSKUs,
    //                                                                                     MinProdDeliverLT := [Number]finishedProductDeliveryMinLTDays,
                                                                                         FlagLongTerm := longAndShortCycleLabels,
                                                                                         FlagGeneric := genericSpecialLabels,
    //                                                                                     PlanningStrategyAuto := automaticMaterialPlanningPolicies,
                                                                                         PlanningStrategyCustom := usersManuallySchedulePolicies,
                                                                                         MinimumNumberOfDaysInStock := [Number]minimumNumberOfDaysInStock,
                                                                                         MaximumNumberOfDaysInInventory := [Number]maximumNumberOfDaysInInventory
                                                                                        );
          matAttrSettingAndPlanStrategy.UpdateBy( QuintiqUser::CurrentUser().Username() );
          matAttrSettingAndPlanStrategy.UpdateTime( DateTime::ActualTime() );
          matAttrSettingAndPlanStrategy.SerialNumber( maxselect( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.SerialNumber() ).SerialNumber() + 1 );
        } onerror {
          error( "库存最小天数或库存最大天数必须为整数:", targetMatAttrSettingAndPlanStrategy.MatCode() );
        }
      }
    }
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_SynchronizeData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method SynchronizeData
{
  TextBody:
  [*
    this.VerifyThatTheItemCodeIsNotDuplicated();
    globalOTDTable := this.MatAttrSettingAndPlanStrategyInputSource().GlobalOTDTable();
    this.CheckThePrecedingColumn( globalOTDTable );
    this.CreateOrUpdateData( globalOTDTable );
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyThatTheItemCodeIsNotDuplicated.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Method VerifyThatTheItemCodeIsNotDuplicated
{
  TextBody:
  [*
    itemCodes := selectuniquevalues( this,
                                     MatAttrSettingAndPlanStrategyDataColumn.MatAttrSettingAndPlanStrategyDataCell,
                                     tempMASAPSDC,
                                     tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码",
                                     tempMASAPSDC.value() );
    traverse ( itemCodes, Elements, ic ) {
      icTotal := selectset( this,
                            MatAttrSettingAndPlanStrategyDataColumn.MatAttrSettingAndPlanStrategyDataCell,
                            tempMASAPSDC,
                            tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" and tempMASAPSDC.value() = ic );
      if ( icTotal.Size() > 1 ) {
        error( "存在重复物料编码:", ic );
      }
    }
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_VerifyTheTemplate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: #root
Method VerifyTheTemplate
{
  TextBody:
  [*
    if ( select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 0 ).name()  <> "业务类型"             or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 1 ).name()  <> "物料编码"             or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 2 ).name()  <> "物料名称"             or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 3 ).name()  <> "物料分类"             or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 4 ).name()  <> "LT时间(天)"         or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 5 ).name()  <> "成品SKU数量"          or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 6 ).name()  <> "成品交付Min-LT(天)" or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 7 ).name()  <> "长短周期标签"         or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 8 ).name()  <> "通用专用标签"         or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 9 ).name()  <> "自动物料计划策略"     or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 10 ).name() <> "用户手动计划策略"     or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 11 ).name() <> "库存最小天数"         or
         select( this, MatAttrSettingAndPlanStrategyDataColumn, tempMASAPSDC, tempMASAPSDC.columnIndex() = 12 ).name() <> "库存最大天数"
        ) {
      error( "模板解析错误" );
    }
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
Method parseRows
Method ParseRows
{
  TextBody:
  [*
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl
@@ -55,6 +55,7 @@
    }
    //---------------------------------------------------------------------------------------------
    xmlTemplate := xmlTemplate + "</table>";
    info( xmlTemplate );
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
    XLS::SaveTable( tableHandle, OS::TempPath() + "MatAttrSettingAndPlanStrategy.xlsx" );
    file := OSFile::Construct();
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/DefaultValue_fileName.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl
@@ -4,20 +4,22 @@
{
  TextBody:
  [*
    // yypsybs Jul-1-2023 (created)
    tableGroupHandle := TableGroupHandle::Create( this.FileName() );
    tableGroupHandle := XLS::LoadTableGroupFromBinaryData( BinaryData::FromBase64EncodedString( this.Base64Str() ), tableGroupHandle, true, this.IsXlsx() );
    
    sheets := tableGroupHandle.TableNames();
    
    traverse ( sheets, Elements, sheetName, sheetName = "MatAttrSettingAndPlanStrategy" ) {
    traverse ( sheets, Elements, sheetName, sheetName = "物料标签" ) {
      tableHandle := tableGroupHandle.Table( sheetName );
      tableXML := TableHandle::ExportXML( tableHandle );
      MatAttrSettingAndPlanStrategyDataTable::XMLImportMatAttrSettingAndPlanStrategyDataTableXMLHeaders(  tableXML );
      parsedTable := MatAttrSettingAndPlanStrategyDataTable::XMLImportMatAttrSettingAndPlanStrategyDataTableXML( tableXML );
      parsedTable.parseRows();
      parsedTable.name( sheetName );
      this.MatAttrSettingAndPlanStrategyDataTable( relinsert, &parsedTable );
      matAttrSettingAndPlanStrategyDataTable := MatAttrSettingAndPlanStrategyDataTable::XMLImportMatAttrSettingAndPlanStrategyDataTableXML( tableXML );
      matAttrSettingAndPlanStrategyDataTable.ParseRows();
      matAttrSettingAndPlanStrategyDataTable.name( sheetName );
      this.MatAttrSettingAndPlanStrategyDataTable( relinsert, &matAttrSettingAndPlanStrategyDataTable );
    }
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_VerifyTheFileName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod VerifyTheFileName (
  JSON uploadJson
)
{
  TextBody:
  [*
    fileNames := uploadJson.Get( "name" ).GetString().Tokenize( "." );
    fileNameSuffix := fileNames.Element( fileNames.Size() - 1 );
    if ( fileNameSuffix <> "xlsx" and fileNameSuffix <> "xls" ) {
      error( "请上传Excel文件" );
    }
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Upload (
  GlobalOTDTable parent,
  GlobalOTDTable globalOTDTable,
  String filePath,
  String base64Str,
  String userName
@@ -9,16 +9,15 @@
{
  TextBody:
  [*
    // yypsybs Jul-1-2023 (created)
    parent.MatAttrSettingAndPlanStrategyInputSource( relflush );
    info( "filePath : " + filePath );
    globalOTDTable.MatAttrSettingAndPlanStrategyInputSource( relflush );
    fileName := filePath.Tokenize( "\" ).Element( filePath.Tokenize( "\" ).Size() - 1 );
    info( "fileName : " + fileName );
    inputSource := parent.MatAttrSettingAndPlanStrategyInputSource( relnew,
                                                                    FileName := fileName,
                                                                    Base64Str := base64Str,
                                                                    IsXlsx := fileName.EndsWith( "xlsx" ),
                                                                    UserName := userName );
    inputSource := globalOTDTable.MatAttrSettingAndPlanStrategyInputSource( relnew,
                                                                            FileName  := fileName,
                                                                            Base64Str := base64Str,
                                                                            IsXlsx    := fileName.EndsWith( "xlsx" ),
                                                                            UserName  := userName );
    
    return inputSource;
  *]
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_BusinessType.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessType
{
  #keys: '3[414702.0.129575801][414702.0.129575800][414702.0.129575802]'
  Description: '业务类型'
  ValueType: String
}
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MaximumNumberOfDaysInInventory.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MaximumNumberOfDaysInInventory
{
  #keys: '3[414702.0.129559419][414702.0.129559418][414702.0.129559420]'
  Description: '库存最大天数'
  ValueType: Number
}
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinimumNumberOfDaysInStock.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute MinimumNumberOfDaysInStock
{
  #keys: '3[414702.0.129559409][414702.0.129559408][414702.0.129559410]'
  Description: '库存最小天数'
  ValueType: Number
}
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_SerialNumber.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SerialNumber
{
  #keys: '3[414702.0.129544801][414702.0.129544800][414702.0.129544802]'
  Description: '序号'
  ValueType: Number
}
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl
@@ -2,6 +2,8 @@
#parent: #root
StaticMethod CreateIfNotExist (
  GlobalOTDTable parent,
  Number serialNumber,
  String businessType,
  String matCode,
  String matName,
  String matType,
@@ -16,6 +18,8 @@
    value := MatAttrSettingAndPlanStrategy::GetExistByMatCode( parent, matCode );
    if( isnull( value ) ) {
      value := parent.MatAttrSettingAndPlanStrategy( relnew, 
                                                     SerialNumber := serialNumber,
                                                     BusinessType := businessType,
                                                     MatCode := matCode, 
                                                     MatName := matName,
                                                     MatType := matType,
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_ExportTheFileStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ExportTheFileStream (
  MatAttrSettingAndPlanStrategys masapss
) as BinaryValue
{
  TextBody:
  [*
    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>物料标签</name><column><name>业务类型</name><type>String</type></column><column><name>物料编码</name><type>String</type></column><column><name>物料名称</name><type>String</type></column><column><name>物料分类</name><type>String</type></column><column><name>LT时间(天)</name><type>Number</type></column><column><name>成品SKU数量</name><type>Number</type></column><column><name>成品交付Min-LT(天)</name><type>Number</type></column><column><name>长短周期标签</name><type>String</type></column><column><name>通用专用标签</name><type>String</type></column><column><name>自动物料计划策略</name><type>String</type></column><column><name>用户手动计划策略</name><type>String</type></column><column><name>库存最小天数</name><type>Number</type></column><column><name>库存最大天数</name><type>Number</type></column></table>';
    xmlDOMImplementation := XMLDOMImplementation::Create();
    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
    masapss := selectsortedset( masapss, Elements, tempMASAPS, true, tempMASAPS.MatCode() );
    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
    traverse ( masapss, Elements, masaps ) {
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.BusinessType(), "业务类型" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.MatCode(), "物料编码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.MatName(), "物料名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.MatType(), "物料分类" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.MatArrivalLT(), "LT时间(天)" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.ProductCount(), "成品SKU数量" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.MinProdDeliverLT(), "成品交付Min-LT(天)" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.FlagLongTerm(), "长短周期标签" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.FlagGeneric(), "通用专用标签" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.PlanningStrategyAuto(), "自动物料计划策略" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, masaps.PlanningStrategyCustom(), "用户手动计划策略" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.MinimumNumberOfDaysInStock(), "库存最小天数" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]masaps.MaximumNumberOfDaysInInventory(), "库存最大天数" );
    }
    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
    tableGroupHandle := TableGroupHandle::Create( "物料标签" );
    tableGroupHandle.Add( tableHandle );
    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return tableBinaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_GeneratesTheSpecifiedXMLColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GeneratesTheSpecifiedXMLColumn (
  XMLDOMDocument xmlDOMDocument,
  XMLDOMElement tableElement,
  String value,
  String columnName
)
{
  TextBody:
  [*
    columnElements := tableElement.GetElementsByTagName( "column" );
    traverse ( columnElements, Elements, ce ) {
      nameElement := ce.GetElementByTagName( "name", 0 );
      if ( nameElement.TextContent() = columnName ) {
        cell := xmlDOMDocument.CreateElement( "cell" );
        cell.SetAttribute( "value", value );
        ce.AppendChild( cell );
      }
    }
  *]
}
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Component_mbMainMenu.def
@@ -78,6 +78,8 @@
          ]
        }
        Component MenuDoSync { #keys: '[414384.0.605664172]' BaseType: 'Menu' Properties: [ Image: 'CLOUD_DOWNLOAD' Text: 'DoSync' ] }
        Component menuSeparator506 { #keys: '[414702.0.137524309]' BaseType: 'Menu' Properties: [ Separator: true ] }
        Component ComponentMenuAnalysisGlobalOTDTable { #keys: '[414702.0.137524953]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'frmStandardAnalysisGlobalOTDTable' Text: '' ] }
      ]
      Properties:
      [
@@ -94,6 +96,8 @@
          c: Menu8
          c: MenuSelectDemoDataset
          c: MenuDoSync
          c: menuSeparator506
          c: ComponentMenuAnalysisGlobalOTDTable
        }
      ]
    }
_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTop.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
Component swTop
{
  #keys: '[530.0.3531806]'
  BaseType: 'swTop'
  IsDerived: true
  Children:
  [
    Component spTopLeft
    {
      #keys: '[530.0.3531807]'
      BaseType: 'spTopLeft'
      IsDerived: true
      Children:
      [
        Component Analysis
        {
          #keys: '[530.0.3532065]'
          BaseType: 'Analysis'
          IsDerived: true
          Properties:
          [
            GlobalInstance: 'GlobalOTDTable'
          ]
        }
      ]
    }
  ]
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/Component_swTopMost.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
Component swTopMost
{
  #keys: '[530.0.3531801]'
  BaseType: 'swTopMost'
  IsDerived: true
  Children:
  [
    Component SplitterPane1
    {
      #keys: '[530.0.3531802]'
      BaseType: 'SplitterPane1'
      IsDerived: true
      Children:
      [
        #child: swTop
      ]
    }
  ]
}
_Main/UI/MacroPlanner/Component_frmStandardAnalysisGlobalOTDTable/_ROOT_Component_frmStandardAnalysisGlobalOTDTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#root
#parent: MacroPlanner
OrphanComponent frmStandardAnalysisGlobalOTDTable
{
  #keys: '[414702.0.137524322]'
  BaseType: 'frmStandardAnalysis'
  Children:
  [
    #child: swTopMost
  ]
  Properties:
  [
    Height: 601
    Image: 'BIRD'
    Title: 'Analysis GlobalOTDTable'
    Width: 783
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonIn.def
@@ -2,7 +2,6 @@
#parent: LibSOPImpExp_ContextMenuImport/MenuImportFromCommonInformationModel
Response OnClick () id:Response_TIANMA_JITUAN_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonInformationModel_OnClick
{
  #warning 103647: "Identifier 'Response_MacroPlanner_LibSOPImpExp_ContextMenuImport_MenuImportFromCommonInformationModel_OnClick' is not unique in the scope of 'LibSOPImpExp_ContextMenuImport' component on 'ApplicationMacroPlanner'. The reason can be a recently added ModeledResponse. A unique identifier was generated automatically."
  #keys: '[146140.2.683371355]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlContent.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_Edit.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_OnOK.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlActions.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlActions.def ÐÞ¸Ä
@@ -1,13 +1,13 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[414384.0.770880997]'
  #keys: '[414702.0.131771244]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[414384.0.770881001]'
      #keys: '[414702.0.131771248]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -17,7 +17,7 @@
    }
    Component btnCancel
    {
      #keys: '[414384.0.770881003]'
      #keys: '[414702.0.131771250]'
      BaseType: 'WebButton'
      Properties:
      [
@@ -35,6 +35,6 @@
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[414702.0.131771242]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: pnlGeneral
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Component_pnlGeneral.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,133 @@
Quintiq file version 2.0
Component pnlGeneral
{
  #keys: '[414702.0.139154801]'
  BaseType: 'WebPanel'
  Children:
  [
    Component efBusinessType
    {
      #keys: '[414702.0.139035752]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.BusinessType'
        Enabled: false
        Label: '业务类型'
        Taborder: 0
      ]
    }
    Component efItemCode
    {
      #keys: '[414702.0.139035772]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.MatCode'
        Enabled: false
        Label: '物料编码'
        Taborder: 1
      ]
    }
    Component efNameOfMaterial
    {
      #keys: '[414702.0.139035784]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.MatName'
        Enabled: false
        Label: '物料名称'
        Taborder: 2
      ]
    }
    Component efMaterialArrivalLTDays
    {
      #keys: '[414702.0.139035796]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.MatArrivalLT'
        Description: 'Finished product minimum delivery LT (days)'
        Enabled: false
        Label: '物料到货LT(天)'
        Taborder: 3
      ]
    }
    Component efFinishedProductMinimumDeliveryLTDays
    {
      #keys: '[414702.0.139035809]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.MinProdDeliverLT'
        Enabled: false
        Label: '成品最小交付LT(天)'
        Taborder: 4
      ]
    }
    Component efFinishedSKUType
    {
      #keys: '[414702.0.139035821]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.ProductCount'
        Enabled: false
        Label: '成品SKU种类'
        Taborder: 5
      ]
    }
    Component efTheSystemAutomaticallySchedulesPolicies
    {
      #keys: '[414702.0.139035834]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.PlanningStrategyAuto'
        Enabled: false
        Label: '系统自动计划策略'
        Taborder: 6
      ]
    }
    Component ddslMaterialPlanningPolicyChanges
    {
      #keys: '[414702.0.139877037]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        AllowEmpty: true
        DataBinding: 'DataHolderDialogData.Data.PlanningStrategyCustom'
        Label: '物料计划策略变更'
        Strings: 'JIT;VMI;M/A;安全库存;PO拉料'
        Taborder: 7
      ]
    }
    Component efTheMinimumNumberOfDaysForAnItemToBeInventoried
    {
      #keys: '[414702.0.139969846]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.MinimumNumberOfDaysInStock'
        Label: '物料库存最小天数'
        Taborder: 8
      ]
    }
    Component efTheMaximumNumberOfDaysThatTheItemIsInStock
    {
      #keys: '[414702.0.139969907]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.MaximumNumberOfDaysInInventory'
        Label: '物料库存最大天数'
        Taborder: 9
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  MatAttrSettingAndPlanStrategy selection
) id:Method_DialogCreateEditMaterialLabelingAndPlanningStrategy_Edit
{
  #keys: '[414702.0.137732159]'
  Body:
  [*
    //data := shadow( selection );
    DataHolderDialogData.Data( selection );
    selection.UpdateBy( QuintiqUser::CurrentUser().Username() );
    selection.UpdateTime( DateTime::ActualTime() );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnCancel_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnCancel_OnClick.def ÐÞ¸Ä
@@ -2,7 +2,7 @@
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[414384.0.770881007]'
  #keys: '[414702.0.131771254]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/Response_pnlActions_btnOk_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnOk_OnClick.def ÐÞ¸Ä
@@ -2,14 +2,15 @@
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[414384.0.770881006]'
  #keys: '[414702.0.131771253]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.OnOK();
      Form.ApplyChanges();
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogMaterialLabelingAndPlanningStrategy/_ROOT_Component_DialogCreateEditMaterialLabelingAndPlanningStrategy.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_DialogEdit/_ROOT_Component_DialogEditMatAttrSettingAndPlanStrategy.def ÐÞ¸Ä
@@ -1,9 +1,9 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogEditMatAttrSettingAndPlanStrategy
OrphanComponent DialogCreateEditMaterialLabelingAndPlanningStrategy
{
  #keys: '[414384.0.770880993]'
  #keys: '[414702.0.131771240]'
  BaseType: 'WebForm'
  Children:
  [
@@ -11,12 +11,12 @@
    #child: pnlActions
    Component DataHolderDialogData
    {
      #keys: '[414384.0.772100860]'
      #keys: '[414702.0.139153395]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[MatAttrSettingAndPlanStrategy]*'
      Databinding: 'MatAttrSettingAndPlanStrategy'
      Properties:
      [
        Taborder: 2
        Taborder: 0
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_ListMatAttrSettingAndPlanStrategy.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listActionBarPageMatAttrSettingAndPlanStrategy.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listContextMenuMatAttrSettingAndPlanStrategy.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyExport_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyImport_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ListMatAttrSettingAndPlanStrategy_MenuEdit_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_OnCreated.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/_ROOT_Component_FormMatAttrSettingAndPlanStrategy.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_ListMatAttrSettingAndPlanStrategyDetail#21.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listActionBarPageMatAttrSettingAndPlanStrategyDetail#1.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listContextMenuMatAttrSettingAndPlanStrategyDetail#1.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/_ROOT_Component_FormMatAttrSettingAndPlanStrategyDetail.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListChildMaterial.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
Quintiq file version 2.0
Component ListChildMaterial
{
  #keys: '[414702.0.122536770]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorChildMaterial
    {
      #keys: '[414702.0.122536771]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MatAttrSettingAndPlanStrategy'
        ExtractionMode: 'Selected'
        Source: 'PanelMaterial.ListMaterialMaterialLabelingAndPlanningStrategy'
        Taborder: 0
        Transformation: 'MatAttrSettingAndPlanStrategyDetail'
      ]
    }
    #child: listActionBarPageChildMaterial
    Component DataSetLevelChildMaterial
    {
      #keys: '[414702.0.122536776]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuChildMaterial
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatCode","title":"MatCode","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"MatCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductCode","title":"ProductCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StandardLT","title":"StandardLT","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StandardLT"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductDesc","title":"ProductDesc","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductDesc"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Comment","title":"Comment","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Comment"}}]'
        ContextMenu: 'listContextMenuChildMaterial'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_ListMaterialMaterialLabelingAndPlanningStrategy#880.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
Quintiq file version 2.0
Component ListMaterialMaterialLabelingAndPlanningStrategy id:ListMaterialMaterialLabelingAndPlanningStrategy_880
{
  #keys: '[414702.0.122174685]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorMaterial367
    {
      #keys: '[414702.0.122174686]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        Taborder: 0
        Transformation: 'MatAttrSettingAndPlanStrategy'
      ]
    }
    #child: listActionBarPageMaterial790_1
    Component DataSetLevelMaterial679
    {
      #keys: '[414702.0.122174688]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuMaterial455_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SerialNumber","title":"SerialNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SerialNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatCode","title":"MatCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MatCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatName","title":"MatName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MatName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatType","title":"MatType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MatType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatArrivalLT","title":"MatArrivalLT","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MatArrivalLT"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductCount","title":"ProductCount","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductCount"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MinProdDeliverLT","title":"MinProdDeliverLT","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"MinProdDeliverLT"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FlagLongTerm","title":"FlagLongTerm","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FlagLongTerm"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FlagGeneric","title":"FlagGeneric","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FlagGeneric"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlanningStrategyAuto","title":"PlanningStrategyAuto","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PlanningStrategyAuto"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlanningStrategyCustom","title":"PlanningStrategyCustom","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlanningStrategyCustom"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UpdateBy","title":"UpdateBy","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UpdateBy"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UpdateTime","title":"UpdateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UpdateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MinimumNumberOfDaysInStock","title":"MinimumNumberOfDaysInStock","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MinimumNumberOfDaysInStock"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaximumNumberOfDaysInInventory","title":"MaximumNumberOfDaysInInventory","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaximumNumberOfDaysInInventory"}},{"attribute":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"1","title":"1","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"VALUE( object.UpdateTime() )"}}]'
        ContextMenu: 'listContextMenuMaterial455'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    SelectionCheckboxes: true
    Taborder: 1
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListMaterialMaterialLabelingAndPlanningStrategy_880_WebMenu_OnClick
    {
      #keys: '[414702.0.132706551]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[319.0.80354936]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelChildMaterial#558.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelChildMaterial
{
  #keys: '[414702.0.121452333]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListChildMaterial
  ]
  Properties:
  [
    Border: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterial.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component PanelMaterial
{
  #keys: '[414702.0.121452322]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListMaterialMaterialLabelingAndPlanningStrategy_880
    #child: PanelMaterialOperationButton
    Component DataHolderCheckedMaterials
    {
      #keys: '[414702.0.136936641]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[MatAttrSettingAndPlanStrategy]*'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Border: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport#136.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
Quintiq file version 2.0
Component PanelMaterialExportAndImport id:PanelMaterialExportAndImport_136
{
  #keys: '[414702.0.130101487]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonMaterialExportAndExport
    {
      #keys: '[414702.0.130101488]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '数据导出'
        Taborder: 1
      ]
    }
    Component ButtonMaterialExportAndImport
    {
      #keys: '[414702.0.130101489]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'IMPORT1'
        Label: '数据导入'
        Taborder: 2
      ]
    }
    Component ButtonSynchronizeInventoryTargets
    {
      #keys: '[414702.0.142124169]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'CLOUD_REFRESH'
        Label: '同步库存目标'
        Taborder: 0
        Visible: false
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    FixedSize: true
    MinimumColumns: 25
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialLabelingAndPlanningStrategy.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelMaterialLabelingAndPlanningStrategy
{
  #keys: '[414702.0.121452301]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelChildMaterial
    #child: PanelMaterial
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialOperationButton.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelMaterialOperationButton
{
  #keys: '[414702.0.130161515]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelMaterialExportAndImport_136
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageChildMaterial.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageChildMaterial
{
  #keys: '[414702.0.122536773]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listActionBarPageMaterial790#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageMaterial790 id:listActionBarPageMaterial790_1
{
  #keys: '[414702.0.122174687]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuChildMaterial.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuChildMaterial
{
  #keys: '[414702.0.122536778]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_listContextMenuMaterial455#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
Quintiq file version 2.0
Component listContextMenuMaterial455 id:listContextMenuMaterial455_1
{
  #keys: '[414702.0.122174689]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuSeparator
    {
      #keys: '[121142.1.1147171519]'
      BaseType: 'MenuSeparator'
      IsDerived: true
      Properties:
      [
        Taborder: 2
      ]
    }
    Component MenuDeleteAll
    {
      #keys: '[414702.0.141671580]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 3
        Title: '删除'
      ]
    }
    Component MenuSelectAll
    {
      #keys: '[414702.0.141943188]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PIG'
        Shortcut: 'Ctrl+A'
        Taborder: 4
        Title: '全选'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuDeleteAll_O.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880
Response OnClick (
  structured[MatAttrSettingAndPlanStrategy] selection
) id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuDeleteAll_OnClick
{
  #keys: '[414702.0.141854066]'
  CanBindMultiple: false
  DefinitionID => /ListMaterialMaterialLabelingAndPlanningStrategy_880/Responsedef_ListMaterialMaterialLabelingAndPlanningStrategy_880_WebMenu_OnClick
  Initiator: 'MenuDeleteAll'
  QuillAction
  {
    Body:
    [*
      traverse ( selection, Elements, s ) {
        s.Delete();
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuSelectAll_O.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880
Response OnClick () id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_MenuSelectAll_OnClick
{
  #keys: '[414702.0.141794738]'
  CanBindMultiple: false
  DefinitionID => /ListMaterialMaterialLabelingAndPlanningStrategy_880/Responsedef_ListMaterialMaterialLabelingAndPlanningStrategy_880_WebMenu_OnClick
  Initiator: 'MenuSelectAll'
  QuillAction
  {
    Body:
    [*
      this.SelectAll();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnDoubleClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880
Response OnDoubleClick (
  MatAttrSettingAndPlanStrategy selection
) id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnDoubleClick
{
  #keys: '[414702.0.137732025]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnDoubleClick'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogCreateEditMaterialLabelingAndPlanningStrategy );
      dlg.Edit( selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheck#591.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880
Response OnUserCheckedChanged () id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedChanged_591
{
  #keys: '[414702.0.136206065]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  QuillAction
  {
    Body:
    [*
      DataHolderCheckedMaterials.Data().Flush();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedCh.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListMaterialMaterialLabelingAndPlanningStrategy_880
Response OnUserCheckedChanged (
  structured[MatAttrSettingAndPlanStrategy] checkeditems
) id:Response_ListMaterialMaterialLabelingAndPlanningStrategy_880_OnUserCheckedChanged
{
  #keys: '[414702.0.136757090]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnUserCheckedChanged'
  QuillAction
  {
    Body:
    [*
      DataHolderCheckedMaterials.Data( checkeditems.Copy() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndExport_OnCl.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: PanelMaterialExportAndImport_136/ButtonMaterialExportAndExport
Response OnClick () id:Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndExport_OnClick
{
  #keys: '[414702.0.133071932]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( GlobalOTDTable );
  *]
  QuillAction
  {
    Body:
    [*
      tableBinaryData := MatAttrSettingAndPlanStrategy::ExportTheFileStream( DataHolderCheckedMaterials.Data() ).AsBinaryData();
      Application.Download( "MaterialLabelingAndPlanningStrategy.xlsx", tableBinaryData );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnCl.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
Quintiq file version 2.0
#parent: PanelMaterialExportAndImport_136/ButtonMaterialExportAndImport
Response OnClick () id:Response_PanelMaterialExportAndImport_136_ButtonMaterialExportAndImport_OnClick
{
  #keys: '[414702.0.134451163]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( GlobalOTDTable );
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson := JSON::Parse( uploadJsonString );
          MatAttrSettingAndPlanStrategyInputSource::VerifyTheFileName( uploadJson );
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          matAttrSettingAndPlanStrategyInputSource := MatAttrSettingAndPlanStrategyInputSource::Upload( GlobalOTDTable, fileName, base64String, ApplicationMacroPlanner.GetUserName() );
          matAttrSettingAndPlanStrategyInputSource.ParseTable();
          matAttrSettingAndPlanStrategyDataTable := select( matAttrSettingAndPlanStrategyInputSource, MatAttrSettingAndPlanStrategyDataTable, tempMASAPSDT, tempMASAPSDT.name() = "物料标签" );
          matAttrSettingAndPlanStrategyDataTable.VerifyTheTemplate();
          matAttrSettingAndPlanStrategyDataTable.SynchronizeData();
          WebMessageBox::Success( "上传成功", true );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation(), true );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelMaterialExportAndImport_136/ButtonSynchronizeInventoryTargets
Response OnClick () id:Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_OnClick
{
  #keys: '[414702.0.141615322]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      WebMessageBox::Success( "同步成功", true );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterial_DataHolderCheckedMaterials_OnDataChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: PanelMaterial/DataHolderCheckedMaterials
Response OnDataChanged () id:Response_PanelMaterial_DataHolderCheckedMaterials_OnDataChanged
{
  #keys: '[414702.0.136147695]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
  QuillAction
  {
    Body:
    [*
      //traverse ( this.Data(), Elements, e ) {
      //  info( "选中的物料号:", e.MatCode() );
      //}
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/_ROOT_Component_FormMaterialLabelingAndPlanningStrategy.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormMaterialLabelingAndPlanningStrategy
{
  #keys: '[414702.0.120950329]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelMaterialLabelingAndPlanningStrategy
  ]
  Properties:
  [
    Description: '物料标签&计划策略表单'
    Image: 'PAPER_ROLL'
    Title: 'Material labeling&planning strategy'
  ]
}