yypsybs
2023-09-20 2f0418a875e0d7ab9b190d30b820389a79cefada
PR导出
已重命名2个文件
已添加22个文件
已修改10个文件
659 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_ScenarioManager_ScenarioManager_Ca.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_BusinessTypeOrOrgCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_Quantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_TimeStringAndScenarioName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAndSaleBudgeChartElement/_ROOT_Type_CapacityAndSaleBudgeChartElement.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeBusinessTypeString.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgePlaceOfProductionOfArrayString.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/StaticMethod_CapacityAndSaleBudgeYearsString.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/Attribute_IsPanelMaterial.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream#595.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning#662.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream#45.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData#633.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_chartActionBarPageCapacityAndSaleBudge.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_chartContextMenuCapacityAndSaleBudge.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_PanelPRHistoryButton.def 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonResendPR_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/MacroPlanner/Views/Empty__dialog_initialization__[124808.0.140900041].vw 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartElement_ScenarioManager_ScenarioManager_Ca.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CapacityAndSaleBudgeChartElement_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeChartElement
{
  #keys: '1[414384.0.852466576]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide ScenarioManager
  {
    #keys: '3[414384.0.852466578][414384.0.852466577][414384.0.852466579]'
    Cardinality: '0to1'
    ObjectDefinition: CapacityAndSaleBudgeChartElement
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CapacityAndSaleBudgeChartElement
  {
    #keys: '3[414384.0.852466581][414384.0.852466580][414384.0.852466582]'
    Cardinality: '1toN'
    ObjectDefinition: ScenarioManager
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_BusinessTypeOrOrgCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute BusinessTypeOrOrgCode
{
  #keys: '3[414384.0.852466562][414384.0.852466561][414384.0.852466563]'
  Description: '事业部/面板基地'
  ValueType: String
}
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[414384.0.852466539][414384.0.852466538][414384.0.852466540]'
  ValueType: Real
}
_Main/BL/Type_CapacityAndSaleBudgeChartElement/Attribute_TimeStringAndScenarioName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute TimeStringAndScenarioName
{
  #keys: '3[414384.0.852466529][414384.0.852466528][414384.0.852466530]'
  ValueType: String
}
_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_TestData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: #root
StaticMethod TestData (
  ScenarioManager scenarioManager
)
{
  Description: '生成测试数据'
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    info( "生成年度产销预算报表测试数据" )
    scenarioManager.CapacityAndSaleBudgeChartElement( relflush );
    for( sc := 0; sc < 4; sc := sc + 1 ) {
      scenarioName := "SC" + [String]sc;
      for( i := 0; i < 4; i := i + 1 ) {
        businessTypeString := "BT" + [String]i;
        for( j := 1; j <= 12; j := j + 1 ) {
          monthString := "MONTH" + ifexpr( j < 10, "0" + [String]j, [String]j );
          scenarioManager.CapacityAndSaleBudgeChartElement( relnew,
                                                            BusinessTypeOrOrgCode := businessTypeString,
                                                            TimeStringAndScenarioName := monthString + " - " + scenarioName,
                                                            Quantity := Real::Random( 20.0, 30.0 ) );
        }
      }
    }
  *]
}
_Main/BL/Type_CapacityAndSaleBudgeChartElement/_ROOT_Type_CapacityAndSaleBudgeChartElement.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CapacityAndSaleBudgeChartElement
{
  #keys: '5[414384.0.852466525][414384.0.852466523][0.0.0][414384.0.852466524][414384.0.852466526]'
  BaseType: Object
  Description: '年度产销预算复盘图标元素'
  StructuredName: 'CapacityAndSaleBudgeChartElements'
}
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeBusinessTypeString.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
Method CapacityAndSaleBudgeBusinessTypeString () as owning String
{
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    result := selectuniquevalues( this, CapacityAndSaleBudge, item, true, item.BusinessType() );
    return result.Concatenate( ";" ) ;
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgePlaceOfProductionOfArrayString.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
Method CapacityAndSaleBudgePlaceOfProductionOfArrayString () as owning String
{
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    result := selectuniquevalues( this, CapacityAndSaleBudge, item, true, item.PlaceOfProductionOfArray() );
    return result.Concatenate( ";" ) ;
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
@@ -24,7 +24,7 @@
    for( i := 1; i < 100; i := i + 1 ) {
      this.CapacityAndSaleBudge( relnew, 
                                 PlaceOfProductionOfArray := "面板基地" + [String]Number::Random( 1, 10 ), 
                                 OrgCode := "事业部" + [String]Number::Random( 1, 10 ),
                                 BusinessType := "事业部" + [String]Number::Random( 1, 10 ),
                                 CapacityInPCSInMonth1 := Number::Random( 1, 10000 ),  
                                 CapacityInPCSInMonth2 := Number::Random( 1, 10000 ),  
                                 CapacityInPCSInMonth3 := Number::Random( 1, 10000 ),  
_Main/BL/Type_GlobalDTOTable/StaticMethod_CapacityAndSaleBudgeYearsString.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CapacityAndSaleBudgeYearsString () as String
{
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    years := construct( Strings );;
    for( i := Date::ActualDate().Year(); i < Date::ActualDate().Year() + 10; i := i + 1 ) {
      years.Add( [String]i );
    }
    return ifexpr( years.Size() > 0, years.Concatenate( ";" ), "" );
  *]
}
_Main/BL/Type_PRData/Attribute_IsPanelMaterial.qbl
ÎļþÃû´Ó _Main/BL/Type_PRData/Attribute_IsPannelMaterial.qbl ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
Attribute IsPannelMaterial
Attribute IsPanelMaterial
{
  #keys: '3[414384.0.847354618][414384.0.847354617][414384.0.847354619]'
  Description: '面板物料标识'
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream#595.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ExportTheFileStream (
  MacroPlan parent
) as BinaryValue
{
  TextBody:
  [*
    // yypsybs Sep-20-2023 (created)
    return PRData::ExportTheFileStream( selectset( parent, PRData, item, true ) );
  *]
}
_Main/BL/Type_PRData/StaticMethod_ExportTheFileStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ExportTheFileStream (
  PRDatas toExportList
) as BinaryValue
{
  TextBody:
  [*
    // generate by generate_export.py
    dateTimeToString := DateTimeToString::StandardConverter();
    dateTimeToString.SetCustomConversion();
    dateTimeToString.CustomFormatString( "yyyy/MM/dd H:mm:ss" );
    dateToString := DateToString::StandardConverter();
    dateToString.SetCustomConversion();
    dateToString.CustomFormatString( "yyyy/MM/dd" );
    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>PR</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>PR建议日期</name><type>String</type></column>
    <column><name>交货数量</name><type>Number</type></column>
    <column><name>MRP计算版本号</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>String</type></column>
    <column><name>物料计划策略</name><type>String</type></column>
    <column><name>提前期</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>PR数据发送状态</name><type>String</type></column>
    <column><name>发送时间</name><type>String</type></column>
    <column><name>发送人</name><type>String</type></column>
    </table>';
    xmlDOMImplementation := XMLDOMImplementation::Create();
    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
    traverse ( toExportList, Elements, toExport ) {
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "物料编码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "物料名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsPanelMaterial(), "面板物料标识" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.ProduceRequiredDate() = Date::MinDate(), "", dateToString.Convert( toExport.ProduceRequiredDate() ) ), "交货日期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.PRSuggestionDate() = Date::MinDate(), "", dateToString.Convert( toExport.PRSuggestionDate() ) ), "PR建议日期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "交货数量" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP计算版本号" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "业务类型" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrganCode(), "组织编码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsLongLeadItem(), "是否长周期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.IsGenericMaterial(), "是否专用料" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MaterialMRPType(), "物料计划策略" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.LeadTime(), "提前期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderCode(), "供应商代码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "供应商名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "收货库存点" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "计量单位" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendStatus(), "PR数据发送状态" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendTimeString(), "发送时间" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendBy(), "发送人" );
    }
    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
    tableGroupHandle := TableGroupHandle::Create( "PR" );
    tableGroupHandle.Add( tableHandle );
    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return tableBinaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning#662.qbl
@@ -40,7 +40,7 @@
                                     Date::Today(), (result.ProduceRequiredDate() - Duration::Days( 7 )).Date() ) );
    
    // æ ¹æ® ç‰©æ–™å±žæ€§æ ‡ç­¾è®¾å®š&物料计划策略
    result.IsPannelMaterial();
    result.IsPanelMaterial();
    result.IsGenericMaterial( matAttrSetting.FlagGeneric() );
    result.IsLongLeadItem( matAttrSetting.FlagLongTerm() );
    result.MaterialMRPType( ifexpr( matAttrSetting.PlanningStrategyCustom() <> "", matAttrSetting.PlanningStrategyCustom(), matAttrSetting.PlanningStrategyAuto() ) );
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream#45.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ExportTheFileStream (
  GlobalOTDTable parent
) as BinaryValue
{
  TextBody:
  [*
    // yypsybs Sep-20-2023 (created)
    return PRHistoryData::ExportTheFileStream( selectset( parent, PRHistoryData, item, true ) );
  *]
}
_Main/BL/Type_PRHistoryData/StaticMethod_ExportTheFileStream.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ExportTheFileStream (
  PRHistoryDatas toExportList
) as BinaryValue
{
  TextBody:
  [*
    // generate by generate_export.py
    dateTimeToString := DateTimeToString::StandardConverter();
    dateTimeToString.SetCustomConversion();
    dateTimeToString.CustomFormatString( "yyyy/MM/dd H:mm:ss" );
    dateToString := DateToString::StandardConverter();
    dateToString.SetCustomConversion();
    dateToString.CustomFormatString( "yyyy/MM/dd" );
    text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>PR</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>Number</type></column>
    <column><name>MRP计算版本号</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>String</type></column>
    <column><name>收货库存点</name><type>String</type></column>
    <column><name>计量单位</name><type>String</type></column>
    <column><name>PR数据发送状态</name><type>String</type></column>
    <column><name>发送时间</name><type>String</type></column>
    <column><name>发送人</name><type>String</type></column>
    <column><name>ERP接收时间</name><type>String</type></column>
    <column><name>ERP接收状态</name><type>String</type></column>
    <column><name>错误信息描述</name><type>String</type></column>
    </table>';
    xmlDOMImplementation := XMLDOMImplementation::Create();
    xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
    tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
    traverse ( toExportList, Elements, toExport ) {
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductID(), "零件号" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductName(), "零件名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.ProduceRequiredDate() = Date::MinDate(), "", dateToString.Convert( toExport.ProduceRequiredDate() ) ), "交货日期" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.Quantity(), "需求数量" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.MRPCalverNo(), "MRP计算版本号" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "事业部" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrganCode(), "组织编码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderCode(), "供应商代码" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProviderName(), "供应商名称" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.StockingPointID(), "收货库存点" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.UnitOfMeasure(), "计量单位" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendStatus(), "PR数据发送状态" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.SendTimeString(), "发送时间" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReleaseBy(), "发送人" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveTimeString(), "ERP接收时间" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveStatus(), "ERP接收状态" );
      MatAttrSettingAndPlanStrategy::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ReceiveError(), "错误信息描述" );
    }
    xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
    xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
    tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
    tableGroupHandle := TableGroupHandle::Create( "PR" );
    tableGroupHandle.Add( tableHandle );
    tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return tableBinaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
Quintiq file version 2.0
#parent: #root
Method CapacityAndSaleBudgeChart (
  MacroPlans macroPlans,
  Boolean isCapacity,
  String groupBy,
  String byBusinessTypeOrByOrgCodde,
  String businessType,
  String orgCode,
  String year,
  MPSync mpSync,
  GlobalOTDTable otdTable,
  MacroPlan mappingParent
)
{
  Description: '按入参处理数据,产生需要的CapacityAndSaleBudgeChartElement'
  TextBody:
  [*
    // yypsybs Sep-19-2023 (created)
    this.CapacityAndSaleBudgeChartElement( relflush );
    info( isCapacity );
    info( groupBy );
    info( byBusinessTypeOrByOrgCodde );
    info( businessType );
    info( orgCode );
    info( year );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def
@@ -16,6 +16,17 @@
        Taborder: 0
      ]
    }
    Component ButtonExportPR
    {
      #keys: '[414384.0.859041699]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '数据导出'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonExportPR_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: PanelPRDataButton/ButtonExportPR
Response OnClick () id:Response_PanelPRDataButton_ButtonExportPR_OnClick
{
  #keys: '[414384.0.859041698]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( GlobalOTDTable );
  *]
  QuillAction
  {
    Body:
    [*
      tableBinaryData := PRData::ExportTheFileStream( MacroPlan ).AsBinaryData();
      Application.Download( "PRData.xlsx", tableBinaryData );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_Form633/_ROOT_Component_FormPRData#633.def
@@ -22,6 +22,7 @@
  ]
  Properties:
  [
    Image: 'EXPORT1'
    Title: 'PR'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
@@ -28,7 +28,7 @@
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Deleted","title":"Deleted","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Deleted"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"OrgCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayTechnology","title":"DisplayTechnology","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayTechnology"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LineAndSpec","title":"LineAndSpec","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LineAndSpec"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductCode","title":"ProductCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfArray","title":"PlaceOfProductionOfArray","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfArray"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfEvaporation","title":"PlaceOfProductionOfEvaporation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfEvaporation"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Resolution","title":"Resolution","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Resolution"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShippingForm","title":"ShippingForm","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShippingForm"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfCut","title":"NumberOfCut","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfCut"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityEquivalent","title":"CapacityEquivalent","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityEquivalent"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfMask","title":"NumberOfMask","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfMask"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth1","title":"CapacityInPCSInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth2","title":"CapacityInPCSInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSTotal","title":"CapacityInPCSTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth1","title":"CapacityInSheetInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth2","title":"CapacityInSheetInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetTotal","title":"CapacityInSheetTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth1","title":"SaleAmountInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth2","title":"SaleAmountInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountTotal","title":"SaleAmountTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountTotal"}}]'
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Deleted","title":"Deleted","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Deleted"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"OrgCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayTechnology","title":"DisplayTechnology","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayTechnology"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LineAndSpec","title":"LineAndSpec","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LineAndSpec"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductCode","title":"ProductCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfArray","title":"PlaceOfProductionOfArray","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfArray"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PlaceOfProductionOfEvaporation","title":"PlaceOfProductionOfEvaporation","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PlaceOfProductionOfEvaporation"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Resolution","title":"Resolution","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Resolution"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShippingForm","title":"ShippingForm","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShippingForm"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfCut","title":"NumberOfCut","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfCut"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityEquivalent","title":"CapacityEquivalent","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityEquivalent"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfMask","title":"NumberOfMask","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfMask"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth1","title":"CapacityInPCSInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth2","title":"CapacityInPCSInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth3","title":"CapacityInPCSInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth4","title":"CapacityInPCSInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth5","title":"CapacityInPCSInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth6","title":"CapacityInPCSInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth7","title":"CapacityInPCSInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth8","title":"CapacityInPCSInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth9","title":"CapacityInPCSInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth10","title":"CapacityInPCSInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth11","title":"CapacityInPCSInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSInMonth12","title":"CapacityInPCSInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInPCSTotal","title":"CapacityInPCSTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInPCSTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth1","title":"CapacityInSheetInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth2","title":"CapacityInSheetInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth3","title":"CapacityInSheetInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth4","title":"CapacityInSheetInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth5","title":"CapacityInSheetInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth6","title":"CapacityInSheetInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth7","title":"CapacityInSheetInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth8","title":"CapacityInSheetInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth9","title":"CapacityInSheetInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth10","title":"CapacityInSheetInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth11","title":"CapacityInSheetInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetInMonth12","title":"CapacityInSheetInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CapacityInSheetTotal","title":"CapacityInSheetTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CapacityInSheetTotal"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth1","title":"SaleAmountInMonth1","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth1"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth2","title":"SaleAmountInMonth2","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth2"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth3","title":"SaleAmountInMonth3","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth3"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth5","title":"SaleAmountInMonth5","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth5"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth4","title":"SaleAmountInMonth4","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth4"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth6","title":"SaleAmountInMonth6","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth6"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth7","title":"SaleAmountInMonth7","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth7"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth8","title":"SaleAmountInMonth8","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth8"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth9","title":"SaleAmountInMonth9","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth9"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth10","title":"SaleAmountInMonth10","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth10"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth11","title":"SaleAmountInMonth11","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth11"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountInMonth12","title":"SaleAmountInMonth12","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountInMonth12"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SaleAmountTotal","title":"SaleAmountTotal","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SaleAmountTotal"}}]'
        ContextMenu: 'listContextMenuCapacityAndSaleBudge'
        SortCriteria: 'BusinessType;OrgCode;ProductCode'
        Taborder: 2
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_ChartCapacityAndSaleBudgeChart.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
Quintiq file version 2.0
Component ChartCapacityAndSaleBudgeChart
{
  #keys: '[414384.0.853873491]'
  BaseType: 'WebChart'
  Children:
  [
    Component ChartLevelCapacityAndSaleBudge
    {
      #keys: '[414384.0.853873492]'
      BaseType: 'WebChartLevel'
      Children:
      [
        Component DataExtractorCapacityAndSaleBudge
        {
          #keys: '[414384.0.853873493]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'ScenarioManager'
            Source: 'ScenarioManager'
            Taborder: 0
            Transformation: 'CapacityAndSaleBudgeChartElement'
          ]
        }
        Component ChartSeriesCapacityAndSaleBudge
        {
          #keys: '[414384.0.853873495]'
          BaseType: 'WebChartSeries'
          Properties:
          [
            Label: 'Quantity'
            Taborder: 1
            YScaleDataPath: 'object.Quantity()'
          ]
        }
      ]
      Properties:
      [
        ChartColorString:
        [*
          WebChartColor
          {
            WebChartConfigGroup
            {
              Label: 'Series'
            }
            WebChartConfigGroup
            {
              Label: 'BusinessTypeOrOrgCode'
              SequenceNr: 1
            }
          }
        *]
        ChartTypeString:
        [*
          WebChartType
          {
            WebChartConfigGroup
            {
              Label: 'Series'
            }
            WebChartConfigGroup
            {
              Label: 'BusinessTypeOrOrgCode'
              SequenceNr: 1
            }
            Default: 'Stacked bar'
            DefaultStepped: 'No'
            MergeStackedBars: true
          }
        *]
        Groups: 'TimeStringAndScenarioName,BusinessTypeOrOrgCode'
        Taborder: 0
      ]
    }
    #child: chartContextMenuCapacityAndSaleBudge
    #child: chartActionBarPageCapacityAndSaleBudge
  ]
  Properties:
  [
    ContextMenu: 'chartContextMenuCapacityAndSaleBudge'
    Taborder: 7
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_chartActionBarPageCapacityAndSaleBudge.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component chartActionBarPageCapacityAndSaleBudge
{
  #keys: '[414384.0.853873501]'
  BaseType: 'chartActionBarPage'
  Properties:
  [
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Component_chartContextMenuCapacityAndSaleBudge.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component chartContextMenuCapacityAndSaleBudge
{
  #keys: '[414384.0.853873498]'
  BaseType: 'chartContextMenu'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
Quintiq file version 2.0
#parent: ButtonCapacityAndSaleBudgeChartTest
Response OnClick () id:Response_FormCapacityAndSaleBudgeChart_ButtonCapacityAndSaleBudgeChartTest_OnClick
{
  #keys: '[414384.0.857443403]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      CapacityAndSaleBudgeChartElement::TestData( ScenarioManager );
      ScenarioManager.CapacityAndSaleBudgeChart( DataHolderMacroPlansForScenarioComparison.Data(),
                                                 CheckboxIsCapacity.Checked(),
                                                 DropDownTimeGroup.Text(),
                                                 DropDownByBusinessTypeOrByOrgCode.Text(),
                                                 DropDownBusinessTypes.Text(),
                                                 DropDownOrgCodes.Text(),
                                                 DropDownYears.Text(),
                                                 MPSync,
                                                 GlobalOTDTable,
                                                 MacroPlan );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FormCapacityAndSaleBudgeChart_OnCreated
{
  #keys: '[414384.0.853873350]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      CapacityAndSaleBudgeChartElement::TestData( ScenarioManager );
      DropDownBusinessTypes.Strings( GlobalOTDTable.CapacityAndSaleBudgeBusinessTypeString() );
      DropDownOrgCodes.Strings( GlobalOTDTable.CapacityAndSaleBudgePlaceOfProductionOfArrayString() );
      DropDownYears.Strings( GlobalOTDTable::CapacityAndSaleBudgeYearsString() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormCapacityAndSaleBudgeChart
{
  #keys: '[414384.0.852503421]'
  BaseType: 'WebForm'
  Children:
  [
    #child: ChartCapacityAndSaleBudgeChart
    Component ButtonCapacityAndSaleBudgeChartTest
    {
      #keys: '[414384.0.857443217]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: '测试用'
        Taborder: 6
      ]
    }
    Component DropDownYears
    {
      #keys: '[414384.0.857740648]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: '年份'
        Taborder: 2
      ]
    }
    Component DropDownBusinessTypes
    {
      #keys: '[414384.0.857740658]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        AllowEmpty: true
        Label: '事业部'
        Taborder: 3
      ]
    }
    Component DropDownOrgCodes
    {
      #keys: '[414384.0.857770736]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        AllowEmpty: true
        Label: '面板基地'
        Taborder: 4
      ]
    }
    Component CheckboxIsCapacity
    {
      #keys: '[414384.0.857770765]'
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: '产能'
        Taborder: 5
      ]
    }
    Component DropDownTimeGroup
    {
      #keys: '[414384.0.857771238]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        InitialValue: '月'
        Label: '时间分组'
        Strings: '月;季度;半年;å¹´'
        Taborder: 1
      ]
    }
    Component DropDownByBusinessTypeOrByOrgCode
    {
      #keys: '[414384.0.857702904]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        InitialValue: '事业部'
        Label: '根据面板基地/事业部分组'
        Strings: '面板基地;事业部'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Description: '年度产销预算复盘图表'
    Image: 'COLUMN-CHART'
    Title: '年度产销预算复盘图表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/Response_ButtonCapacityAndSaleBudgeCompare_OnClick.def
@@ -10,6 +10,10 @@
  {
    Body:
    [*
      info( DataHolderMacroPlansForScenarioComparison.Data().Size() );
      info( DataHolderCapacityAndSaleBudgeFilterItem.Data().Size() );
      info( DataHolderCapacityAndSaleBudgeFilterYear.Data().Size() );
      info( DataHolderCapacityAndSaleBudgeFilterMonth.Data().Size() );
      ScenarioManager.CapacityAndSaleBudgeCompare( DataHolderMacroPlansForScenarioComparison.Data(), 
                                                   DataHolderCapacityAndSaleBudgeFilterItem.Data(), 
                                                   DataHolderCapacityAndSaleBudgeFilterYear.Data(), 
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeCompare/_ROOT_Component_FormCapacityAndSaleBudgeCompare.def
@@ -7,6 +7,7 @@
  BaseType: 'WebForm'
  Children:
  [
    #child: MatrixEditorCapacityAndSaleBudgeCompare
    Component ButtonCapacityAndSaleBudgeCompare
    {
      #keys: '[414384.0.818241675]'
@@ -17,7 +18,6 @@
        Taborder: 0
      ]
    }
    #child: MatrixEditorCapacityAndSaleBudgeCompare
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_PanelPRHistoryButton.def
@@ -5,7 +5,7 @@
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonResendPRA
    Component ButtonResendPR
    {
      #keys: '[414384.0.799483157]'
      BaseType: 'WebButton'
@@ -16,6 +16,17 @@
        Taborder: 0
      ]
    }
    Component ButtonExportPRHistory
    {
      #keys: '[414384.0.859111744]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Label: '数据导出'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: PanelPRHistoryButton/ButtonExportPRHistory
Response OnClick () id:Response_PanelPRHistoryButton_ButtonExportPRHistory_OnClick
{
  #keys: '[414384.0.859111743]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( GlobalOTDTable );
  *]
  QuillAction
  {
    Body:
    [*
      tableBinaryData := PRHistoryData::ExportTheFileStream( GlobalOTDTable ).AsBinaryData();
      Application.Download( "PRData.xlsx", tableBinaryData );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonResendPR_OnClick.def
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_PanelPRHistoryButton_ButtonResendPRA_OnClick.def ÐÞ¸Ä
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: PanelPRHistoryButton/ButtonResendPRA
Response OnClick () id:Response_PanelPRHistoryButton_ButtonResendPRA_OnClick
#parent: PanelPRHistoryButton/ButtonResendPR
Response OnClick () id:Response_PanelPRHistoryButton_ButtonResendPR_OnClick
{
  #keys: '[414384.0.799483155]'
  CanBindMultiple: false
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
  ProjectProperties
  {
    ApplicationComponentName: 'ApplicationMacroPlanner'
    BuildVersion: '2022.3.0.72'
    BuildVersion: '2022.3.0.101'
    Description: 'Quintiq Macro Planner'
    ProjectKind: 'WebClient'
  }
_var/_Main/ProjSettings/MacroPlanner/Views/Empty__dialog_initialization__[124808.0.140900041].vw
@@ -16,7 +16,7 @@
  CREATIONUSER ''
  UPDATEDATETIME '2017-06-05T15:08:50'
  UPDATEUSER 'quintiq/dwe2'
  LASTACCESSDATE '2023-09-01'
  LASTACCESSDATE '2023-09-19'
  VIEWSCOPE 0
}
AUTHORIZATIONS