Tablero Kanban

Muestra KanbanBoard los registros de una tabla como cartas en carriles lado a lado, un carril por cada valor de una columna: la calificación de una oportunidad, el motivo del estado de una tarea, la cuenta a la que pertenece un registro. Cada carril se lee por sí solo a través de una vista, página a página, con la misma consulta y seguridad que una cuadrícula, y muestra su recuento y totales en su cabecera. En un Editable tablero, una carta se mueve a otro carril arrastrándola, desde el teclado o a través de su menú Mover al menú, y el movimiento se guarda de inmediato; con una columna de rango, las cartas también se colocan en orden a mano. Se dibuja en tu tema de interfaz fluida.

React Blazor

Abrir oportunidades por calificación

Las oportunidades abiertas de los datos de muestra de la demo, a través de la propia vista de Open Opportunities de Dataverse: un carril para cada valoración, con el recuento y los ingresos estimados del carril en su encabezado. Lanes Omite el carril de oportunidades sin una valoración. La demo del Kanban Board muestra el mismo tablero con movimientos, vistas, filtros y vistas guardadas.

Ejemplo de reacción Ejemplo de Blazor React TypeScript Razor
Caliente 15
Estimación de ingresos · Suma
8.575.220 $
Cliente potencial
Barton, Koepp and Cronin
Fecha de cierre
25/11/2026
Estimación de ingresos
$130.656,70
Contacto
Boris Price
Probabilidad
66
Correo electrónico
Fecha de cierre
7/12/2026
Estimación de ingresos
$1.370.311,27
Probabilidad
79
Correo electrónico
Cliente potencial
Sawayn - Kshlerin
Fecha de cierre
18/12/2026
Estimación de ingresos
$482.660,34
Contacto
Leora Volkman
Probabilidad
68
Correo electrónico
Cliente potencial
Lubowitz - Considine
Fecha de cierre
4/1/2027
Estimación de ingresos
$549.409,37
Probabilidad
66
Correo electrónico
Fecha de cierre
12/1/2027
Estimación de ingresos
$1.056.303,32
Probabilidad
71
Correo electrónico
Cliente potencial
Metz, Barrows and Nicolas
Fecha de cierre
25/1/2027
Estimación de ingresos
$125.977,18
Contacto
Herman Graham
Probabilidad
63
Correo electrónico
Cliente potencial
Considine Inc
Fecha de cierre
8/2/2027
Estimación de ingresos
$390.063,19
Probabilidad
60
Correo electrónico
Cliente potencial
Kemmer LLC
Fecha de cierre
22/2/2027
Estimación de ingresos
$572.745,67
Contacto
Mateo Hammes
Cuenta
Kemmer LLC
Probabilidad
86
Correo electrónico
Cliente potencial
Connelly, Cassin and Ledner
Fecha de cierre
12/3/2027
Estimación de ingresos
$206.661,20
Probabilidad
75
Correo electrónico
Fecha de cierre
10/5/2027
Estimación de ingresos
$1.150.358,11
Contacto
Laurel Ferry
Probabilidad
63
Correo electrónico
Cliente potencial
Ebert, Marks and Tillman
Fecha de cierre
25/5/2027
Estimación de ingresos
$415.395,06
Probabilidad
66
Correo electrónico
Fecha de cierre
4/8/2027
Estimación de ingresos
$289.844,16
Probabilidad
83
Correo electrónico
Fecha de cierre
23/8/2027
Estimación de ingresos
$691.221,38
Contacto
Mason Fay
Probabilidad
65
Correo electrónico
Cliente potencial
Schmeler and Sons
Fecha de cierre
3/3/2028
Estimación de ingresos
$710.120,48
Contacto
Yvette Kutch
Probabilidad
70
Correo electrónico
Cliente potencial
Zulauf - Hermiston
Fecha de cierre
7/4/2028
Estimación de ingresos
$433.492,70
Contacto
Kip Emard
Probabilidad
82
Correo electrónico
Cálido 27
Estimación de ingresos · Suma
17.938.956 $
Cliente potencial
Durgan and Sons
Fecha de cierre
30/11/2026
Estimación de ingresos
$1.011.637,54
Contacto
Connor Marks
Probabilidad
40
Correo electrónico
Cliente potencial
Schaden, Cronin and Daniel
Fecha de cierre
30/11/2026
Estimación de ingresos
$435.072,03
Contacto
Skyla Huels
Probabilidad
36
Correo electrónico
Cliente potencial
Cremin - Hodkiewicz
Fecha de cierre
3/12/2026
Estimación de ingresos
$148.163,91
Probabilidad
33
Correo electrónico
Cliente potencial
Hickle Group
Fecha de cierre
7/12/2026
Estimación de ingresos
$737.788,26
Contacto
Derick Hayes
Probabilidad
34
Correo electrónico
Cliente potencial
Rippin, Connelly and Hills
Fecha de cierre
1/1/2027
Estimación de ingresos
$735.737,57
Contacto
Lucio Kunde
Probabilidad
47
Correo electrónico
Cliente potencial
Marks - Dickinson
Fecha de cierre
5/1/2027
Estimación de ingresos
$39.194,35
Probabilidad
43
Correo electrónico
Cliente potencial
Mosciski - Crist
Fecha de cierre
11/1/2027
Estimación de ingresos
$771.992,39
Probabilidad
46
Correo electrónico
Fecha de cierre
22/1/2027
Estimación de ingresos
$1.156.824,28
Contacto
Roy Buckridge
Probabilidad
63
Correo electrónico
Cliente potencial
Boyle, Zulauf and Lakin
Fecha de cierre
25/1/2027
Estimación de ingresos
$71.261,52
Contacto
Newton Towne
Probabilidad
59
Correo electrónico
Cliente potencial
Willms, Heathcote and Veum
Fecha de cierre
27/1/2027
Estimación de ingresos
$984.770,91
Contacto
Jay Cummerata
Probabilidad
44
Correo electrónico
Cliente potencial
Olson, Buckridge and Lehner
Fecha de cierre
18/2/2027
Estimación de ingresos
$119.603,87
Contacto
Tatum Ullrich
Probabilidad
60
Correo electrónico
Cliente potencial
Pollich - Kling
Fecha de cierre
18/2/2027
Estimación de ingresos
$175.582,97
Probabilidad
41
Correo electrónico
Cliente potencial
Wiza, Bradtke and Hintz
Fecha de cierre
22/2/2027
Estimación de ingresos
$1.235.451,27
Probabilidad
56
Correo electrónico
Cliente potencial
Schaden, Cronin and Daniel
Fecha de cierre
24/2/2027
Estimación de ingresos
$1.190.737,60
Contacto
Skyla Huels
Probabilidad
57
Correo electrónico
Cliente potencial
Schmeler and Sons
Fecha de cierre
1/3/2027
Estimación de ingresos
$227.834,34
Contacto
Yvette Kutch
Probabilidad
58
Correo electrónico
Cliente potencial
Dietrich and Sons
Fecha de cierre
8/3/2027
Estimación de ingresos
$819.872,67
Contacto
Lilla Reichel
Probabilidad
54
Correo electrónico
Cliente potencial
Lang LLC
Fecha de cierre
9/3/2027
Estimación de ingresos
$829.816,90
Cuenta
Lang LLC
Probabilidad
67
Correo electrónico
Cliente potencial
Raynor - Lakin
Fecha de cierre
15/3/2027
Estimación de ingresos
$307.419,81
Contacto
Abel Parisian
Probabilidad
61
Correo electrónico
Cliente potencial
Lehner - Harvey
Fecha de cierre
22/3/2027
Estimación de ingresos
$410.838,91
Probabilidad
50
Correo electrónico
Fecha de cierre
1/4/2027
Estimación de ingresos
$446.204,78
Probabilidad
32
Correo electrónico
Carga más
Frío 49
Estimación de ingresos · Suma
31.899.104 $
Cliente potencial
Dietrich and Sons
Fecha de cierre
1/5/2026
Estimación de ingresos
$1.385.065,89
Contacto
Heath Kunde
Probabilidad
39
Correo electrónico
Cliente potencial
Brekke LLC
Fecha de cierre
16/6/2026
Estimación de ingresos
$107.756,58
Contacto
Jayne Johns
Cuenta
Brekke LLC
Probabilidad
31
Correo electrónico
Cliente potencial
Kunde - Herman
Fecha de cierre
3/8/2026
Estimación de ingresos
$636.288,55
Contacto
Moses Wolff
Probabilidad
39
Correo electrónico
Cliente potencial
Weber - Reichert
Fecha de cierre
28/9/2026
Estimación de ingresos
$1.122.798,39
Contacto
Hailee Hyatt
Probabilidad
31
Correo electrónico
Cliente potencial
Konopelski - Okuneva
Fecha de cierre
14/10/2026
Estimación de ingresos
$217.858,35
Contacto
Stanley Marks
Probabilidad
22
Correo electrónico
Fecha de cierre
9/11/2026
Estimación de ingresos
$1.018.696,47
Contacto
Aisha Collins
Probabilidad
22
Correo electrónico
Cliente potencial
Terry, Harvey and Simonis
Fecha de cierre
18/11/2026
Estimación de ingresos
$337.530,84
Probabilidad
27
Correo electrónico
Cliente potencial
Huel - Kerluke
Fecha de cierre
19/11/2026
Estimación de ingresos
$1.317.474,26
Contacto
Nelda Wiza
Probabilidad
24
Correo electrónico
Cliente potencial
Prosacco, Crist and Lowe
Fecha de cierre
1/12/2026
Estimación de ingresos
$513.370,29
Contacto
Alfreda Nolan
Probabilidad
29
Correo electrónico
Cliente potencial
Stanton - Jacobi
Fecha de cierre
3/12/2026
Estimación de ingresos
$172.312,41
Contacto
Noelia Doyle
Probabilidad
15
Correo electrónico
Cliente potencial
Mohr and Sons
Fecha de cierre
4/12/2026
Estimación de ingresos
$793.132,09
Contacto
Wendell Haag
Probabilidad
21
Correo electrónico
Cliente potencial
Hyatt - Toy
Fecha de cierre
7/12/2026
Estimación de ingresos
$70.277,23
Contacto
Aileen Walsh
Probabilidad
26
Correo electrónico
Cliente potencial
Luettgen, Goldner and Rowe
Fecha de cierre
14/12/2026
Estimación de ingresos
$600.667,70
Contacto
Carmine Mraz
Probabilidad
33
Correo electrónico
Cliente potencial
Miller LLC
Fecha de cierre
30/12/2026
Estimación de ingresos
$728.837,15
Contacto
Nick Block
Cuenta
Miller LLC
Probabilidad
15
Correo electrónico
Fecha de cierre
6/1/2027
Estimación de ingresos
$460.649,79
Probabilidad
39
Correo electrónico
Fecha de cierre
14/1/2027
Estimación de ingresos
$1.313.333,75
Contacto
Thelma Yost
Probabilidad
27
Correo electrónico
Cliente potencial
Metz LLC
Fecha de cierre
18/1/2027
Estimación de ingresos
$639.662,46
Contacto
Orland Ernser
Cuenta
Metz LLC
Probabilidad
22
Correo electrónico
Cliente potencial
West Group
Fecha de cierre
19/1/2027
Estimación de ingresos
$556.780,20
Contacto
Marisol Sauer
Cuenta
West Group
Probabilidad
23
Correo electrónico
Fecha de cierre
25/1/2027
Estimación de ingresos
$401.400,71
Contacto
Sophie Carter
Probabilidad
34
Correo electrónico
Cliente potencial
Boyer - Schaefer
Fecha de cierre
5/2/2027
Estimación de ingresos
$363.037,14
Contacto
Jena Stamm
Probabilidad
30
Correo electrónico
Carga más

Calles

LaneColumn (React: laneColumn) nombra la columna de la tabla de la vista de donde provienen los carriles. Una opción da un carril para cada una de sus opciones, una razón de estado para cada motivo, una columna de Sí/No, una para cada uno de sus dos valores, una para cada registro que nombre y una fecha para los carriles en los que cae, tal como describe el nombre de los carriles de fecha . Cualquier otra columna muestra un mensaje en lugar del tablero. Los carriles siguen el orden de Dataverse y dejan fuera las opciones ocultas, y el color de una opción aparece como un punto junto al nombre de su carril. Una columna que un registro puede dejar vacía añade un último carril, (Sin valor), para las cartas que no lo tienen.

Lanes (React: lanes) elige qué carriles se muestran, y en qué orden, por clave: el valor de una opción, 1 y 0 para Sí y No, el id de un registro, o una clave vacía para el carril sin valor. Los carriles de una consulta son los registros que nombran las cartas de la vista, leídos en una consulta agrupada; nómbralos en LookupLanes (React: lookupLanes) en su lugar para fijarlos y su orden, un carril sin cartas incluidas.

React Blazor

Se muestra un carril sin cartas, por lo que se puede dejar caer una carta en él. Configura ShowEmptyLanes (Reaccionar: showEmptyLanes) para false ocultarlo una vez que se conozca su recuento. Los usuarios pueden derrubar un carril en una franja estrecha con su nombre y contar con el botón en el encabezado, y ocultar los carriles desde el menú de Filtro de la barra de herramientas, que los lista bajo Mostrar.

React Blazor

Calles de fechas

Una columna de fecha muestra los carriles de cuándo cae su fecha, contados en días de la propia zona horaria del usuario, con la semana comenzando en el primer día de su idioma, y se calculan de nuevo cada vez que el tablero lee sus carriles. Sin ningún nombre, son Atrasados, Hoy, Mañana, Esta semana — desde pasado mañana hasta el final de la semana, así que vacíos cerca del final de la semana — Semana siguiente, Más tarde y Sin fecha.

DateLanes (Reaccionar: dateLanes) nombra los carriles en su lugar, en orden de fecha. Un presajuste establece un carril desde la fecha actual: Yesterday, Today y Tomorrow; LastWeek, ThisWeek y NextWeek; LastMonth, ThisMonth y NextMonth; los trimestres y años del calendario, como ThisCalendarQuarter y NextCalendarYear, y los fiscales, como ThisFiscalQuarter y LastFiscalYear, que siguen al año fiscal de la organización según lo mantenga Dataverse; Overdue, antes de hoy; Earlier y Later, que toman lo que ocurra antes y después de los carriles que los rodean; y NoDate. Un carril propio tiene los días exactos, o días contados de los periodos de hoy, bajo un título propio: Between, Before y Starting (React: between, before y starting). Un preset también toma un título propio. Pruébalo en la demo de fechas de cierre.

Cada carta cae en un carril, ya que un carril no comienza antes de donde termina el anterior: listado después ThisWeekde , ThisMonth se mantiene el resto del mes, y un carril que los anteriores ya cubren muestra vacío y no acepta carta. Una fecha que no tiene carril — entre dos carriles de días exactos — pone su carta en ninguno, así que empieza con Earlier y termina con Later para conservar todas las cartas.

React Blazor

Una carta movida a otro carril de fecha recibe el primer día de ese carril, manteniendo su hora del día — un carril por detrás también hoy, lo que le da una fecha pasada — y si se mueve a Sin fecha, pierde su fecha. Un carril sin un primer día, como Atrasado, un primer Antes o un carril vacío, no acepta carta. Establece DateLaneDrop (Reaccionar: dateLaneDrop) en None y los carriles no toman cartas entre sí: solo aparecen cuando caen cartas.

DateLaneOrder (Reaccionar: dateLaneOrder) ordena las cartas de una fecha de carril. Rank , el valor por defecto, las ordena por la columna de rango, como en cualquier otro carril: una carta movida dentro de su carril cambia solo su valor. Date las ordena por la fecha en su lugar, sin columna de rango: una carta caída por debajo de otra toma el día de esa carta, manteniendo su propio tiempo, y una que cae arriba toma el primer día de la línea; las cartas del mismo día se mantienen en el orden de sus tiempos. Pruébalo en la demo de fechas de vencimiento.

React Blazor

Conteos y totales

El encabezado de cada carril muestra cuántas cartas contiene — 5000+ pasadas de 5.000 — y los totales nombrados en LaneAggregates (React: laneAggregates): la suma, media, menor o mayor de un número, columna de dinero o fecha, o un conteo de cualquier columna, sobre cada carta del carril, no solo las cargadas. LaneAggregateFormats (React: laneAggregateFormats) da a las cifras de cada columna un formato, como C0 o N1. Estos son los totales con los que empieza el tablero: el botón Totales permite a los usuarios elegir la suya propia de las columnas que muestran las cartas, y una vista guardada los conserva. Los conteos y totales se leen de nuevo después de cada movimiento guardado por el tablero.

React Blazor

Límites de carriles

LaneLimits (React: laneLimits) da a las líneas, por clave, la mayor cantidad de cartas que deberían tener. El encabezado de una línea limitada muestra su cuenta contra su límite, como 7/5, marcada una vez que la cuenta la supera. La cuenta corresponde a todas las cartas de la línea, las que el usuario busque o filtre. Un límite solo advierte a menos que EnforceLaneLimits se establezca (React: enforceLaneLimits) : entonces una línea completa no toma ninguna carta de otra, no se ofrece bajo Mover a y no tiene botón de Añadir. Es la regla del tablero, no del servidor: mantener un límite para cada forma en que un registro se guarda con un interceptor.

React Blazor

Cartas

Una carta muestra la primera columna de la vista como título y las otras columnas de la vista bajo sus títulos, como hacen las cartas de una cuadrícula, omitiendo la columna de carril y la columna de rango. CardImageColumn (Reaccionar: cardImageColumn) añade una columna de imagen como avatar junto al título. Cada carril carga PageSize (Reaccionar: pageSize) cartas a la vez, 20 por defecto, con Cargar más en su pie. Desde Configuración, los usuarios cambian los campos que muestran las cartas, cómo se ordenan las cartas de un carril y cuántas carga cada carril.

Dibuja las cartas a tu manera con CardTemplate (React: cardRenderer). Se le entregan el registro y el carril de cada carta; Field , Label y DisplayValue (React: field, label y displayValue) muestran una columna como la carta por defecto, y OpenAsync y MoveToAsync (React: open y moveTo) abren el registro y mueven la carta, donde CanOpen y CanMove digan que pueden. Un clic en la carta aún abre su registro, y su menú Mover a la carta está junto a tu contenido. Las columnas que muestra una plantilla deben ser las de la vista, así que el tablero las lee con cada carta.

React Blazor

Tareas, dibujadas a tu manera

Las tareas de la demo a través de la propia vista de Todas las tareas de Dataverse, un carril para cada motivo de estado desde No Iniciado hasta Cancelado, cinco cartas a la vez. A CardTemplate (Reacción: cardRenderer) muestra el tema de cada tarea, de qué se trata, cuándo vence y su prioridad, las más altas en rojo.

Ejemplo de reacción Ejemplo de Blazor React TypeScript Razor CSS
No empezó 155
Book the on-site visit
Ebert, Marks and Tillman
Book the on-site visit
Stanton - Jacobi
Book the on-site visit
Rippin, Connelly and Hills
Book the on-site visit
Altenwerth, D'Amore and Mante
Book the on-site visit
Sawayn - Kessler
Carga más
En Progreso 42
Book the on-site visit
Marks - Dickinson
Book the on-site visit
Luettgen, Goldner and Rowe
Chase the signed contract
Schaden, Cronin and Daniel
Chase the signed contract
Dietrich and Sons
Chase the signed contract
Lind - Parisian
Carga más
Esperando a otra persona 28
Book the on-site visit
Schmeler and Sons
Book the on-site visit
Schmeler and Sons
Book the on-site visit
Botsford - Baumbach
Book the on-site visit
Schmeler and Sons
Chase the signed contract
Boyer - Schaefer
Carga más
Aplazado 18
Book the on-site visit
Adams - Torphy
Book the on-site visit
Sanford, Grimes and Satterfield
Chase the signed contract
Cole, Tillman and Langworth
Chase the signed contract
Boyle, Zulauf and Lakin
Chase the signed contract
Waelchi, Murazik and Considine
Carga más
Completado 57
Book the on-site visit
Waelchi, Murazik and Considine
Book the on-site visit
Bartoletti LLC
Book the on-site visit
Cole, Tillman and Langworth
Book the on-site visit
Effertz Group
Book the on-site visit
O'Hara, Streich and Conroy
Carga más
Cancelado 16
Book the on-site visit
Kemmer LLC
Confirm the training dates
Schmeler and Sons
Draft the statement of work
Raynor - Lakin
Draft the statement of work
Willms, Heathcote and Veum
Draft the statement of work
Rempel - Parisian
Carga más

Cuando la tabla del tablero tiene una página registrada para sus registros (véase Páginas de registros) y el tablero no Form tiene (Reaccionar: form), el título de una carta enlaza con ella, y abrir la carta va allí; ShowRecordLinks (Reaccionar: showRecordLinks) desactiva eso. De lo contrario, al hacer clic en una tarjeta se abre su registro en un diálogo en el centro o, con FormLocation (Reaccionar: formLocation), en un panel lateral a la izquierda o derecha. La forma es KanbanDefaultForm — las columnas de la vista de la tabla del tablero y la columna de carril, cada una con el editor que ocupa su tipo — o tu propio componente de editores en Form (React: form). El registro se lee como lo lee una página de registro, a través del mismo acceso a la tabla y seguridad de columnas, y solo puede cambiarse en un Editable tablero, por un usuario que pueda cambiarlo.

Moviendo cartas

En un Editable tablero (React: editable), los usuarios mueven una carta a otro carril arrastrándola, desde el teclado o a través del menú Mover a la carta. La carta se mueve a la vez, y el tablero guarda lo que ha cambiado: la columna de la línea — por una razón de estado, solo la razón, ya que el servidor mueve el estado del registro con ella — y el rango de la carta, donde el tablero mantiene una. Una partida guardada que falla devuelve la carta y lo indica.

Una carta solo se mueve donde el usuario puede cambiarla: Escribe en su registro, a través del acceso a la tabla del portal y en su columna de carril, que debe ser una que una actualización pueda establecer y que la seguridad no retenga esa columna. Poner las cartas en orden también requiere Escribir en la columna de rango. Una carta que el usuario no puede mover permanece donde está, sin el menú Mover a Mover.

Las líneas de la razón de estado siguen sus estados y los cambios de estado que permite la tabla, con los que el servidor se AddStateTransitions registra (véase RecordContext). Las oportunidades, casos, citas y órdenes las tienen por defecto: una carta no es tomada por una línea que su registro no puede alcanzar desde la suya propia, y Mover a lista solo las líneas que puede. Un cambio de estado que hace una actualización — una oportunidad reabierta, un caso cancelado o reactivado, una cotización activada, una orden enviada — pide al usuario que lo confirme primero, y una acción propia de Dataverse abre el cuadro de cierre, como describe los registros de cierre a continuación. Las cartas de un estado cerrado no se colocan en otro orden entre ellas. Una tabla sin transiciones se mueve libremente: una tarea movida a Completada se completa, y se vuelve a abrir.

React Blazor

Añadir cartas

El encabezado de cada carril en un Editable tablero tiene un botón de Añadir que abre un nuevo registro que ya está en ese carril, en la forma del tablero: el de Form la página (React: form) o KanbanDefaultForm. Solo se muestra a los usuarios que pueden crear los registros de la tabla y establecer su columna de carril, y nunca en un carril de registros cerrados, ya que se crea un registro abierto. Una vez guardado, la carta aparece en la parte superior de su carril. Apágalo con AllowNew (React: allowNew). Handle PrepareNewRecord (React: prepareNewRecord) para dar más valores al nuevo registro antes de que se abra su formulario: se le asigna el registro, el valor del carril que ya está en él y el carril. Un botón de barra de herramientas también puede añadir una carta: CanCreate y NewAsync en ( KanbanBoardContext React: canCreate y newCard) decir si un carril toma una nueva carta y abre su forma — sin ningún carril nombrado, en el primero que toma una.

React Blazor
React Blazor

Registros de cierre

En un tablero por razón de estado, una carta que se deja caer en un carril en el que Dataverse cierra registros con una acción propia — Ganado o Perdido de una oportunidad, Resuelto de un caso, Ganado o Cerrado de una cotización, Cumplido o Cancelado de una orden — abre un diálogo con la razón de estado, el carril de inicio y lo que registra el cierre: el ingreso real y la fecha de cierre de una oportunidad ganada; la fecha de cierre de una perdida y el competidor al que se perdió donde el usuario puede elegir competidores; la resolución y el tiempo facturable de un caso; la fecha de cierre de una cotización o un pedido; y una descripción. Confirmado, el registro se cierra mediante el propio mensaje de Dataverse, como WinOpportunity o CloseIncident; cancelado, la tarjeta vuelve a aparecer. Arrastrada de vuelta a un carril abierto, se reabre una oportunidad y se reactiva un caso una vez que el usuario confirma. Pruébalo en la demo de Pipeline. El mismo diálogo está detrás de los botones de cierre en el formulario de un registro, como WinOpportunityButton: véase RecordContext.

Un cierre se considera un cambio en el estado del registro: el usuario debe poder cambiar el registro y sus columnas de estado, y señalar al competidor que nombra. Dataverse archiva el cierre bajo el registro como una actividad propia (opportunityclose, incidentresolution, quoteclose, orderclose), que no necesita acceso a la tabla tuya. El usuario de la aplicación del portal necesita AppendTo en la tabla del registro, Crear y Añadir en actividades, y para una oportunidad AppendTo en competidores: véase Dataverse Connection.

React Blazor

Poner las cartas en orden

Nombra un RankColumn (Reaccionar: rankColumn) y los usuarios colocan las cartas de cada carril en orden por mano. Un carril se ordena por rango, luego por el orden de la vista, y una carta que cae entre dos otras recibe un rango entre los suyos. Normalmente ese rango es todo lo que escribe un drop. Las cartas sin rango ordenan primero, y se clasifican por turno cuando una carta se deja caer entre ellas o justo por debajo; un carril cuyos rangos no tienen espacio entre dos cartas se clasifica de nuevo, en el orden que muestra. Esos rangos se guardan con el movimiento, en una sola transacción. Un carril de más de 5.000 cartas no puede ordenarse a mano, ni se puede dejar caer una carta donde el usuario no puede cambiar una carta. Sin una columna de rango, un carril sigue el orden de la vista, y una carta solo se mueve a otro carril.

La columna de rango es una columna decimal de la tabla del tablero cuyo rango permite números negativos, ya que una carta caída por encima de la primera está clasificada por debajo. Su precisión decide con qué frecuencia se ordena un carril: las cartas empiezan con un millón de diferencias, y cada caída entre dos mitades divide la sala entre ellas, así que una columna de diez decimales necesita unas cincuenta caídas en un lugar antes de que su carril vuelva a estar clasificado, y una de ninguna alrededor de veinte.

React Blazor

Ahorrando movimientos tú mismo

Maneja SaveChange (Reaccionar: onCardMove) para guardar un movimiento a tu manera, en lugar del tablero: a través de un servicio propio, tras pedir al usuario, o no hacerlo en absoluto. Se le da KanbanCardMoveun : las cartas Record, los carriles en los que entró From y se Tofue , está Index ahí y su Rank, el Update que el tablero escribiría, y el OtherUpdates que pertenece a la misma transacción, escrito después — los rangos de otras cartas, o, para una carta que sale de un carril cerrado, su propio rango una vez que su estado la ha reabierto — y, para una carta caída en un carril que la cierra, el Close (Reaccionar: close) que el usuario confirmó, para enviarla después. Vuelve true para mantener la carta donde se dejó caer, o false para devolverla. El tablero no lee nada después de un movimiento que no guardó, así que una página puede conservar un movimiento solo en la página.

React Blazor

Lectores de teclado, táctil y pantalla

Cada carta que puede moverse tiene un ... botón con un menú de Mover a los carriles a los que puede ir, que funciona igual desde el teclado, por tacto y con un lector de pantalla. Una carta también puede moverse directamente desde el teclado: enfocarla, pulsar Espacio para recogerla, las flechas para llevarla a otro carril u otro lugar en su lugar, y Espacio de nuevo para dejarla. En una pantalla táctil, una carta se arrastra por su agarre, así que los carriles siguen desplazarse bajo un dedo. Los lectores de pantalla escuchan cada movimiento — la carta movida a la línea — y un movimiento que falla.

Barra de herramientas

La barra de herramientas está distribuida como la de una cuadrícula: el selector de vistas a la izquierda — o el Title (React: title), cuando solo hay una vista — y a la derecha tus propios controles, Totales, el cuadro de búsqueda, Filtro, Actualizar y Ajustes. Añade tus controles con ToolbarItems (React: los hijos del tablero). A KanbanBoardButton recibe el tablero al hacer clic: su tabla, la vista que muestra, sus carriles en su orden, y RefreshAsync (React: refresh) para leer cada carril de nuevo.

React Blazor

Vistas, búsqueda y filtros

Un tablero muestra los registros de una vista — una de Dataverse o una que define la página — y su tabla es la de la vista. DefaultViewId (React: defaultViewId) es la vista en la que se abre, y ViewIds (React: viewIds) las otras que ofrece el selector de vistas, de la misma tabla. El cuadro de búsqueda encuentra cartas mientras la búsqueda de una cuadrícula encuentra filas: desde el inicio del valor de una columna de búsqueda, o desde cualquier lugar después de un inicio *. Mira en las columnas que muestran las cartas, las nombra en su tooltip y marca las coincidencias en las cartas. Desactivarlo con AllowSearch (React: allowSearch).

Con AllowFiltering (Reaccionar: allowFiltering), el menú de Filtro de la barra de herramientas ofrece filtros de Edición, el diálogo se abre el botón de Filtro de una cuadrícula, cuyos filtros sustituyen a los de la vista hasta que el usuario elige otra vista. Está desactivado por defecto, porque el usuario puede eliminar todos los filtros que tenga la vista.

Con (React: allowSavedViews), un usuario iniciado sesión puede guardar el tablero tal como lo ha organizado — la vista con sus filtros, los campos y ordenación de las cartas, los totales de los carriles, las cartas que AllowSavedViews carga cada carril y los carriles plegados o ocultos — como una vista propia, y elegir su vista predeterminada y ocultar las que no utilize, desde el menú de Filtros. Sin un SavedViewsKey (React: savedViewsKey), un tablero comparte sus vistas con las cuadrículas, calendarios y tableros de su tabla que no tienen ninguna, cada uno manteniendo su propio diseño. Cómo se guardan, cambian y comparten las vistas está en la página de Vistas guardadas.

React Blazor

Una página puede definir vistas propias en código con CustomViewDefinitions (React: customViewDefinitions), las definiciones de vistas de la cuadrícula. Se ofrecen en el selector de al lado ViewIds sin estar listadas allí, DefaultViewId pueden nombrar una, y un tablero puede tenerlas únicamente. Cada una se lee con su propio FetchXML, dentro del acceso a la tabla del usuario, y dispara el tablero como dice: son PageSize las cartas que carga un carril, las de una columna Hidden y DisplayLabel ocultan o renombran su campo de cartas, y son Aggregates los totales de los carriles. Construye la lista una vez, en un campo: una nueva lista inicia el tablero de nuevo.

React Blazor

Mantener su lugar en la URL

Nombra un parámetro de consulta en PersistedStateQueryParameter (React: persistedStateQueryParameter), y el tablero mantiene la vista seleccionada y los carriles colapsados ahí, así que una recarga o un enlace compartido lo abre tal como se dejó. En qué se abriría de todos modos se omite. La búsqueda también se mantiene con IncludeSearchInPersistedState; se omite por defecto, ya que lo que buscan los usuarios puede ser sensible. Cada cambio reemplaza la entrada de historial del navegador, y ambas pilas escriben el mismo valor, así que un enlace hecho en uno abre el mismo tablero en el otro.

React Blazor

Temática

El tablero está dibujado con los controles y fichas de diseño propias de Fluent UI, por lo que sigue tu tema, claro o oscuro, y tu color de acento, y el punto de un carril toma el color de su opción de Dataverse. Los carriles tienen 280 píxeles de ancho, uno al lado del otro, y se desplazan lateralmente cuando no encajan; en un teléfono, cada uno ocupa la mayor parte de la pantalla y encajan en su sitio. Height (React: height) establece la altura del tablero, incluida la barra de herramientas — 600 píxeles por defecto — y cada carril desplaza sus cartas dentro de él. Para rediseñarlo, el tablero, sus carriles y sus cartas llevan sus propias clases, entre ellas ppp-kanban, ppp-kanban-lane, ppp-kanban-lane-header y ppp-kanban-card; Class y Style (React: className y style) añaden las tuyas propias.

Reaccionar Blazor

KanbanBoard Clase

Parámetros

Nombre
Tipo
Default
Descripción
AllowFilteringbool
False
Si el usuario puede cambiar los filtros de la vista, desde el menú de Filtros, como en una cuadrícula. Apagado por Por defecto: el usuario puede eliminar todos los filtros que tenga la vista.
AllowNewbool
True
Si cada carril de un KanbanBoard.Editable tablero ofrece una nueva carta, con un botón de Añadir en su Cabecera: una que el usuario puede crear, en el valor del carril — ninguna en una línea de cartas cerradas, como una El registro se crea abierto. Por defecto es true.
AllowSavedViewsbool
False
Permitamos a los usuarios que han iniciado sesión guardar el tablero tal como lo han organizado — la vista que muestra con su filtros, los campos y ordenación de sus cartas, los totales de las líneas y las vías colapsadas o ocultas — como vistas propias, ofrecidas en el selector de vistas junto a las de la página, y eligen su vista predeterminada Y oculta las vistas que no usan. Desactivadas por defecto. Necesita la solución Power Portals Pro Core tablas de vistas guardadas; un usuario interno también necesita las vistas guardadas de Power Portals Pro Rol de seguridad.
AllowSearchbool
True
Si la barra de herramientas tiene un cuadro de búsqueda. Por defecto es true.
CardImageColumnstring?
Una columna de imagen que cada carta por defecto muestra como avatar junto a su título, como hacen las cartas de una cuadrícula.
CardTemplateRenderFragment<KanbanCardContext>?
El contenido de cada carta, en lugar de la predeterminada: su título — la primera columna de la vista — y las otras columnas de The View bajo sus títulos.
CustomViewDefinitionsList<ViewDefinition>?
Vistas que define la página — las s de Models.ViewDefinitionla cuadrícula — ofrecidas en el selector junto KanbanBoard.ViewIds sin aparecer allí; KanbanBoard.DefaultViewId puede nombrar uno. A La placa puede tener solo estas opciones. Cada una se lee con su propio FetchXML y displace la tarjeta como indica (Models.ViewDefinition)): las cartas que lee una línea a la vez, la carta de sus columnas campos ocultos o titulados, y los totales de las líneas. Queda uno de otra tabla distinta al del tablero fuera. Construye la lista una vez — en un campo, no en línea en el marcado — mientras una nueva lista inicia el De nuevo a bordo.
DateLaneDropKanbanDateLaneDrop
ChangeDate
Lo que hace una carta caída en otra línea de citas, donde es KanbanBoard.LaneColumn una cita: toma el primer día de la línea (KanbanDateLaneDrop.ChangeDate, el valor predeterminado) — manteniendo su hora del día; sin fecha en Sin fecha; ninguna se omite en Atrasado — o los carriles de fecha no toman cartas entre ellos (KanbanDateLaneDrop.None). Sin efecto en otras líneas.
DateLaneOrderKanbanDateLaneOrder
Rank
Cómo se ordenan las cartas de los carrils de fecha, donde el KanbanBoard.LaneColumn es una fecha: por el KanbanBoard.RankColumn como otros carriles son (KanbanDateLaneOrder.Rank, el por defecto), o por la fecha en sí (KanbanDateLaneOrder.Date) — una carta que se coloca debajo otro toma su día, marcando su propio tiempo, uno se deja caer en la parte superior del carril el primer día, y No se usa la columna de rango. No afecta a otros carriles.
DateLanesIReadOnlyList<KanbanDateLane>?
Los carriles que una fecha KanbanBoard.LaneColumn indica, en orden de fecha: presets como KanbanDateLane.Today, KanbanDateLane.ThisMonth o KanbanDateLane.ThisFiscalQuarter — calculado en cada lectura de hoy en la de los usuarios Huso horario, la semana de la cultura y el año fiscal de la organización — o carriles propios (DateTime,System.DateTime) y similares). Cada uno empieza donde termina la anterior, de modo que cada carta cae en un solo carril como máximo; una carta cuya fecha Ningún hold no está en el tablero. Sin ellos, el siete por defecto (KanbanDateLane.Defaults): Atrasado, Hoy, Mañana, Esta semana, La semana que viene, Más tarde y Sin fecha. Un carril se titula por su KanbanDateLane.Title, o bien por el nombre de un preset. en el idioma del usuario, si no, es clave. Una nueva lista de los mismos carriles — uno escrito en línea en el marcado — no vuelve a iniciar el tablero; lo hacen otras líneas.
DefaultViewIdGuid?
La vista desde la que se abre el tablero. La mesa del tablero es la de la vista.
Editablebool
False
Si las cartas pueden moverse. Una carta se mueve cuando el usuario puede cambiar su registro y su carril columna, y — en los carriles de una razón de estado — las transiciones de estado de la tabla permiten el movimiento (Models.KanbanLane)): una línea solo ofrece los movimientos que hace, y un drop que la desecho vuelve. Una carta caída en un carril al que sus transiciones la cierran — una oportunidad ganada o Perdido, un caso resuelto, un presupuesto Ganado o Cerrado, un pedido Cumplido o Cancelado — está cerrado a través del propio mensaje de Dataverse: el consejo pregunta cómo — la razón, la línea en primer lugar, y Lo que registra el Close. Cualquier otro cambio de estado que hagan — reabrir una oportunidad, cancelar un caso, activar una cotización — se pide confirmar primero. Apagado por defecto.
EnforceLaneLimitsbool
False
Ya sea que el tablero se mantenga en KanbanBoard.LaneLimits: una línea llena no toma carta de otra — una caída allí vuelve atrás, y Mover a la deja fuera — y no ofrece carta nueva. Las cartas siguen moviéndose dentro de él. Apagado por defecto: un carril por encima de su límite solo está señalizado.
FormType?
La forma en la que se abre el registro de una tarjeta: un componente de los editores, mientras toma el diálogo de registro de una cuadrícula. Sin ella, una carta abre la página de su registro donde su tabla tiene una (KanbanBoard.ShowRecordLinks), Otra: KanbanDefaultFormlas columnas de la vista y la columna del carril.
FormLocationDialogLocation
Center
Donde se abre el registro de una carta: centrado, o en un panel lateral a la izquierda o derecha. Por defecto se pone centrado.
Heightstring
600px
Altura de toda la placa, incluida la barra de herramientas, como cualquier longitud CSS. Por defecto es 600px.
IncludeSearchInPersistedStatebool
False
Si la búsqueda se mantiene con el resto del estado. No tiene efecto sin KanbanBoard.PersistedStateQueryParameter.
LaneAggregateFormatsIReadOnlyDictionary<string, string>?
El formato en KanbanBoard.LaneAggregates el que se muestran los totales de cada columna se muestra en ('N0'), por su nombre.
LaneAggregatesIReadOnlyDictionary<string, QueryAggregate>?
Los totales que muestra el encabezado de cada carril al principio — una suma, un promedio, el mínimo, el máximo o un conteo de una columna, por su nombre. El usuario los cambia con el botón de Totales y un guardado La vista los mantiene.
LaneColumn*string
La columna de la que provienen los carriles: una elección, una razón de estado, un Sí/No, una consulta o una columna de fecha de la tabla del tablero. Cualquier otro muestra un mensaje en lugar del tablero. Los carriles de una columna de fecha son cuando cae, en días de la zona horaria del usuario: Vencido, Hoy, Mañana, Esta semana, La próxima semana, Más tarde y Sin fecha, o las páginas KanbanBoard.DateLanes (KanbanBoard.DateLaneDrop, KanbanBoard.DateLaneOrder).
LaneLimitsIReadOnlyDictionary<string, int>?
La mayor cantidad de cartas que debería tener cada carril, por KanbanLane.Key: cabecera de una línea limitada muestra su recuento respecto a su límite ('4 / 5'), y lo marca cuando el carril tiene más. El El recuento es el de todo el carril, sea lo que sea que muestren la búsqueda y los filtros del usuario. Un carril sin nombre No tiene límite.
LanesIEnumerable<string>?
En qué líneas se muestra el tablero, y en qué orden, por KanbanLane.Key: una opción valor ('1'), ' 1' y ' 0' de Sí/No, el ID de un registro, la clave de una línea de fechas (KanbanDateLane.Key: 'atrasado','hoy', ...), o una llave vacía para el Carril de cartas sin valor. Cada carril, en el orden de Dataverse, cuando no está dado. Para carriles de fecha Selecciona entre los KanbanBoard.DateLanes, cuyos días permanecen tal y como los definen.
LookupLanesIEnumerable<LookupValue>?
Los carriles de una consulta: uno para cada registro, en el orden indicado. Sin ellos, el tablero muestra un carril para cada registro, el nombre de las cartas de la vista.
PageSizeint
20
Las cartas que una línea lee a la vez; las siguientes vienen con su Carga más. Por defecto es 20.
PersistedStateQueryParameterstring?
El nombre de un parámetro de consulta URL para mantener el estado de la placa — la vista elegida, los carriles colapsado y (con KanbanBoard.IncludeSearchInPersistedState) la búsqueda — así que una recarga o un Link lo abre donde lo dejó. Cada cambio reemplaza la entrada de historial del navegador.
PrepareNewRecordFunc<KanbanNewRecord, Task>?
Prepara el registro de una nueva carta antes de que se abra su forma — desde el botón Añadir de una línea o KanbanBoardContext.NewAsync(PowerPortalsPro.Common.Models.KanbanLane) — una vez que el tablero le ha dado el valor de la línea: la Host establece valores predeterminados a través del indexador del registro (card. Record['column'] = valor), y Cada valor que establece se guarda junto con el registro. El formulario no se abre si se lanza, y el error también aparece se muestra como el is de un creador fallido.
RankColumnstring?
Una columna decimal donde el tablero guarda el orden de las cartas, a mano: cada carril está ordenado por ella, y una carta que se deja caer entre otras dos recibe un valor entre los suyos. Sin ella, las cartas siguen La vista es más o menos, y una carta solo se mueve a otro carril.
SaveChangeFunc<KanbanCardMove, Task<bool>>?
Guarda un movimiento en lugar del tablero; al devolver false la carta vuelve a poner, como cuando se rechaza la tirada. Sin ella, el tablero guarda la jugada en sí. Una jugada que cierra la La tarjeta se entrega una vez que el usuario ha explicado cómo, con la solicitud de enviar KanbanCardMove.Close; uno que cambia un estado que gobiernan las transiciones de la tabla, una vez que el usuario lo haya confirmado.
SavedViewsKeystring?
Nombra este tablero entre los controles de su tabla, así las vistas guardadas en él y las del usuario Las vistas predeterminadas y ocultas son propias. Sin una, el tablero comparte sus vistas con cada cuadrícula, calendario y tabla de la tabla que no tiene ninguna. Letras, dígitos, -, _ y...
ShowEmptyLanesbool
True
Si se muestra una línea sin cartas. Por defecto se muestra .true
ShowRecordLinksbool
True
Si las tarjetas enlazan a las páginas de sus registros, registradas en AddRecordPage, como cuadrículas las filas y consultas sí. Cuando la tabla del tablero tiene una página y el tablero recibe no KanbanBoard.Form, el título de una carta enlaza con la página de su registro y al abrir la tarjeta se lleva allí; una consulta en una carta enlaza a la página de su registro donde esa tabla tiene una. Una tabla sin página abre sus cartas en el cuadro de diálogo del tablero. Siempre se crea una nueva carta en el diálogo. Valor predeterminado true.
SignInUrlstring
Account/Login
Cuando un usuario que no está conectado es enviado a iniciar sesión, desde el menú de vistas guardadas; vuelve a aparecer a esta página. En relación con la dirección base de la app. Por defecto es Cuenta/Inicio de sesión.
Titlestring?
El encabezado del tablero, mostrado en lugar del selector de vistas cuando solo hay una vista.
ToolbarItemsRenderFragment?
Controles para la barra de herramientas — KanbanBoardButtons, o cualquier otro marcado — delante del cuadro de búsqueda.
ViewIdsIEnumerable<Guid>?
Otras vistas de la misma tabla el usuario puede cambiar, en el selector de vistas.
ViewSortViewSort
NameAscending
El orden de las vistas en el selector. Por defecto es ViewSort.NameAscending, como en una cuadrícula.
Nombre: AllowFiltering
Tipo: bool
Default: False
Descripción: Si el usuario puede cambiar los filtros de la vista, desde el menú de Filtros, como en una cuadrícula. Apagado por Por defecto: el usuario puede eliminar todos los filtros que tenga la vista.
Nombre: AllowNew
Tipo: bool
Default: True
Descripción: Si cada carril de un KanbanBoard.Editable tablero ofrece una nueva carta, con un botón de Añadir en su Cabecera: una que el usuario puede crear, en el valor del carril — ninguna en una línea de cartas cerradas, como una El registro se crea abierto. Por defecto es true.
Nombre: AllowSavedViews
Tipo: bool
Default: False
Descripción: Permitamos a los usuarios que han iniciado sesión guardar el tablero tal como lo han organizado — la vista que muestra con su filtros, los campos y ordenación de sus cartas, los totales de las líneas y las vías colapsadas o ocultas — como vistas propias, ofrecidas en el selector de vistas junto a las de la página, y eligen su vista predeterminada Y oculta las vistas que no usan. Desactivadas por defecto. Necesita la solución Power Portals Pro Core tablas de vistas guardadas; un usuario interno también necesita las vistas guardadas de Power Portals Pro Rol de seguridad.
Nombre: AllowSearch
Tipo: bool
Default: True
Descripción: Si la barra de herramientas tiene un cuadro de búsqueda. Por defecto es true.
Nombre: CardImageColumn
Tipo: string?
Descripción: Una columna de imagen que cada carta por defecto muestra como avatar junto a su título, como hacen las cartas de una cuadrícula.
Nombre: CardTemplate
Tipo: RenderFragment<KanbanCardContext>?
Descripción: El contenido de cada carta, en lugar de la predeterminada: su título — la primera columna de la vista — y las otras columnas de The View bajo sus títulos.
Nombre: CustomViewDefinitions
Tipo: List<ViewDefinition>?
Descripción: Vistas que define la página — las s de Models.ViewDefinitionla cuadrícula — ofrecidas en el selector junto KanbanBoard.ViewIds sin aparecer allí; KanbanBoard.DefaultViewId puede nombrar uno. A La placa puede tener solo estas opciones. Cada una se lee con su propio FetchXML y displace la tarjeta como indica (Models.ViewDefinition)): las cartas que lee una línea a la vez, la carta de sus columnas campos ocultos o titulados, y los totales de las líneas. Queda uno de otra tabla distinta al del tablero fuera. Construye la lista una vez — en un campo, no en línea en el marcado — mientras una nueva lista inicia el De nuevo a bordo.
Nombre: DateLaneDrop
Tipo: KanbanDateLaneDrop
Default: ChangeDate
Descripción: Lo que hace una carta caída en otra línea de citas, donde es KanbanBoard.LaneColumn una cita: toma el primer día de la línea (KanbanDateLaneDrop.ChangeDate, el valor predeterminado) — manteniendo su hora del día; sin fecha en Sin fecha; ninguna se omite en Atrasado — o los carriles de fecha no toman cartas entre ellos (KanbanDateLaneDrop.None). Sin efecto en otras líneas.
Nombre: DateLaneOrder
Tipo: KanbanDateLaneOrder
Default: Rank
Descripción: Cómo se ordenan las cartas de los carrils de fecha, donde el KanbanBoard.LaneColumn es una fecha: por el KanbanBoard.RankColumn como otros carriles son (KanbanDateLaneOrder.Rank, el por defecto), o por la fecha en sí (KanbanDateLaneOrder.Date) — una carta que se coloca debajo otro toma su día, marcando su propio tiempo, uno se deja caer en la parte superior del carril el primer día, y No se usa la columna de rango. No afecta a otros carriles.
Nombre: DateLanes
Tipo: IReadOnlyList<KanbanDateLane>?
Descripción: Los carriles que una fecha KanbanBoard.LaneColumn indica, en orden de fecha: presets como KanbanDateLane.Today, KanbanDateLane.ThisMonth o KanbanDateLane.ThisFiscalQuarter — calculado en cada lectura de hoy en la de los usuarios Huso horario, la semana de la cultura y el año fiscal de la organización — o carriles propios (DateTime,System.DateTime) y similares). Cada uno empieza donde termina la anterior, de modo que cada carta cae en un solo carril como máximo; una carta cuya fecha Ningún hold no está en el tablero. Sin ellos, el siete por defecto (KanbanDateLane.Defaults): Atrasado, Hoy, Mañana, Esta semana, La semana que viene, Más tarde y Sin fecha. Un carril se titula por su KanbanDateLane.Title, o bien por el nombre de un preset. en el idioma del usuario, si no, es clave. Una nueva lista de los mismos carriles — uno escrito en línea en el marcado — no vuelve a iniciar el tablero; lo hacen otras líneas.
Nombre: DefaultViewId
Tipo: Guid?
Descripción: La vista desde la que se abre el tablero. La mesa del tablero es la de la vista.
Nombre: Editable
Tipo: bool
Default: False
Descripción: Si las cartas pueden moverse. Una carta se mueve cuando el usuario puede cambiar su registro y su carril columna, y — en los carriles de una razón de estado — las transiciones de estado de la tabla permiten el movimiento (Models.KanbanLane)): una línea solo ofrece los movimientos que hace, y un drop que la desecho vuelve. Una carta caída en un carril al que sus transiciones la cierran — una oportunidad ganada o Perdido, un caso resuelto, un presupuesto Ganado o Cerrado, un pedido Cumplido o Cancelado — está cerrado a través del propio mensaje de Dataverse: el consejo pregunta cómo — la razón, la línea en primer lugar, y Lo que registra el Close. Cualquier otro cambio de estado que hagan — reabrir una oportunidad, cancelar un caso, activar una cotización — se pide confirmar primero. Apagado por defecto.
Nombre: EnforceLaneLimits
Tipo: bool
Default: False
Descripción: Ya sea que el tablero se mantenga en KanbanBoard.LaneLimits: una línea llena no toma carta de otra — una caída allí vuelve atrás, y Mover a la deja fuera — y no ofrece carta nueva. Las cartas siguen moviéndose dentro de él. Apagado por defecto: un carril por encima de su límite solo está señalizado.
Nombre: Form
Tipo: Type?
Descripción: La forma en la que se abre el registro de una tarjeta: un componente de los editores, mientras toma el diálogo de registro de una cuadrícula. Sin ella, una carta abre la página de su registro donde su tabla tiene una (KanbanBoard.ShowRecordLinks), Otra: KanbanDefaultFormlas columnas de la vista y la columna del carril.
Nombre: FormLocation
Tipo: DialogLocation
Default: Center
Descripción: Donde se abre el registro de una carta: centrado, o en un panel lateral a la izquierda o derecha. Por defecto se pone centrado.
Nombre: Height
Tipo: string
Default: 600px
Descripción: Altura de toda la placa, incluida la barra de herramientas, como cualquier longitud CSS. Por defecto es 600px.
Nombre: IncludeSearchInPersistedState
Tipo: bool
Default: False
Descripción: Si la búsqueda se mantiene con el resto del estado. No tiene efecto sin KanbanBoard.PersistedStateQueryParameter.
Nombre: LaneAggregateFormats
Tipo: IReadOnlyDictionary<string, string>?
Descripción: El formato en KanbanBoard.LaneAggregates el que se muestran los totales de cada columna se muestra en ('N0'), por su nombre.
Nombre: LaneAggregates
Tipo: IReadOnlyDictionary<string, QueryAggregate>?
Descripción: Los totales que muestra el encabezado de cada carril al principio — una suma, un promedio, el mínimo, el máximo o un conteo de una columna, por su nombre. El usuario los cambia con el botón de Totales y un guardado La vista los mantiene.
Nombre: LaneColumn*
Tipo: string
Descripción: La columna de la que provienen los carriles: una elección, una razón de estado, un Sí/No, una consulta o una columna de fecha de la tabla del tablero. Cualquier otro muestra un mensaje en lugar del tablero. Los carriles de una columna de fecha son cuando cae, en días de la zona horaria del usuario: Vencido, Hoy, Mañana, Esta semana, La próxima semana, Más tarde y Sin fecha, o las páginas KanbanBoard.DateLanes (KanbanBoard.DateLaneDrop, KanbanBoard.DateLaneOrder).
Nombre: LaneLimits
Tipo: IReadOnlyDictionary<string, int>?
Descripción: La mayor cantidad de cartas que debería tener cada carril, por KanbanLane.Key: cabecera de una línea limitada muestra su recuento respecto a su límite ('4 / 5'), y lo marca cuando el carril tiene más. El El recuento es el de todo el carril, sea lo que sea que muestren la búsqueda y los filtros del usuario. Un carril sin nombre No tiene límite.
Nombre: Lanes
Tipo: IEnumerable<string>?
Descripción: En qué líneas se muestra el tablero, y en qué orden, por KanbanLane.Key: una opción valor ('1'), ' 1' y ' 0' de Sí/No, el ID de un registro, la clave de una línea de fechas (KanbanDateLane.Key: 'atrasado','hoy', ...), o una llave vacía para el Carril de cartas sin valor. Cada carril, en el orden de Dataverse, cuando no está dado. Para carriles de fecha Selecciona entre los KanbanBoard.DateLanes, cuyos días permanecen tal y como los definen.
Nombre: LookupLanes
Tipo: IEnumerable<LookupValue>?
Descripción: Los carriles de una consulta: uno para cada registro, en el orden indicado. Sin ellos, el tablero muestra un carril para cada registro, el nombre de las cartas de la vista.
Nombre: PageSize
Tipo: int
Default: 20
Descripción: Las cartas que una línea lee a la vez; las siguientes vienen con su Carga más. Por defecto es 20.
Nombre: PersistedStateQueryParameter
Tipo: string?
Descripción: El nombre de un parámetro de consulta URL para mantener el estado de la placa — la vista elegida, los carriles colapsado y (con KanbanBoard.IncludeSearchInPersistedState) la búsqueda — así que una recarga o un Link lo abre donde lo dejó. Cada cambio reemplaza la entrada de historial del navegador.
Nombre: PrepareNewRecord
Tipo: Func<KanbanNewRecord, Task>?
Descripción: Prepara el registro de una nueva carta antes de que se abra su forma — desde el botón Añadir de una línea o KanbanBoardContext.NewAsync(PowerPortalsPro.Common.Models.KanbanLane) — una vez que el tablero le ha dado el valor de la línea: la Host establece valores predeterminados a través del indexador del registro (card. Record['column'] = valor), y Cada valor que establece se guarda junto con el registro. El formulario no se abre si se lanza, y el error también aparece se muestra como el is de un creador fallido.
Nombre: RankColumn
Tipo: string?
Descripción: Una columna decimal donde el tablero guarda el orden de las cartas, a mano: cada carril está ordenado por ella, y una carta que se deja caer entre otras dos recibe un valor entre los suyos. Sin ella, las cartas siguen La vista es más o menos, y una carta solo se mueve a otro carril.
Nombre: SaveChange
Tipo: Func<KanbanCardMove, Task<bool>>?
Descripción: Guarda un movimiento en lugar del tablero; al devolver false la carta vuelve a poner, como cuando se rechaza la tirada. Sin ella, el tablero guarda la jugada en sí. Una jugada que cierra la La tarjeta se entrega una vez que el usuario ha explicado cómo, con la solicitud de enviar KanbanCardMove.Close; uno que cambia un estado que gobiernan las transiciones de la tabla, una vez que el usuario lo haya confirmado.
Nombre: SavedViewsKey
Tipo: string?
Descripción: Nombra este tablero entre los controles de su tabla, así las vistas guardadas en él y las del usuario Las vistas predeterminadas y ocultas son propias. Sin una, el tablero comparte sus vistas con cada cuadrícula, calendario y tabla de la tabla que no tiene ninguna. Letras, dígitos, -, _ y...
Nombre: ShowEmptyLanes
Tipo: bool
Default: True
Descripción: Si se muestra una línea sin cartas. Por defecto se muestra .true
Nombre: ShowRecordLinks
Tipo: bool
Default: True
Descripción: Si las tarjetas enlazan a las páginas de sus registros, registradas en AddRecordPage, como cuadrículas las filas y consultas sí. Cuando la tabla del tablero tiene una página y el tablero recibe no KanbanBoard.Form, el título de una carta enlaza con la página de su registro y al abrir la tarjeta se lleva allí; una consulta en una carta enlaza a la página de su registro donde esa tabla tiene una. Una tabla sin página abre sus cartas en el cuadro de diálogo del tablero. Siempre se crea una nueva carta en el diálogo. Valor predeterminado true.
Nombre: SignInUrl
Tipo: string
Default: Account/Login
Descripción: Cuando un usuario que no está conectado es enviado a iniciar sesión, desde el menú de vistas guardadas; vuelve a aparecer a esta página. En relación con la dirección base de la app. Por defecto es Cuenta/Inicio de sesión.
Nombre: Title
Tipo: string?
Descripción: El encabezado del tablero, mostrado en lugar del selector de vistas cuando solo hay una vista.
Nombre: ToolbarItems
Tipo: RenderFragment?
Descripción: Controles para la barra de herramientas — KanbanBoardButtons, o cualquier otro marcado — delante del cuadro de búsqueda.
Nombre: ViewIds
Tipo: IEnumerable<Guid>?
Descripción: Otras vistas de la misma tabla el usuario puede cambiar, en el selector de vistas.
Nombre: ViewSort
Tipo: ViewSort
Default: NameAscending
Descripción: El orden de las vistas en el selector. Por defecto es ViewSort.NameAscending, como en una cuadrícula.

Métodos

Nombre
Parámetros
Tipo
Descripción
RefreshAsyncTask
Lee todos los carriles mostrados otra vez.
Nombre: RefreshAsync
Tipo: Task
Descripción: Lee todos los carriles mostrados otra vez.