EntwicklerHandbuch

EntwicklerHandbuch

Einleitung

Damit wir, die 3G, uns etwas leichter tun mit dem ALEX schreiben wir uns ein paar Sachen nieder.

Datentypen

( SelectResult ) sortierbarer eindeutiger Vektor

SelectResult< Shift > Shifts;

Legt einen sortierbaren eindeutigen Vector an. Gleichzustellen mit

foreach_auto( s, ( GetAlexRoot()->SelectWith< PlanDetailX, Shift >( PlanDetailXValue = doc->GetPlan() )>>OrderBy( +Order ) ) )

s ist hier ebenfalls vom Typ SelectResult

+Order...Aufsteigend
-Order...Absteigend

Funktionen

boost::function

 void VisitCostCenterValues( const ReportResultLine& resultLine, const boost::function< void( const std::pair< String, String >& ) >& visitor )
 {
   foreach_auto( value, resultLine.Values( true, myGrid->GetTimeScaleIntervalCount() ) )
   if( value )
     foreach_auto( c, Sort( myGrid->GetReport()->ReportAccountView->ViewColumns.Values(), OrderBy( +DisplayRank ) ) )
       foreach_auto( costCenterValue, GetCostCenterValues( c, value->ForDate(), value ) )
         visitor( costCenterValue );
 }

 VisitCostCenterValues( *r, [&]( const std::pair< String, String >& costCenterValue )
 {
   myCostCenters.insert( costCenterValue.first );
 });

Beispiel: [ http://coliru.stacked-crooked.com/a/b9f524b54a6f01b8 ]

Testfälle

Kostenstelle auf Plan setzen

PlanCostCenter_::SetIn( plan1, TimeRange::Eternal(), costCenter1 );
PlanCostCenter_::SetIn( plan2, TimeRange::Eternal(), costCenter2 );

Alternativ

employee1 | PlanCostCenter[ TimeRange::Eternal() ] << costCenter1;
employee2 | PlanCostCenter[ TimeRange::Eternal() ] << costCenter2;

Diskussionen