From be9f3270a50b9f5318beff37bd4d70fa5632657a Mon Sep 17 00:00:00 2001
From: yypsybs <yypsybs@foxmail.com>
Date: 星期五, 08 九月 2023 17:31:05 +0800
Subject: [PATCH] 4.11.物料属性标签设定&物料计划策略
---
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_OnOK.def | 16 +
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl | 6
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl | 9
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode#526.qbl | 6
_Main/BL/InfoMessages.qbl | 5
_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/_ROOT_Type_MatAttrSettingAndPlanStrategyDetail.qbl | 10
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl | 31 +
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_ListMatAttrSettingAndPlanStrategyDetail#21.def | 106 ++++++
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listContextMenuMatAttrSettingAndPlanStrategyDetail#1.def | 10
_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductDesc.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/_ROOT_Component_FormMatAttrSettingAndPlanStrategy.def | 39 ++
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/_ROOT_Component_FormMatAttrSettingAndPlanStrategyDetail.def | 17 +
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listActionBarPageMatAttrSettingAndPlanStrategy.def | 10
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_base64Str.qbl | 4
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/_ROOT_Component_DialogEditMatAttrSettingAndPlanStrategy.def | 31 +
_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductCode.qbl | 8
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl | 51 ++-
_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_StandardLT.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_ListMatAttrSettingAndPlanStrategy.def | 105 ++++++
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl | 4
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_userName.qbl | 7
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl | 2
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl | 12
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnOk_OnClick.def | 15
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl | 20
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcProductCount.qbl | 13
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl | 2
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyImport_OnClick.def | 32 ++
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listActionBarPageMatAttrSettingAndPlanStrategyDetail#1.def | 10
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl | 6
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcPlanningStrategyAuto.qbl | 23 +
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlActions.def | 40 ++
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ListMatAttrSettingAndPlanStrategy_MenuEdit_OnClick.def | 20 +
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listContextMenuMatAttrSettingAndPlanStrategy.def | 27 +
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcMinProdDeliverLT.qbl | 17 +
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl | 2
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyExport_OnClick.def | 18 +
_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/StaticMethod_CreateIfNotExist.qbl | 22 +
_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl | 17 +
_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_OnCreated.def | 17 +
_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_MatCode.qbl | 8
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlContent.def | 27 +
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl | 2
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl | 2
_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl | 2
_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_Comment.qbl | 8
_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_M.qbl | 23 +
_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Function_CalcMatCode.qbl | 13
_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl | 4
_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_Edit.def | 17 +
54 files changed, 879 insertions(+), 57 deletions(-)
diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
new file mode 100644
index 0000000..d3fc0df
--- /dev/null
+++ b/_Main/BL/InfoMessages.qbl
@@ -0,0 +1,5 @@
+Quintiq file version 2.0
+#parent: #root
+InfoMessages id:#InfoMessages #extension
+{
+}
diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_M.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_M.qbl
new file mode 100644
index 0000000..b1fc594
--- /dev/null
+++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_M.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation MatAttrSettingAndPlanStrategyDetail_MatAttrSettingAndPlanStrategy_MatAttrSettingAndPlanStrategy_MatAttrSettingAndPlanStrategyDetail
+{
+ #keys: '1[414384.0.766881387]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MatAttrSettingAndPlanStrategy
+ {
+ #keys: '3[414384.0.766881389][414384.0.766881388][414384.0.766881390]'
+ Cardinality: '0to1'
+ ObjectDefinition: MatAttrSettingAndPlanStrategyDetail
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide MatAttrSettingAndPlanStrategyDetail
+ {
+ #keys: '3[414384.0.766881392][414384.0.766881391][414384.0.766881393]'
+ Cardinality: '1toN'
+ ObjectDefinition: MatAttrSettingAndPlanStrategy
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
new file mode 100644
index 0000000..0ad0d09
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method InitTestData
+{
+ TextBody:
+ [*
+ // yypsybs Sep-8-2023 (created)
+ mat1 := MatAttrSettingAndPlanStrategy::CreateIfNotExist( this, "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, "涓撶敤", "闀垮懆鏈�" );
+ 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, "涓撶敤", "鐭懆鏈�" );
+ *]
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl
index adcdcf6..3a85db8 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod doVerify (
+StaticMethod DoVerify (
MatAttrSettingAndPlanStrategyDataTable toVerify
)
{
@@ -19,7 +19,7 @@
//}
// for test end
- expectedHeaders := MatAttrSettingAndPlanStrategyDataTable::expectedHeaders();
+ expectedHeaders := MatAttrSettingAndPlanStrategyDataTable::ExpectedHeaders();
traverse( columns, Elements, column ) {
columnActualName := column.name();
if( column.columnIndex() > expectedHeaders.Size() ) {
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl
index 156988a..477f603 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod expectedHeaders () as owning Strings
+StaticMethod ExpectedHeaders () as owning Strings
{
TextBody:
[*
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl
index 4165312..35be39b 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl
@@ -1,19 +1,19 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod export (
+StaticMethod Export (
GlobalOTDTable parent
-) as BinaryValue
+) as String
{
TextBody:
[*
// yypsybs Jul-1-2023 (created)
xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
<table>
- <name>MatAttrSettingAndPlanningStrategy</name>
+ <name>MatAttrSettingAndPlanStrategy</name>
';
//---------------------------------------------------------------------------------------------
- exportFields := MatAttrSettingAndPlanStrategyDataTable::exportFields();
- exportHeaders := MatAttrSettingAndPlanStrategyDataTable::expectedHeaders();
+ exportFields := MatAttrSettingAndPlanStrategyDataTable::ExportFields();
+ exportHeaders := MatAttrSettingAndPlanStrategyDataTable::ExpectedHeaders();
if( exportFields.Size() <> exportHeaders.Size() ) {
error( "fields and headers not match" );
}
@@ -22,7 +22,7 @@
columnStr := "<column><name>" + header + "</name><type>String</type>";
traverse( parent, MatAttrSettingAndPlanStrategy, oldRecord ) {
fieldName := exportFields.Element( i );
- field := Reflection::FindAttribute( "MatAttrSettingAndPlanningStrategy", fieldName);
+ field := Reflection::FindAttribute( "MatAttrSettingAndPlanStrategy", fieldName);
if( not isnull( field ) ) {
fieldValue := "";
if( fieldValue = "" ) {
@@ -47,7 +47,7 @@
columnStr := columnStr + cellStr;
} else {
- error( "no field " + fieldName + " in type MatAttrSettingAndPlanningStrategy");
+ error( "no field " + fieldName + " in type MatAttrSettingAndPlanStrategy");
}
}
columnStr := columnStr + "</column>";
@@ -56,10 +56,10 @@
//---------------------------------------------------------------------------------------------
xmlTemplate := xmlTemplate + "</table>";
tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
- XLS::SaveTable( tableHandle, OS::TempPath() + "MatAttrSettingAndPlanningStrategy.xlsx" );
+ XLS::SaveTable( tableHandle, OS::TempPath() + "MatAttrSettingAndPlanStrategy.xlsx" );
file := OSFile::Construct();
- file.Open( OS::TempPath() + "MatAttrSettingAndPlanningStrategy.xlsx", "Read", true );
+ file.Open( OS::TempPath() + "MatAttrSettingAndPlanStrategy.xlsx", "Read", true );
data := file.ReadBinary()
- return data;
+ return data.AsBase64EncodedString();
*]
}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl
index 6559348..d45757b 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod exportFields () as owning Strings
+StaticMethod ExportFields () as owning Strings
{
TextBody:
[*
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_Comment.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_Comment.qbl
new file mode 100644
index 0000000..29e121e
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_Comment.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Comment
+{
+ #keys: '3[414384.0.766881447][414384.0.766881446][414384.0.766881448]'
+ Description: '澶囨敞'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_MatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_MatCode.qbl
new file mode 100644
index 0000000..7ee0a19
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_MatCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute MatCode
+{
+ #keys: '3[414384.0.766881404][414384.0.766881403][414384.0.766881405]'
+ Description: '鐗╂枡缂栫爜'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductCode.qbl
new file mode 100644
index 0000000..d55171e
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductCode.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductCode
+{
+ #keys: '3[414384.0.766881414][414384.0.766881413][414384.0.766881415]'
+ Description: '鎴愬搧缂栫爜'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductDesc.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductDesc.qbl
new file mode 100644
index 0000000..0993c0f
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_ProductDesc.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductDesc
+{
+ #keys: '3[414384.0.766881437][414384.0.766881436][414384.0.766881438]'
+ Description: '鎴愬搧鎻忚堪'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_StandardLT.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_StandardLT.qbl
new file mode 100644
index 0000000..5fce24d
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Attribute_StandardLT.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StandardLT
+{
+ #keys: '3[414384.0.766881424][414384.0.766881423][414384.0.766881425]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Function_CalcMatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Function_CalcMatCode.qbl
new file mode 100644
index 0000000..0b3b836
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/Function_CalcMatCode.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcMatCode
+{
+ TextBody:
+ [*
+ // yypsybs Sep-8-2023 (created)
+
+ value := this.MatAttrSettingAndPlanStrategy().MatCode();
+
+ this.MatCode( value );
+ *]
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/StaticMethod_CreateIfNotExist.qbl
new file mode 100644
index 0000000..44625cb
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/StaticMethod_CreateIfNotExist.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateIfNotExist (
+ MatAttrSettingAndPlanStrategy parent,
+ String productCode,
+ Real standardLT,
+ String productDesc
+) as MatAttrSettingAndPlanStrategyDetail
+{
+ TextBody:
+ [*
+ // yypsybs Sep-8-2023 (created)
+ value := select( parent, MatAttrSettingAndPlanStrategyDetail, item, item.ProductCode() = productCode );
+ if( isnull( value ) ) {
+ value := parent.MatAttrSettingAndPlanStrategyDetail( relnew,
+ ProductCode := productCode,
+ StandardLT := standardLT,
+ ProductDesc := productDesc );
+ }
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/_ROOT_Type_MatAttrSettingAndPlanStrategyDetail.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/_ROOT_Type_MatAttrSettingAndPlanStrategyDetail.qbl
new file mode 100644
index 0000000..ea00f4b
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDetail/_ROOT_Type_MatAttrSettingAndPlanStrategyDetail.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type MatAttrSettingAndPlanStrategyDetail
+{
+ #keys: '5[414384.0.766881384][414384.0.766881382][0.0.0][414384.0.766881383][414384.0.766881385]'
+ BaseType: Object
+ Description: '鐗╂枡灞炴�ф爣绛捐瀹�&鐗╂枡璁″垝绛栫暐鏄庣粏'
+ StructuredName: 'MatAttrSettingAndPlanStrategyDetails'
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_bytes.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_base64Str.qbl
similarity index 73%
rename from _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_bytes.qbl
rename to _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_base64Str.qbl
index d57a443..c4af056 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_bytes.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_base64Str.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
-Attribute bytes
+Attribute Base64Str
{
#keys: '3[414384.0.763764696][414384.0.763764695][414384.0.763764697]'
- ValueType: BinaryValue
+ ValueType: String
}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl
index fb1168e..f02d671 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-Attribute fileName
+Attribute FileName
{
#keys: '3[414384.0.763764699][414384.0.763764698][414384.0.763764700]'
ValueType: String
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl
index 59af587..e39af74 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-Attribute isXlsx
+Attribute IsXlsx
{
#keys: '3[414384.0.763764702][414384.0.763764701][414384.0.763764703]'
ValueType: Boolean
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_userName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_userName.qbl
new file mode 100644
index 0000000..3ad1938
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_userName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UserName
+{
+ #keys: '3[414384.0.775080571][414384.0.775080570][414384.0.775080572]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl
index 3ed388c..1729ebf 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-Method createTable (
+Method CreateTable (
String sheetName
) as MatAttrSettingAndPlanStrategyDataTable
{
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl
index e69abc2..b970d61 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl
@@ -1,15 +1,16 @@
Quintiq file version 2.0
#parent: #root
-Method parseTable
+Method ParseTable
{
TextBody:
[*
// yypsybs Jul-1-2023 (created)
- tableGroupHandle := TableGroupHandle::Create( this.fileName() );
- tableGroupHandle := XLS::LoadTableGroupFromBinaryData( this.bytes().AsBinaryData(), tableGroupHandle, true, this.isXlsx() );
+ tableGroupHandle := TableGroupHandle::Create( this.FileName() );
+ tableGroupHandle := XLS::LoadTableGroupFromBinaryData( BinaryData::FromBase64EncodedString( this.Base64Str() ), tableGroupHandle, true, this.IsXlsx() );
+
sheets := tableGroupHandle.TableNames();
- traverse ( sheets, Elements, sheetName, sheetName = "MatAttrSettingAndPlanningStrategy" ) {
+ traverse ( sheets, Elements, sheetName, sheetName = "MatAttrSettingAndPlanStrategy" ) {
tableHandle := tableGroupHandle.Table( sheetName );
tableXML := TableHandle::ExportXML( tableHandle );
MatAttrSettingAndPlanStrategyDataTable::XMLImportMatAttrSettingAndPlanStrategyDataTableXMLHeaders( tableXML );
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl
index de6f10d..362f5dd 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-Method saveData
+Method SaveData
{
TextBody:
[*
@@ -8,7 +8,7 @@
if( this.MatAttrSettingAndPlanStrategyDataTable( relsize ) > 0 ) {
traverse( this, MatAttrSettingAndPlanStrategyDataTable, table ) {
traverse( table, MatAttrSettingAndPlanStrategyDataRow, row ) {
- MatAttrSettingAndPlanStrategy::update( this.GlobalOTDTable(), row );
+ MatAttrSettingAndPlanStrategy::Update( this.GlobalOTDTable(), row, this.UserName() );
}
}
}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl
index bbb4453..be023c4 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl
@@ -1,9 +1,10 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod upload (
+StaticMethod Upload (
GlobalOTDTable parent,
String filePath,
- BinaryValue bytes
+ String base64Str,
+ String userName
) as MatAttrSettingAndPlanStrategyInputSource
{
TextBody:
@@ -14,9 +15,10 @@
fileName := filePath.Tokenize( "\" ).Element( filePath.Tokenize( "\" ).Size() - 1 );
info( "fileName : " + fileName );
inputSource := parent.MatAttrSettingAndPlanStrategyInputSource( relnew,
- fileName := fileName,
- bytes := bytes,
- isXlsx := fileName.EndsWith( "xlsx" ));
+ FileName := fileName,
+ Base64Str := base64Str,
+ IsXlsx := fileName.EndsWith( "xlsx" ),
+ UserName := userName );
return inputSource;
*]
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl
index e2bacd6..acdc390 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl
@@ -3,6 +3,10 @@
Attribute FlagGeneric
{
#keys: '3[414384.0.763764895][414384.0.763764894][414384.0.763764896]'
- Description: '鏄惁閫氱敤'
+ Description:
+ [*
+ 鏄惁閫氱敤
+ 涓撶敤 & 閫氱敤
+ *]
ValueType: String
}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl
index 7302e5e..bf68daa 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl
@@ -3,6 +3,10 @@
Attribute FlagLongTerm
{
#keys: '3[414384.0.763764885][414384.0.763764884][414384.0.763764886]'
- Description: '鏄惁闀挎湡'
+ Description:
+ [*
+ 鏄惁闀挎湡
+ 闀垮懆鏈� & 鐭懆鏈�
+ *]
ValueType: String
}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl
index b0309cb..2c9ba97 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl
@@ -3,6 +3,10 @@
Attribute PlanningStrategyAuto
{
#keys: '3[414384.0.759444687][414384.0.759444686][414384.0.759444688]'
- Description: '鑷姩璁″垝绛栫暐'
+ Description:
+ [*
+ 鑷姩璁″垝绛栫暐
+ JIT & 瀹夊叏搴撳瓨 & VMI
+ *]
ValueType: String
}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcMinProdDeliverLT.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcMinProdDeliverLT.qbl
new file mode 100644
index 0000000..c02ef61
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcMinProdDeliverLT.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcMinProdDeliverLT
+{
+ TextBody:
+ [*
+ // yypsybs Sep-8-2023 (created)
+
+ value := 0.0;
+
+ if( this.MatAttrSettingAndPlanStrategyDetail( relsize ) <> 0 ) {
+ value := guard( min( this, MatAttrSettingAndPlanStrategyDetail, detail, detail.StandardLT() ) , 0.0 );
+ }
+
+ this.MinProdDeliverLT( value );
+ *]
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcPlanningStrategyAuto.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcPlanningStrategyAuto.qbl
new file mode 100644
index 0000000..74fd0ee
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcPlanningStrategyAuto.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcPlanningStrategyAuto
+{
+ TextBody:
+ [*
+ // yypsybs Sep-8-2023 (created)
+
+ value := "";
+
+ if( this.FlagLongTerm() = "闀垮懆鏈�" and this.FlagGeneric() = "涓撶敤" ) {
+ value := "JIT";
+ } else if ( this.FlagLongTerm() = "闀垮懆鏈�" and this.FlagGeneric() = "閫氱敤" ) {
+ value := "瀹夊叏搴撳瓨";
+ } else if ( this.FlagLongTerm() = "鐭懆鏈�" and this.FlagGeneric() = "涓撶敤" ) {
+ value := "JIT";
+ } else if ( this.FlagLongTerm() = "鐭懆鏈�" and this.FlagGeneric() = "閫氱敤" ) {
+ value := "VMI";
+ }
+
+ this.PlanningStrategyAuto( value );
+ *]
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcProductCount.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcProductCount.qbl
new file mode 100644
index 0000000..e03f766
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Function_CalcProductCount.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcProductCount
+{
+ TextBody:
+ [*
+ // yypsybs Sep-8-2023 (created)
+
+ value := counter( this, MatAttrSettingAndPlanStrategyDetail, item, true );
+
+ this.ProductCount( value );
+ *]
+}
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl
new file mode 100644
index 0000000..c69081c
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_CreateIfNotExist.qbl
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateIfNotExist (
+ GlobalOTDTable parent,
+ String matCode,
+ String matName,
+ String matType,
+ Real matArrivalLT,
+ String flagGeneric,
+ String flagLongTerm
+) as MatAttrSettingAndPlanStrategy
+{
+ TextBody:
+ [*
+ // yypsybs Sep-8-2023 (created)
+ value := MatAttrSettingAndPlanStrategy::GetExistByMatCode( parent, matCode );
+ if( isnull( value ) ) {
+ value := parent.MatAttrSettingAndPlanStrategy( relnew,
+ MatCode := matCode,
+ MatName := matName,
+ MatType := matType,
+ MatArrivalLT := matArrivalLT,
+ FlagGeneric := flagGeneric,
+ FlagLongTerm := flagLongTerm,
+ PlanningStrategyCustom := "",
+ UpdateBy := "",
+ UpdateTime := DateTime::MinDateTime() );
+ }
+ return value;
+ *]
+}
diff --git "a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode\043136.qbl" "b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode\043526.qbl"
similarity index 73%
rename from "_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode\043136.qbl"
rename to "_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode\043526.qbl"
index 7d22871..7d84d24 100644
--- "a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode\043136.qbl"
+++ "b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_DeleteIfExistByMatCode\043526.qbl"
@@ -1,14 +1,14 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod deleteIfExistByMatCode (
+StaticMethod DeleteIfExistByMatCode (
GlobalOTDTable parent,
- Strings matCodes
+ Strings matCode
)
{
TextBody:
[*
// yypsybs Jul-2-2023 (created)
- toDels := selectset( parent, MatAttrSettingAndPlanStrategy, item, true, matCodes.Find( item.MatCode() ) <> -1 );
+ toDels := selectset( parent, MatAttrSettingAndPlanStrategy, item, true, matCode.Find( item.MatCode() ) >= 0 );
if( toDels.Size() > 0 ) {
traverse( toDels, Elements, toDel ) {
toDel.Delete();
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl
index 46c6957..3c9e3f1 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod delete (
+StaticMethod Delete (
MatAttrSettingAndPlanStrategys toDels
)
{
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl
index 0defbb4..4cd01e5 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod deleteIfExistByMatCode (
+StaticMethod DeleteIfExistByMatCode (
GlobalOTDTable parent,
String matCode
)
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl
index 31f507e..c0e174e 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl
@@ -1,6 +1,6 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod getExistByMatCode (
+StaticMethod GetExistByMatCode (
GlobalOTDTable parent,
String matCode
) as MatAttrSettingAndPlanStrategy
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl
index 8294a1c..44ea303 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl
@@ -1,14 +1,16 @@
Quintiq file version 2.0
#parent: #root
-StaticMethod update (
+StaticMethod Update (
GlobalOTDTable parent,
- MatAttrSettingAndPlanStrategyDataRow excelRow
+ MatAttrSettingAndPlanStrategyDataRow excelRow,
+ String userName
) as MatAttrSettingAndPlanStrategy
{
TextBody:
[*
- fields := MatAttrSettingAndPlanStrategyDataTable::exportFields();
- headers := MatAttrSettingAndPlanStrategyDataTable::expectedHeaders();
+ fields := MatAttrSettingAndPlanStrategyDataTable::ExportFields();
+ headers := MatAttrSettingAndPlanStrategyDataTable::ExpectedHeaders();
+ //info( "--------SaveData--------" );
// 鎵惧緟鏇存柊璁板綍
toUpdate := null( MatAttrSettingAndPlanStrategy );
matCode := "";
@@ -16,37 +18,50 @@
header := headers.Element( i );
cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i );
if( cell.MatAttrSettingAndPlanStrategyDataColumn().name() <> header ) {
+ FeedbackObject::LocalFeedback().AddHard( "the column with index " + [String]i + " should be " + header + ", but found " + cell.MatAttrSettingAndPlanStrategyDataColumn().name() );
error( "the column with index " + [String]i + " should be " + header + ", but found " + cell.MatAttrSettingAndPlanStrategyDataColumn().name() );
}
if( cell.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡缂栫爜" and cell.value() <> "") {
matCode := cell.value();
- toUpdate := MatAttrSettingAndPlanStrategy::getExistByMatCode( parent, matCode );
+ toUpdate := MatAttrSettingAndPlanStrategy::GetExistByMatCode( parent, matCode );
+ if( isnull( toUpdate ) ) {
+ FeedbackObject::LocalFeedback().AddHard( "get MatAttrSettingAndPlanStrategy by matCode [" + matCode + "] failed" );
+ error( "get MatAttrSettingAndPlanStrategy by matCode [" + matCode + "] failed" );
+ }
}
}
if( not isnull( toUpdate ) ) {
// 瀵规瘮宸紓
for( i := 0; i < fields.Size(); i++ ) {
- header := headers.Element( i );
+ // header := headers.Element( i );
cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i );
fieldName := fields.Element( i );
- field := Reflection::FindAttribute( "MatAttrSettingAndPlanningStrategy", fieldName);
+ field := Reflection::FindAttribute( "MatAttrSettingAndPlanStrategy", fieldName);
+ if( isnull( field ) ) {
+ FeedbackObject::LocalFeedback().AddHard( "MatAttrSettingAndPlanStrategy does not have field " + fieldName );
+ error( "MatAttrSettingAndPlanStrategy does not have field " + fieldName );
+ }
+ // info( "========header:" + header + "========" )
+ // info( "========fieldName:" + fieldName + "========" )
+ // info( "========cell:" + cell.value() + "========" )
if( fieldName = "MatName" or fieldName = "MatType" or fieldName = "FlagLongTerm" or fieldName = "FlagGeneric" or fieldName = "PlanningStrategyAuto" ) {
- fieldValue := guard( field.GetString( toUpdate ), "" );
- if( fieldValue <> cell.value() ) {
- error( "column " + header + " does not support to be changed" );
- }
+ // do nothing
} else if( fieldName = "MatArrivalLT" or fieldName = "ProductCount" or fieldName = "MinProdDeliverLT" ) {
- fieldRealValue := guard( field.GetReal( toUpdate ), 0.0 );
- if( fieldRealValue <> [Real]cell.value() ) {
- error( "column " + header + " does not support to be changed" );
- }
+ // do nothing
} else if( fieldName = "PlanningStrategyCustom" ) {
- fieldValue := guard( field.GetString( toUpdate ), "" );
- toUpdate.PlanningStrategyCustom( fieldValue );
+ if( cell.value() <> "VMI" and cell.value() <> "瀹夊叏搴撳瓨" and cell.value() <> "VIT" ) {
+ FeedbackObject::LocalFeedback().AddHard( "unsupported PlanningStrategyCustom : " + cell.value() );
+ error( "unsupported PlanningStrategyCustom : " + cell.value() );
+ } else if( cell.value() <> toUpdate.PlanningStrategyCustom() ) {
+ toUpdate.PlanningStrategyCustom( cell.value() );
+ toUpdate.UpdateBy( userName );
+ toUpdate.UpdateTime( DateTime::Now() );
+ }
}
}
} else {
- error( "no record with matCode : " + matCode )
+ FeedbackObject::LocalFeedback().AddHard( "no record with matCode : " + matCode );
+ error( "no record with matCode : " + matCode );
}
return toUpdate;
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlActions.def
new file mode 100644
index 0000000..16082f0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[414384.0.770880997]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnOk
+ {
+ #keys: '[414384.0.770881001]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 0
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[414384.0.770881003]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Cancel'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Border: true
+ ExcludeFromActiveComponent: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Padding: 'true'
+ Style: 'footer'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlContent.def
new file mode 100644
index 0000000..802f9f1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Component_pnlContent.def
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[414384.0.770880995]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component dropDownPlanningStrategyCustom
+ {
+ #keys: '[414384.0.770871903]'
+ BaseType: 'WebDropDownStringList'
+ Properties:
+ [
+ AllowEmpty: true
+ DataBinding: 'DataHolderDialogData.Data.PlanningStrategyCustom'
+ Label: 'PlanningStrategyCustom'
+ Strings: 'JIT;瀹夊叏搴撳瓨;VMI'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_Edit.def
new file mode 100644
index 0000000..20760cd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_Edit.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method Edit (
+ MatAttrSettingAndPlanStrategy item
+) id:Method_DialogEditMatAttrSettingAndPlanStrategy_Edit
+{
+ #keys: '[414384.0.772161633]'
+ Body:
+ [*
+ // Edit uom
+ data := shadow( item );
+
+ DataHolderDialogData.Data( &data );
+
+ ApplicationMacroPlanner.ShowFormModal( this );
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_OnOK.def
new file mode 100644
index 0000000..d26a7a1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Method_OnOK.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnOK () id:Method_DialogEditMatAttrSettingAndPlanStrategy_OnOK
+{
+ #keys: '[414384.0.772193415]'
+ Body:
+ [*
+ // On ok
+ Form.ApplyChanges();
+
+ data := DataHolderDialogData.Data();
+ data.WrappedInstance().PlanningStrategyCustom( dropDownPlanningStrategyCustom.Text() );
+
+ Form.Close();
+ *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..179c75d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+ #keys: '[414384.0.770881007]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..d6ccb93
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+ #keys: '[414384.0.770881006]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.OnOK();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/_ROOT_Component_DialogEditMatAttrSettingAndPlanStrategy.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/_ROOT_Component_DialogEditMatAttrSettingAndPlanStrategy.def
new file mode 100644
index 0000000..bc7540c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEdit/_ROOT_Component_DialogEditMatAttrSettingAndPlanStrategy.def
@@ -0,0 +1,31 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogEditMatAttrSettingAndPlanStrategy
+{
+ #keys: '[414384.0.770880993]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ Component DataHolderDialogData
+ {
+ #keys: '[414384.0.772100860]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'shadow[MatAttrSettingAndPlanStrategy]*'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_ListMatAttrSettingAndPlanStrategy.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_ListMatAttrSettingAndPlanStrategy.def
new file mode 100644
index 0000000..37dde34
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_ListMatAttrSettingAndPlanStrategy.def
@@ -0,0 +1,105 @@
+Quintiq file version 2.0
+Component ListMatAttrSettingAndPlanStrategy
+{
+ #keys: '[414384.0.769370441]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorMatAttrSettingAndPlanStrategy
+ {
+ #keys: '[414384.0.769370442]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'GlobalOTDTable'
+ Source: 'GlobalOTDTable'
+ Taborder: 0
+ Transformation: 'MatAttrSettingAndPlanStrategy'
+ ]
+ }
+ Component DataSetLevelMatAttrSettingAndPlanStrategy
+ {
+ #keys: '[414384.0.769370443]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuMatAttrSettingAndPlanStrategy
+ ]
+ Properties:
+ [
+ Columns: '[{"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","editable":false,"attribute":"ProductCount"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MinProdDeliverLT","title":"MinProdDeliverLT","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"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","editable":false,"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"}}]'
+ ContextMenu: 'listContextMenuMatAttrSettingAndPlanStrategy'
+ SortCriteria: 'MatCode'
+ Taborder: 1
+ ]
+ }
+ #child: listActionBarPageMatAttrSettingAndPlanStrategy
+ ]
+ Properties:
+ [
+ Taborder: 2
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListMatAttrSettingAndPlanStrategy_WebMenu_OnClick
+ {
+ #keys: '[414384.0.769370436]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[2651.0.25404553]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_ListMatAttrSettingAndPlanStrategy_WebButton_OnClick
+ {
+ #keys: '[414384.0.769370435]'
+ Initiator: 'WebButton'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[6763.0.7953347]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_ListMatAttrSettingAndPlanStrategy_WebMenu_OnClick_106
+ {
+ #keys: '[414384.0.769370434]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument checked
+ {
+ #keys: '[6763.0.7953392]'
+ Binding: 'this.Checked()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_ListMatAttrSettingAndPlanStrategy_WebButton_OnClick_415
+ {
+ #keys: '[414384.0.769370433]'
+ Initiator: 'WebButton'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument checked
+ {
+ #keys: '[6763.0.7953437]'
+ Binding: 'this.Checked()'
+ }
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listActionBarPageMatAttrSettingAndPlanStrategy.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listActionBarPageMatAttrSettingAndPlanStrategy.def
new file mode 100644
index 0000000..524e038
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listActionBarPageMatAttrSettingAndPlanStrategy.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageMatAttrSettingAndPlanStrategy
+{
+ #keys: '[414384.0.769370448]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 2
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listContextMenuMatAttrSettingAndPlanStrategy.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listContextMenuMatAttrSettingAndPlanStrategy.def
new file mode 100644
index 0000000..3415621
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Component_listContextMenuMatAttrSettingAndPlanStrategy.def
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+Component listContextMenuMatAttrSettingAndPlanStrategy
+{
+ #keys: '[414384.0.769370444]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuEdit
+ {
+ #keys: '[414384.0.769370445]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ BindOnDoubleClick: true
+ DelegationID: 'ActionBarData_Edit'
+ Image: 'PENCIL'
+ Shortcut: 'Enter'
+ Taborder: 3
+ Title: 'Edit...'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyExport_OnClick.def
new file mode 100644
index 0000000..73a180c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyExport_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: ButtonMatAttrSettingAndPlanStrategyExport
+Response OnClick () id:Response_FormMatAttrSettingAndPlanStrategy_ButtonMatAttrSettingAndPlanStrategyExport_OnClick
+{
+ #keys: '[414384.0.772313427]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ info( "ButtonMatAttrSettingAndPlanStrategyExport.OnClick" );
+ Application.Download( "MatAttrSettingAndPlanningStrategy.xlsx",
+ MatAttrSettingAndPlanStrategyDataTable::Export( GlobalOTDTable ) );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyImport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyImport_OnClick.def
new file mode 100644
index 0000000..183442b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ButtonMatAttrSettingAndPlanStrategyImport_OnClick.def
@@ -0,0 +1,32 @@
+Quintiq file version 2.0
+#parent: ButtonMatAttrSettingAndPlanStrategyImport
+Response OnClick () id:Response_FormMatAttrSettingAndPlanStrategy_ButtonMatAttrSettingAndPlanStrategyImport_OnClick
+{
+ #keys: '[414384.0.772313506]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ try {
+ uploadJson := Application.GetFile();
+ json := JSON::Parse( uploadJson );
+ if( json.IsArray() or json.Size() = 0 ) {
+ error( "please select one .xls or .xlsx file" );
+ }
+ name := json.Get( "name" ).GetString();
+ base64Data := json.Get( "data" ).GetString();
+ inputSource := MatAttrSettingAndPlanStrategyInputSource::Upload( GlobalOTDTable, name, base64Data, ApplicationMacroPlanner.GetUserName() );
+ inputSource.ParseTable();
+ inputSource.SaveData();
+ } onerror {
+ info( e.GeneralInformation() );
+ info( e.DetailedInformation() );
+ info( e.DeveloperInformation() );
+ WebMessageBox::Error( e.GeneralInformation() );
+ }
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ListMatAttrSettingAndPlanStrategy_MenuEdit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ListMatAttrSettingAndPlanStrategy_MenuEdit_OnClick.def
new file mode 100644
index 0000000..f0014e8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_ListMatAttrSettingAndPlanStrategy_MenuEdit_OnClick.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListMatAttrSettingAndPlanStrategy
+Response OnClick (
+ MatAttrSettingAndPlanStrategy selection
+) id:Response_ListMatAttrSettingAndPlanStrategy_MenuEdit_OnClick
+{
+ #keys: '[414384.0.769370438]'
+ CanBindMultiple: false
+ DefinitionID => /ListMatAttrSettingAndPlanStrategy/Responsedef_ListMatAttrSettingAndPlanStrategy_WebMenu_OnClick
+ GroupServerCalls: true
+ Initiator: 'MenuEdit'
+ QuillAction
+ {
+ Body:
+ [*
+ dlg := construct( DialogEditMatAttrSettingAndPlanStrategy );
+ dlg.Edit( selection );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_OnCreated.def
new file mode 100644
index 0000000..461fa7c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/Response_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Response OnCreated () id:Response_FormMatAttrSettingAndPlanStrategy_OnCreated
+{
+ #keys: '[414384.0.770811994]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ GlobalOTDTable.InitTestData();
+ info( "FormMatAttrSettingAndPlanStrategy created" )
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/_ROOT_Component_FormMatAttrSettingAndPlanStrategy.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/_ROOT_Component_FormMatAttrSettingAndPlanStrategy.def
new file mode 100644
index 0000000..7d0618e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategy/_ROOT_Component_FormMatAttrSettingAndPlanStrategy.def
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormMatAttrSettingAndPlanStrategy
+{
+ #keys: '[414384.0.767100500]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: ListMatAttrSettingAndPlanStrategy
+ Component ButtonMatAttrSettingAndPlanStrategyExport
+ {
+ #keys: '[414384.0.770831027]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'EXPORT1'
+ Label: 'Export'
+ Taborder: 0
+ ]
+ }
+ Component ButtonMatAttrSettingAndPlanStrategyImport
+ {
+ #keys: '[414384.0.770831036]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'IMPORT1'
+ Label: 'Import'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Description: '4.11.鐗╂枡灞炴�ф爣绛捐瀹�&鐗╂枡璁″垝绛栫暐'
+ Title: '鐗╂枡灞炴�ф爣绛句笌鐗╂枡璁″垝绛栫暐'
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_ListMatAttrSettingAndPlanStrategyDetail\04321.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_ListMatAttrSettingAndPlanStrategyDetail\04321.def"
new file mode 100644
index 0000000..6a99d11
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_ListMatAttrSettingAndPlanStrategyDetail\04321.def"
@@ -0,0 +1,106 @@
+Quintiq file version 2.0
+Component ListMatAttrSettingAndPlanStrategyDetail id:ListMatAttrSettingAndPlanStrategyDetail_21
+{
+ #keys: '[414384.0.769370487]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorMatAttrSettingAndPlanStrategyDetail
+ {
+ #keys: '[414384.0.769370488]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MatAttrSettingAndPlanStrategy'
+ ExtractionMode: 'Selected'
+ Source: 'FormMatAttrSettingAndPlanStrategy.ListMatAttrSettingAndPlanStrategy'
+ Taborder: 0
+ Transformation: 'MatAttrSettingAndPlanStrategyDetail'
+ ]
+ }
+ Component DataSetLevelMatAttrSettingAndPlanStrategyDetail
+ {
+ #keys: '[414384.0.769370489]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuMatAttrSettingAndPlanStrategyDetail_1
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MatCode","title":"MatCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"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: 'listContextMenuMatAttrSettingAndPlanStrategyDetail'
+ SortCriteria: 'MatCode;ProductCode'
+ Taborder: 1
+ ]
+ }
+ #child: listActionBarPageMatAttrSettingAndPlanStrategyDetail_1
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListMatAttrSettingAndPlanStrategyDetail_21_WebMenu_OnClick
+ {
+ #keys: '[414384.0.769370482]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[2651.0.25404553]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_ListMatAttrSettingAndPlanStrategyDetail_21_WebButton_OnClick
+ {
+ #keys: '[414384.0.769370481]'
+ Initiator: 'WebButton'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[6763.0.7953347]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_ListMatAttrSettingAndPlanStrategyDetail_21_WebMenu_OnClick_737
+ {
+ #keys: '[414384.0.769370480]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument checked
+ {
+ #keys: '[6763.0.7953392]'
+ Binding: 'this.Checked()'
+ }
+ ]
+ }
+ DelegatedResponseDefinition OnClick id:Responsedef_ListMatAttrSettingAndPlanStrategyDetail_21_WebButton_OnClick_456
+ {
+ #keys: '[414384.0.769370479]'
+ Initiator: 'WebButton'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument checked
+ {
+ #keys: '[6763.0.7953437]'
+ Binding: 'this.Checked()'
+ }
+ ]
+ }
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listActionBarPageMatAttrSettingAndPlanStrategyDetail\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listActionBarPageMatAttrSettingAndPlanStrategyDetail\0431.def"
new file mode 100644
index 0000000..c48d2ee
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listActionBarPageMatAttrSettingAndPlanStrategyDetail\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageMatAttrSettingAndPlanStrategyDetail id:listActionBarPageMatAttrSettingAndPlanStrategyDetail_1
+{
+ #keys: '[414384.0.769370494]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 2
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listContextMenuMatAttrSettingAndPlanStrategyDetail\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listContextMenuMatAttrSettingAndPlanStrategyDetail\0431.def"
new file mode 100644
index 0000000..a829c7d
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/Component_listContextMenuMatAttrSettingAndPlanStrategyDetail\0431.def"
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuMatAttrSettingAndPlanStrategyDetail id:listContextMenuMatAttrSettingAndPlanStrategyDetail_1
+{
+ #keys: '[414384.0.769370490]'
+ BaseType: 'listContextMenu'
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/_ROOT_Component_FormMatAttrSettingAndPlanStrategyDetail.def b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/_ROOT_Component_FormMatAttrSettingAndPlanStrategyDetail.def
new file mode 100644
index 0000000..5247d29
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMatAttrSettingAndPlanStrategyDetail/_ROOT_Component_FormMatAttrSettingAndPlanStrategyDetail.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormMatAttrSettingAndPlanStrategyDetail
+{
+ #keys: '[414384.0.769370336]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: ListMatAttrSettingAndPlanStrategyDetail_21
+ ]
+ Properties:
+ [
+ Description: '鐗╂枡灞炴�ф爣绛捐瀹�&鐗╂枡璁″垝绛栫暐'
+ Title: '鐗╂枡鍏宠仈浜у搧'
+ ]
+}
--
Gitblit v1.9.3