Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Import ( 
 | 
  MacroPlan owner, 
 | 
  const GeneralExcelImportAndExportDataTable table 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // rislai Jul-3-2024 (created) 
 | 
    units := construct( Units ); 
 | 
    unitIndexTree := NamedValueTree::Create(); 
 | 
     
 | 
    employeeTypes := construct( EmployeeTypes ); 
 | 
    employeeTypeIndexTree := NamedValueTree::Create(); 
 | 
     
 | 
    costs := selectset( owner,Unit.EmployeeCost,cost,true ); 
 | 
    traverse( costs,Elements,element ){ 
 | 
      element.Delete();  
 | 
    } 
 | 
     
 | 
    cnv2 := StringToDate::StandardConverter(); 
 | 
    cnv2.SetCustomConversion(); 
 | 
    cnv2.CustomFormatString( 'yyyy-MM-dd' );//2024-07-03 
 | 
     
 | 
    traverse( table,GeneralExcelImportAndExportDataRow,row ){ 
 | 
      employeeType := null( EmployeeType ); 
 | 
      employeeNumber := 0; 
 | 
      unit := null( Unit ); 
 | 
      baseSalary := 0.0; 
 | 
      traverse( row,GeneralExcelImportAndExportDataCell,cell ){ 
 | 
         if( cell.GeneralExcelImportAndExportDataColumn().Name() = "人员类别" ){ 
 | 
           employeeTypeHandle := employeeTypeIndexTree.GetHandle( cell.Value() ); 
 | 
           index := guard( employeeTypeIndexTree.Root().Child( employeeTypeHandle ),null( NamedValue )); 
 | 
           if( not isnull( index )){ 
 | 
              employeeType := employeeTypes.Element( index.GetValueAsNumber() );  
 | 
           }else{ 
 | 
              employeeType := select( owner,EmployeeType,type,type.Name() = cell.Value() ); 
 | 
              if( not isnull( employeeType )){ 
 | 
                employeeTypes.Add( employeeType ); 
 | 
                employeeTypeIndexTree.Root().AddChild( employeeTypeHandle,employeeTypes.Size() - 1 );  
 | 
              } 
 | 
           } 
 | 
         } 
 | 
         if( cell.GeneralExcelImportAndExportDataColumn().Name() = "人数" ){ 
 | 
           employeeNumber := [Number]cell.Value(); 
 | 
         } 
 | 
         if( cell.GeneralExcelImportAndExportDataColumn().Name() = "产线" ){ 
 | 
           unitHandle := unitIndexTree.GetHandle( cell.Value() ); 
 | 
           index := guard( unitIndexTree.Root().Child( unitHandle ),null( NamedValue )); 
 | 
           if( not isnull( index )){ 
 | 
              unit := units.Element( index.GetValueAsNumber() );  
 | 
           }else{ 
 | 
              unit := select( owner,Unit,temp_unit,temp_unit.ID() = cell.Value() ); 
 | 
              if( not isnull( unit )){ 
 | 
                units.Add( unit ); 
 | 
                unitIndexTree.Root().AddChild( unitHandle,units.Size() - 1 );  
 | 
              } 
 | 
           } 
 | 
         } 
 | 
         if( cell.GeneralExcelImportAndExportDataColumn().Name() = "基本工资" ){ 
 | 
           baseSalary := [Real]cell.Value(); 
 | 
         } 
 | 
      } 
 | 
      if( not isnull( unit )){ 
 | 
        unit.EmployeeCost( relnew,EmployeeType := employeeType,EmployeeNumber := employeeNumber,BaseSalary := baseSalary ); 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |