Quintiq file version 2.0
|
#parent: #root
|
StaticMethod ImportExcel (KpiTracker owner, BinaryValue excel)
|
{
|
TextBody:
|
[*
|
tbgh := TableGroupHandle::Create( 'tablegroup' );
|
tbgh := XLS::LoadTableGroupFromBinaryData( excel.AsBinaryData(), tbgh, true, true );
|
|
for( n := 0; n < tbgh.TableNames().Size(); n++ )
|
{
|
tablename := tbgh.TableNames().Element( n );
|
tbh := tbgh.Table( tablename );
|
|
xml := TableHandle::ExportXML( tbh );
|
impl := XMLDOMImplementation::Create();
|
xmlDoc := impl.CreateDocumentFromString( xml );
|
|
xmlTable := xmlDoc.GetElementByTagName( 'table', 0 );
|
xmlColumns:= xmlTable.GetElementsByTagName( 'column' );
|
|
if( xmlColumns.Size() > 0 )
|
{
|
rowsize := xmlColumns.Element( 0 ).GetElementsByTagName( 'cell' ).Size();
|
|
for( i := 0; i < rowsize; i++ )
|
{
|
snapshot := construct( KpiSnapshotData );
|
toString := StringToDateTime::ISOConverter();
|
toReal := StringToReal::ISOConverter();
|
traverse( xmlColumns, Elements, xcol )
|
{
|
if( xcol.GetElementByTagName( 'cell', i ).HasAttribute( 'value' ) )
|
{
|
name := xcol.GetElementByTagName( 'name', 0 ).TextContent().TrimBoth();
|
value := xcol.GetElementByTagName( 'cell', i ).GetAttribute( 'value' ).TextContent().TrimBoth();
|
|
if( name.StartsWith( "PlanDateTime" ) )
|
{
|
snapshot.PlanDateTime( toString.Convert( value ) );
|
}
|
else if( name.StartsWith ( "ServerDateTime" ) )
|
{
|
snapshot.ServerDateTime( toString.Convert( value ) );
|
}
|
else if( name.StartsWith( "RetentionPolicyID" ) )
|
{
|
snapshot.RetentionPolicyIdentification( value );
|
}
|
else if( name.StartsWith( "label" ) )
|
{
|
name := name.ReplaceAll( "label_", "" );
|
snapshot.CreateLabel( name, value );
|
}
|
else if( name.StartsWith( "kpi" ) )
|
{
|
name := name.ReplaceAll( "kpi_", "" );
|
snapshot.CreateValue( name, toReal.Convert( value ) );
|
}
|
}
|
}
|
owner.SnapshotStorage().StoreSnapshot( snapshot );
|
}
|
}
|
}
|
*]
|
}
|