Editions: ajouter aux en-tête des sous-états qui ne retournent, une ligne inquant "aucune donnée"

OM 4.5.0 r3456 retourne pour un sous-état vide, seulement l’en-tete.

L’évolution consiste à ajouter une cellule sur toute la largeur indiquant “Aucune donnée”, en modifiant le code de .:core/fpdf_etat.php vers la ligne 980:

AVANT

// Gestion de l’espace vide après le sous-état.
// XXX Pourquoi si il n’y a aucun enregistrement on ne fait pas
// tout de même l’espace ?
if ($cptenr > 0) {
$this->ln(intval($sousetat[‘intervalle_fin’]));
}

APRES

// Gestion de l’espace vide après le sous-état.
// XXX Pourquoi si il n’y a aucun enregistrement on ne fait pas
// tout de même l’espace ?
if ($cptenr > 0) {
$this->ln(intval($sousetat[‘intervalle_fin’]));
} else { // on affiche une cellule sur toute la largeur indiquant qu’aucune donnée n’a été trouvée
$this->SetFillColor(
$sousetat[‘se_fond1’][0],
$sousetat[‘se_fond1’][1],
$sousetat[‘se_fond1’][2]
);
$this->MultiCell(
$sousetat[‘tableau_largeur’],
$sousetat[‘cellule_hauteur’]*0.6,
_(“Aucune donnée”),
"",
“C”,
1,
0
);
}

J’ai entendu que pour obtenir l’aspect des fusions de colonne, certains accolent des sous-états, et ce nouveau comportement pourrait leur être préjudiciable: il nous faudrait des cas précis pour mémoire, je n’en connais pas.
Pour préserver cet usage, l’évolution de ce qu’il faut faire quand il n’y a aucune donnée pourrait alors être:

  • Soit un paramètre supplémentaire du sous-état :
  • N’afficher rien
  • Afficher l’en-tête seul (comportement actuel)
  • Afficher l-'en-tête et une ligne vide indiquant “aucune donnée”
  • Soit changer le comportement seulement quand il y a une “opération” active: ne plus masquer la cellule “nombre total” ou “somme totale” ou … et afficher 0

Si une refonte des sous-états est à l’étude, cette évolution peut bien attendre. Si son attrait pour la communauté reste limité, à chaque application de surcharger le framework.