Cayaqui.MPS.PptExport
0.2.0
See the version list below for details.
dotnet add package Cayaqui.MPS.PptExport --version 0.2.0
NuGet\Install-Package Cayaqui.MPS.PptExport -Version 0.2.0
<PackageReference Include="Cayaqui.MPS.PptExport" Version="0.2.0" />
<PackageVersion Include="Cayaqui.MPS.PptExport" Version="0.2.0" />
<PackageReference Include="Cayaqui.MPS.PptExport" />
paket add Cayaqui.MPS.PptExport --version 0.2.0
#r "nuget: Cayaqui.MPS.PptExport, 0.2.0"
#:package Cayaqui.MPS.PptExport@0.2.0
#addin nuget:?package=Cayaqui.MPS.PptExport&version=0.2.0
#tool nuget:?package=Cayaqui.MPS.PptExport&version=0.2.0
Cayaqui.MPS.PptExport
Genera slides PowerPoint para reportes EVM programáticamente, usando Syncfusion.Presentation. Cada sección implementa IPptSlideSection y agrega uno o más slides a un IPresentation existente.
Distribución propietaria — requiere contrato comercial con Cayaqui. Ver
LICENSE.txt.
Dependencias:
Cayaqui.MPS.ReportModels(DTOs y paleta MPS) + licencia Syncfusion Presentation.
v0.2.0 — 18 slides EVM completos (Fase 1 + Fase 2)
Paridad total con Cayaqui.MPS.ExcelExport v0.6.0 y componentes MPS.Components.Evm.
Fase 1 — mirror ExcelExport (10 slides)
| Slide | Output | Contenido |
|---|---|---|
EvmKpiStripSlide |
tabla 8 cols | CPI/SPI/EV/AC/PV/BAC/EAC/VAC. Semáforo en CPI/SPI. Fila delta (Δ vs período anterior). |
EvmSCurveChartSlide |
line chart | 4 series (PV/EV/AC/Forecast) + stripline BAC horizontal + stripline ControlDate vertical. |
BurndownChartSlide |
line chart | Remaining + Ideal calculado + optional TargetDate stripline. |
PhysicalProgressCurveSlide |
line chart | Baseline/Plan/Actual/Forecast % + optional GoalLine (100%) + ControlDate. |
ProductionCurveSlide |
line chart | Plan/Actual + optional NameplateRate stripline (capacidad de planta). |
MonteCarloHistogramSlide |
column chart | Bins pre-calculados + textbox con N, min, max, P50/P80/P90. |
CashflowChartSlide |
combo dual-axis | Columnas mensuales (Plan/Actual/Forecast, eje primario) + líneas acumuladas (eje secundario). |
R9cTableSlide |
tabla 11 cols | Reporte 9 columnas AACE 80R-13 con variance coloring. |
RiskHeatmapSlide |
tabla grid N×M | Score coloring por celda (semáforo). |
ScheduleVarianceTableSlide |
tabla | Baseline/Current/Forecast + SV días + threshold coloring. |
Fase 2 — secciones nuevas (8 slides)
| Slide | Output | Contenido |
|---|---|---|
ContingencyDrawdownSlide |
line chart | Plan/Actual contingencia restante + optional ControlDate. |
WaterfallSlide |
tabla 3 cols | Cascada: Label + Valor + Acumulado. Colors por WaterfallStepKind (Total=azul, Add=verde, Subtract=rojo, etc.). |
ResourceHistogramSlide |
column stacked | Pivote Period×Category. Una serie coloreada por categoría + optional Capacity line. |
ManagementReserveTrackerSlide |
tabla | Eventos de reserva de gestión, running balance, semáforo inicial/final. |
TornadoChartSlide |
bar horizontal | Low/High deviations por ítem, ordenado de mayor a menor range. |
MilestoneStripSlide |
tabla 5 cols | Hitos con color de fila por MilestoneHealth (OnTime=verde, AtRisk=ámbar, Late=rojo, Done=neutral). |
RiskRegisterTableSlide |
tabla 10 cols | Registro completo con score cell coloring por umbral. |
ChangeOrderLogSlide |
tabla 8 cols | Log de órdenes de cambio con status cell coloring. |
68 tests en MPS.Infrastructure.PptExport.Tests (todos passing).
v0.1.0 — Scaffold de infraestructura
Contratos base para el output layer PowerPoint:
| Tipo | Rol |
|---|---|
IPptSlideSection |
Interfaz: RenderAsync(IPresentation, IPptReportContext) |
IPptReportContext |
Acceso a opciones + helper AddSlide(...) |
PptReportContext |
Implementación default inyectable |
PptReportOptions |
Header color, accent color, tipografía, watermark |
MpsColorExtensions.ToPpt() |
MpsColor → IColor de Syncfusion |
ColorParser.ParseHex() |
HTML hex → (R, G, B) byte tuple |
Uso rápido
// DI registration
services.AddMpsPptExport();
// Composition — en un handler o service
using var prs = Presentation.Create();
prs.SlideSize.Type = SlideSizeType.Widescreen;
var ctx = new PptReportContext(new PptReportOptions
{
HeaderBackgroundColor = "#1F3864",
AccentColor = "#2E75B6",
WatermarkText = "DRAFT"
});
await new EvmKpiStripSlide { Snapshot = kpiData }.RenderAsync(prs, ctx);
await new EvmSCurveChartSlide { Points = sCurvePoints, Bac = 10_000_000m }.RenderAsync(prs, ctx);
await new CashflowChartSlide { Points = cashflowPoints }.RenderAsync(prs, ctx);
await new MilestoneStripSlide { Milestones = milestones }.RenderAsync(prs, ctx);
await new ChangeOrderLogSlide { Entries = changeOrders }.RenderAsync(prs, ctx);
await using var ms = new MemoryStream();
prs.Save(ms);
prs.Close();
Coordenadas de slides
Las medidas en la API de Syncfusion.Presentation se expresan en puntos (pt). Un slide widescreen (16:9) mide 720 × 540 pt internamente en las implementaciones MPS.
| Constante MPS | Valor |
|---|---|
SlideWidthPt |
720 |
SlideHeightPt |
540 |
MarginPt |
36 |
TitleHeightPt |
32 |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Cayaqui.MPS.ReportModels (>= 0.2.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Syncfusion.Presentation.Net.Core (>= 33.2.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
0.2.0 — 18 slides EVM: EvmKpiStripSlide, EvmSCurveChartSlide, BurndownChartSlide, PhysicalProgressCurveSlide, ProductionCurveSlide, MonteCarloHistogramSlide, CashflowChartSlide, R9cTableSlide, RiskHeatmapSlide, ScheduleVarianceTableSlide, ContingencyDrawdownSlide, WaterfallSlide, ResourceHistogramSlide, ManagementReserveTrackerSlide, TornadoChartSlide, MilestoneStripSlide, RiskRegisterTableSlide, ChangeOrderLogSlide. 68 tests. Paridad completa con ExcelExport v0.6.0 y MPS.Components.Evm. 0.1.0 — Scaffold: IPptSlideSection, IPptReportContext, PptReportContext, PptReportOptions.