# Factura incremental segura con Commands

Este flujo usa únicamente capacidades VERDE. Consta de **21 pasos**; el primero es una limpieza opcional. Si el lienzo ya está vacío, se omite y quedan 20.

## Antes de empezar

1. Guardar una copia del documento manualmente.
2. Confirmar en el panel de campos que existen `HEADER.numero`, `HEADER.fecha`, `HEADER.cliente`, `HEADER.direccion`, `HEADER.cif`, `HEADER.total` y los cinco `DETAIL.*` usados abajo. Si alguno no aparece, omitir su paso; no pedir que se invente.
3. Tras cada orden, revisar la inspección y el lienzo. Seleccionar manualmente el objeto indicado antes de continuar.

## Órdenes exactas

### Paso 1 — limpieza opcional (1 command)

Selecciona manualmente solo los objetos que quieras retirar y escribe:

> borra los objetos seleccionados

No escribir `borra todo el diseño`.

### Paso 2 — título (1 command)

> crea un texto en 15,15 que ponga FACTURA

### Paso 3 — estilo del título (2 commands)

Selecciona el título y escribe:

> pon el texto seleccionado en azul oscuro y negrita

### Paso 4 — número (1 command)

> crea un texto en 15,30 que ponga Factura: seguido de HEADER.numero

### Paso 5 — fecha (1 command)

> crea un texto en 140,30 con Transform(HEADER.fecha,"99/99/9999")

### Paso 6 — cliente (1 command)

> crea un texto en 15,42 con HEADER.cliente

### Paso 7 — dirección (1 command)

> crea un texto en 15,49 con HEADER.direccion

### Paso 8 — CIF (1 command)

> crea un texto en 15,56 que ponga CIF: seguido de HEADER.cif

### Paso 9 — tabla (1 command)

> crea una tabla

### Paso 10 — posición de tabla (1 command)

Selecciona la tabla recién creada. Muévela visualmente si conoces mejor la posición; como orden relativa se puede escribir:

> mueve la tabla seleccionada 5 mm a la derecha y 60 mm hacia abajo

### Paso 11 — cabecera de cinco columnas (5 commands)

Con la tabla seleccionada:

> añade una línea de cabecera de cinco columnas

`tableInsertLine` crea una columna; la IA debe emitir exactamente cuatro inserciones más.

### Paso 12 — detalle de cinco columnas (5 commands)

> añade una línea de detalle de cinco columnas

### Paso 13 — títulos de cabecera (5 commands)

> en las cinco celdas de la primera línea de cabecera crea textos que pongan Código, Descripción, Cantidad, Precio e Importe, en ese orden

### Paso 14 — campos del detalle (5 commands)

> en las cinco celdas de la primera línea de detalle crea textos con DETAIL.codigo, DETAIL.descripcion, DETAIL.cantidad, DETAIL.precio y DETAIL.importe, en ese orden

### Paso 15 — fondo de cabecera (1 command)

Con la tabla seleccionada:

> pon azul oscuro al fondo de la primera línea de cabecera

### Paso 16 — textos blancos y negrita (2 commands)

Selecciona manualmente los cinco TText de la cabecera y escribe:

> pon los textos seleccionados en blanco y negrita

Esto evita confundir el fondo de línea con el fondo de cada texto.

### Paso 17 — zebra (3 commands)

Selecciona la tabla y escribe:

> activa zebra en la primera línea de detalle, con filas impares gris claro y filas pares blancas

### Paso 18 — anchos de cabecera (5 commands)

> en la primera línea de cabecera pon estos anchos: Código 25 mm, Descripción 75 mm, Cantidad 25 mm, Precio 30 mm e Importe 30 mm

Revisar los cinco anchos antes de seguir; TTable maneja cada línea físicamente por separado.

### Paso 19 — anchos de detalle (5 commands)

> en la primera línea de detalle pon estos anchos: Código 25 mm, Descripción 75 mm, Cantidad 25 mm, Precio 30 mm e Importe 30 mm

### Paso 20 — total (1 command, solo si existe el campo)

Si `HEADER.total` aparece realmente en el panel de campos:

> crea un texto en 140,250 que ponga TOTAL: seguido de HEADER.total

Si no aparece, omitir el paso. No sustituirlo automáticamente por un nombre supuesto.

### Paso 21 — estilo del total (2 commands)

Selecciona el total y escribe:

> pon el texto seleccionado en negrita y alineado a la derecha

## Resultado y forma de trabajo

El resultado esperado es una factura editable con cabecera de datos, tabla header/detail enlazada, cabecera azul, títulos blancos/negrita, zebra, anchos diferenciados y total solo cuando existe el campo. La geometría se revisa visualmente entre pasos; no se delega toda la composición a una macro.

Si una instrucción produce más de cinco comandos, cancelar y dividirla. Si el dry-run pide reparación, revisar el plan reparado antes de aplicar. Si el resultado es válido pero incompleto, deshacer y formular únicamente la parte omitida.
