Quadro Kanban

Ele KanbanBoard mostra os registros de uma tabela como cartas em faixas lado a lado, uma faixa para cada valor de uma coluna: a avaliação de uma oportunidade, o motivo do status da tarefa, a conta à qual pertence um registro. Cada faixa é lida separadamente por meio de uma visualização, página por vez, com a mesma consulta e segurança de uma grade, e mostra sua contagem e totais em seu cabeçalho. No Editable tabuleiro, uma carta se move para outra faixa arrastando-a, do teclado ou pelo menu Mover para o menu, e o movimento é salvo imediatamente; com uma coluna de classificação, as cartas também são ordenadas à mão. Ela é desenhada no tema da sua interface Fluente.

React Blazor

Abrir oportunidades por avaliação

As oportunidades abertas dos dados de amostra da demonstração, através da própria visualização Open Opportunities do Dataverse: uma faixa para cada avaliação, com a contagem da faixa e a receita estimada em seu cabeçalho. Lanes Deixa de fora a faixa de oportunidades sem uma classificação. A demo do Kanban Board mostra o mesmo quadro com movimentos, visualizações, filtros e visualizações salvas.

Exemplo de reação Exemplo de Blazor React TypeScript Razor
Quente 15
Receita estimada · Soma
$ 8.575.220
Cliente em potencial
Barton, Koepp and Cronin
Data de fechamento do est.
25/11/2026
Receita estimada
$130.656,70
Contato
Boris Price
Probabilidade
66
E-mail
Cliente em potencial
Sanford, Grimes and Satterfield
Data de fechamento do est.
07/12/2026
Receita estimada
$1.370.311,27
Probabilidade
79
E-mail
Cliente em potencial
Sawayn - Kshlerin
Data de fechamento do est.
18/12/2026
Receita estimada
$482.660,34
Probabilidade
68
E-mail
Cliente em potencial
Lubowitz - Considine
Data de fechamento do est.
04/01/2027
Receita estimada
$549.409,37
Probabilidade
66
E-mail
Cliente em potencial
Lebsack, Homenick and Carter
Data de fechamento do est.
12/01/2027
Receita estimada
$1.056.303,32
Probabilidade
71
E-mail
Cliente em potencial
Metz, Barrows and Nicolas
Data de fechamento do est.
25/01/2027
Receita estimada
$125.977,18
Probabilidade
63
E-mail
Cliente em potencial
Considine Inc
Data de fechamento do est.
08/02/2027
Receita estimada
$390.063,19
Probabilidade
60
E-mail
Cliente em potencial
Kemmer LLC
Data de fechamento do est.
22/02/2027
Receita estimada
$572.745,67
Contato
Mateo Hammes
Probabilidade
86
E-mail
Cliente em potencial
Connelly, Cassin and Ledner
Data de fechamento do est.
12/03/2027
Receita estimada
$206.661,20
Probabilidade
75
E-mail
Data de fechamento do est.
10/05/2027
Receita estimada
$1.150.358,11
Contato
Laurel Ferry
Probabilidade
63
E-mail
Cliente em potencial
Ebert, Marks and Tillman
Data de fechamento do est.
25/05/2027
Receita estimada
$415.395,06
Probabilidade
66
E-mail
Cliente em potencial
Feest, Halvorson and Lueilwitz
Data de fechamento do est.
04/08/2027
Receita estimada
$289.844,16
Probabilidade
83
E-mail
Data de fechamento do est.
23/08/2027
Receita estimada
$691.221,38
Contato
Mason Fay
Probabilidade
65
E-mail
Cliente em potencial
Schmeler and Sons
Data de fechamento do est.
03/03/2028
Receita estimada
$710.120,48
Contato
Yvette Kutch
Probabilidade
70
E-mail
Cliente em potencial
Zulauf - Hermiston
Data de fechamento do est.
07/04/2028
Receita estimada
$433.492,70
Contato
Kip Emard
Probabilidade
82
E-mail
Quentinho 27
Receita estimada · Soma
$ 17.938.956
Cliente em potencial
Durgan and Sons
Data de fechamento do est.
30/11/2026
Receita estimada
$1.011.637,54
Contato
Connor Marks
Probabilidade
40
E-mail
Cliente em potencial
Schaden, Cronin and Daniel
Data de fechamento do est.
30/11/2026
Receita estimada
$435.072,03
Contato
Skyla Huels
Probabilidade
36
E-mail
Cliente em potencial
Cremin - Hodkiewicz
Data de fechamento do est.
03/12/2026
Receita estimada
$148.163,91
Probabilidade
33
E-mail
Cliente em potencial
Hickle Group
Data de fechamento do est.
07/12/2026
Receita estimada
$737.788,26
Contato
Derick Hayes
Probabilidade
34
E-mail
Cliente em potencial
Rippin, Connelly and Hills
Data de fechamento do est.
01/01/2027
Receita estimada
$735.737,57
Contato
Lucio Kunde
Probabilidade
47
E-mail
Cliente em potencial
Marks - Dickinson
Data de fechamento do est.
05/01/2027
Receita estimada
$39.194,35
Probabilidade
43
E-mail
Cliente em potencial
Mosciski - Crist
Data de fechamento do est.
11/01/2027
Receita estimada
$771.992,39
Probabilidade
46
E-mail
Cliente em potencial
Altenwerth, D'Amore and Mante
Data de fechamento do est.
22/01/2027
Receita estimada
$1.156.824,28
Probabilidade
63
E-mail
Cliente em potencial
Boyle, Zulauf and Lakin
Data de fechamento do est.
25/01/2027
Receita estimada
$71.261,52
Contato
Newton Towne
Probabilidade
59
E-mail
Cliente em potencial
Willms, Heathcote and Veum
Data de fechamento do est.
27/01/2027
Receita estimada
$984.770,91
Probabilidade
44
E-mail
Cliente em potencial
Olson, Buckridge and Lehner
Data de fechamento do est.
18/02/2027
Receita estimada
$119.603,87
Probabilidade
60
E-mail
Cliente em potencial
Pollich - Kling
Data de fechamento do est.
18/02/2027
Receita estimada
$175.582,97
Probabilidade
41
E-mail
Cliente em potencial
Wiza, Bradtke and Hintz
Data de fechamento do est.
22/02/2027
Receita estimada
$1.235.451,27
Probabilidade
56
E-mail
Cliente em potencial
Schaden, Cronin and Daniel
Data de fechamento do est.
24/02/2027
Receita estimada
$1.190.737,60
Contato
Skyla Huels
Probabilidade
57
E-mail
Cliente em potencial
Schmeler and Sons
Data de fechamento do est.
01/03/2027
Receita estimada
$227.834,34
Contato
Yvette Kutch
Probabilidade
58
E-mail
Cliente em potencial
Dietrich and Sons
Data de fechamento do est.
08/03/2027
Receita estimada
$819.872,67
Probabilidade
54
E-mail
Cliente em potencial
Lang LLC
Data de fechamento do est.
09/03/2027
Receita estimada
$829.816,90
Conta
Lang LLC
Probabilidade
67
E-mail
Cliente em potencial
Raynor - Lakin
Data de fechamento do est.
15/03/2027
Receita estimada
$307.419,81
Probabilidade
61
E-mail
Cliente em potencial
Lehner - Harvey
Data de fechamento do est.
22/03/2027
Receita estimada
$410.838,91
Probabilidade
50
E-mail
Cliente em potencial
Bartoletti, Ratke and Beatty
Data de fechamento do est.
01/04/2027
Receita estimada
$446.204,78
Probabilidade
32
E-mail
Carregue mais
Frio 49
Receita estimada · Soma
$ 31.899.104
Cliente em potencial
Dietrich and Sons
Data de fechamento do est.
01/05/2026
Receita estimada
$1.385.065,89
Contato
Heath Kunde
Probabilidade
39
E-mail
Cliente em potencial
Brekke LLC
Data de fechamento do est.
16/06/2026
Receita estimada
$107.756,58
Contato
Jayne Johns
Probabilidade
31
E-mail
Cliente em potencial
Kunde - Herman
Data de fechamento do est.
03/08/2026
Receita estimada
$636.288,55
Contato
Moses Wolff
Probabilidade
39
E-mail
Cliente em potencial
Weber - Reichert
Data de fechamento do est.
28/09/2026
Receita estimada
$1.122.798,39
Contato
Hailee Hyatt
Probabilidade
31
E-mail
Cliente em potencial
Konopelski - Okuneva
Data de fechamento do est.
14/10/2026
Receita estimada
$217.858,35
Probabilidade
22
E-mail
Cliente em potencial
Balistreri, Heller and Murphy
Data de fechamento do est.
09/11/2026
Receita estimada
$1.018.696,47
Probabilidade
22
E-mail
Cliente em potencial
Terry, Harvey and Simonis
Data de fechamento do est.
18/11/2026
Receita estimada
$337.530,84
Probabilidade
27
E-mail
Cliente em potencial
Huel - Kerluke
Data de fechamento do est.
19/11/2026
Receita estimada
$1.317.474,26
Contato
Nelda Wiza
Probabilidade
24
E-mail
Cliente em potencial
Prosacco, Crist and Lowe
Data de fechamento do est.
01/12/2026
Receita estimada
$513.370,29
Probabilidade
29
E-mail
Cliente em potencial
Stanton - Jacobi
Data de fechamento do est.
03/12/2026
Receita estimada
$172.312,41
Contato
Noelia Doyle
Probabilidade
15
E-mail
Cliente em potencial
Mohr and Sons
Data de fechamento do est.
04/12/2026
Receita estimada
$793.132,09
Contato
Wendell Haag
Probabilidade
21
E-mail
Cliente em potencial
Hyatt - Toy
Data de fechamento do est.
07/12/2026
Receita estimada
$70.277,23
Contato
Aileen Walsh
Probabilidade
26
E-mail
Cliente em potencial
Luettgen, Goldner and Rowe
Data de fechamento do est.
14/12/2026
Receita estimada
$600.667,70
Contato
Carmine Mraz
Probabilidade
33
E-mail
Cliente em potencial
Miller LLC
Data de fechamento do est.
30/12/2026
Receita estimada
$728.837,15
Contato
Nick Block
Probabilidade
15
E-mail
Data de fechamento do est.
06/01/2027
Receita estimada
$460.649,79
Probabilidade
39
E-mail
Cliente em potencial
Waelchi, Murazik and Considine
Data de fechamento do est.
14/01/2027
Receita estimada
$1.313.333,75
Contato
Thelma Yost
Probabilidade
27
E-mail
Cliente em potencial
Metz LLC
Data de fechamento do est.
18/01/2027
Receita estimada
$639.662,46
Conta
Metz LLC
Probabilidade
22
E-mail
Cliente em potencial
West Group
Data de fechamento do est.
19/01/2027
Receita estimada
$556.780,20
Probabilidade
23
E-mail
Cliente em potencial
Lockman, Marvin and Weissnat
Data de fechamento do est.
25/01/2027
Receita estimada
$401.400,71
Probabilidade
34
E-mail
Cliente em potencial
Boyer - Schaefer
Data de fechamento do est.
05/02/2027
Receita estimada
$363.037,14
Contato
Jena Stamm
Probabilidade
30
E-mail
Carregue mais

Faixas

LaneColumn (Reagir: laneColumn) nomeia a coluna da tabela da vista de onde vêm as faixas. Uma escolha indica uma faixa para cada uma de suas opções, um motivo de status para cada motivo, uma coluna Sim/Não para cada um de seus dois valores, uma consulta para cada registro nomeado, e uma data das faixas em que ela cai, conforme descreve o site Date lanes abaixo. Qualquer outra coluna mostra uma mensagem no lugar do tabuleiro. As faixas seguem a ordem do Dataverse e deixam de fora opções ocultas, e a cor de uma opção aparece como um ponto ao lado do nome da sua faixa. Uma coluna que um registro pode deixar vazia adiciona uma última faixa, (Sem valor), para as cartas sem uma.

Lanes (Reagir: lanes) escolhe quais faixas são mostradas e em que ordem, por chave: o valor de uma opção, 1 e 0 para Sim e Não, o id de um registro, ou uma chave vazia para a faixa sem valor. As faixas de uma consulta são os registros que as cartas da visualização nomeiam, lidas em uma consulta agrupada; nome-as em LookupLanes (Reagir: lookupLanes) para fixá-las e sua ordem, uma faixa sem cartas incluídas.

React Blazor

Uma faixa sem cartas é mostrada, então uma carta pode ser deixada nela. Defina ShowEmptyLanes (Reagir: showEmptyLanes) para false ocultá-la assim que sua contagem for conhecida. Os usuários podem colapsar uma faixa em uma faixa estreita com seu nome e contar com o botão no cabeçalho, e esconder as faixas no menu Filtro da barra de ferramentas, que as lista em Mostrar.

React Blazor

Faixas de encontro

Uma coluna de data mostra as faixas de quando sua data cai, contadas em dias do próprio fuso horário do usuário, com a semana começando no primeiro dia da língua dele, e calculadas novamente cada vez que o quadro lê suas faixas. Sem nenhuma nomeada, elas são Atrasadas, Hoje, Amanhã, Esta semana — do dia depois de amanhã até o fim da semana, então vazias perto do fim da semana — Próxima semana, Até Tarde e Sem data.

DateLanes(Reagir: dateLanes) nomeia as faixas em vez disso, em ordem de data. Um preset estabelece uma faixa a partir da data atual: Yesterday, Today e Tomorrow; LastWeek, ThisWeek e NextWeek; LastMonth; NextMonthThisMonth e ; os trimestres e anos do calendário, como ThisCalendarQuarter e NextCalendarYear, e os fiscais, como ThisFiscalQuarter e LastFiscalYear, que seguem o ano fiscal da organização conforme o Dataverse o mantém; Overdue, antes de hoje; Earlier e Later, que tomam o que ocorre antes e depois das faixas ao redor; e NoDate. Uma faixa sua conta dias exatos, ou dias contados dos períodos de hoje, sob um título próprio: Between, Before e Starting (Reagir: between, before e starting). Um preset também recebe um título próprio. Experimente na demonstração de datas de fechamento.

Cada carta cai em uma faixa, pois uma faixa começa não antes de onde a anterior termina: listada após ThisWeek, ThisMonth segura o restante do mês, e uma faixa que as anteriores já cobrem mostra vazia e não aceita carta. Uma data em que nenhuma faixa vale — entre duas faixas de dias exatos — coloca sua carta em nenhuma, então comece com Earlier e termine com Later para manter todas as cartas.

React Blazor

Uma carta movida para outra faixa de data recebe o primeiro dia dessa faixa, mantendo seu horário — uma faixa atrás de hoje também, o que lhe dá uma data passada — e movida para Sem data, perde sua data. Uma faixa sem um primeiro dia, como Atrasado, um primeiro Antes ou uma faixa vazia, não aceita carta. Defina DateLaneDrop (Reaja ) dateLaneDrope None as faixas não recebem cartas umas das outras: elas só aparecem quando cartas caem.

DateLaneOrder (Reagir: dateLaneOrder) ordena as cartas de uma lane de data. Rank , o padrão, ordena pela coluna de valor, como todas as outras lane: uma carta movida dentro de sua lane muda seu valor sozinha. Date ordena por data, sem coluna de valor: uma carta caída abaixo de outra fica no dia daquela carta, mantendo seu próprio tempo, e uma caída no topo fica no primeiro dia da lane; cartas do mesmo dia permanecem na ordem dos tempos. Tente na demo de datas de vencimento.

React Blazor

Contagens e totais

O cabeçalho de cada faixa mostra quantas cartas ela possui — 5000+ além de 5.000 — e os totais nomeados em LaneAggregates (Reagir: laneAggregates): a soma, média, menor ou maior parte de um número, coluna de dinheiro ou data, ou uma contagem de qualquer coluna, sobre cada carta da faixa, não apenas aquelas carregadas. LaneAggregateFormats (Reagir: laneAggregateFormats) dá um formato para as figuras de cada coluna, como C0 ou N1. Esses são os totais com que o tabuleiro começa: o botão Totais permite que os usuários escolham suas próprias colunas que as cartas mostram, e uma visualização salva as mantém. Contagens e totais são lidos novamente após cada movimento salvo pelo tabuleiro.

React Blazor

Limites das faixas

LaneLimits (Reagir: laneLimits) dá às rotas, por chave, o maior número de cartas que elas devem ter. O cabeçalho de uma rota limitada mostra sua contagem contra o limite, como 7/5, marcada após a contagem passar. A contagem é de todas as cartas da rota, o que o usuário procurar ou filtrar. Um limite só avisa a menos que EnforceLaneLimits (Reagir: enforceLaneLimits) seja definido: aí uma rota cheia não pega nenhuma carta de outra, não é oferecida em Mover para e não tem botão Adicionar. É regra do tabuleiro, não do servidor: mantenha um limite para cada forma como um registro é salvo com um interceptor.

React Blazor

Cartas

Uma carta mostra a primeira coluna da vista como seu título e as outras colunas da vista sob seus títulos, como as cartas da grade, deixando de fora a coluna da faixa e a coluna de rank. CardImageColumn (Reagir: cardImageColumn) adiciona uma coluna de imagem como avatar ao lado do título. Cada faixa carrega PageSize (Reagir: pageSize) cartas por vez, 20 por padrão, com Carregar mais em seu base. Nas Configurações, os usuários mudam os campos que as cartas mostram, como as cartas de uma faixa são ordenadas e quantas cada faixa carrega.

Desenhe as cartas do seu jeito com CardTemplate (Reagir: cardRenderer). Ele recebe o registro e a lane de cada carta; Field , Label e DisplayValue (Reagir: field, label e displayValue) mostram uma coluna como a carta padrão, e OpenAsync e MoveToAsync (Reagir: open e moveTo) abrir o registro e mover a carta, onde CanOpen e CanMove digam que podem. Um clique no cartão ainda abre seu registro, e seu menu Mover para o Movimento fica ao lado do seu conteúdo. As colunas que um modelo mostra devem ser as da visualização, então o quadro as lê com cada carta.

React Blazor

Tarefas, desenhadas do seu próprio jeito

As tarefas da demo passam pela própria visualização de Todas as Tarefas do Dataverse, uma faixa para cada motivo de status de Não Iniciado a Cancelado, cinco cartões por vez. A CardTemplate (Reagir: cardRenderer) mostra o assunto de cada tarefa, sobre o que ela trata, quando vence e sua prioridade, os mais altos em vermelho.

Exemplo de reação Exemplo de Blazor React TypeScript Razor CSS
Ainda não começou 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
Carregue mais
Em andamento 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
Carregue mais
Esperando por outra pessoa 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
Carregue mais
Diferido 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
Carregue mais
Concluído 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
Carregue mais
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
Carregue mais

Quando a tabela do tabuleiro tem uma página registrada para seus registros (veja Páginas de Registro) e o tabuleiro não Form tem (Reagir: form), o título de uma carta faz link para ela, e abrir a carta vai para lá; ShowRecordLinks (Reagir: showRecordLinks) desativa isso. Caso contrário, clicar em uma carta abre seu registro em um diálogo no centro ou, com FormLocation (Reagir: formLocation), em um painel lateral à esquerda ou à direita. A forma é KanbanDefaultForm — as colunas da vista da tabela do tabuleiro e da coluna da faixa, cada uma com o editor que seu tipo ocupa — ou seu próprio componente de editores em Form (Reagir: form). O registro é lido como uma página de registro o lê, através do mesmo acesso à tabela e segurança da coluna, e só pode ser alterado em um Editable quadro, por um usuário que pode alterá-lo.

Cartas móveis

Em um Editable tabuleiro (React: editable), os usuários movem uma carta para outra faixa arrastando-a, do teclado ou pelo menu Mover para o menu da carta. A carta se move de uma vez, e o tabuleiro salva o que mudou: a coluna da rota — por um motivo de status, apenas o motivo, já que o servidor move o estado do registro junto com ela — e o valor da carta, onde o tabuleiro mantém uma. Um save que falha coloca a carta de volta e diz isso.

Uma carta só se move onde o usuário pode alterá-la: Escreva em seu registro, através do acesso à tabela do portal e na coluna de faixa, que deve ser uma que uma atualização pode configurar e essa coluna que a segurança não retenha. Colocar cartas em ordem também precisa Escrever na coluna de rank. Uma carta que o usuário não pode mover permanece onde está, sem Mover para o menu.

As faixas de razão de status seguem seus estados e as mudanças de estado que a tabela permite, com as quais o servidor se AddStateTransitions registra (veja RecordContext). Oportunidades, casos, cotações e ordens as têm por padrão: uma carta não é tomada por uma faixa que seu registro não pode alcançar a partir de si mesmo, e o Move to lista apenas as rotas que pode. Uma mudança de status feita por uma atualização — uma oportunidade reaberta, um caso cancelado ou reativado, uma cotação ativada, uma ordem enviada — pede ao usuário que confirme primeiro, e uma ação própria do Dataverse abre o diálogo de fechar, como os registros de fechamento abaixo descrevem. As cartas de status fechado não são colocadas em outra ordem entre si. Uma tabela sem transições se move livremente: uma tarefa movida para Concluído é concluída e movida de volta, aberta novamente.

React Blazor

Adição de cartas

O cabeçalho de cada faixa em um Editable quadro possui um botão Adicionar que abre um novo registro já naquela faixa, na forma do quadro: o ( Form Reagir: form) ou KanbanDefaultForm. Ele mostra apenas para os usuários que podem criar os registros da tabela e definir sua coluna de faixa, e nunca em uma faixa de registros fechados, pois um registro é criado aberto. Uma vez salvo, o cartão aparece no topo de sua faixa. Desligue-o com AllowNew (Reagir: allowNew). Handle PrepareNewRecord (React: prepareNewRecord) para dar mais valores ao novo registro antes de sua forma abrir: ele recebe o registro, o valor da faixa já nele e a faixa. Um botão de barra de ferramentas também pode adicionar uma carta: CanCreate e NewAsync no KanbanBoardContext (React: canCreate e newCard) digam se uma lane pega uma nova carta e abre sua forma — sem nenhuma lane nomeada, na primeira que aceita uma.

React Blazor
React Blazor

Registros de encerramento

Em um quadro por razão de status, uma carta dropada em uma faixa na qual o Dataverse fecha registros com uma ação própria — Ganho ou Perdido de uma oportunidade, Resolvido de um caso, Ganho ou Fechado de uma cotação, Cumprido ou Cancelado de uma ordem — abre uma caixa de diálogo com o motivo de status, a faixa inicial e o que o fechamento registra: a receita real e a data de fechamento de uma oportunidade ganha; a data de fechamento de uma perdida, e o concorrente para o qual foi perdida onde o usuário pode escolher concorrentes; a resolução e o tempo faturável de um caso; a data de fechamento de uma cotação ou uma ordem; e uma descrição. Confirmado, o registro é fechado por meio da própria mensagem do Dataverse, como WinOpportunity ou CloseIncident; cancelado, o cartão volta para trás. Arrastado de volta para uma faixa aberta, uma oportunidade é reaberta e um caso reativado assim que o usuário confirma. Tente na demo do Pipeline. O mesmo diálogo está atrás dos botões de fechar no formulário de um registro, como WinOpportunityButton: veja RecordContext.

Um fechamento é julgado como uma alteração do status do registro: o usuário deve poder alterar o registro e suas colunas de status, além de apontar para o concorrente que nomear. O Dataverse arquiva o fechamento sob o registro como uma atividade própria (opportunityclose, incidentresolution, quoteclose, orderclose), que não precisa de acesso à tabela sua. O usuário da aplicação do portal precisa de AppendTo na tabela do registro, Criar e Anexar nas atividades, e para uma oportunidade AppendTo em concorrentes: veja Dataverse Connection.

React Blazor

Colocando as cartas em ordem

Nomeie uma RankColumn (Reagir: rankColumn) e os usuários colocam as cartas de cada faixa em ordem manualmente. Uma faixa é ordenada pelo valor, depois pela ordenação da vista, e uma carta caída entre duas outras recebe um valor entre as deles. Normalmente, esse valor é tudo o que um drop escreve. Cartas sem valor se classificam primeiro, e são ranqueadas por turno quando uma carta é largada entre elas ou logo abaixo delas; uma faixa cujos valores não têm espaço entre duas cartas é classificada de novo, na ordem em que mostra. Essas posições são salvas com o movimento, em uma única transação. Uma faixa com mais de 5.000 cartas não pode ser ordenada manualmente, nem uma carta pode ser descartada onde ela colocaria uma que o usuário não pode mudar. Sem uma coluna de classificação, uma faixa segue a ordem da visualização, e uma carta se move apenas para outra faixa.

A coluna de valor é uma coluna decimal da tabela do tabuleiro cujo alcance permite números negativos, já que uma carta caída acima da primeira está classificada abaixo dela. Sua precisão determina com que frequência uma rota é classificada de novo: cartas começam com um milhão de diferença, e cada queda entre duas metades divide a sala entre elas, então uma coluna de dez casas decimais precisa de cerca de cinquenta quedas em um lugar antes de sua faixa ser classificada novamente, e uma de nenhuma cerca de vinte.

React Blazor

Salvando movimentos você mesmo

Handle SaveChange (Reagir: onCardMove) para salvar um movimento do seu jeito, no lugar do tabuleiro: por meio de um serviço seu, após pedir ao usuário, ou não fazer nada. Recebe um KanbanCardMove: as cartas Recordda carta , as rotas em que ela veio From e saiu To, está Index lá e é Rank, o Update tabuleiro escreveria, e o OtherUpdates que pertence à mesma transação, escrito depois dela — os valores de outras cartas, ou, para uma carta que sai de uma faixa fechada, seu próprio valor quando seu status a reabriu — e, para uma carta caída em uma faixa que a fecha, o Close (Reagir: close) o usuário confirmou, para enviar depois dele. Volte true para manter a carta onde foi deixada, ou false para colocá-la de volta. O quadro não lê nada novamente após um movimento que não salvou, então uma página pode manter um movimento apenas na página.

React Blazor

Leitores de teclado, toque e tela

Cada carta que pode se mover tem um ... botão com um menu Mover para as pistas para onde pode ir, que funciona da mesma forma pelo teclado, por toque e com leitor de tela. Uma carta também pode ser movida diretamente do teclado: foque-a, pressione Espaço para pegar, as setas para levá-la para outra faixa ou outro lugar em si mesma, e Espaço novamente para colocá-la. Em uma tela sensível ao toque, uma carta é arrastada pela empunhadura, então as faixas ainda rolam sob um dedo. Os leitores de tela ouvem cada movimento — Carta movida para Faixa — e um movimento que falha.

Barra de Ferramentas

A barra de ferramentas é organizada como uma grade: o seletor de visualização à esquerda — ou o Title (React: title), quando há apenas uma visualização — e à direita seus próprios controles, Totais, a caixa de busca, Filtro, Atualizar e Configurações. Adicione seus controles com ToolbarItems (React: os filhos do tabuleiro). A KanbanBoardButton recebe o quadro ao clicar: sua tabela, a visão que mostra, suas faixas em ordem e RefreshAsync (React: refresh) para ler todas as faixas novamente.

React Blazor

Visualizações, busca e filtros

Um quadro mostra os registros de uma visualização — uma do Dataverse ou uma que a página define — e sua tabela é a da visualização. DefaultViewId (Reagir: defaultViewId) é a visualização em que ela se abre, e ViewIds (Reagir: viewIds) as outras que o seletor de visualização oferece, da mesma tabela. A caixa de busca encontra cartas enquanto a busca de uma grade encontra linhas: desde o início do valor de uma coluna de busca, ou em qualquer lugar após um início *. Ela olha nas colunas que as cartas mostram, nomeia-as em sua dica de ferramenta e marca as correspondências nas cartas. Desligue com AllowSearch (Reagir: allowSearch).

Com AllowFiltering (Reagir: allowFiltering), o menu Filtro da barra de ferramentas oferece filtros de Editar, o botão de Filtro da grade de diálogo se abre, cujos filtros substituem os da visualização até que o usuário escolha outra visualização. Ele está desativado por padrão, porque o usuário pode remover todos os filtros que a visualização possui.

Com (Reagir: allowSavedViews), um usuário logado pode salvar o tabuleiro como organizou — a visualização com seus filtros, os campos e ordenação das cartas, os totais das faixas, as cartas que AllowSavedViews cada faixa carrega e as faixas colapsadas ou ocultas — como uma visualização própria, e escolher a visualização padrão e esconder as que não usar, no menu Filtro. Sem um SavedViewsKey (Reagir: savedViewsKey), um tabuleiro compartilha suas visualizações com as grades, calendários e tabuleiros da sua mesa que não têm nenhuma, cada um mantendo seu próprio layout delas. Como as visualizações são salvas, alteradas e compartilhadas está na página de Visualizações Salvas.

React Blazor

Uma página pode definir suas próprias visualizações em código com CustomViewDefinitions (React: customViewDefinitions), as definições de visualização da grade. Elas são oferecidas no seletor ao lado ViewIds sem estarem listadas lá, DefaultViewId pode nomear uma, e um tabuleiro pode ter apenas essas imagens. Cada uma é lida por seu próprio FetchXML, dentro do acesso à tabela do usuário, e dispõe o tabuleiro como diz: são PageSize as cartas que uma lane carrega, as Hidden de uma coluna e DisplayLabel esconder ou renomear seu campo de cartas, e são Aggregates os totais das lanes. Construa a lista uma vez, em um campo: uma nova lista inicia o tabuleiro novamente.

React Blazor

Mantendo seu lugar na URL

Nomeie um parâmetro de consulta em PersistedStateQueryParameter (React: persistedStateQueryParameter), e o quadro mantém a visualização escolhida e as faixas colapsadas ali, então uma recarga ou um link compartilhado abre como foi deixado. O que ele abriria de qualquer forma fica de fora. A busca também é mantida com IncludeSearchInPersistedState; ela é omitida por padrão, já que o que os usuários procuram pode ser sensível. Cada alteração substitui a entrada do histórico do navegador, e ambas as pilhas escrevem o mesmo valor, então um link feito em uma abre o mesmo quadro na outra.

React Blazor

Temática

O tabuleiro é desenhado com os próprios controles e tokens de design do Fluent UI, então segue seu tema, claro ou escuro, e sua cor de destaque, e o ponto de uma faixa pega a cor da opção do Dataverse. As pistas têm 280 pixels de largura, lado a lado, e rolam lateralmente quando não encaixam; no celular, cada uma ocupa a maior parte da tela e encaixa no lugar. Height (React: height) define a altura do tabuleiro, barra de ferramentas incluída — 600 pixels por padrão — e cada lane rola suas cartas dentro dele. Para restyling, o tabuleiro, suas faixas e suas cartas carregam classes próprias, entre ppp-kanbanelas , ppp-kanban-lane, ppp-kanban-lane-header e ppp-kanban-card; Class e Style (React: className e style) adicionam as suas próprias.

React Blazor

KanbanBoard Classe

Parâmetros

Nome
Tipo
Padrão
Descrição
AllowFilteringbool
False
Se o usuário pode alterar os filtros da visualização, a partir do menu Filtro, como em uma grade. Off por padrão: o usuário pode remover todos os filtros que a visualização possui.
AllowNewbool
True
Se cada faixa de um KanbanBoard.Editable tabuleiro oferece uma nova carta, com um botão Adicionar em seu cabeçalho: um que o usuário pode criar, no valor da faixa — nenhum em uma faixa de cartas fechadas, como um O registro é criado aberto. Padrão para true.
AllowSavedViewsbool
False
Vamos os usuários logados salvar o quadro como organizaram — a visualização que ele mostra com seus filtros, campos e ordenação das cartas, totais das rotas e as rotas colapsadas ou ocultas — como visualizações próprias, oferecidas no seletor de visualização ao lado das páginas, e escolhem a visualização padrão E esconder as visualizações que eles não usam. Desligado por padrão. Precisa da solução Power Portals Pro Core tabelas de visualização salva; um usuário interno também precisa das Vistas Salvas do Power Portals Pro função de segurança.
AllowSearchbool
True
Se a barra de ferramentas tem uma caixa de busca. O padrão é true.
CardImageColumnstring?
Uma coluna de imagem que cada carta padrão mostra como avatar ao lado do título, como fazem as cartas da grade.
CardTemplateRenderFragment<KanbanCardContext>?
O conteúdo de cada carta, no lugar do padrão: seu título — a primeira coluna da visualização — e as outras colunas do View sob seus títulos.
CustomViewDefinitionsList<ViewDefinition>?
Visualizações que a página define — as s da Models.ViewDefinitiongrade — oferecidas no seletor ao lado KanbanBoard.ViewIds sem estar listado lá; KanbanBoard.DefaultViewId pode citar um. A A placa pode ter apenas essas placas. Cada uma é lida por seu próprio FetchXML e dispõe a placa conforme diz (Models.ViewDefinition)): as cartas que uma lane lê por vez, a carta de suas colunas campos ocultos ou titulados, e os totais das rotas. Resta um de uma tabela diferente do tabuleiro fora. Construa a lista uma vez — em um campo, não em linha na marcação — enquanto uma nova lista inicia o Embarcar de novo.
DateLaneDropKanbanDateLaneDrop
ChangeDate
O que uma carta deixada em outra faixa de encontros faz, onde o KanbanBoard.LaneColumn é um encontro: Ele leva o primeiro dia da faixa (KanbanDateLaneDrop.ChangeDate, o padrão) — mantendo seu horário do dia; nenhuma data em Nenhuma data; nenhuma é omitida em Atraso — ou as faixas de data não aceitam cartas um do outro (KanbanDateLaneDrop.None). Sem efeito nas outras rotas.
DateLaneOrderKanbanDateLaneOrder
Rank
Como as cartas das lane de data são ordenadas, onde o KanbanBoard.LaneColumn é uma data: pelo KanbanBoard.RankColumn como outras faixas são (KanbanDateLaneOrder.Rank, a padrão), ou pela própria data (KanbanDateLaneOrder.Date) — uma carta deixada abaixo outro toma seu dia, mantendo seu próprio tempo, um é lançado no topo da pista no primeiro dia, e A coluna de rank não é usada. Sem efeito nas outras rotas.
DateLanesIReadOnlyList<KanbanDateLane>?
As pistas que uma data KanbanBoard.LaneColumn indica, em ordem de data: predefinições como KanbanDateLane.Today, KanbanDateLane.ThisMonth ou KanbanDateLane.ThisFiscalQuarter — calculado a cada leitura de hoje no usuário fuso horário, a semana da cultura e o ano fiscal da organização — ou as suas próprias vias (DateTime,System.DateTime) e afins). Cada um começa onde a anterior termina, então cada carta cai em uma única faixa no máximo; uma carta cuja data nenhum hold não está no tabuleiro. Sem eles, o padrão sete (KanbanDateLane.Defaults): Atrasado, Hoje, Amanhã, Esta semana, Próxima semana, Mais tarde e Sem data. Uma lane é intitulada pelo seu KanbanDateLane.Title, ou pelo nome de um predefinido na linguagem do usuário, senão sua chave. Uma nova lista das mesmas faixas — uma escrita em linha no marcação — não inicia o tabuleiro novamente; outras faixas iniciam.
DefaultViewIdGuid?
A vista em que o tabuleiro se abre. A mesa do tabuleiro é a da vista.
Editablebool
False
Se as cartas podem ser movimentadas. Uma carta se move quando o usuário pode alterar seu registro e sua faixa coluna, e — nas faixas de uma razão de status — as transições de estado da tabela permitem o movimento (Models.KanbanLane)): uma rota oferece apenas os movimentos que eles fazem, e um drop eles O Recusar volta. Uma carta caída em uma faixa para a qual suas transições a fecham — uma oportunidade Ganha ou Perdido, um caso Resolvido, um orçamento Ganho ou Fechado, um pedido Cumprido ou Cancelado — está encerrado através da própria mensagem do Dataverse: o conselho pergunta como — o motivo, a faixa para começar, e O que o Close registra. Qualquer outra mudança de estado que façam — reabrir uma oportunidade, cancelar um caso, ativar uma cotação — deve ser confirmado primeiro. Desligado por padrão.
EnforceLaneLimitsbool
False
Se o tabuleiro mantém em KanbanBoard.LaneLimits: uma rota cheia não tira carta de outra — uma queda ali volta, e Mover para não oferece carta nova. As cartas ainda se movem dentro dele. Desligado por padrão: uma faixa acima do limite só é marcada.
FormType?
A forma em que o registro de um cartão se abre: um componente dos editores, conforme o diálogo de registro da grade assume. Sem ele, um cartão abre a página do seu registro onde sua tabela tem um (KanbanBoard.ShowRecordLinks), Caso contrário KanbanDefaultForm: as colunas da vista e a coluna da rua.
FormLocationDialogLocation
Center
Onde o registro de uma carta se abre: centralizado, ou em um painel lateral à esquerda ou direita. Padrão para centralizado.
Heightstring
600px
Altura de toda a placa, incluindo barra de ferramentas, como qualquer comprimento de CSS. Padrão é 600px.
IncludeSearchInPersistedStatebool
False
Se a busca é mantida com o restante do estado. Não tem efeito sem KanbanBoard.PersistedStateQueryParameter.
LaneAggregateFormatsIReadOnlyDictionary<string, string>?
O formato em KanbanBoard.LaneAggregates que os totais de cada coluna são mostrados em ('N0'), pelo nome.
LaneAggregatesIReadOnlyDictionary<string, QueryAggregate>?
Os totais que o cabeçalho de cada faixa mostra para começar — uma soma, uma média, o mínimo, o máximo ou uma contagem de uma coluna, pelo nome. O usuário os altera com o botão Totais e um save A visão os mantém.
LaneColumn*string
A coluna de onde vêm as faixas: uma escolha, um motivo de status, um Sim/Não, uma consulta ou uma coluna de data da tabela do tabuleiro. Qualquer outro mostra uma mensagem no lugar do tabuleiro. As faixas de uma coluna de data são quando cai, em dias do fuso horário do usuário: Atrasado, Hoje, Amanhã, Esta semana, Próxima semana, Até mais tarde e Sem data, ou as páginas KanbanBoard.DateLanes (KanbanBoard.DateLaneDrop, KanbanBoard.DateLaneOrder).
LaneLimitsIReadOnlyDictionary<string, int>?
O maior número de cartas que cada faixa deve conter, por: KanbanLane.Keyo cabeçalho de uma faixa limitada mostra sua contagem em relação ao seu limite ('4 / 5') e marca quando a pista tem mais. A A contagem é da faixa inteira, seja qual for a busca e os filtros do usuário mostrarem. Uma faixa não nomeada Não tem limite.
LanesIEnumerable<string>?
Quais rotas o tabuleiro mostra, e em que ordem, por KanbanLane.Key: uma opção valor ('1'), ' 1' e ' 0' de Sim/Não, ID de um registro, chave de uma lane de data (KanbanDateLane.Key: 'atrasado','hoje', ...), ou uma chave vazia para o Lane de cartas sem valor. Toda lane, na ordem do Dataverse, quando não está dada. Para lanas de data Ele escolhe entre os KanbanBoard.DateLanes, cujos dias permanecem conforme os definem.
LookupLanesIEnumerable<LookupValue>?
As faixas de uma consulta: uma para cada registro, na ordem dada. Sem elas, o tabuleiro mostra uma faixa para cada registro, o nome das cartas da visualização.
PageSizeint
20
As cartas que uma lane lê por vez; as próximas vêm com seu Load more. Padrão é 20.
PersistedStateQueryParameterstring?
O nome de um parâmetro de consulta de URL para manter o estado da placa em — a visualização escolhida, as faixas colapsou e (com KanbanBoard.IncludeSearchInPersistedState) a busca — então uma recarga ou um Link abre onde foi deixado. Cada alteração substitui a entrada do histórico do navegador.
PrepareNewRecordFunc<KanbanNewRecord, Task>?
Prepara o registro de uma nova carta antes de abrir sua forma — a partir do botão Adicionar de uma faixa ou KanbanBoardContext.NewAsync(PowerPortalsPro.Common.Models.KanbanLane) — uma vez que o tabuleiro lhe atribuiu o valor da rota: a Host define os padrões através do indexador do registro (cartão. Record['column'] = valor), e Cada valor que ele define é salvo junto com o registro. O formulário não abre se for lançado, e o erro também aparece é mostrado como um cria-is fracassado.
RankColumnstring?
Uma coluna decimal onde o tabuleiro guarda a ordem das cartas, manualmente: cada faixa é ordenada por ela, e uma carta caída entre duas outras recebe um valor entre as deles. Sem ela, as cartas seguem a vista é mais ou menos, e uma carta só vai para outra faixa.
SaveChangeFunc<KanbanCardMove, Task<bool>>?
Salva um movimento no lugar do tabuleiro; ao retornar false , a carta volta a ser colocada, como quando o teste é recusado. Sem ele, o tabuleiro salva o movimento em si. Um movimento que fecha o O cartão é entregue depois que o usuário explica como, com o pedido para enviar KanbanCardMove.Close; um que muda um estado que as transições da tabela governam, Uma vez que o usuário tenha confirmado.
SavedViewsKeystring?
Nomeia esse quadro entre os controles da tabela, para as visualizações salvas nele e as do usuário Visões padrão e ocultas são suas. Sem uma, o conselho compartilha suas visões com cada grade, calendário e quadro da tabela que não tem nenhum. Letras, dígitos, -, _ e ..
ShowEmptyLanesbool
True
Se uma rota sem cartas é mostrada. Padrão para true.
ShowRecordLinksbool
True
Se os cartões fazem link para as páginas dos registros deles, registrados no AddRecordPage, como uma grade linhas e consultas fazem. Quando a tabela do tabuleiro tem uma página e o tabuleiro não recebe KanbanBoard.Form, o título de uma carta faz um link para a página do registro e ao abrir a carta vai para lá; Uma consulta em uma carta faz um link para a página do registro onde essa tabela tem uma. Uma tabela sem página abre suas cartas no diálogo do tabuleiro. Sempre uma nova carta é criada no diálogo. Padrão true.
SignInUrlstring
Account/Login
Quando um usuário que não está logado é enviado para fazer login, a partir do menu das visualizações salvas; eles retornam para esta página. Em relação ao endereço base do app. Padrão para Conta/Login.
Titlestring?
O cabeçalho do tabuleiro, mostrado no lugar do seletor de visualização quando há apenas uma visualização.
ToolbarItemsRenderFragment?
Controles para a barra de ferramentas — KanbanBoardButtons, ou qualquer outra marcação — à frente da caixa de busca.
ViewIdsIEnumerable<Guid>?
Outras vistas da mesma tabela o usuário pode alternar no seletor de visualização.
ViewSortViewSort
NameAscending
A ordem das visualizações no seletor. O padrão é ViewSort.NameAscending, como a grade de .
Nome: AllowFiltering
Tipo: bool
Padrão: False
Descrição: Se o usuário pode alterar os filtros da visualização, a partir do menu Filtro, como em uma grade. Off por padrão: o usuário pode remover todos os filtros que a visualização possui.
Nome: AllowNew
Tipo: bool
Padrão: True
Descrição: Se cada faixa de um KanbanBoard.Editable tabuleiro oferece uma nova carta, com um botão Adicionar em seu cabeçalho: um que o usuário pode criar, no valor da faixa — nenhum em uma faixa de cartas fechadas, como um O registro é criado aberto. Padrão para true.
Nome: AllowSavedViews
Tipo: bool
Padrão: False
Descrição: Vamos os usuários logados salvar o quadro como organizaram — a visualização que ele mostra com seus filtros, campos e ordenação das cartas, totais das rotas e as rotas colapsadas ou ocultas — como visualizações próprias, oferecidas no seletor de visualização ao lado das páginas, e escolhem a visualização padrão E esconder as visualizações que eles não usam. Desligado por padrão. Precisa da solução Power Portals Pro Core tabelas de visualização salva; um usuário interno também precisa das Vistas Salvas do Power Portals Pro função de segurança.
Nome: AllowSearch
Tipo: bool
Padrão: True
Descrição: Se a barra de ferramentas tem uma caixa de busca. O padrão é true.
Nome: CardImageColumn
Tipo: string?
Descrição: Uma coluna de imagem que cada carta padrão mostra como avatar ao lado do título, como fazem as cartas da grade.
Nome: CardTemplate
Tipo: RenderFragment<KanbanCardContext>?
Descrição: O conteúdo de cada carta, no lugar do padrão: seu título — a primeira coluna da visualização — e as outras colunas do View sob seus títulos.
Nome: CustomViewDefinitions
Tipo: List<ViewDefinition>?
Descrição: Visualizações que a página define — as s da Models.ViewDefinitiongrade — oferecidas no seletor ao lado KanbanBoard.ViewIds sem estar listado lá; KanbanBoard.DefaultViewId pode citar um. A A placa pode ter apenas essas placas. Cada uma é lida por seu próprio FetchXML e dispõe a placa conforme diz (Models.ViewDefinition)): as cartas que uma lane lê por vez, a carta de suas colunas campos ocultos ou titulados, e os totais das rotas. Resta um de uma tabela diferente do tabuleiro fora. Construa a lista uma vez — em um campo, não em linha na marcação — enquanto uma nova lista inicia o Embarcar de novo.
Nome: DateLaneDrop
Tipo: KanbanDateLaneDrop
Padrão: ChangeDate
Descrição: O que uma carta deixada em outra faixa de encontros faz, onde o KanbanBoard.LaneColumn é um encontro: Ele leva o primeiro dia da faixa (KanbanDateLaneDrop.ChangeDate, o padrão) — mantendo seu horário do dia; nenhuma data em Nenhuma data; nenhuma é omitida em Atraso — ou as faixas de data não aceitam cartas um do outro (KanbanDateLaneDrop.None). Sem efeito nas outras rotas.
Nome: DateLaneOrder
Tipo: KanbanDateLaneOrder
Padrão: Rank
Descrição: Como as cartas das lane de data são ordenadas, onde o KanbanBoard.LaneColumn é uma data: pelo KanbanBoard.RankColumn como outras faixas são (KanbanDateLaneOrder.Rank, a padrão), ou pela própria data (KanbanDateLaneOrder.Date) — uma carta deixada abaixo outro toma seu dia, mantendo seu próprio tempo, um é lançado no topo da pista no primeiro dia, e A coluna de rank não é usada. Sem efeito nas outras rotas.
Nome: DateLanes
Tipo: IReadOnlyList<KanbanDateLane>?
Descrição: As pistas que uma data KanbanBoard.LaneColumn indica, em ordem de data: predefinições como KanbanDateLane.Today, KanbanDateLane.ThisMonth ou KanbanDateLane.ThisFiscalQuarter — calculado a cada leitura de hoje no usuário fuso horário, a semana da cultura e o ano fiscal da organização — ou as suas próprias vias (DateTime,System.DateTime) e afins). Cada um começa onde a anterior termina, então cada carta cai em uma única faixa no máximo; uma carta cuja data nenhum hold não está no tabuleiro. Sem eles, o padrão sete (KanbanDateLane.Defaults): Atrasado, Hoje, Amanhã, Esta semana, Próxima semana, Mais tarde e Sem data. Uma lane é intitulada pelo seu KanbanDateLane.Title, ou pelo nome de um predefinido na linguagem do usuário, senão sua chave. Uma nova lista das mesmas faixas — uma escrita em linha no marcação — não inicia o tabuleiro novamente; outras faixas iniciam.
Nome: DefaultViewId
Tipo: Guid?
Descrição: A vista em que o tabuleiro se abre. A mesa do tabuleiro é a da vista.
Nome: Editable
Tipo: bool
Padrão: False
Descrição: Se as cartas podem ser movimentadas. Uma carta se move quando o usuário pode alterar seu registro e sua faixa coluna, e — nas faixas de uma razão de status — as transições de estado da tabela permitem o movimento (Models.KanbanLane)): uma rota oferece apenas os movimentos que eles fazem, e um drop eles O Recusar volta. Uma carta caída em uma faixa para a qual suas transições a fecham — uma oportunidade Ganha ou Perdido, um caso Resolvido, um orçamento Ganho ou Fechado, um pedido Cumprido ou Cancelado — está encerrado através da própria mensagem do Dataverse: o conselho pergunta como — o motivo, a faixa para começar, e O que o Close registra. Qualquer outra mudança de estado que façam — reabrir uma oportunidade, cancelar um caso, ativar uma cotação — deve ser confirmado primeiro. Desligado por padrão.
Nome: EnforceLaneLimits
Tipo: bool
Padrão: False
Descrição: Se o tabuleiro mantém em KanbanBoard.LaneLimits: uma rota cheia não tira carta de outra — uma queda ali volta, e Mover para não oferece carta nova. As cartas ainda se movem dentro dele. Desligado por padrão: uma faixa acima do limite só é marcada.
Nome: Form
Tipo: Type?
Descrição: A forma em que o registro de um cartão se abre: um componente dos editores, conforme o diálogo de registro da grade assume. Sem ele, um cartão abre a página do seu registro onde sua tabela tem um (KanbanBoard.ShowRecordLinks), Caso contrário KanbanDefaultForm: as colunas da vista e a coluna da rua.
Nome: FormLocation
Tipo: DialogLocation
Padrão: Center
Descrição: Onde o registro de uma carta se abre: centralizado, ou em um painel lateral à esquerda ou direita. Padrão para centralizado.
Nome: Height
Tipo: string
Padrão: 600px
Descrição: Altura de toda a placa, incluindo barra de ferramentas, como qualquer comprimento de CSS. Padrão é 600px.
Nome: IncludeSearchInPersistedState
Tipo: bool
Padrão: False
Descrição: Se a busca é mantida com o restante do estado. Não tem efeito sem KanbanBoard.PersistedStateQueryParameter.
Nome: LaneAggregateFormats
Tipo: IReadOnlyDictionary<string, string>?
Descrição: O formato em KanbanBoard.LaneAggregates que os totais de cada coluna são mostrados em ('N0'), pelo nome.
Nome: LaneAggregates
Tipo: IReadOnlyDictionary<string, QueryAggregate>?
Descrição: Os totais que o cabeçalho de cada faixa mostra para começar — uma soma, uma média, o mínimo, o máximo ou uma contagem de uma coluna, pelo nome. O usuário os altera com o botão Totais e um save A visão os mantém.
Nome: LaneColumn*
Tipo: string
Descrição: A coluna de onde vêm as faixas: uma escolha, um motivo de status, um Sim/Não, uma consulta ou uma coluna de data da tabela do tabuleiro. Qualquer outro mostra uma mensagem no lugar do tabuleiro. As faixas de uma coluna de data são quando cai, em dias do fuso horário do usuário: Atrasado, Hoje, Amanhã, Esta semana, Próxima semana, Até mais tarde e Sem data, ou as páginas KanbanBoard.DateLanes (KanbanBoard.DateLaneDrop, KanbanBoard.DateLaneOrder).
Nome: LaneLimits
Tipo: IReadOnlyDictionary<string, int>?
Descrição: O maior número de cartas que cada faixa deve conter, por: KanbanLane.Keyo cabeçalho de uma faixa limitada mostra sua contagem em relação ao seu limite ('4 / 5') e marca quando a pista tem mais. A A contagem é da faixa inteira, seja qual for a busca e os filtros do usuário mostrarem. Uma faixa não nomeada Não tem limite.
Nome: Lanes
Tipo: IEnumerable<string>?
Descrição: Quais rotas o tabuleiro mostra, e em que ordem, por KanbanLane.Key: uma opção valor ('1'), ' 1' e ' 0' de Sim/Não, ID de um registro, chave de uma lane de data (KanbanDateLane.Key: 'atrasado','hoje', ...), ou uma chave vazia para o Lane de cartas sem valor. Toda lane, na ordem do Dataverse, quando não está dada. Para lanas de data Ele escolhe entre os KanbanBoard.DateLanes, cujos dias permanecem conforme os definem.
Nome: LookupLanes
Tipo: IEnumerable<LookupValue>?
Descrição: As faixas de uma consulta: uma para cada registro, na ordem dada. Sem elas, o tabuleiro mostra uma faixa para cada registro, o nome das cartas da visualização.
Nome: PageSize
Tipo: int
Padrão: 20
Descrição: As cartas que uma lane lê por vez; as próximas vêm com seu Load more. Padrão é 20.
Nome: PersistedStateQueryParameter
Tipo: string?
Descrição: O nome de um parâmetro de consulta de URL para manter o estado da placa em — a visualização escolhida, as faixas colapsou e (com KanbanBoard.IncludeSearchInPersistedState) a busca — então uma recarga ou um Link abre onde foi deixado. Cada alteração substitui a entrada do histórico do navegador.
Nome: PrepareNewRecord
Tipo: Func<KanbanNewRecord, Task>?
Descrição: Prepara o registro de uma nova carta antes de abrir sua forma — a partir do botão Adicionar de uma faixa ou KanbanBoardContext.NewAsync(PowerPortalsPro.Common.Models.KanbanLane) — uma vez que o tabuleiro lhe atribuiu o valor da rota: a Host define os padrões através do indexador do registro (cartão. Record['column'] = valor), e Cada valor que ele define é salvo junto com o registro. O formulário não abre se for lançado, e o erro também aparece é mostrado como um cria-is fracassado.
Nome: RankColumn
Tipo: string?
Descrição: Uma coluna decimal onde o tabuleiro guarda a ordem das cartas, manualmente: cada faixa é ordenada por ela, e uma carta caída entre duas outras recebe um valor entre as deles. Sem ela, as cartas seguem a vista é mais ou menos, e uma carta só vai para outra faixa.
Nome: SaveChange
Tipo: Func<KanbanCardMove, Task<bool>>?
Descrição: Salva um movimento no lugar do tabuleiro; ao retornar false , a carta volta a ser colocada, como quando o teste é recusado. Sem ele, o tabuleiro salva o movimento em si. Um movimento que fecha o O cartão é entregue depois que o usuário explica como, com o pedido para enviar KanbanCardMove.Close; um que muda um estado que as transições da tabela governam, Uma vez que o usuário tenha confirmado.
Nome: SavedViewsKey
Tipo: string?
Descrição: Nomeia esse quadro entre os controles da tabela, para as visualizações salvas nele e as do usuário Visões padrão e ocultas são suas. Sem uma, o conselho compartilha suas visões com cada grade, calendário e quadro da tabela que não tem nenhum. Letras, dígitos, -, _ e ..
Nome: ShowEmptyLanes
Tipo: bool
Padrão: True
Descrição: Se uma rota sem cartas é mostrada. Padrão para true.
Nome: ShowRecordLinks
Tipo: bool
Padrão: True
Descrição: Se os cartões fazem link para as páginas dos registros deles, registrados no AddRecordPage, como uma grade linhas e consultas fazem. Quando a tabela do tabuleiro tem uma página e o tabuleiro não recebe KanbanBoard.Form, o título de uma carta faz um link para a página do registro e ao abrir a carta vai para lá; Uma consulta em uma carta faz um link para a página do registro onde essa tabela tem uma. Uma tabela sem página abre suas cartas no diálogo do tabuleiro. Sempre uma nova carta é criada no diálogo. Padrão true.
Nome: SignInUrl
Tipo: string
Padrão: Account/Login
Descrição: Quando um usuário que não está logado é enviado para fazer login, a partir do menu das visualizações salvas; eles retornam para esta página. Em relação ao endereço base do app. Padrão para Conta/Login.
Nome: Title
Tipo: string?
Descrição: O cabeçalho do tabuleiro, mostrado no lugar do seletor de visualização quando há apenas uma visualização.
Nome: ToolbarItems
Tipo: RenderFragment?
Descrição: Controles para a barra de ferramentas — KanbanBoardButtons, ou qualquer outra marcação — à frente da caixa de busca.
Nome: ViewIds
Tipo: IEnumerable<Guid>?
Descrição: Outras vistas da mesma tabela o usuário pode alternar no seletor de visualização.
Nome: ViewSort
Tipo: ViewSort
Padrão: NameAscending
Descrição: A ordem das visualizações no seletor. O padrão é ViewSort.NameAscending, como a grade de .

Métodos

Nome
Parâmetros
Tipo
Descrição
RefreshAsyncTask
Lê todas as faixas mostradas novamente.
Nome: RefreshAsync
Tipo: Task
Descrição: Lê todas as faixas mostradas novamente.