From b113f7a558b7bce50824293cf066cccaad6c257e Mon Sep 17 00:00:00 2001 From: yypsybs <yypsybs@foxmail.com> Date: 星期四, 07 九月 2023 18:33:51 +0800 Subject: [PATCH] 4.11.物料属性标签设定&物料计划策略 --- _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl | 22 + _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_name.qbl | 6 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/Attribute_value.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/Attribute_rowNo.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_cell.qbl | 17 + _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatCode.qbl | 8 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl | 23 + _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/_ROOT_Type_MatAttrSettingAndPlanStrategyDataColumn.qbl | 9 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_Key.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_name.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatType.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/DefaultValue_value.qbl | 6 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/_ROOT_Type_MatAttrSettingAndPlanStrategyDataTable.qbl | 9 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl | 54 +++ _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_Key.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl | 16 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/DefaultValue_name.qbl | 6 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_column.qbl | 27 + _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl | 7 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrat.qbl | 23 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_QuintiqType.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_ProductCount.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_table.qbl | 27 + _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl | 32 + _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_columnIndex.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_table.qbl | 27 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl | 68 ++++ _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl | 23 + _Main/BL/Type_MatAttrSettingAndPlanningStrategy/_ROOT_Type_MatAttrSettingAndPlanStrategy.qbl | 10 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl | 21 + _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Function_CalccolumnIndex.qbl | 11 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl | 8 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrateg.qbl | 26 + _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateBy.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode#136.qbl | 18 + _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/DefaultValue_rowNo.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatName.qbl | 8 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrate.qbl | 26 + _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_bytes.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/_ROOT_Type_MatAttrSettingAndPlanStrategyInputSource.qbl | 9 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl | 23 + _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatArrivalLT.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl | 14 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXMLHeaders.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/_ROOT_Type_MatAttrSettingAndPlanStrategyDataRow.qbl | 9 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateTime.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinProdDeliverLT.qbl | 8 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyD.qbl | 23 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl | 23 + _Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyCustom.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl | 17 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_QuintiqType.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl | 7 _Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStr#458.qbl | 23 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXML.qbl | 8 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl | 24 + _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Attribute_name.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_columnIndex.qbl | 7 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl | 41 ++ _Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/DefaultValue_fileName.qbl | 6 _Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/_ROOT_Type_MatAttrSettingAndPlanStrategyDataCell.qbl | 9 _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl | 34 ++ _Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_column.qbl | 17 + 65 files changed, 989 insertions(+), 0 deletions(-) diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrate.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrate.qbl new file mode 100644 index 0000000..a723b60 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrate.qbl @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrategyDataCell_MatAttrSettingAndPlanStrategyDataCell_MatAttrSettingAndPlanStrategyDataColumn +{ + #keys: '1[414384.0.763764789]' + ProceduralSequenceRelationStrategy + { + #keys: '13[0.0.0][414384.0.763764811][414384.0.763764805][414384.0.763764812][414384.0.763764806][414384.0.763764813][414384.0.763764807][414384.0.763764814][414384.0.763764808][414384.0.763764815][414384.0.763764809][414384.0.763764816][414384.0.763764810]' + SequenceElementSuffix: 'CellInColumn' + SequenceSuffix: 'CellInColumn' + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataCell + { + #keys: '3[414384.0.763764791][414384.0.763764790][414384.0.763764792]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataColumn + OwningSide: 'Owned' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDataColumn + { + #keys: '3[414384.0.763764794][414384.0.763764793][414384.0.763764795]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataCell + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyD.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyD.qbl new file mode 100644 index 0000000..ccedde2 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyD.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyDataCell_MatAttrSettingAndPlanStrategyDataCell_MatAttrSettingAndPlanStrategyDataRow +{ + #keys: '1[414384.0.763764825]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataCell + { + #keys: '3[414384.0.763764827][414384.0.763764826][414384.0.763764828]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataRow + OwningSide: 'Reference' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDataRow + { + #keys: '3[414384.0.763764830][414384.0.763764829][414384.0.763764831]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataCell + OwningSide: 'Reference' + } +} diff --git "a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStr\043458.qbl" "b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStr\043458.qbl" new file mode 100644 index 0000000..7f1d910 --- /dev/null +++ "b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStr\043458.qbl" @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyDataRow_MatAttrSettingAndPlanStrategyDataTable +{ + #keys: '1[414384.0.763764737]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataRow + { + #keys: '3[414384.0.763764739][414384.0.763764738][414384.0.763764740]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataTable + OwningSide: 'Owned' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDataTable + { + #keys: '3[414384.0.763764742][414384.0.763764741][414384.0.763764743]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataRow + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrateg.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrateg.qbl new file mode 100644 index 0000000..b765f35 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrateg.qbl @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrategyDataColumn_MatAttrSettingAndPlanStrategyDataTable +{ + #keys: '1[414384.0.763764753]' + ProceduralSequenceRelationStrategy + { + #keys: '13[0.0.0][414384.0.763764775][414384.0.763764769][414384.0.763764776][414384.0.763764770][414384.0.763764777][414384.0.763764771][414384.0.763764778][414384.0.763764772][414384.0.763764779][414384.0.763764773][414384.0.763764780][414384.0.763764774]' + SequenceElementSuffix: 'ColumnInTable' + SequenceSuffix: 'ColumnInTable' + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataColumn + { + #keys: '3[414384.0.763764755][414384.0.763764754][414384.0.763764756]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataTable + OwningSide: 'Owned' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyDataTable + { + #keys: '3[414384.0.763764758][414384.0.763764757][414384.0.763764759]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataColumn + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl new file mode 100644 index 0000000..970e5b3 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTa.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyInputSource_GlobalOTDTable_GlobalOTDTable_MatAttrSettingAndPlanStrategyInputSource +{ + #keys: '1[414384.0.763764705]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide GlobalOTDTable + { + #keys: '3[414384.0.763764707][414384.0.763764706][414384.0.763764708]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyInputSource + OwningSide: 'Reference' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyInputSource + { + #keys: '3[414384.0.763764710][414384.0.763764709][414384.0.763764711]' + Cardinality: '1toN' + ObjectDefinition: GlobalOTDTable + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrat.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrat.qbl new file mode 100644 index 0000000..bc9b481 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrat.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategyInputSource_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrategyDataTable_MatAttrSettingAndPlanStrategyInputSource +{ + #keys: '1[414384.0.763764721]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MatAttrSettingAndPlanStrategyDataTable + { + #keys: '3[414384.0.763764723][414384.0.763764722][414384.0.763764724]' + Cardinality: '1toN' + ObjectDefinition: MatAttrSettingAndPlanStrategyInputSource + OwningSide: 'Owned' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategyInputSource + { + #keys: '3[414384.0.763764726][414384.0.763764725][414384.0.763764727]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategyDataTable + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl new file mode 100644 index 0000000..cedbcb8 --- /dev/null +++ b/_Main/BL/Relations/Relation_MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttr.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation MatAttrSettingAndPlanStrategy_GlobalOTDTable_GlobalOTDTable_MatAttrSettingAndPlanStrategy +{ + #keys: '1[414384.0.763764622]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide GlobalOTDTable + { + #keys: '3[414384.0.763764624][414384.0.763764623][414384.0.763764625]' + Cardinality: '0to1' + ObjectDefinition: MatAttrSettingAndPlanStrategy + OwningSide: 'Reference' + } + RelationSide.RightSide MatAttrSettingAndPlanStrategy + { + #keys: '3[414384.0.763764627][414384.0.763764626][414384.0.763764628]' + Cardinality: '1toN' + ObjectDefinition: GlobalOTDTable + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Attribute_name.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Attribute_name.qbl new file mode 100644 index 0000000..c6601dd --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Attribute_name.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute name +{ + #keys: '3[414384.0.763764688][414384.0.763764687][414384.0.763764689]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/DefaultValue_name.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/DefaultValue_name.qbl new file mode 100644 index 0000000..4c149cf --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/DefaultValue_name.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: name +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl new file mode 100644 index 0000000..4f276e4 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/Method_parseRows.qbl @@ -0,0 +1,41 @@ +Quintiq file version 2.0 +#parent: #root +Method parseRows +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + totalRows := 0; + totalColumns := this.MatAttrSettingAndPlanStrategyDataColumn( relsize ); + + if ( totalColumns > 0 ) { + columnLongestList := maxset( this, MatAttrSettingAndPlanStrategyDataColumn, column, true, column.MatAttrSettingAndPlanStrategyDataCell( relsize ) ); + columnLongest := columnLongestList.First(); + totalRows := columnLongest.MatAttrSettingAndPlanStrategyDataCell( relsize ); + + this.MatAttrSettingAndPlanStrategyDataRow( relflush ); + + cells := construct( structured[MatAttrSettingAndPlanStrategyDataCell] ); + traverse ( this, MatAttrSettingAndPlanStrategyDataColumn, column ) { + cells.Add( column.FirstCellInColumn() ); + } + + for ( i := 0; i < totalRows; i++ ) { + assert( selectvalues( cells, Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ).ToString( "" ) = + selectvalues( selectsortedset( cells, Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ), Elements, c, true, c.MatAttrSettingAndPlanStrategyDataColumn().columnIndex() ).ToString( "" ), + "Assertion error in MatAttrSettingAndPlanningStrategyDataTable::parseRows: Cells not sorted by column index" ); + row := this.MatAttrSettingAndPlanStrategyDataRow( relnew, rowNo := i ); + + newCells := construct( structured[MatAttrSettingAndPlanStrategyDataCell] ); + + traverse ( cells, Elements, c ) { + row.MatAttrSettingAndPlanStrategyDataCell( relinsert, c ); + + newCells.Add( c.NextCellInColumn() ); + } + + cells := &newCells; + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl new file mode 100644 index 0000000..adcdcf6 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_doVerify.qbl @@ -0,0 +1,34 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod doVerify ( + MatAttrSettingAndPlanStrategyDataTable toVerify +) +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + + // for test + columns := selectsortedset( toVerify, MatAttrSettingAndPlanStrategyDataColumn, column, true, column.columnIndex() ); + //traverse( columns, Elements, column ) { + // info( "column header of " + [String]( column.columnIndex() + 1 ) + " is " + column.name() ); + //} + //rows := toVerify.MatAttrSettingAndPlanningStrategyDataRow( relget ); + //traverse( rows, Elements.MatAttrSettingAndPlanningStrategyDataCell, cell ) { + // info( cell.MatAttrSettingAndPlanningStrategyDataColumn().name() + " of row " + [String]cell.MatAttrSettingAndPlanningStrategyDataRow().rowNo() + " is " + cell.value() ); + //} + // for test end + + expectedHeaders := MatAttrSettingAndPlanStrategyDataTable::expectedHeaders(); + traverse( columns, Elements, column ) { + columnActualName := column.name(); + if( column.columnIndex() > expectedHeaders.Size() ) { + error( "unexpected head " + columnActualName + " of column " + [String]column.columnIndex() + "." ); + } + expectedHeader := expectedHeaders.Element( column.columnIndex() ); + if( expectedHeader <> columnActualName ) { + error( "expected head is " + expectedHeader + " of column " + [String]column.columnIndex() + ", but found " + columnActualName + "." ); + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl new file mode 100644 index 0000000..156988a --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_expectedHeaders.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod expectedHeaders () as owning Strings +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + value := construct( structured[String] ); + value.Add( "鐗╂枡缂栫爜" ); + value.Add( "鐗╂枡鍚嶇О" ); + value.Add( "鐗╂枡鍒嗙被" ); + value.Add( "LT鏃堕棿锛堝ぉ锛�" ); + value.Add( "鎴愬憳SKU鏁伴噺" ); + value.Add( "鎴愬搧浜や粯MinLT锛堝ぉ锛�" ); + value.Add( "闀跨煭鍛ㄦ湡鏍囩" ); + value.Add( "閫氱敤涓撶敤鏍囩" ); + value.Add( "鏅鸿兘鐗╂枡璁″垝绛栫暐" ); + value.Add( "鐢ㄦ埛鍐崇瓥璁″垝绛栫暐" ); + value.Add( "淇敼浜�" ); + value.Add( "淇敼鏃堕棿" ); + return &value; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl new file mode 100644 index 0000000..d370d43 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_export.qbl @@ -0,0 +1,68 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod export ( + GlobalOTDTable parent, + GlobalOTDTable parent, + GlobalOTDTable parent, + GlobalOTDTable parent +) as BinaryValue +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?> + <table> + <name>MatAttrSettingAndPlanningStrategy</name> + '; + //--------------------------------------------------------------------------------------------- + exportFields := MatAttrSettingAndPlanStrategyDataTable::exportFields(); + exportHeaders := MatAttrSettingAndPlanStrategyDataTable::expectedHeaders(); + if( exportFields.Size() <> exportHeaders.Size() ) { + error( "fields and headers not match" ); + } + for( i := 0; i < exportFields.Size() ; i++ ) { + header := exportHeaders.Element( i ); + columnStr := "<column><name>" + header + "</name><type>String</type>"; + traverse( parent, MatAttrSettingAndPlanStrategy, oldRecord ) { + fieldName := exportFields.Element( i ); + field := Reflection::FindAttribute( "MatAttrSettingAndPlanningStrategy", fieldName); + if( not isnull( field ) ) { + fieldValue := ""; + if( fieldValue = "" ) { + fieldValue := guard( field.GetString( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fieldValue := guard( [String]field.GetNumber( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fieldValue := guard( [String]field.GetReal( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fileDateValue := guard( field.GetDate( oldRecord ), Date::MinDate() ); + if( fileDateValue <> Date::MinDate() ) { + conv := DateTimeToString::StandardConverter(); + conv.SetCustomConversion(); + conv.CustomFormatString( 'yyyyMMdd' ); + fieldValue := conv.Convert( fileDateValue.DateTime() ); + } + } + cellStr := '<cell value="' + fieldValue + '"/>'; + + columnStr := columnStr + cellStr; + } else { + error( "no field " + fieldName + " in type MatAttrSettingAndPlanningStrategy"); + } + } + columnStr := columnStr + "</column>"; + xmlTemplate := xmlTemplate + columnStr; + } + //--------------------------------------------------------------------------------------------- + xmlTemplate := xmlTemplate + "</table>"; + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) ); + XLS::SaveTable( tableHandle, OS::TempPath() + "MatAttrSettingAndPlanningStrategy.xlsx" ); + file := OSFile::Construct(); + file.Open( OS::TempPath() + "MatAttrSettingAndPlanningStrategy.xlsx", "Read", true ); + data := file.ReadBinary() + return data; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl new file mode 100644 index 0000000..6559348 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/StaticMethod_exportFields.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod exportFields () as owning Strings +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + value := construct( structured[String] ); + value.Add( "MatCode" ); + value.Add( "MatName" ); + value.Add( "MatType" ); + value.Add( "MatArrivalLT" ); + value.Add( "ProductCount" ); + value.Add( "MinProdDeliverLT" ); + value.Add( "FlagLongTerm" ); + value.Add( "FlagGeneric" ); + value.Add( "PlanningStrategyAuto" ); + value.Add( "PlanningStrategyCustom" ); + value.Add( "UpdateBy" ); + value.Add( "UpdateTime" ); + return &value; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_Key.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_Key.qbl new file mode 100644 index 0000000..4f408a0 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_Key.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +XMLElementId +{ + XMLAddressType { } + XMLID Key { } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_QuintiqType.qbl new file mode 100644 index 0000000..7468757 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLElementId_QuintiqType.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +XMLElementId +{ + XMLID QuintiqType { } + XMLQualifierType { } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_cell.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_cell.qbl new file mode 100644 index 0000000..9a0e46e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_cell.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataCell + XMLID cell { } + Attributes: + [ + XMLAttribute + { + Attribute: value + XMLID value { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_column.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_column.qbl new file mode 100644 index 0000000..dd6ba85 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_column.qbl @@ -0,0 +1,27 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataColumn + XMLID column { } + Aggregates: + [ + XMLAggregate + { + ElementDefinition: cell + GenerateOutput: false + Relation: MatAttrSettingAndPlanStrategyDataCell + XMLID MatAttrSettingAndPlanningStrategyDataCell { } + } + ] + Attributes: + [ + XMLAttribute + { + Attribute: name + XMLID name { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_table.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_table.qbl new file mode 100644 index 0000000..badb838 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/XMLObjectBase_table.qbl @@ -0,0 +1,27 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataTable + XMLID table { } + Aggregates: + [ + XMLAggregate + { + ElementDefinition: column + GenerateOutput: false + Relation: MatAttrSettingAndPlanStrategyDataColumn + XMLID MatAttrSettingAndPlanningStrategyDataColumn { } + } + ] + Attributes: + [ + XMLAttribute + { + Attribute: name + XMLID name { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXML.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXML.qbl new file mode 100644 index 0000000..76a9e0d --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXML/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXML.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#root +#parent: #root +XML MatAttrSettingAndPlanStrategyDataTableXML +{ + Direction: 'ImportExport' + Root: table +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_Key.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_Key.qbl new file mode 100644 index 0000000..4f408a0 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_Key.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +XMLElementId +{ + XMLAddressType { } + XMLID Key { } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_QuintiqType.qbl new file mode 100644 index 0000000..7468757 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLElementId_QuintiqType.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +XMLElementId +{ + XMLID QuintiqType { } + XMLQualifierType { } +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_column.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_column.qbl new file mode 100644 index 0000000..320992a --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_column.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataColumn + XMLID column { } + Attributes: + [ + XMLAttribute + { + Attribute: name + XMLID name { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_table.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_table.qbl new file mode 100644 index 0000000..badb838 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/XMLObjectBase_table.qbl @@ -0,0 +1,27 @@ +Quintiq file version 2.0 +#parent: #root +XMLObjectBase.ObjectDefinitions +{ + IdField: Key + ObjectTypeField: QuintiqType + TargetType: MatAttrSettingAndPlanStrategyDataTable + XMLID table { } + Aggregates: + [ + XMLAggregate + { + ElementDefinition: column + GenerateOutput: false + Relation: MatAttrSettingAndPlanStrategyDataColumn + XMLID MatAttrSettingAndPlanningStrategyDataColumn { } + } + ] + Attributes: + [ + XMLAttribute + { + Attribute: name + XMLID name { } + } + ] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXMLHeaders.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXMLHeaders.qbl new file mode 100644 index 0000000..24c966b --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/XML_MatAttrSettingAndPlanningStrategyDataTableXMLHeaders/_ROOT_XML_MatAttrSettingAndPlanStrategyDataTableXMLHeaders.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#root +#parent: #root +XML MatAttrSettingAndPlanStrategyDataTableXMLHeaders +{ + Direction: 'ImportExport' + Root: table +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/_ROOT_Type_MatAttrSettingAndPlanStrategyDataTable.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/_ROOT_Type_MatAttrSettingAndPlanStrategyDataTable.qbl new file mode 100644 index 0000000..597fe5e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyDataTable/_ROOT_Type_MatAttrSettingAndPlanStrategyDataTable.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDataTable +{ + #keys: '5[414384.0.763764685][414384.0.763764683][0.0.0][414384.0.763764684][414384.0.763764686]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyDataTables' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_bytes.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_bytes.qbl new file mode 100644 index 0000000..d57a443 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_bytes.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute bytes +{ + #keys: '3[414384.0.763764696][414384.0.763764695][414384.0.763764697]' + ValueType: BinaryValue +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl new file mode 100644 index 0000000..fb1168e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_fileName.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +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 new file mode 100644 index 0000000..59af587 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Attribute_isXlsx.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute isXlsx +{ + #keys: '3[414384.0.763764702][414384.0.763764701][414384.0.763764703]' + ValueType: Boolean +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/DefaultValue_fileName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/DefaultValue_fileName.qbl new file mode 100644 index 0000000..104c0d8 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/DefaultValue_fileName.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: fileName +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl new file mode 100644 index 0000000..4c7b205 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_createTable.qbl @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: #root +Method createTable ( + String sheetName, + String sheetName, + String sheetName, + String sheetName +) as MatAttrSettingAndPlanStrategyDataTable +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + sheet := select( this, MatAttrSettingAndPlanStrategyDataTable, table, table.name() = sheetName ); + + if ( isnull( sheet ) ) { + sheet := this.MatAttrSettingAndPlanStrategyDataTable( relnew, name := sheetName ); + } + + return sheet; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl new file mode 100644 index 0000000..e69abc2 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_parseTable.qbl @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#parent: #root +Method parseTable +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + tableGroupHandle := TableGroupHandle::Create( this.fileName() ); + tableGroupHandle := XLS::LoadTableGroupFromBinaryData( this.bytes().AsBinaryData(), tableGroupHandle, true, this.isXlsx() ); + sheets := tableGroupHandle.TableNames(); + + traverse ( sheets, Elements, sheetName, sheetName = "MatAttrSettingAndPlanningStrategy" ) { + tableHandle := tableGroupHandle.Table( sheetName ); + tableXML := TableHandle::ExportXML( tableHandle ); + MatAttrSettingAndPlanStrategyDataTable::XMLImportMatAttrSettingAndPlanStrategyDataTableXMLHeaders( tableXML ); + parsedTable := MatAttrSettingAndPlanStrategyDataTable::XMLImportMatAttrSettingAndPlanStrategyDataTableXML( tableXML ); + parsedTable.parseRows(); + parsedTable.name( sheetName ); + this.MatAttrSettingAndPlanStrategyDataTable( relinsert, &parsedTable ); + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl new file mode 100644 index 0000000..de6f10d --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/Method_saveData.qbl @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: #root +Method saveData +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + if( this.MatAttrSettingAndPlanStrategyDataTable( relsize ) > 0 ) { + traverse( this, MatAttrSettingAndPlanStrategyDataTable, table ) { + traverse( table, MatAttrSettingAndPlanStrategyDataRow, row ) { + MatAttrSettingAndPlanStrategy::update( this.GlobalOTDTable(), row ); + } + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl new file mode 100644 index 0000000..915a26f --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/StaticMethod_upload.qbl @@ -0,0 +1,32 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod upload ( + GlobalOTDTable parent, + String filePath, + BinaryValue bytes, + GlobalOTDTable parent, + String filePath, + BinaryValue bytes, + GlobalOTDTable parent, + String filePath, + BinaryValue bytes, + GlobalOTDTable parent, + String filePath, + BinaryValue bytes +) as MatAttrSettingAndPlanStrategyInputSource +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + parent.MatAttrSettingAndPlanStrategyInputSource( relflush ); + info( "filePath : " + filePath ); + fileName := filePath.Tokenize( "\" ).Element( filePath.Tokenize( "\" ).Size() - 1 ); + info( "fileName : " + fileName ); + inputSource := parent.MatAttrSettingAndPlanStrategyInputSource( relnew, + fileName := fileName, + bytes := bytes, + isXlsx := fileName.EndsWith( "xlsx" )); + + return inputSource; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/_ROOT_Type_MatAttrSettingAndPlanStrategyInputSource.qbl b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/_ROOT_Type_MatAttrSettingAndPlanStrategyInputSource.qbl new file mode 100644 index 0000000..5cc6e21 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanStrategyInputSource/_ROOT_Type_MatAttrSettingAndPlanStrategyInputSource.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyInputSource +{ + #keys: '5[414384.0.763764693][414384.0.763764691][0.0.0][414384.0.763764692][414384.0.763764694]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyInputSources' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl new file mode 100644 index 0000000..e2bacd6 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagGeneric.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute FlagGeneric +{ + #keys: '3[414384.0.763764895][414384.0.763764894][414384.0.763764896]' + Description: '鏄惁閫氱敤' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl new file mode 100644 index 0000000..7302e5e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_FlagLongTerm.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute FlagLongTerm +{ + #keys: '3[414384.0.763764885][414384.0.763764884][414384.0.763764886]' + Description: '鏄惁闀挎湡' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatArrivalLT.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatArrivalLT.qbl new file mode 100644 index 0000000..9dc43ad --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatArrivalLT.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatArrivalLT +{ + #keys: '3[414384.0.759444630][414384.0.759444629][414384.0.759444631]' + Description: '鐗╂枡鍒拌揣LT锛堝ぉ锛�' + ValueType: Real +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatCode.qbl new file mode 100644 index 0000000..9e9785e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatCode +{ + #keys: '3[414384.0.759431251][414384.0.759431250][414384.0.759431252]' + Description: '鐗╂枡缂栫爜' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatName.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatName.qbl new file mode 100644 index 0000000..c0de400 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatName.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatName +{ + #keys: '3[414384.0.759431286][414384.0.759431285][414384.0.759431287]' + Description: '鐗╂枡鍚嶇О' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatType.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatType.qbl new file mode 100644 index 0000000..907d2a5 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MatType.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MatType +{ + #keys: '3[414384.0.759444677][414384.0.759444676][414384.0.759444678]' + Description: '鎴愬搧SKU绫诲瀷' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinProdDeliverLT.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinProdDeliverLT.qbl new file mode 100644 index 0000000..65b0de6 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_MinProdDeliverLT.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute MinProdDeliverLT +{ + #keys: '3[414384.0.759444667][414384.0.759444666][414384.0.759444668]' + Description: '鎴愬搧鏈�灏忎氦浠楲T锛堝ぉ锛�' + ValueType: Real +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl new file mode 100644 index 0000000..b0309cb --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyAuto.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute PlanningStrategyAuto +{ + #keys: '3[414384.0.759444687][414384.0.759444686][414384.0.759444688]' + Description: '鑷姩璁″垝绛栫暐' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyCustom.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyCustom.qbl new file mode 100644 index 0000000..4f66c38 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_PlanningStrategyCustom.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute PlanningStrategyCustom +{ + #keys: '3[414384.0.759444697][414384.0.759444696][414384.0.759444698]' + Description: '鎵嬪姩閰嶇疆鐨勮鍒掔瓥鐣�' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_ProductCount.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_ProductCount.qbl new file mode 100644 index 0000000..e7a798c --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_ProductCount.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductCount +{ + #keys: '3[414384.0.763750063][414384.0.763750062][414384.0.763750064]' + Description: '鎴愬憳SKU鏁伴噺' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateBy.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateBy.qbl new file mode 100644 index 0000000..6789918 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateBy.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UpdateBy +{ + #keys: '3[414384.0.763764908][414384.0.763764907][414384.0.763764909]' + Description: '淇敼浜�' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateTime.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateTime.qbl new file mode 100644 index 0000000..83ca47c --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/Attribute_UpdateTime.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UpdateTime +{ + #keys: '3[414384.0.763764921][414384.0.763764920][414384.0.763764922]' + Description: '淇敼鏃堕棿' + ValueType: DateTime +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl new file mode 100644 index 0000000..cabf9e9 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_delete.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod delete ( + MatAttrSettingAndPlanningStrategys toDels, + MatAttrSettingAndPlanStrategys toDels, + MatAttrSettingAndPlanStrategys toDels, + MatAttrSettingAndPlanStrategys toDels +) +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + traverse( toDels, Elements, toDel ){ + toDel.Delete(); + } + *] +} diff --git "a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode\043136.qbl" "b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode\043136.qbl" new file mode 100644 index 0000000..7d22871 --- /dev/null +++ "b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode\043136.qbl" @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod deleteIfExistByMatCode ( + GlobalOTDTable parent, + Strings matCodes +) +{ + TextBody: + [* + // yypsybs Jul-2-2023 (created) + toDels := selectset( parent, MatAttrSettingAndPlanStrategy, item, true, matCodes.Find( item.MatCode() ) <> -1 ); + if( toDels.Size() > 0 ) { + traverse( toDels, Elements, toDel ) { + toDel.Delete(); + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl new file mode 100644 index 0000000..7f43fa3 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_deleteIfExistByMatCode.qbl @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod deleteIfExistByMatCode ( + GlobalOTDTable parent, + String matCode, + GlobalOTDTable parent, + String matCode, + GlobalOTDTable parent, + String matCode, + GlobalOTDTable parent, + String matCode +) +{ + TextBody: + [* + // yypsybs Jul-2-2023 (created) + toDels := selectset( parent, MatAttrSettingAndPlanStrategy, item, true, matCode = item.MatCode() ); + if( toDels.Size() > 0 ) { + traverse( toDels, Elements, toDel ) { + toDel.Delete(); + } + } + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl new file mode 100644 index 0000000..31f507e --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_getExistByMatCode.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod getExistByMatCode ( + GlobalOTDTable parent, + String matCode +) as MatAttrSettingAndPlanStrategy +{ + TextBody: + [* + // yypsybs Jul-3-2023 (created) + value := select( parent, MatAttrSettingAndPlanStrategy, item, true, matCode = item.MatCode() ); + return value; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl new file mode 100644 index 0000000..8294a1c --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl @@ -0,0 +1,54 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod update ( + GlobalOTDTable parent, + MatAttrSettingAndPlanStrategyDataRow excelRow +) as MatAttrSettingAndPlanStrategy +{ + TextBody: + [* + fields := MatAttrSettingAndPlanStrategyDataTable::exportFields(); + headers := MatAttrSettingAndPlanStrategyDataTable::expectedHeaders(); + // 鎵惧緟鏇存柊璁板綍 + toUpdate := null( MatAttrSettingAndPlanStrategy ); + matCode := ""; + for( i := 0; i < fields.Size(); i++ ) { + header := headers.Element( i ); + cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i ); + if( cell.MatAttrSettingAndPlanStrategyDataColumn().name() <> header ) { + 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 ); + } + } + if( not isnull( toUpdate ) ) { + // 瀵规瘮宸紓 + for( i := 0; i < fields.Size(); i++ ) { + header := headers.Element( i ); + cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i ); + fieldName := fields.Element( i ); + field := Reflection::FindAttribute( "MatAttrSettingAndPlanningStrategy", fieldName); + 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" ); + } + } 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" ); + } + } else if( fieldName = "PlanningStrategyCustom" ) { + fieldValue := guard( field.GetString( toUpdate ), "" ); + toUpdate.PlanningStrategyCustom( fieldValue ); + } + } + } else { + error( "no record with matCode : " + matCode ) + } + + return toUpdate; + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/_ROOT_Type_MatAttrSettingAndPlanStrategy.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/_ROOT_Type_MatAttrSettingAndPlanStrategy.qbl new file mode 100644 index 0000000..d5d2220 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/_ROOT_Type_MatAttrSettingAndPlanStrategy.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategy +{ + #keys: '5[414384.0.759431201][414384.0.759431199][0.0.0][414384.0.759431200][414384.0.759431202]' + BaseType: Object + Description: '鐗╂枡灞炴�ф爣绛捐瀹�&鐗╂枡璁″垝绛栫暐' + StructuredName: 'MatAttrSettingAndPlanStrategys' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/Attribute_value.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/Attribute_value.qbl new file mode 100644 index 0000000..f306adb --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/Attribute_value.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute value +{ + #keys: '3[414384.0.763764661][414384.0.763764660][414384.0.763764662]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/DefaultValue_value.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/DefaultValue_value.qbl new file mode 100644 index 0000000..753f2bd --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/DefaultValue_value.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: value +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/_ROOT_Type_MatAttrSettingAndPlanStrategyDataCell.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/_ROOT_Type_MatAttrSettingAndPlanStrategyDataCell.qbl new file mode 100644 index 0000000..d61449b --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataCell/_ROOT_Type_MatAttrSettingAndPlanStrategyDataCell.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDataCell +{ + #keys: '5[414384.0.763764658][414384.0.763764656][0.0.0][414384.0.763764657][414384.0.763764659]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyDataCells' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_columnIndex.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_columnIndex.qbl new file mode 100644 index 0000000..cd949d2 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_columnIndex.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute columnIndex +{ + #keys: '3[414384.0.763764669][414384.0.763764668][414384.0.763764670]' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_name.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_name.qbl new file mode 100644 index 0000000..e1ffaf2 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Attribute_name.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute name +{ + #keys: '3[414384.0.763764672][414384.0.763764671][414384.0.763764673]' + ValueType: String +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_columnIndex.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_columnIndex.qbl new file mode 100644 index 0000000..8e1a40d --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_columnIndex.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + ISOValue: '0' + TargetAttribute: columnIndex +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_name.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_name.qbl new file mode 100644 index 0000000..4c149cf --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/DefaultValue_name.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: name +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Function_CalccolumnIndex.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Function_CalccolumnIndex.qbl new file mode 100644 index 0000000..de381a6 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/Function_CalccolumnIndex.qbl @@ -0,0 +1,11 @@ +Quintiq file version 2.0 +#parent: #root +Function CalccolumnIndex +{ + TextBody: + [* + value := ifexpr( isnull( this.PreviousColumnInTable() ), 0, this.PreviousColumnInTable().columnIndex() + 1 ); + + this.columnIndex( value ); + *] +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/_ROOT_Type_MatAttrSettingAndPlanStrategyDataColumn.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/_ROOT_Type_MatAttrSettingAndPlanStrategyDataColumn.qbl new file mode 100644 index 0000000..8a33ee1 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataColumn/_ROOT_Type_MatAttrSettingAndPlanStrategyDataColumn.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDataColumn +{ + #keys: '5[414384.0.763764666][414384.0.763764664][0.0.0][414384.0.763764665][414384.0.763764667]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyDataColumns' +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/Attribute_rowNo.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/Attribute_rowNo.qbl new file mode 100644 index 0000000..10d4f32 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/Attribute_rowNo.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute rowNo +{ + #keys: '3[414384.0.763764680][414384.0.763764679][414384.0.763764681]' + ValueType: Number +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/DefaultValue_rowNo.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/DefaultValue_rowNo.qbl new file mode 100644 index 0000000..b6bfb38 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/DefaultValue_rowNo.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + ISOValue: '0' + TargetAttribute: rowNo +} diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/_ROOT_Type_MatAttrSettingAndPlanStrategyDataRow.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/_ROOT_Type_MatAttrSettingAndPlanStrategyDataRow.qbl new file mode 100644 index 0000000..c85f904 --- /dev/null +++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategyDataRow/_ROOT_Type_MatAttrSettingAndPlanStrategyDataRow.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type MatAttrSettingAndPlanStrategyDataRow +{ + #keys: '5[414384.0.763764677][414384.0.763764675][0.0.0][414384.0.763764676][414384.0.763764678]' + BaseType: Object + StructuredName: 'MatAttrSettingAndPlanStrategyDataRows' +} -- Gitblit v1.9.3