WidgetNumber
Este widget sirve para imprimir valores numéricos en los informes de FacturaScripts. Se usa estableciendo el atributo type con el valor "number".
Descripción
- Alineación por defecto: right (alineado a la derecha).
- Los números se formatean usando los separadores de miles y decimales configurados en las constantes de FacturaScripts.
- Puedes aplicar los estilos disponibles en el WidgetLabel.
- El atributo fieldname admite varias posibilidades: campo del modelo, acceso a elementos de un array o llamadas a métodos.
Uso básico
Ejemplo mínimo indicando el tipo:
<widget type="number" fieldname="importe" />
Atributos específicos ⚙️
Puedes personalizar la impresión con estos atributos opcionales:
- currency
- Nombre del campo que contiene el código de la divisa (por ejemplo, "coddivisa"). Si lo indicas, se añadirá el icono de la divisa junto al valor numérico.
- decimal
- Número de decimales a imprimir. Si no se especifica, se usan los decimales configurados en FacturaScripts.
- negative
- Color (o clase CSS) que se aplicará cuando el valor sea negativo. Por ejemplo: negative="red".
- printempty
- Controla qué hacer cuando el valor es 0 o está vacío.
- true: siempre imprime el número (incluido 0). Valor por defecto.
- false: sólo imprime el número si es distinto de 0; si es 0 se imprime una cadena vacía.
- licon / ricon
- Icono o carácter que se añadirá a la izquierda (licon) o a la derecha (ricon) del número. Ej.: ricon="%".
Notas:
- Puedes reutilizar atributos de estilo de WidgetLabel (fuente, tamaño, color, align, etc.).
- El formateo (separador de miles y decimal) sigue la configuración global de FacturaScripts.
Ejemplos 📌
1) Imprimir un valor numérico desde un campo del modelo sin decimales:
<column posx="515" width="40">
<widget type="number" fieldname="numItems" decimal="0" />
</column>
2) Imprimir el primer elemento de un array con dos decimales y el icono de la moneda indicada por el campo coddivisa:
<column posx="515" width="40">
<widget type="number" fieldname="totalByDay[0]" decimal="2" currency="coddivisa" />
</column>
3) Imprimir el valor devuelto por el método total():
<column posx="320" width="62">
<widget type="number" fieldname="total()" />
</column>
4) Imprimir un porcentaje con 2 decimales, símbolo '%' a la derecha y en rojo si es negativo:
<column posx="515" width="45">
<widget type="number" fieldname="percentage" decimal="2" negative="red" ricon="%" />
</column>
5) No imprimir ceros (printempty = false):
<column posx="100" width="40">
<widget type="number" fieldname="discount" decimal="2" printempty="false" />
</column>
Buenas prácticas y notas 📝
- Define el número de decimales cuando quieras forzar un formato concreto; si no, confía en la configuración global de FacturaScripts.
- Usa negative para resaltar importes negativos con un color o clase CSS coherente con tu plantilla.
- Para añadir símbolos (€, $, %), puedes usar licon/ricon o, si dispones de un campo de divisa, usar currency para que se muestre el icono correspondiente.
- Si combinas estilos (fuente, tamaño, color) consulta los atributos disponibles en WidgetLabel.
- Para ver cómo definir columnas y widgets en los informes, revisa: https://facturascripts.com/publication/definir-datos-mediante-columnas-y-widgets
Si necesitas un ejemplo adaptado a tu informe (por ejemplo, distintos formatos según la divisa o estilos condicionados), dime qué quieres mostrar y te preparo el XML concreto.