155,7 → 155,7 |
if(isset($groupe_de_champs['etendu'])) { |
$colonnes += array( |
// champ dynamique |
'etendu' => self::GenColInfo('etendu', '', 1, NULL, NULL, FALSE, array(__CLASS__, 'champsEtendus_preload'), NULL), |
'etendu' => self::GenColInfo('etendu', '', 1, NULL, NULL, FALSE, array(__CLASS__, 'champsEtendus_preload'), array(__CLASS__, 'champsEtendus_ligne')), |
); |
} |
|
536,7 → 536,6 |
|
|
static function baseflor_ligne($cel, $obs, &$ligne) { |
|
if(! $obs['nom_ret_nn']) { |
$ligne = array_merge($ligne, array_fill(0, count(self::$baseflor_col), NULL)); |
return; |
586,6 → 585,7 |
self::$cache['champsEtendus']['data'] = $champs_supp_par_obs; |
// ce return est temporaire, |
// le temps que toutes les fonctions bougent ici et utilise plutôt le cache statique |
// encore utilisé pour les entêtes (self::$cache['champsEtendus']['header']) |
return self::$cache['champsEtendus']; |
} |
|
598,4 → 598,35 |
} |
return $champs_etendus_fmt; |
} |
|
static function champsEtendus_ligne($cel, $obs, &$ligne) { |
// si header n'est pas défini, aucune observation ne possède de champ étendu |
// et nous n'ajoutons ni colonnes, ni valeurs. |
if(! isset(self::$cache['champsEtendus']['header'])) return; |
|
$ligne_etendue_aplatie = @self::$cache['champsEtendus']['data'][$ligne['id_observation']]; |
|
$ligne_supp = array_fill(0, count(self::$cache['champsEtendus']['header']), ''); |
$ligne_etendue_fmt = array(); |
|
// si, cependant cette seule observation n'a pas de champs étendus, |
// nous devons rajouter des blancs (notamment dans le cas ou d'autres |
// champs viennent à être ajoutés en aval à l'avenir |
// cf: $fonction_dynamique dans FormateurGroupeColonne::GenColInfo() |
if(! $ligne_etendue_aplatie) { |
$ligne = array_merge($ligne, $ligne_supp); |
return; |
} |
|
foreach(self::$cache['champsEtendus']['header'] as $colonne) { |
if(!isset($ligne_etendue_aplatie[$colonne])) { |
$ligne_etendue_fmt[$colonne] = ''; |
} else { |
$ligne_etendue_fmt[$colonne] = $ligne_etendue_aplatie[$colonne]; |
} |
} |
|
// XXX/ array_merge() ? |
$ligne += $ligne_etendue_fmt; |
} |
} |