lazhen
2024-09-27 d65ca044060c02ed74022a273429ee741f61e1f0
_Main/BL/Type_FinancialWeeklyReport/StaticMethod_Initialize.qbl
@@ -44,38 +44,38 @@
    ccsvaluecumulant          := [Real]0;
    
    traverse( table, FinancialWeeklyColumn, column ){
      productioncolumn      := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() );
      salescolumn           := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() );
      productioncolumn      := selectobject( productiontable, FinancialProductionColumn, pcolumn, pcolumn.Name() = column.Name() and pcolumn.Period() = column.Period() and not pcolumn.IsDay() );
      salescolumn           := selectobject( salestable, FinancialSalesColumn, scolumn, scolumn.Name() = column.Name() and scolumn.Period() = column.Period() and not scolumn.IsDay() );
      
      //产量汇总
      totalpvalue           := [Real]0;
      dlpvalue              := [Real]0;
      ccpvalue              := [Real]0;
      traverse( productioncolumn, FinancialProductionCell, cell, [Real]cell.Value() > 0 ){
      traverse( productioncolumn, FinancialProductionCell, cell, cell.Quantity() > 0 ){
        unit                := cell.FinancialProductionRow().Unit();
        
        if( unit = allunit ){
          totalpvalue       := totalpvalue + [Real]cell.Value();
          totalpvalue       := totalpvalue + cell.Quantity();
          if( column.Period() = startofplanning.StartOfMonth().Date() ){
            totalpvaluecumulant := totalpvaluecumulant - cell.PlanValue();
          }
        }else if( unit = dlunit ){
          dlpvalue          := dlpvalue + [Real]cell.Value();
          dlpvalue          := dlpvalue + cell.Quantity();
          if( column.Period() = startofplanning.StartOfMonth().Date() ){
            dlpvaluecumulant := dlpvaluecumulant - cell.PlanValue();
          }
        }else if( unit = ccunit ){
          ccpvalue          := ccpvalue + [Real]cell.Value();
          ccpvalue          := ccpvalue + cell.Quantity();
          if( column.Period() = startofplanning.StartOfMonth().Date() ){
            ccpvaluecumulant := ccpvaluecumulant - cell.PlanValue();
          }
        }
      }
      totalpcell            := column.FinancialWeeklyCell( relnew, Value := [String]totalpvalue );
      totalpcell            := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]totalpvalue ) );
      totalproduction.FinancialWeeklyCell( relinsert, totalpcell );
      dlpcell               := column.FinancialWeeklyCell( relnew, Value := [String]dlpvalue );
      dlpcell               := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]dlpvalue ) );
      dlproduction.FinancialWeeklyCell( relinsert, dlpcell );
      ccpcell               := column.FinancialWeeklyCell( relnew, Value := [String]ccpvalue );
      ccpcell               := column.FinancialWeeklyCell( relnew, Value := [String]( [Number]ccpvalue ) );
      ccproduction.FinancialWeeklyCell( relinsert, ccpcell );
      
      //销量汇总