diff --git a/CLAUDE.md b/CLAUDE.md index 1acb8f21..3f331533 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -150,7 +150,9 @@ Het Rapport-tabblad (`ReportPanel.tsx`) kent elf rapporttypen (`ReportType` in (issue #113: dezelfde Gantt-render met als rijenbron `computeResourceGanttRows` uit `src/engine/reports/resourceGantt.ts` — per resource-IDENTITEIT een band (niet per naam, zoals de schermgroepering: gelijknamigen krijgen `#n`, naamlozen een surrogaat), daaronder zijn bladtaken op -start; relaties staan bij dit type uit omdat een taak onder meerdere banden kan staan; optie "blad +start; relaties staan bij dit type uit omdat een taak onder meerdere banden kan staan, en het vinkje +*Kritiek pad* is er verborgen en geforceerd aan (`reportTypeShowsCriticalToggle`: het vinkje kleurt alleen +relatielijnen en legendaregel, de balken volgen `barColorSelection` via `criticalFill`); optie "blad per resource" = `PrintOptions.pageBreakBeforeGroups` → `RenderReportResult.forcedBreakOffsets` → `forcedBreakOffsetsPx` in `tileLayout`, waar een gedwongen positie zonder vulgraaddrempel wint; `isGanttReportType()` bundelt beide Gantt-achtige typen; de voet diff --git a/public/docs/en/gids-rapporten-printen.md b/public/docs/en/gids-rapporten-printen.md index 7e1fb41c..781dda60 100644 --- a/public/docs/en/gids-rapporten-printen.md +++ b/public/docs/en/gids-rapporten-printen.md @@ -83,8 +83,9 @@ A full, formatted printout of the Gantt bars — this is the only report type wi Relationship lines in the report use the same visual language as the Gantt view: a **solid** line is a driving relationship, a **dashed** line a non-driving one, and a driving relationship between two -critical tasks is **red**. Turn *critical path* off and those lines go neutral as well. The legend at -the bottom summarises the difference. Before the first calculation every line is drawn neutral and +critical tasks is **red**. Turn *critical path* off and those lines go neutral and the legend entry +disappears; the bar colour itself follows the **Bar colors** choice. The legend at the bottom +summarises the difference. Before the first calculation every line is drawn neutral and solid — press *Calculate* (F5) first. The summary block above it shows the live count of tasks, leaf tasks, critical tasks and relations @@ -103,9 +104,11 @@ left out — an assignment on a summary task (which an import can produce) is no at the bottom, so the meeting can see at a glance what nobody owns yet. The settings of the Gantt print apply here too — critical path, float, bar colours, status line, -paper, header repeat — with two exceptions: *Follow view* (this report doesn't take its rows from -the screen) and *Dependencies* (a task can sit under several bands, and with one sheet per resource arrows -would run off the sheet; so this report draws none). So there's no need to group the Gantt view by +paper, header repeat — with three exceptions: *Follow view* (this report doesn't take its rows from +the screen), *Dependencies* (a task can sit under several bands, and with one sheet per resource arrows +would run off the sheet; so this report draws none) and *Critical path* (that toggle only colours +relationship lines, and there are none here — the bars simply follow the **Bar colors** choice, and +the legend explains them). So there's no need to group the Gantt view by resource yourself first. Bands are per resource, not per name: two resources that happen to share a name each get their own band (*Jan #1*, *Jan #2*), and a resource without a name gets a sequence number. The summary block counts the resources, the assignments and the tasks without a resource — diff --git a/public/docs/nl/gids-rapporten-printen.md b/public/docs/nl/gids-rapporten-printen.md index 6cab412a..35b4bebe 100644 --- a/public/docs/nl/gids-rapporten-printen.md +++ b/public/docs/nl/gids-rapporten-printen.md @@ -85,7 +85,8 @@ instellingenblok: De relatielijnen in het rapport gebruiken dezelfde tekentaal als het Gantt-scherm: een **doorgetrokken** lijn is een bepalende (driving) relatie, een **gestreepte** lijn een niet-bepalende, en een bepalende relatie tussen twee kritieke taken is **rood**. Zet je *kritiek pad* -uit, dan worden ook die lijnen neutraal. De legenda onderaan vat het verschil samen. Is er nog niet +uit, dan worden die lijnen neutraal en verdwijnt de legendaregel; de balkkleur zelf volgt de keuze +**Balkkleuren**. De legenda onderaan vat het verschil samen. Is er nog niet gerekend, dan staan alle lijnen neutraal doorgetrokken — druk eerst op *Bereken* (F5). Het overzichtsblok erboven toont live het aantal taken, bladtaken, kritieke taken en relaties in @@ -106,9 +107,11 @@ resource meenemen** komt er onderaan een band *(geen)* bij, zodat je in het over nog niemand heeft. De instellingen van de Gantt-afdruk gelden hier ook — kritiek pad, speling, balkkleuren, statuslijn, -papier, kopherhaling — op twee na: *Volg weergave* (de rijen komen bij dit rapport niet van het -scherm) en *Afhankelijkheden* (een taak kan onder meerdere banden staan en pijlen zouden bij een blad per -resource van het vel af lopen; dit rapport tekent er daarom geen). Je hoeft de Gantt-weergave dus +papier, kopherhaling — op drie na: *Volg weergave* (de rijen komen bij dit rapport niet van het +scherm), *Afhankelijkheden* (een taak kan onder meerdere banden staan en pijlen zouden bij een blad per +resource van het vel af lopen; dit rapport tekent er daarom geen) en *Kritiek pad* (dat vinkje kleurt +alleen relatielijnen, en die zijn er hier niet — de balken volgen gewoon de keuze **Balkkleuren**, en +de legenda verklaart ze). Je hoeft de Gantt-weergave dus niet eerst zelf op resource te groeperen. Banden zijn per resource, niet per naam: twee resources die toevallig hetzelfde heten krijgen elk een eigen band (*Jan #1*, *Jan #2*), en een resource zonder naam een volgnummer. Het overzichtsblok telt de resources, de toewijzingen en de taken zonder diff --git a/src/components/panels/ReportPanel.tsx b/src/components/panels/ReportPanel.tsx index 54901789..d7689fd6 100644 --- a/src/components/panels/ReportPanel.tsx +++ b/src/components/panels/ReportPanel.tsx @@ -20,7 +20,8 @@ import { encodeFieldRef, decodeFieldRef } from '@/components/layout/Ribbon/ribbo import { useSplitter } from '@/hooks/useSplitter'; import { saveBytesDialog } from '@/services/fileAccess'; import { - DEFAULT_REPORT_SETTINGS, isGanttReportType, loadReportSettings, reportTypeDrawsRelations, saveReportSettings, TABLE_REPORT_TYPES, + DEFAULT_REPORT_SETTINGS, isGanttReportType, loadReportSettings, reportTypeDrawsRelations, reportTypeShowsCriticalToggle, saveReportSettings, + TABLE_REPORT_TYPES, type ReportType, type ResourceGanttReportOptions, type TableReportOptions, } from '@/utils/reportSettings'; import { computeResourceGanttRows } from '@/engine/reports'; @@ -522,7 +523,11 @@ export function ReportPanel() { // vervangt die één render later. Bewust geen "leeg" tussenframe. const effectiveNameColumnWidth = truncateTaskNames ? taskNameColumnWidth : (autoNameColumnWidth ?? taskNameColumnWidth); const options = useMemo(() => ({ - showCritical, showFloat, showWeekends, showLegend, + // Resourcediagram: het vinkje *Kritiek pad* stuurt alleen relatielijnen en legendaregel, en dit + // type tekent geen lijnen — vinkje verborgen, waarde geforceerd zodat de legenda de rode balken + // blijft verklaren (zie `reportTypeShowsCriticalToggle`). + showCritical: reportTypeShowsCriticalToggle(reportType) ? showCritical : true, + showFloat, showWeekends, showLegend, // Resourcediagram: geen relatiepijlen (zie `reportTypeDrawsRelations`). showDeps: reportTypeDrawsRelations(reportType) && showDeps, showTaskNames, showCompletion, showBaselineOverlay, autoFit, customZoom, @@ -1486,10 +1491,13 @@ export function ReportPanel() { setShowBaselineOverlay(e.target.checked)} className="accent-accent flex-shrink-0" /> {t('showBaselineOverlay')} - + {/* Kritiek pad niet bij het resourcediagram — hetzelfde predicaat als de forcering in `options`. */} + {reportTypeShowsCriticalToggle(reportType) && ( + + )}