Impression en Masse depuis WidgetBuilder

Bonjour dans le cadre de gestion de matériel je me suis lancé dans la découverte de Widget builder,
j’ai une table avec tout une liste de matériel et pour chaque matériel une fiche qui reprend les éléments généraux ainsi que le dernier mouvement concernant le matériel.
J’arrive à imprimer une fiche matériel mais je souhaiterai pouvoir imprimer toutes les fiches d’une catégorie. J’ai réalisé un début de code mais il ne trouve pas ma sélection multiple.
Avez-vous des pistes de réflexion sur ce sujet?
Je vous joint le code de la partie d’impression :

/* ---------- impression générique ---------- */
async function printRows(rows) {
  if (!rows.length) { alert("Aucune page à imprimer."); return; }
  const styleTag = document.querySelector('style')?.outerHTML || '';
  const pages = rows.map(r => buildPageHTML(r, labelFromDossierCell(r[COL.dossier]))).join('\n');
  const original = document.body.innerHTML;
  document.body.innerHTML = `${styleTag}${pages}`;
  window.focus(); window.print();
  setTimeout(() => location.reload(), 80);
}

/* ---------- entrypoint bouton "Imprimer la sélection (grille)" ---------- */
async function onPrintSelection() {
  try {
    if (selTableId && selRowIds.length > 0) {
      const tableIdLower = String(selTableId).toLowerCase();

      if (tableIdLower.includes('scell')) {
        // sélection de SCELLÉS → imprime la sélection exacte
        await printByRowIds(selTableId, selRowIds);
        return;
      }

      if (tableIdLower.includes('dossier')) {
        // sélection de DOSSIERS → imprime tous les scellés de ces dossiers
        await printFromSelectedDossiers(selTableId, selRowIds);
        return;
      }
    }

    // sinon fallback panneau
    await openFallbackSelector();

  } catch (e) {
    console.error(e);
    alert("Erreur pendant l'impression.");
  }
}

Merci par avance de votre aide

1 « J'aime »

Bonjour @nono ,
Peut-être que ce code pourra vous aider : Imprimer en masse / enregistrer des PDF en masse - publipostage - #2 par audezu

Si c’est juste une catégorie que vous souhaitez imprimer, vous pourriez, au lieu d’utiliser un booléen, filtrer les données de la table sur la catégorie, par ex :

      const rowsToPrint = tableData.filter(row => row.Categorie === "catégos");