From 9e7f6bf445c0cc04a2626596a6f2ee7b80f51ee6 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期五, 18 十月 2024 21:03:54 +0800
Subject: [PATCH] 库存汇总下载查询条件位置调整
---
_Main/BL/Type_InventorySummarySource/StaticMethod_CreateCellElement.qbl | 16 +
_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement#822.qbl | 24 ++
_Main/BL/Type_InventorySummarySource/StaticMethod_GetSearchRows.qbl | 22 ++
_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement#817.qbl | 23 ++
_Main/BL/Type_InventorySummarySource/StaticMethod_Download0.qbl | 104 +++++++++++
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl | 26 +-
_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement.qbl | 26 ++
_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement0.qbl | 21 ++
_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl | 235 +++++++------------------
_Main/BL/Type_InventorySummarySource/StaticMethod_CreateCellElement0.qbl | 19 ++
10 files changed, 336 insertions(+), 180 deletions(-)
diff --git a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
index 6bcfb2a..f9b03a6 100644
--- a/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
@@ -115,7 +115,7 @@
ccsvaluesum := ccsvaluesum + ccsvalue;
}
sumcolumn := table.FinancialWeeklyColumn( relnew, Name := 'SUM' );
- //cumulantcolumn := table.FinancialWeeklyColumn( relnew, Name := '绱閲�' );
+ cumulantcolumn := table.FinancialWeeklyColumn( relnew, Name := '绱閲�' );
proportioncolumn := table.FinancialWeeklyColumn( relnew, Name := '鍗犳瘮' );
//SUM
totalpcellsum := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]( [Number]totalpvaluesum ) );
@@ -131,18 +131,18 @@
ccscellsum := sumcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluesum );
ccsales.FinancialWeeklyCell( relinsert, ccscellsum );
//绱閲�
- //totalpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluecumulant );
- //totalproduction.FinancialWeeklyCell( relinsert, totalpcellcumulant );
- //dlpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluecumulant );
- //dlproduction.FinancialWeeklyCell( relinsert, dlpcellcumulant );
- //ccpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluecumulant );
- //ccproduction.FinancialWeeklyCell( relinsert, ccpcellcumulant );
- //totalscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluecumulant );
- //totalsales.FinancialWeeklyCell( relinsert, totalscellcumulant );
- //dlscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluecumulant );
- //dlsales.FinancialWeeklyCell( relinsert, dlscellcumulant );
- //ccscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluecumulant );
- //ccsales.FinancialWeeklyCell( relinsert, ccscellcumulant );
+ totalpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalpvaluecumulant );
+ totalproduction.FinancialWeeklyCell( relinsert, totalpcellcumulant );
+ dlpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlpvaluecumulant );
+ dlproduction.FinancialWeeklyCell( relinsert, dlpcellcumulant );
+ ccpcellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccpvaluecumulant );
+ ccproduction.FinancialWeeklyCell( relinsert, ccpcellcumulant );
+ totalscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]totalsvaluecumulant );
+ totalsales.FinancialWeeklyCell( relinsert, totalscellcumulant );
+ dlscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]dlsvaluecumulant );
+ dlsales.FinancialWeeklyCell( relinsert, dlscellcumulant );
+ ccscellcumulant := cumulantcolumn.FinancialWeeklyCell( relnew, Value := [String]ccsvaluecumulant );
+ ccsales.FinancialWeeklyCell( relinsert, ccscellcumulant );
//鍗犳瘮
totalpvalueproportion := guard( ( totalpvaluecumulant / totalpvaluesum ).Format( 'N(Dec(2))' ), '0.00' );
totalpcellproportion := proportioncolumn.FinancialWeeklyCell( relnew, Value := totalpvalueproportion );
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateCellElement.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateCellElement.qbl
new file mode 100644
index 0000000..6099ad5
--- /dev/null
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateCellElement.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateCellElement (
+ XMLDOMDocument xmlDOM,
+ XMLDOMElement columnelement,
+ String value
+)
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Oct-18-2024 (created)
+ cellElement := xmlDOM.CreateElement( "cell" );
+ cellElement.SetAttribute( "value", value );
+ columnelement.AppendChild( cellElement );
+ *]
+}
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateCellElement0.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateCellElement0.qbl
new file mode 100644
index 0000000..509d7b3
--- /dev/null
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateCellElement0.qbl
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateCellElement (
+ XMLDOMDocument xmlDOM,
+ XMLDOMElement columnelement,
+ String value,
+ Number rowsize
+)
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Oct-18-2024 (created)
+ for( j := 0; j < rowsize; j := j + 1 ){
+ cellElement := xmlDOM.CreateElement( "cell" );
+ cellElement.SetAttribute( "value", value );
+ columnelement.AppendChild( cellElement );
+ }
+ *]
+}
diff --git "a/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement\043817.qbl" "b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement\043817.qbl"
new file mode 100644
index 0000000..3060af4
--- /dev/null
+++ "b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement\043817.qbl"
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateColumnElement (
+ XMLDOMElement xmltable,
+ XMLDOMDocument xmlDOM,
+ String name
+) as XMLDOMElement
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Oct-18-2024 (created)
+ columnelement := xmlDOM.CreateElement( "column" );
+ nameelement := xmlDOM.CreateElement( "name" );
+ typeelement := xmlDOM.CreateElement( "type" );
+ nameelement.TextContent( name );
+ typeelement.TextContent( "String" );
+ columnelement.AppendChild( nameelement );
+ columnelement.AppendChild( typeelement );
+
+ xmltable.AppendChild( columnelement );
+ return columnelement;
+ *]
+}
diff --git "a/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement\043822.qbl" "b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement\043822.qbl"
new file mode 100644
index 0000000..690264a
--- /dev/null
+++ "b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement\043822.qbl"
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateColumnElement (
+ XMLDOMElement xmltable,
+ XMLDOMDocument xmlDOM,
+ String value,
+ String name,
+ Number rowsize
+) as XMLDOMElement
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Oct-18-2024 (created)
+ columnelement := InventorySummarySource::CreateColumnElement( xmltable, xmlDOM, name );
+
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, value );
+
+ for( i := 1; i < rowsize; i := i + 1 ){
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, '' );
+ }
+
+ return columnelement;
+ *]
+}
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement.qbl
new file mode 100644
index 0000000..e1d08e3
--- /dev/null
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement.qbl
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateColumnElement (
+ XMLDOMElement xmltable,
+ XMLDOMDocument xmlDOM,
+ Strings values,
+ String name,
+ Number rowsize
+) as XMLDOMElement
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Oct-18-2024 (created)
+ columnelement := InventorySummarySource::CreateColumnElement( xmltable, xmlDOM, name );
+
+ for( i := 0; i < rowsize; i := i + 1 ){
+ if( i < values.Size() ){
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, values.Element( i ) );
+ }else{
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, '' );
+ }
+ }
+
+ return columnelement;
+ *]
+}
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement0.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement0.qbl
new file mode 100644
index 0000000..e018a3e
--- /dev/null
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_CreateColumnElement0.qbl
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateColumnElement (
+ XMLDOMElement xmltable,
+ XMLDOMDocument xmlDOM,
+ String name,
+ Number rowsize
+) as XMLDOMElement
+{
+ TextBody:
+ [*
+ // 鐢勫叞楦� Oct-18-2024 (created)
+ columnelement := InventorySummarySource::CreateColumnElement( xmltable, xmlDOM, '' );
+
+ for( i := 0; i < rowsize; i := i + 1 ){
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, '' );
+ }
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, name );
+ return columnelement;
+ *]
+}
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl
index c989643..d18d397 100644
--- a/_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_Download.qbl
@@ -12,116 +12,67 @@
Description: '涓嬭浇璐㈠姟鎶ヨ〃鏁版嵁'
TextBody:
[*
-
+ //鑾峰彇鏌ヨ琛屾暟
+ searchrowsize := InventorySummarySource::GetSearchRows( factorys, generations, powers, mlbmqls );
table := selectobject( macroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
xmlDOMI := XMLDOMImplementation::Create();
xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
tableElement := xmlDOM.GetElementByTagName( "table", 0 );
- //Search
- searchcolumnelement := xmlDOM.CreateElement( "column" );
- searchnameelement := xmlDOM.CreateElement( "name" );
- searchtypeelement := xmlDOM.CreateElement( "type" );
- searchnameelement.TextContent( 'Search' );
- searchtypeelement.TextContent( "String" );
- searchcolumnelement.AppendChild( searchnameelement );
- searchcolumnelement.AppendChild( searchtypeelement );
- //Product
- productcolumnelement := xmlDOM.CreateElement( "column" );
- productnameelement := xmlDOM.CreateElement( "name" );
- producttypeelement := xmlDOM.CreateElement( "type" );
- productnameelement.TextContent( 'Product' );
- producttypeelement.TextContent( "String" );
- productcolumnelement.AppendChild( productnameelement );
- productcolumnelement.AppendChild( producttypeelement );
- //Unit
- unitcolumnelement := xmlDOM.CreateElement( "column" );
- unitnameelement := xmlDOM.CreateElement( "name" );
- unittypeelement := xmlDOM.CreateElement( "type" );
- unitnameelement.TextContent( 'Unit' );
- unittypeelement.TextContent( "String" );
- unitcolumnelement.AppendChild( unitnameelement );
- unitcolumnelement.AppendChild( unittypeelement );
- //Attribute
- attricolumnelement := xmlDOM.CreateElement( "column" );
- attrinameelement := xmlDOM.CreateElement( "name" );
- attritypeelement := xmlDOM.CreateElement( "type" );
- attrinameelement.TextContent( 'Attribute' );
- attritypeelement.TextContent( "String" );
- attricolumnelement.AppendChild( attrinameelement );
- attricolumnelement.AppendChild( attritypeelement );
+ //Product/Unit
+ factoryvalues := selectuniquevalues( factorys, Elements, factory, factory.Name() );
+ productcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, factoryvalues, 'Unit', searchrowsize );
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, 'Product' );
+ //Unit/Generation
+ generationvalues := selectuniquevalues( generations, Elements, generation, generation.Generation() );
+ unitcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, generationvalues, 'Generation', searchrowsize );
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, 'Unit' );
+ //Attribute/Power
+ powervalues := selectuniquevalues( powers, Elements, power, power.Power() );
+ attricolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, powervalues, 'Power', searchrowsize );
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, 'Attribute' );
+ //MLBMQBS
+ mlbmqbvalues := selectuniquevalues( mlbmqls, Elements, mlbmqb, mlbmqb.MLBMQB() );
+ mlbmqlcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, mlbmqbvalues, 'MLBMQB', searchrowsize );
+ //Start date
+ startcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, search.StartDate().Format( 'M2/D2/Y' ), 'Start date', searchrowsize );
+ //End date
+ endcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, search.EndDate().Format( 'M2/D2/Y' ), 'End date', searchrowsize );
+ //Period
+ periodcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, search.Category(), 'Period', searchrowsize );
- tableElement.AppendChild( searchcolumnelement );
- tableElement.AppendChild( productcolumnelement );
- tableElement.AppendChild( unitcolumnelement );
- tableElement.AppendChild( attricolumnelement );
- searchtotal := factorys.Size() + generations.Size() + powers.Size() + mlbmqls.Size() + 10 ;
- searchunitElement := xmlDOM.CreateElement( "cell" );
- searchunitElement.SetAttribute( "value", 'Unit' );
- searchcolumnelement.AppendChild( searchunitElement );
- traverse( factorys, Elements, factory ){
- searchunitcellElement := xmlDOM.CreateElement( "cell" );
- searchunitcellElement.SetAttribute( "value", factory.Name() );
- searchcolumnelement.AppendChild( searchunitcellElement );
- }
- searchgenerationElement := xmlDOM.CreateElement( "cell" );
- searchgenerationElement.SetAttribute( "value", 'Generation' );
- searchcolumnelement.AppendChild( searchgenerationElement );
- traverse( generations, Elements, generation ){
- generationcellElement := xmlDOM.CreateElement( "cell" );
- generationcellElement.SetAttribute( "value", generation.Generation() );
- searchcolumnelement.AppendChild( generationcellElement );
- }
- searchpowerElement := xmlDOM.CreateElement( "cell" );
- searchpowerElement.SetAttribute( "value", 'Power' );
- searchcolumnelement.AppendChild( searchpowerElement );
- traverse( powers, Elements, power ){
- searchpowercellElement := xmlDOM.CreateElement( "cell" );
- searchpowercellElement.SetAttribute( "value", power.Power() );
- searchcolumnelement.AppendChild( searchpowercellElement );
- }
- searchmlbmqlElement := xmlDOM.CreateElement( "cell" );
- searchmlbmqlElement.SetAttribute( "value", 'MQBMLB' );
- searchcolumnelement.AppendChild( searchmlbmqlElement );
- traverse( mlbmqls, Elements, mlbmql ){
- searchmlbmqlcellElement := xmlDOM.CreateElement( "cell" );
- searchmlbmqlcellElement.SetAttribute( "value", mlbmql.MLBMQB() );
- searchcolumnelement.AppendChild( searchmlbmqlcellElement );
- }
- searchstartdateElement := xmlDOM.CreateElement( "cell" );
- searchstartdateElement.SetAttribute( "value", 'Start date' );
- searchcolumnelement.AppendChild( searchstartdateElement );
- searchstartdatecellElement := xmlDOM.CreateElement( "cell" );
- searchstartdatecellElement.SetAttribute( "value", search.StartDate().Format( 'M2/D2/Y' ) );
- searchcolumnelement.AppendChild( searchstartdatecellElement );
- searchenddateElement := xmlDOM.CreateElement( "cell" );
- searchenddateElement.SetAttribute( "value", 'End date' );
- searchcolumnelement.AppendChild( searchenddateElement );
- searchenddatecellElement := xmlDOM.CreateElement( "cell" );
- searchenddatecellElement.SetAttribute( "value", search.EndDate().Format( 'M2/D2/Y' ) );
- searchcolumnelement.AppendChild( searchenddatecellElement );
- searchperiodElement := xmlDOM.CreateElement( "cell" );
- searchperiodElement.SetAttribute( "value", 'Periods' );
- searchcolumnelement.AppendChild( searchperiodElement );
- searchperiodcellElement := xmlDOM.CreateElement( "cell" );
- searchperiodcellElement.SetAttribute( "value", search.Category() );
- searchcolumnelement.AppendChild( searchperiodcellElement );
-
- for( i := searchtotal; i < table.InventroySummaryRow( relsize ) * 4; i := i + 1 ){
- searchcellElement := xmlDOM.CreateElement( "cell" );
- searchcellElement.SetAttribute( "value", '' );
- searchcolumnelement.AppendChild( searchcellElement );
+ searchcolumn := 7 ;
+ rowsize := table.InventroySummaryRow( relsize ) * 4;
+ for( i := table.InventorySummaryColumn( relsize ); i < searchcolumn - 3; i := i + 1 ){
+ if( i = 0 ){
+ InventorySummarySource::CreateCellElement( xmlDOM, mlbmqlcolumnelement, '', rowsize );
+ }else if( i = 1 ){
+ InventorySummarySource::CreateCellElement( xmlDOM, startcolumnelement, '', rowsize );
+ }else if( i = 2 ){
+ InventorySummarySource::CreateCellElement( xmlDOM, endcolumnelement, '', rowsize );
+ }else if( i = 3 ){
+ InventorySummarySource::CreateCellElement( xmlDOM, periodcolumnelement, '', rowsize );
+ }
}
traverse ( table, InventorySummaryColumn, column ) {
- columnelement := xmlDOM.CreateElement( "column" );
- nameelement := xmlDOM.CreateElement( "name" );
- typeelement := xmlDOM.CreateElement( "type" );
- nameelement.TextContent( column.Name() );
- typeelement.TextContent( "String" );
- columnelement.AppendChild( nameelement );
- columnelement.AppendChild( typeelement );
+ columnelement := null( XMLDOMElement );
+ if( column.Index() = 0 ){
+ columnelement := mlbmqlcolumnelement;
+ InventorySummarySource::CreateCellElement( xmlDOM, mlbmqlcolumnelement, column.Name() );
+ }else if( column.Index() = 1 ){
+ columnelement := startcolumnelement
+ InventorySummarySource::CreateCellElement( xmlDOM, startcolumnelement, column.Name() );
+ }else if( column.Index() = 2 ){
+ columnelement := endcolumnelement;
+ InventorySummarySource::CreateCellElement( xmlDOM, endcolumnelement, column.Name() );
+ }else if( column.Index() = 3 ){
+ columnelement := periodcolumnelement;
+ InventorySummarySource::CreateCellElement( xmlDOM, periodcolumnelement, column.Name() );
+ }else{
+ columnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, column.Name(), rowsize );
+ }
cells := selectsortedset( column, InventorySummaryCell, cell, cell.InventroySummaryRow().RowNr() );
@@ -129,86 +80,36 @@
if( column.Index() = 0 ){
row := c.InventroySummaryRow();
//Product
- productcellElement1 := xmlDOM.CreateElement( "cell" );
- productcellElement1.SetAttribute( "value", row.Name() );
- productcolumnelement.AppendChild( productcellElement1 );
- productcellElement2 := xmlDOM.CreateElement( "cell" );
- productcellElement2.SetAttribute( "value", row.Name() );
- productcolumnelement.AppendChild( productcellElement2 );
- productcellElement3 := xmlDOM.CreateElement( "cell" );
- productcellElement3.SetAttribute( "value", row.Name() );
- productcolumnelement.AppendChild( productcellElement3 );
- productcellElement4 := xmlDOM.CreateElement( "cell" );
- productcellElement4.SetAttribute( "value", row.Name() );
- productcolumnelement.AppendChild( productcellElement4 );
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
//Unit
- unitcellElement1 := xmlDOM.CreateElement( "cell" );
- unitcellElement1.SetAttribute( "value", row.Unit() );
- unitcolumnelement.AppendChild( unitcellElement1 );
- unitcellElement2 := xmlDOM.CreateElement( "cell" );
- unitcellElement2.SetAttribute( "value", row.Unit() );
- unitcolumnelement.AppendChild( unitcellElement2 );
- unitcellElement3 := xmlDOM.CreateElement( "cell" );
- unitcellElement3.SetAttribute( "value", row.Unit() );
- unitcolumnelement.AppendChild( unitcellElement3 );
- unitcellElement4 := xmlDOM.CreateElement( "cell" );
- unitcellElement4.SetAttribute( "value", row.Unit() );
- unitcolumnelement.AppendChild( unitcellElement4 );
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
//Attribute
//鏈熸湯搴撳瓨
- endcellElement := xmlDOM.CreateElement( "cell" );
- endcellElement.SetAttribute( "value", '鏈熸湯搴撳瓨' );//EndingInventory
- attricolumnelement.AppendChild( endcellElement );
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '鏈熸湯搴撳瓨' );//EndingInventory
//鏈�灏忓簱瀛�
- mincellElement := xmlDOM.CreateElement( "cell" );
- mincellElement.SetAttribute( "value", '鏈�灏忓簱瀛�' );//MinimumInventory
- attricolumnelement.AppendChild( mincellElement );
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '鏈�灏忓簱瀛�' );//MinimumInventory
//鏈�澶у簱瀛�
- maxcellElement := xmlDOM.CreateElement( "cell" );
- maxcellElement.SetAttribute( "value", '鏈�澶у簱瀛�' );//MaximumInventory
- attricolumnelement.AppendChild( maxcellElement );
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '鏈�澶у簱瀛�' );//MaximumInventory
//骞冲潎搴撳瓨
- avecellElement := xmlDOM.CreateElement( "cell" );
- avecellElement.SetAttribute( "value", '骞冲潎搴撳瓨' );//AverageInventory
- attricolumnelement.AppendChild( avecellElement );
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '骞冲潎搴撳瓨' );//AverageInventory
}
//鏈熸湯搴撳瓨
- endcellElement := xmlDOM.CreateElement( "cell" );
- endcellElement.SetAttribute( "value", [String]c.EndingInventory() );
- columnelement.AppendChild( endcellElement );
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.EndingInventory() );
//鏈�灏忓簱瀛�
- mincellElement := xmlDOM.CreateElement( "cell" );
- mincellElement.SetAttribute( "value", [String]c.MinimumInventory() );
- columnelement.AppendChild( mincellElement );
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.MinimumInventory() );
//鏈�澶у簱瀛�
- maxcellElement := xmlDOM.CreateElement( "cell" );
- maxcellElement.SetAttribute( "value", [String]c.MaximumInventory() );
- columnelement.AppendChild( maxcellElement );
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.MaximumInventory() );
//骞冲潎搴撳瓨
- avecellElement := xmlDOM.CreateElement( "cell" );
- avecellElement.SetAttribute( "value", [String]c.AverageInventory() );
- columnelement.AppendChild( avecellElement );
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.AverageInventory() );
}
- for( i := cells.Size() * 4; i < searchtotal; i := i + 1 ){
- searchcellElement := xmlDOM.CreateElement( "cell" );
- searchcellElement.SetAttribute( "value", '' );
- columnelement.AppendChild( searchcellElement );
- if( column.Index() = 0 ){
- productcellElement := xmlDOM.CreateElement( "cell" );
- productcellElement.SetAttribute( "value", '' );
- productcolumnelement.AppendChild( productcellElement );
-
- unitcellElement := xmlDOM.CreateElement( "cell" );
- unitcellElement.SetAttribute( "value", '' );
- unitcolumnelement.AppendChild( unitcellElement );
-
- endcellElement := xmlDOM.CreateElement( "cell" );
- endcellElement.SetAttribute( "value", '' );//EndingInventory
- attricolumnelement.AppendChild( endcellElement );
-
- }
- }
+
tableElement.AppendChild( columnelement );
}
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_Download0.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_Download0.qbl
new file mode 100644
index 0000000..36a27c4
--- /dev/null
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_Download0.qbl
@@ -0,0 +1,104 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Download0 (
+ MacroPlan macroPlan,
+ Factorys factorys,
+ ProductGenerations generations,
+ ProductPowers powers,
+ ProductMLBMQBs mlbmqls,
+ InventorySummarySearch search
+) as BinaryValue
+{
+ Description: '涓嬭浇璐㈠姟鎶ヨ〃鏁版嵁'
+ TextBody:
+ [*
+ //鑾峰彇鏌ヨ琛屾暟
+ searchrowsize := InventorySummarySource::GetSearchRows( factorys, generations, powers, mlbmqls );
+ table := selectobject( macroPlan, InventorySummarySource.InventorySummaryReport, table, table.IsShow() );
+
+ xmlDOMI := XMLDOMImplementation::Create();
+ xmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
+
+ tableElement := xmlDOM.GetElementByTagName( "table", 0 );
+ //Product
+ productcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Product' );
+ //Unit
+ unitcolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Unit' );
+ //Attribute
+ attricolumnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, 'Attribute' );
+ traverse ( table, InventorySummaryColumn, column ) {
+ columnelement := InventorySummarySource::CreateColumnElement( tableElement, xmlDOM, column.Name() );
+
+ cells := selectsortedset( column, InventorySummaryCell, cell, cell.InventroySummaryRow().RowNr() );
+
+ traverse ( cells, Elements, c ) {
+ if( column.Index() = 0 ){
+ row := c.InventroySummaryRow();
+ //Product
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
+ InventorySummarySource::CreateCellElement( xmlDOM, productcolumnelement, row.Name() );
+ //Unit
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
+ InventorySummarySource::CreateCellElement( xmlDOM, unitcolumnelement, row.Unit() );
+ //Attribute
+ //鏈熸湯搴撳瓨
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '鏈熸湯搴撳瓨' );//EndingInventory
+ //鏈�灏忓簱瀛�
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '鏈�灏忓簱瀛�' );//MinimumInventory
+ //鏈�澶у簱瀛�
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '鏈�澶у簱瀛�' );//MaximumInventory
+ //骞冲潎搴撳瓨
+ InventorySummarySource::CreateCellElement( xmlDOM, attricolumnelement, '骞冲潎搴撳瓨' );//AverageInventory
+
+ }
+ //鏈熸湯搴撳瓨
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.EndingInventory() );
+ //鏈�灏忓簱瀛�
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.MinimumInventory() );
+ //鏈�澶у簱瀛�
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.MaximumInventory() );
+ //骞冲潎搴撳瓨
+ InventorySummarySource::CreateCellElement( xmlDOM, columnelement, [String]c.AverageInventory() );
+ }
+
+ tableElement.AppendChild( columnelement );
+ }
+ searchxmlDOM := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + 'Search' + '</name></table>' );
+ searchElement := searchxmlDOM.GetElementByTagName( "table", 0 );
+ //Unit
+ factoryvalues := selectuniquevalues( factorys, Elements, factory, factory.Name() );
+ InventorySummarySource::CreateColumnElement( searchElement, searchxmlDOM, factoryvalues, 'Unit', searchrowsize );
+ //Generation
+ generationvalues := selectuniquevalues( generations, Elements, generation, generation.Generation() );
+ InventorySummarySource::CreateColumnElement( searchElement, searchxmlDOM, generationvalues, 'Generation', searchrowsize );
+ //Power
+ powervalues := selectuniquevalues( powers, Elements, power, power.Power() );
+ InventorySummarySource::CreateColumnElement( searchElement, searchxmlDOM, powervalues, 'Power', searchrowsize );
+ //MLBMQBS
+ mlbmqbvalues := selectuniquevalues( mlbmqls, Elements, mlbmqb, mlbmqb.MLBMQB() );
+ InventorySummarySource::CreateColumnElement( searchElement, searchxmlDOM, mlbmqbvalues, 'MLBMQB', searchrowsize );
+ //Start date
+ InventorySummarySource::CreateColumnElement( searchElement, searchxmlDOM, search.StartDate().Format( 'M2/D2/Y' ), 'Start date', searchrowsize );
+ //End date
+ InventorySummarySource::CreateColumnElement( searchElement, searchxmlDOM, search.EndDate().Format( 'M2/D2/Y' ), 'End date', searchrowsize );
+ //Period
+ InventorySummarySource::CreateColumnElement( searchElement, searchxmlDOM, search.Category(), 'Period', searchrowsize );
+
+ xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM );
+
+ tableGroupHandle := TableGroupHandle::Create( InventorySummaryReport::GetDefaultName() );
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
+ tableGroupHandle.Add( tableHandle );
+ searchxmlString := xmlDOMI.CreateSerializer().WriteToString( searchxmlDOM );
+ searchtableHandle := TableHandle::ImportXML( BinaryValue::Construct( searchxmlString ) );
+ tableGroupHandle.Add( searchtableHandle );
+
+ binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+
+ return binaryData.AsBinaryValue();
+ *]
+}
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_GetSearchRows.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_GetSearchRows.qbl
new file mode 100644
index 0000000..b8deb38
--- /dev/null
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_GetSearchRows.qbl
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetSearchRows (
+ Factorys factorys,
+ ProductGenerations generations,
+ ProductPowers powers,
+ ProductMLBMQBs mlbmqls
+) as Number
+{
+ Description: '鑾峰彇鏌ヨ鏉′欢琛屾暟'
+ TextBody:
+ [*
+ // 鐢勫叞楦� Oct-18-2024 (created)
+ searchrows := construct( Numbers );
+ searchrows.Add( factorys.Size() );
+ searchrows.Add( generations.Size() );
+ searchrows.Add( powers.Size() );
+ searchrows.Add( mlbmqls.Size() );
+ searchrowsize := max( searchrows, Elements, e, e );
+ return searchrowsize;
+ *]
+}
--
Gitblit v1.9.3