NW Buttonable
Extensión para Microsoft Dynamics 365 Business Central — niccoweb.com
Tocar para sumar
Un toque añade 1 unidad al pedido y muestra una animación flotante "+1".
Modo foco para restar
Mantén pulsado ~1s para entrar en modo foco; vuelve a tocar la misma tarjeta para restar 1 unidad.
Editar cantidad exacta
Doble clic (o doble toque) sobre el número para escribir la cantidad deseada directamente.
Menú contextual
Clic derecho (o mantener pulsado ~2s): Reset a 0, Establecer valor, Duplicar ×2 o Bloquear/Desbloquear.
Bloqueo por tarjeta
Bloquea una tarjeta para evitar cambios accidentales mientras revisas el pedido.
Sincronización en vivo
El contador de cada tarjeta refleja la cantidad real ya presente en las líneas del pedido.
Limpieza de duplicados
Si existían líneas duplicadas del mismo artículo, se consolidan en una sola al editar la cantidad.
Comportamiento configurable
Elige si cada toque crea una línea nueva o incrementa la línea existente del artículo.
- 1Asigna el conjunto de permisos Buttonable a los usuarios de la extensión.
- 2Abre la página Buttonable Setup y decide el modo Item per line: activado crea una línea nueva en cada toque; desactivado incrementa la cantidad de la línea existente.
- 3En el Ficha de artículo o Lista de artículos, marca la casilla Buttonable en los artículos que quieras como botón rápido (deben estar sin bloquear).
- 4Abre cualquier Pedido de venta: la cuadrícula de botones aparece automáticamente debajo de las líneas.
- 1Toca una tarjeta para añadir 1 unidad del artículo al pedido.
- 2Mantén pulsada la tarjeta (~1s) para activar el modo foco y poder restar tocándola de nuevo.
- 3Doble clic sobre el número para escribir una cantidad exacta; déjalo en 0 para eliminar la línea.
- 4Clic derecho (o pulsación larga ~2s) abre el menú: Reset, Establecer valor, Duplicar o Bloquear.
- 5Todos los cambios se guardan al instante en la línea de venta correspondiente.
| Tipo | ID | Nombre | Descripción |
|---|---|---|---|
| Tabla | 50600 | NW Buttonable Setup | Tabla singleton con la opción Item per line |
| TablaExt | 50600 | NW Item | Añade el campo Buttonable (Boolean) a Item |
| Página | 50600 | NW Button Part | Página ListPart que aloja el Control Add-In y enlaza con el registro origen |
| Página | 50601 | NW Buttonable Setup | Página Card para configurar el comportamiento de inserción |
| PáginaExt | 50600 | NW Sales Order | Inserta el Button Part debajo de las líneas del pedido |
| PáginaExt | 50601 | NW Item Card | Añade el campo Buttonable tras Blocked |
| PáginaExt | 50602 | NW Item List | Añade el campo Buttonable con tooltip en la lista |
| PáginaExt | 50603 | NW Sales Order Subform | Refresca el subformulario al validar Cantidad / Cant. a enviar / Cant. a facturar |
| Codeunit | 50600 | NW Buttonable Items Mgt | JSON de artículos, inserción/actualización de líneas y limpieza de duplicados |
| CtrlAddIn | — | Buttonable Items Addin | Cuadrícula JavaScript/HTML/CSS con gestos táctiles avanzados |
| PermSet | 50600 | Buttonable | Permisos para los objetos propios de la extensión |
| Campo | Tipo | Descripción |
|---|---|---|
Primary Key | Code[10] | Clave del registro singleton |
Item per line | Boolean | Si está activo, cada toque crea una línea de venta nueva en vez de incrementar la existente |
| Campo | Tipo | Descripción |
|---|---|---|
Buttonable (50600) | Boolean | Marca el artículo para que aparezca como botón rápido (solo si no está bloqueado) |
| Dirección | Nombre | Parámetros | Descripción |
|---|---|---|---|
| JS → BC | ControlReady | — | Señal de carga; dispara la primera petición del JSON de artículos |
| JS → BC | ItemButtonClicked | itemNo | Evento heredado para insertar una línea; el flujo actual usa ItemQuantityChanged |
| JS → BC | ItemQuantityChanged | itemNo, quantity | Se dispara con cada toque, edición o acción del menú; ajusta o borra la línea correspondiente |
| BC → JS | LoadItems | itemsJson | Reconstruye la cuadrícula completa con artículos y cantidades actuales |
| BC → JS | ShowMessage | message | Procedimiento disponible para mostrar avisos en el Add-In |
startup.js (señal inicial) · ButtonableItems.js (gestos táctiles, contador y menú contextual) · ButtonableItems.css (estilos y animaciones)
- ✓Business Central versión 27.0 o posterior.
- ✓Un navegador compatible con la API de Pointer Events (todos los navegadores modernos).
- ✓El conjunto de permisos Buttonable asignado al usuario.
- ✓No se requieren dependencias externas ni API de terceros.
NW Buttonable
Extension for Microsoft Dynamics 365 Business Central — niccoweb.com
Tap to add
A single tap adds 1 unit to the order and shows a floating "+1" animation.
Spotlight mode to remove
Press and hold (~1s) to enter spotlight mode, then tap the same tile again to subtract 1 unit.
Edit exact quantity
Double-click (or double-tap) the number to type the exact quantity you want.
Context menu
Right-click (or long-press ~2s): Reset to 0, Set value, Duplicate ×2, or Lock/Unlock.
Per-tile locking
Lock a tile to prevent accidental changes while you review the order.
Live sync
Each tile's counter reflects the real quantity already present on the order lines.
Duplicate cleanup
If duplicate lines existed for the same item, editing the quantity consolidates them into one.
Configurable behaviour
Choose whether each tap creates a new line or increments the existing line for that item.
-
1Assign the Buttonable permission set to the users who will use this extension.
-
2Open the Buttonable Setup page and decide the Item per line behaviour: enabled creates a new line on every tap; disabled increments the existing line for that item.
-
3On the Item Card or Item List, check Buttonable for the items you want as quick-add tiles (they must not be blocked).
-
4Open any Sales Order — the tile grid appears automatically below the lines.
-
1Tap a tile to add 1 unit of that item to the order.
-
2Press and hold the tile (~1s) to enter spotlight mode, then tap again to subtract.
-
3Double-click the number to type an exact quantity; set it to 0 to remove the line.
-
4Right-click (or long-press ~2s) to open the menu: Reset, Set value, Duplicate, or Lock.
-
5Every change is saved instantly to the corresponding sales line.
| Type | ID | Name | Description |
|---|---|---|---|
| Table | 50600 | NW Buttonable Setup | Singleton table holding the Item per line option |
| TableExt | 50600 | NW Item | Adds the Buttonable (Boolean) field to Item |
| Page | 50600 | NW Button Part | ListPart page hosting the Control Add-In and binding it to the source record |
| Page | 50601 | NW Buttonable Setup | Card page to configure the insertion behaviour |
| PageExt | 50600 | NW Sales Order | Embeds the Button Part below the sales lines |
| PageExt | 50601 | NW Item Card | Adds the Buttonable field after Blocked |
| PageExt | 50602 | NW Item List | Adds the Buttonable field with a tooltip in the list |
| PageExt | 50603 | NW Sales Order Subform | Refreshes the subform after validating Quantity / Qty. to Ship / Qty. to Invoice |
| Codeunit | 50600 | NW Buttonable Items Mgt | Builds the items JSON, inserts/updates lines and cleans up duplicates |
| CtrlAddIn | — | Buttonable Items Addin | JavaScript/HTML/CSS tile grid with advanced pointer gestures |
| PermSet | 50600 | Buttonable | Permissions for the extension's own objects |
| Field | Type | Description |
|---|---|---|
Primary Key | Code[10] | Key of the singleton record |
Item per line | Boolean | When enabled, every tap creates a new sales line instead of incrementing the existing one |
| Field | Type | Description |
|---|---|---|
Buttonable (50600) | Boolean | Flags the item to appear as a quick-add tile (only when not blocked) |
| Direction | Name | Parameters | Description |
|---|---|---|---|
| JS → BC | ControlReady | — | Fired on load; triggers the first request for the items JSON |
| JS → BC | ItemButtonClicked | itemNo | Legacy event for inserting a line; the current UI flow uses ItemQuantityChanged instead |
| JS → BC | ItemQuantityChanged | itemNo, quantity | Fired on every tap, manual edit or context-menu action; adjusts or deletes the matching line |
| BC → JS | LoadItems | itemsJson | Rebuilds the full tile grid with current items and quantities |
| BC → JS | ShowMessage | message | Procedure available to surface notifications inside the Add-In |
startup.js (initial ready signal) · ButtonableItems.js (pointer gestures, counters and context menu) · ButtonableItems.css (styles and animations)
- ✓Business Central version 27.0 or higher.
- ✓A browser that supports the Pointer Events API (all modern browsers qualify).
- ✓The Buttonable permission set assigned to the user.
- ✓No external dependencies or third-party APIs required.
Comentarios
Publicar un comentario