Formulários Tudo o que você precisa saber sobre formulários no agilityflow. Introdução Os formulários têm uma importância única no agility flow . É através dele, que informações serão inseridas no sistema. A partir daí, serão gerados fluxos de trabalho, os gráficos no dashboard, os relatórios e muito mais. Para isso, basta clicar no ícone do Devcenter  localizado na Barra Vertical, e em seguida em Menu. Ao clicar em "Consultar" , é possível ver a lista de menus já existentes. Clicando em "Novo Menu" , o usuário irá criar um novo Menu na Barra Vertical.   Ao criar um novo formulário, será necessário definir uma série de informações, que darão a característica desejada a esse formulário. Formulários Nativos Os formulários nativos são formulários que o agilityflow trás por padrão. Como por exemplo, o formulário de cadastro de usuários. Essa parte do sistema também é construída usando o agilityflow. Os fomulários nativos vem por padrão ocultados no devcenter . Para listá-los, basta clicar na opção "Mostrar formulários nativos do Agilityflow" na tela de consulta dos formulários. Os formulários nativos são marcados com uma etiqueta, para fácil identificação. Os formulários nativos, são formulários que existem no agilityflow e servem para a utilização do sistema. Por exemplo ao criar um usuário, é utilizado um formulário nativo para a obtenção dos dados do usuário.           Definição Básica Nessa aba você configura as informações gerais da estrutura do seu formulário ou fluxo. Abaixo detalhamos essas configurações. Os campos Nome e ícone , são as primeiras definições na criação de um novo formulário. Abaixo, um vídeo explicando como alterar o ícone de um formulário. Uma definição importante, é o tipo do formulário. São dois os tipos disponíveis: Tipos de Formulário Formulário simples É um formulário usado para cadastro e armazenagem de informações. Formulário com fluxo de etapas É um formulário também usado para cadastro e armazenagem de informações. Porém, baseado nessas informações, é criado um fluxo de trabalho onde pode se definir etapas de aprovação e interação entre usuários do sistema. Para mais detalhes sobre esse tipo de formulário, consulte o capítulo Formulário com Fluxo de Etapas . O campo Descrição, permite que o usuário defina uma breve explicação sobre aquele formulário. Na opção Menu, é possível mostrar ou não esse formulário em algum Menu. O Menu principal, mostra esse formulário da Barra de Menu Vertical do agility flow . Além disso, é possível usar um dos submenus já disponíveis, ou ainda, criar um novo Menu . Caso você queira criar um novo menu, você deve criá-lo antes de criar o formulário, para que esse menu esteja disponível nesse campo. Janela do formulário É possível também, definir a forma como esse formulário vai abrir. São 3 formas: Lightbox É uma janela secundária sobreposta a uma janela principal, sem a criação de uma nova guia ou nova janela. Ao escolher essa opção, você também pode definir o tamanho do lightbox: fullscreen, grande, médio ou pequeno. Na mesma página Abre o formulário inteiro, na janela atual. Uma nova aba do navegador Abre o formulário inteiro, em uma nova janela. Relacionamento com outros formulários Nesse ponto, se define a possibilidade desse formulário ser incluído como um formulário relacionado a outro formulário. Pode ser usado como tabela filha de um outro formulário (Tabela de Formulário Relacionado) Ao marcar essa opção, esse formulário fica habilitado a ser incluído dentro de outros formulários. Abrir apenas através de um formulário pai A opção "Abrir apenas através de um formulário pai", inibe que esse formulário seja aberto da maneira convencional, permitindo apenas que ele seja aberto através de outro formulário. Dados Técnicos Esse é o nome da tabela que será gerado no banco de dados. Esse é o nome que será usado depois para a criação de relatórios e dashboards . Normalmente, não é necessário alterar o nome que o sistema sugere.       Formulário com fluxo de etapas O formulário com fluxo de etapas, possui todas as características de um  formulário comum. Todas as propriedades, características, campos e etc estão presentes em um fluxo com etapas. Para entender melhor o seu funcionamento, consulte o capítulo Formulário com fluxo de etapas no manual do usuário . A criação de um formulário com etapas segue os mesmos princípios da criação de um formulário comum. Abaixo, as diferenças. Definição Básica Deve-se primeiro marcar a opção formulário com fluxo de etapas, dentro dos dados básicos, na aba Definição Básica. Quando isso é feito, a aba para configuração das etapas "Etapas do Fluxo" é habilitada. Etapas do Fluxo Nesse ponto definimos as etapas do fluxo que esse formulário terá. O que são etapas de um fluxo? Etapas, são pontos de edição/revisão/inclusão de dados de um formulário. Em cada etapa, além de se modificar o formulário, há uma ação necessária a ser executada por um ou mais usuários definidos. As ações são: aprovar, retornar etapa ou reprovar. Em qualquer fluxo, a primeira etapa é criada automaticamente pelo agilityflow. É a "Etapa inicial (cadastro)". Essa etapa é fixa e não é possível alterar. Nesse ponto, é possível adicionar novas etapas. Ao clicar em "Adicionar Etapa", o usuário define o nome da etapa e o número máximo de dias que essa etapa tem para ser aprovada. Nessa tela também, é possível reordenar as etapas. Para isso, basta clicar no ícone  e arrastar a etapa para a posição desejada. O que acontece com o histórico se eu removo uma etapa? Qualquer fluxo já encerrado ou em andamento, não serão alterados e não terão o histórico afetado. Apenas os novos cadastrados a partir daquela data, é que terão seu comportamento modificado. O mesmo acontece quando se altera o nome de uma etapa ou a ordem é modificada. Nada acontece com os fluxos encerrados ou em andamento. Apenas os novos são impactados. Usuários com permissão para cadastrar (Etapa Inicial) É onde são definidos os usuários que podem criar um novo registro e iniciar um novo fluxo. Esses usuários podem ser adicionados individualmente, procurando pelo nome. Ao ser encontrado a conta do usuário desejada, clica-se em adicionar. O usuário entra na lista abaixo. Clicando no ícone  , é possível remover a conta da lista. A mesma mecânica funciona para adicionar múltiplos usuários, usando o perfil de usuário ou grupo. Ao selecionar o perfil (ou grupo) desejado, todos os usuários associados estarão autorizados a fazer o cadastro. Responsáveis da etapa Provavelmente, a parte mais importante da definição de um fluxo de etapa, são os responsáveis por cada uma delas. Na prática, são as pessoas que garantirão que o processo controlado por esse fluxo, cumpram todos os requerimentos e entregue um resultado satisfatório, livre de erros e retrabalhos. Para cada etapa, é preciso escolher os responsáveis pela aprovação. Isso pode ocorrer de duas formas: Aprovação não dinâmica É a opção padrão. Nela é necessário definir um aprovador, que pode ser de dois tipos. A partir de uma lista pré-definida Funciona da mesma forma que escolha dos usuários com permissão para cadastrar a etapa inicial . O gestor do aprovador da etapa X Todo usuário pode possuir um gestor cadastrado no seu usuário. É esse usuário que será o aprovador. Escolhendo essa opção, deverá também ser escolhida a etapa da qual seu responsável, terá seu gestor como responsável dessa etapa. Aprovação dinâmica Para que ocorra uma aprovação dinâmica, é necessário que se configurem regras. É possível existir mais de uma regra. Cada regra tem um nome e uma descrição, que são textos escolhidos pelo usuário. Além disso, essa regra pode ser de dois tipos: Condicional Na regra condicional, uma determinada situação deve estar presente. São dois tipos de condição: Se o campo: qualquer campo do formulário pode ser escolhido e ser comparado com um valor fixo definido pelo usuário. Essa comparação pode ser igual, maior ou igual, menor ou igual, maior que, menor que, diferente de, conter ou não conter; Se o usuário: qualquer usuário do sistema pode ser escolhido e ser comparado (aprovou ou não aprovou) a uma etapa. Para qualquer uma das regras, podem se adicionar mais condições. Caso a condição se estabeleça, é necessário definir um método de aprovação: Aprovação automática: o fluxo é aprovado sem que nenhum usuário tenha que realizar uma ação no sistema; Não é automática (definir aprovadores): é necessário selecionar os aprovadores, assim como é feito na aprovação não dinâmica. É importante definir a regra e a regra contrária. Por exemplo, caso se queira que haja uma aprovação automática quando o campo Valor for menor que 100, além dessa regra, é necessário criar a regra para quando o campo Valor for igual ou maior que 100. Definida pelo aprovador Há dois campos para ser preenchidos: O aprovador da etapa: escolhe-se o uma das etapas do fluxo. Isso servirá como base para a configuração do campo ação. Ação: Aprovará esta etapa também: o mesmo aprovador da etapa escolhida acima, aprovará essa também Define o aprovador dessa etapa através da lista pré-definida abaixo: escolhe-se os usuários que estarão disponíveis para serem selecionados pelo aprovador da etapa "X", definida no passo anterior. Permissões de acesso Nesse ponto, é possível definir quais processos os usuários podem visualizar: Sim, o usuário pode visualizar APENAS os fluxos que participou O usuário visualiza apenas os fluxos em que ele esteja envolvido, seja cadastrando o registro ou participando de alguma etapa do fluxo. Não, o usuário pode visualizar TODOS os fluxos, incluindo os que não participou O usuário visualiza todos os registros dos formulários, independente da sua participação ou não do fluxo.               Divisão e agrupamento dos campos É possível criar um grupo de informações para manter organizado os campos do seu formulário. Por padrão, um grupo já vem criado chamado de Dados mas você pode alterá-lo e/ou criar outros. Por exemplo, em um formulário de cadastro de cliente, você pode organizar os campos em Dados Pessoais, Endereço e Contato, e dentro desses grupos, colocar os campos referentes a cada um dos grupos. Outra definição, além do nome, é a ordem que será mostrado na lista, e se ele deve aparecer aberto ou recolhido quando o formulário for visualizado. Para ordenar os grupos, basta clicar no ícone   e arrastar para a posição desejada. Mesmo escolhendo uma das opções por padrão, o usuário poderá abrir ou fechar esse grupo quando quiser. Por fim, no menu "Ações", é possível definir todas as opções referentes a cada grupo de informações.           Ao remover um grupo de informação, todos os campos que pertencem a ele também são removidos.             Campos e componentes do formulário Esse é o momento, onde podemos adicionar campos ao nosso formulário. Cada campo é inserido dentro de um grupo de informação, criado no passo anterior. Uma vez criado, o campo só pode ser mudado do grupo de informações acessando o menu "Configurações". Ao clicar em adicionar, aparecem os diversos tipos de campos, disponíveis no agility flow : Campo Textbox Esse campo deve ser usado para qualquer dado que seja um texto ou um número. Depois, é possível definir mais detalhes, como uma máscara numérica, para telefone ou moeda, por exemplo. Para maiores detalhes, leia o capítulo de configuração do campo textbox. Label Dinâmica É um campo não editável pelo usuário e seu preenchimento ocorre através de um outro campo. Para maiores detalhes, leia o capítulo de configuração do campo Label Dinâmica. Upload Permite que o usuário envie arquivos do computador para o formulário. Quando o formulário é aberto pelo celular, é possível que o usuário acione a câmera para o envio de fotos. Nas configurações adicionais, é possível validar a quantidade de itens (maior, menor ou igual a "x" itens enviados) e também as extensões permitidas ou proibidas. Para maiores detalhes, leia o capítulo de configuração do campo Upload. Lista de seleção (Combo) Esse campo, permite que o usuário escolha uma opção pré-determinada. A origem dos dados pode ser através de duas formas: Lista Estática O usuário insere as opções nas configurações do campo. Com isso, o usuário que acessa o formulário não é pode criar novas opções. Lista Dinâmica Nessa opção, os dados têm como origem um outro formulário. Ao selecionar esse outro formulário, é necessário informar qual o campo desse formulário será exibido. Esse campo não deve ser usado quando há muitas opções. Isso por que, todas as opções desse campo são lidas quando a página é carregada. Se houver muitos itens, o carregamento da página pode ser afetado. Para esses casos, usar o campo pesquisa com auto completar. Para maiores detalhes, leia o capítulo de configuração do campo Lista de Seleção. Pesquisa com auto completar É similar ao Lista de Seleção, com a diferença que esse campo apenas tem os itens com origem em uma lista dinâmica. Além disso, as opções provenientes dessa lista, somente são mostradas após o usuário começar a digitar. Para maiores detalhes, leia o capítulo de configuração do campo Label Dinâmica. Esse campo deve ser usado quando o número de itens seja elevado.  Checkbox (Único) Esse campo permite o usuário responder a uma pergunta cuja resposta tem duas opções. Nesse campo, é possível definir o texto quando o campo está marcado, e quando o campo está desmarcado. O texto escolhido quando o campo está marcado, será mostrado na tela, enquanto o texto do campo quando está desmarcado, apenas será mostrado na listagem e no filtro de dados. Para maiores detalhes, leia o capítulo de configuração do campo Checkbox. Lista aberta com escolha única (Radio) Esse campo é muito similar ao tipo Lista de Seleção, mudando apenas a forma como é apresentado. Abaixo, um exemplo do campo radio (Lista aberta com escolha única): Quando a fonte dos dados for dinâmica, a opção de criar um novo item não está disponível no campo Lista aberta com escolha única (Radio). Para maiores detalhes, leia o capítulo de configuração do campo Lista aberta com escolha única (Radio). Fórmula O campo de fórmula faz dois tipos de cálculos: com campos numéricos e com campos com data/hora. É na definição do campo que seleciona-se o tipo de cálculo. Ao escolher o tipo, serão mostrados os campos disponíveis para serem usados. Fórmula Numérica: é possível fazer as 4 operações aritméticas (soma, subtração, divisão e multiplicação) nesse campo. Para isso, basta selecionar um ou mais campos com a máscara do tipo numérico e escrever a fórmula. Fórmula por data/hora: nessa opção, é possível subtrair um campo do tipo data/hora, por outro campo do tipo data/hora. Como resultado, é possível obter: Número de Dias Número de Meses Número de Anos Número de Semanas Número de Horas:Minutos Para fórmula com datas, só é possível fazer a operação de subtração. Para maiores detalhes, leia o capítulo de configuração do campo Fórmula. Campo com Múltipla Escolha Apesar do visual um pouco diferente, tem comportamento similar ao campo checkbox, mas permite a escolha de mais de uma opção. Para maiores detalhes, leia o capítulo de configuração do campo com Múltipla Escolha. Botão Customizado Caso seja necessário uma ação no formulário que não exista no agilityflow, é possível criar um botão. Esse botão, executa um código javascript personalizado, que deve ser criado pelo usuário. Para a configuração desse campo, é necessário conhecimento de javascript, já que qualquer ação com esse botão é 100% customizada.  Para maiores detalhes, leia o capítulo de configuração do campo Botão Customizado. Tabelas (Formulários Relacionados) É a inclusão de um formulário dentro de outro. Saiba mais, no capítulo de Formulários Relacionados do Manual de Customização do agilityflow.         Montar e organizar a tela de cadastro Montar tela de cadastro É necessário montar a estrutura da tela do formulário, com os grupos de informações e os campos. Barra Horizontal Confirmar Alterações Sai da montagem da tela, salva a tela com as configurações atuais. Fechar e Cancelar Sai da montagem da tela, descartando as alterações. Simular em Tela em outras Resoluções Ao clicar em um dos 4 botões, você consegue ver como ficará a tela nas seguintes resoluções: Monitor Laptop Tablet Celular Limpar Tela Remove todos as estruturas da tela. Na montagem da tela, existem 3 estruturas que podem ser utilizadas: Montagem da Tela Grupo de Informações Cada grupo de informação criado no formulário estará disponível para ser usado como estrutura na tela. Esses grupos, quando adicionados na tela, funcionam como uma caixa que ajudam a separar os campos de outros grupos. Além disso, esse grupo pode ser fechado ou aberto pelo usuário, facilitando quando existe uma grande quantidade de campos no formulário. No exemplo abaixo, é possível ver um formulário simples de cadastro de clientes, onde os grupos de informações estão adicionados como estruturas da tela. Clicando no ícone   no canto superior direito do grupo de informações, recolhe o grupo de informações. Clicando no ícone   ocorre a expansão. Entretanto, a inclusão dos grupos de informações como estruturas na tela é opcional. Abaixo, o mesmo formulário do exemplo acima, sem a inclusão dos grupos de informações. Para adicionar um grupo de informações, basta arrastar para a área desejada da tela. Diagramação (Colunas) A tela do formulário é separada em colunas. Caso não seja adicionada nenhuma coluna, o padrão é ter uma coluna só. A tela é dividida em 12 unidades fictícias de medidas. Quando se adicionam colunas, é possível definir o tamanho de cada uma, de forma que a soma de todas nunca ultrapasse 12. Portanto, é possível adicionar um máximo de 12 colunas, cada uma com o tamanho 1. O sistema sugere por padrão, as seguintes opções de quantidade de colunas e tamanho: 1 col: 12 2 col: 6 6 2 col: 8 4 2 col: 9 3 3 col: 4 4 4 3 col: 2 6 4 3 col: 6 4 2 4 col: 3 3 3 3 Ao adicionar qualquer uma das estruturas, é possível movê-la na tela usando o ícone  . Para apagar, use o. Caso queira duplicar a estrutura com o aspecto idêntico, clique em  . Para alterar a quantidade de colunas dessa estrutura, clique em  . Isso vai abrir uma tela onde é possível distribuir as 12 unidades entre as colunas, assim como adicionar ou remover colunas.  É possível incluir um grupo de informação dentro de uma coluna, assim como também é possível dividir um grupo de informação com colunas. Além disso, é possível incluir um grupo de informação dentro de outro, assim como uma coluna dentro de outra. Campos Os campos estão disponíveis para serem incluídos logo abaixo da diagramação, e estão separados pelos respectivos grupos de informação. Tanto os grupos de informações como as colunas, servem como estruturas de tela, onde os campos vão ser incluídos. Não é possível incluir os campos fora dessas estruturas. Ao expandir um dos grupos, são exibidos os campos que pertencem a esse grupo. Basta arrastar o campo para o local desejado na tela. Note que, mesmo incluído na tela, um campo pode não ser exibido devido as regras de visibilidade .                 Configurar ações e os botões do menu do formulário   Configurar botões e algumas ações Aqui, é possível configurar as opções da barra que é mostrada na tela de cadastro de um formulário (tela para criação ou visualização de um registro): Mostrar botão 'Consultar' Ligado por padrão, permite mostrar ou ocultar o botão de consulta ( ). Ao clicar, na prática, a tela de cadastro é fechada e o usuário é enviado de volta ao menu principal, onde podem ser realizados os filtros para fazer a consulta. Mostrar botão 'Salvar' Ligado por padrão, permite mostrar ou ocultar o botão de Salvar. Mostrar botão 'Salvar em Rascunho' Ligado por padrão, permite mostrar ou ocultar o botão de Salvar em Rascunho. Mostrar botão 'Excluir' Ligado por padrão, permite mostrar ou ocultar o botão de Excluir ( ). Esse botão só é exibido ao visualizar um registro já existente. Fica oculto quando se está criando um novo registro. Mostrar botão 'Aprovar' Ligado por padrão, permite mostrar ou ocultar o botão de Aprovar etapa ( ). Esse botão só será exibido em formulários que tenham fluxos por etapa. Mostrar botão 'Retornar etapa' Ligado por padrão, permite mostrar ou ocultar o botão de Retornar etapa ( ). Esse botão só será exibido em formulários que tenham fluxos por etapa. Mostrar botão 'Reprovar' Ligado por padrão, permite mostrar ou ocultar o botão de Reprovar etapa ( ). Esse botão só será exibido em formulários que tenham fluxos por etapa. Nomenclatura para o botão 'Salvar' É possível alterar o texto do botão que vai ao lado do ícone  . Nomenclatura para o botão 'Salvar rascunho': É possível alterar o texto do botão que vai ao lado do ícone  . Nomenclatura para o botão 'Aprovar' É possível alterar o texto do botão que vai ao lado do ícone  . Nomenclatura para o botão 'Aprovar' na primeira etapa O botão aprovar pode ter um comportamento diferente na primeira etapa. É possível alterar o texto do botão que vai ao lado do ícone  . Nomenclatura para o botão 'Retornar etapa' É possível alterar o texto do botão que vai ao lado do ícone  . Nomenclatura para o botão 'Reprovar' É possível alterar o texto do botão que vai ao lado do ícone  .  Após salvar ou realizar qualquer ação com sucesso no formulário, o que deve acontecer Permite definir o comportamento do formulário, quando se clica nos botões Salvar, Salvar em Rascunho ou Excluir. São eles: Redirecionar para a lista: é a ação padrão. Leva o usuário à tela padrão do formulário, com a lista dos registros; Redirecionar para a tela inicial do sistema: leva o usuário para a tela que é aberta ao fazer a entrada no sistema; Redirecionar para a criação de um novo cadastro: abre a tela de cadastro, para a criação de um novo registro; Redirecionar para a mesma tela em modo edição: salva as alterações, mas mantém aberta a tela de cadastro; Imprimir o relatório de impressão X: abre a tela de impressão do relatório selecionado. Bloquear novos registros Como bloquear o cadastro de novos registros em um formulário? Com essa opção, é possível bloquear o cadastro de novos registros, não importando a permissão do usuário. São duas opções: Liberado para cadastro de novos registros (padrão); Bloqueado para cadastro de novos registros; Ações customizadas (Menu interno) As ações customizadas são formas de abrir um quadro (kanban), um relatório, uma lista de formulário ou um novo formulário, baseados em um registro. Ao clicar no menu   de um registro, as ações customizadas são mostradas. Um formulário pode ter múltiplas ações customizadas, e elas são mostradas em lista, onde é possível ver o tipo, se está ativa ou não, reordenar, excluir ou configurar. Essa ações fazem sentido, quando são utilizadas em um formulário que utiliza formulários relacionados. Com isso, é possível acessar um registro, e através de uma ação customizada, abrir um outro formulário que possua registros relacionados ao primeiro. Para criar uma nova ação, basta clicar no botão "Adicionar Ação" e seguir os seguintes passos: Ação Nome da ação Se define o nome da ação. Esse nome será exibido no menu dos registros. Ativo Se essa ação está disponível para ser utilizada ou não. Tipo São 4 opções: Abrir quadro (kanban): ao selecionar essa opção, é necessário escolher qual o quadro que será aberto. Feito isso, é possível já definir um filtro, onde se escolhe um campo que tenha alguma associação (pelo id do formulário) com o formulário do quadro escolhido Abrir relatório Abrir lista do formulário Abrir um novo formulário Regras de visibilidade Disponível na listagem Indica se essa ação estará visível no menu   dos registros. Disponível no formulário Indica se essa ação estará visível como um botão, dentro do registro, quando o mesmo for aberto. Regra condicional de visibilidade É possível também, vincular a visibilidade de acordo com uma regra. A regra é definida pelo usuário, e sempre que existir uma regra criada, a ação só será exibida quando o resultado da regra for verdadeiro.               Customização javascript Todos os campos do agilityflow possuem inúmeras customizações, que flexibilizam seu uso para o usuário. Entretanto, podem haver casos de customizações muito específicas, que o agilityflow não possua. Para esses casos, é possível inserir uma programação javascript no campo. Com isso, o agilityflow disponibiliza toda a flexibilidade do javascript para adequar o comportamento dos campos à sua necessidade. Além disso, é possível programar que essa ação seja executada, não só para o clique, mas também para outras formas de interação com esse botão. São elas: On Page Load: ação é executada assim que a página carregar. On Blur On Change On Click On Focus On Input On KeyUp On Keydown On Mouseover On Mouseout               Lista e consulta Nessa aba, é possível configurar as opção de listagem dos formulários, filtros padrão e quadros Kanban; Listagem no formato de tabela de dados A listagem principal dos dados do formulário é como os registros serão mostrados e como será a ordenação desses registros. Como a tela principal do formulário irá mostrar uma lista de registros, nem sempre será possível mostrar todas as colunas do formulário. Por isso, precisamos selecionar as colunas serem mostradas e escolher uma ordenação. Também é possível definir os filtros que estarão disponíveis. Colunas Adiciona-se as colunas que se deseja exibir. É necessário ter pelo menos uma coluna adicionada. Para cada coluna adicionada, abrem-se 3 opções: Posicionar Coluna Ao clicar nesse ícone, basta arrastar a coluna para a ordem desejada. A ordem, que nessa tela é apresentada de cima pra baixo, na listagem do formulário é da esquerda para direita. Ou seja, quanto ainda pra cima está a coluna, mais à esquerda ela será apresentada na listagem. Visível no Mobile Pela limitação de largura das telas dos celulares, é possível ocultar algumas colunas, quando o formulário for aberto em um dispositivo móvel. Para isso, basta desmarcar a opção 'Visível no Mobile', que ver marcada por padrão. Excluir Remove a coluna da listagem. Ordenação É necessário adicionar uma ordenação padrão para cada formulário. Ao adicionar uma coluna nessa lista, a ordenação padrão do formulário é definida. Ao adicionar mais de uma coluna, primeiro se ordena a listagem baseado no primeiro campo, depois no segundo e assim por diante. Existem ainda, 3 opções de configuração para cada coluna: Decrescente ou Crescente Define o critério crescente ou decrescente de ordenação para essa coluna. Ordenar Prioridade Ao clicar nesse ícone, basta arrastar a coluna para a ordem desejada. Excluir Remove a coluna do critério de ordenação. Filtros disponíveis para consulta dos dados Filtros Essa opção não é obrigatória e por padrão, todos os campos são adicionados no filtro. Nessa opção, é possível habilitar ou não o filtro pelos campos do formulário. É possível também definir a ordem dos campos dentro da aba de filtro da listagem dos dados do formulário. Definir os valores e regras iniciais Filtro inicial fixo Quando definido o filtro desse tipo, o filtro inicial será aplicado independente do usuário. São essas as opções a serem definidas Só minhas pendências: apenas os fluxos com pendências do usuário logado, serão exibidos; Todos: todos os fluxos serão exibidos; Apenas os que eu participei: apenas os fluxos cadastrados ou com participação pelo usuário logado, serão mostrados; Etapa atual: seleciona qual etapa do fluxo o filtro virá selecionado por padrão; Status: caso o formulário seja um formulário com etapas, seleciona o status dos fluxos: Em andamento Aprovado Reprovado Campos: todos os campos do formulário serão exibidos nessa opção, e cada um dos campos permitirá que haja um filtro inicial padrão; campo desativado para inclusão de novos filtros: quando marcada, essa opção previne o usuário de alterar ou incluir o filtro padrão inicial; Filtro inicial com condicional por perfil e usuário As definições do filtro em si, são exatamente idênticas à configuração acima. Entretanto, usar essa opção permite padronizar filtros de acordo com o usuário logado, ou o perfil (ou mais de um) do usuário logado; Para isso, é necessário definir duas condições no mínimo. Uma inicial e outra para quando a condição inicial não for verdadeira. Só Minhas Pendências Quando o formulário possuir etapas, a opção " No filtro inicial, ao abrir a listagem, apresentar o filtro (checkbox) de "Só minhas pendências" marcado ou desmarcado: " será mostrada. Essa opção é uma definição de padrão de visualização.  Quando marcada, o usuário vai sempre ver por padrão, apenas suas pendências marcadas no filtro, podendo desligar Se assim desejar.  Essa opção afeta o comportamento para todos os usuários. Quadros (Kanban) Os detalhes para a criação e configuração podem ser visualizados no capítulo  Quadros (Kanban) .           Relatórios para impressão e PDF Os relatórios para impressão é uma forma que podemos imprimir (ou gerar um PDF) os dados de um formulário (e de outros) em um formato pré-definido. É possível definir vários relatórios para um mesmo formulário. Isso é útil, quando se precisa das informações que constam em um formulário, mas como foco diferente. Por exemplo, em um formulário de pedidos, é possível criar um relatório com os detalhes do pedido e um outro com detalhes apenas da entrega. Qual a diferença entre o relatório para impressão e o relatório analítico ? A principal diferença é que no relatório para impressão é possível formatar a(s) página(s), dando uma apresentação customizada às informações. Como foi dito, nos relatórios é possível criar um layout com imagens, logotipo da empresa e etc, dando uma outra roupagem aos dados do formulários quando são impressos.  A definição dos relatórios para impressão é feita como em um editor de texto comum. Para criar um formulário, clique no botão 'adicionar impressão'.  Título É o nome que aparecerá na tela do formulário ao se clicar no ícone  . Edição do documento A área para edição do documento, funciona como um editor de texto clássico. É possível adicionar textos fixos, tabelas, imagens, quebra de linha e etc. Todos os recursos de um editor de texto estão disponíveis na barra superior: Além desses recursos, outros dados estão disponíveis para serem adicionados: Campos Todos os campos do formulário ficam disponíveis para serem utilizados no relatório, com exceção do Botão Customizado . Para adicionar qualquer campo, basta arrastar para o relatório. Ao fazer isso, o nome do campo é adicionado ao lado do conteúdo, que é representado pelo @. Para fazer a formatação do conteúdo, basta selecionar o conteúdo (que fica com um contorno amarelo) e aplicar a formatação normalmente. Formulário Relacionado Quando o formulário é relacionado, todos os registros desse formulário serão mostrados na listagem. É possível filtrar o conteúdo, clicando com o botão direito e selecionando a opção 'Editar Filtro de Dados'. Além disso, as colunas que serão mostradas nessa tabela, são as mesmas que estão configuradas na listagem de dados desse formulário. Caso não queira a exibição de uma delas, basta remover a coluna da tabela. Para adicionar uma informação, basta criar uma coluna e arrastar o campo do formulário relacionado desejado. Campo Upload Ao posicionar o campo upload no relatório, e seu conteúdo for uma(s) imagem(ns), a(s) imagem(ns) será(ão) exibida(s) no relatório. Log Algumas informações internas do sistema estão também disponíveis para serem incluídas no relatório. São elas: Alterado por: nome do usuário que fez a última alteração no formulário; Criado por: nome do usuário que criou originalmente o formulário; Data Alteração: data e hora em que ocorreu a última alteração no formulário, no formato DD/MM/AAAA HH:mm; Data Criação: data e hora em que ocorreu a criação no formulário, no formato DD/MM/AAAA HH:mm; Outras Variáveis É a data atual, em diversos formatos: Data (DD/MM/AAAA): por exemplo 11/03/2019; Data (DD/MM/AAAA HH:mm): 11/03/2019 13:44; Data (DD de mês de AAAA): 11 de Março de 2019; Data (Dia da semana, DD de mês de AAAA): Segunda-Feira , 11 de Março de 2019; Outras Fontes de dados É um recurso que permite adicionar dados de outros registros ou formulários no relatório. A criação dessas outras fontes de dados, depende da composição de queries SQL nas tabelas dos formulários. O agilityflow usa o SQL Server 2016. Para maiores informações, acesse a página do produto no site da Microsoft . Na composição da query, é necessário usar os nomes as tabela informado nos Dados Técnicos do formulário e o nome informado no campo Coluna Banco de Dados SQL , na configuração dos campos.  Elas podem ser de dois tipos: Tabela de Dados A query retorna uma lista com várias colunas e linhas. Para o relatório, o elemento a ser adicionado é uma tabela. Ao clicar com o botão direito, é possível definir o agrupamento por um dos campos da query. Variáveis A query retorna uma lista com várias colunas mas apenas uma linha. Para o relatório, cada coluna é um elemento que pode ser adicionado ao relatório. Para esse tipo de fonte de dados, é necessário usar o parâmetro ' top 1 ' no select . Exemplo de Query Cenário: um relatório do formulário de clientes onde se obtém os últimos 15 pedidos desse cliente em uma impressão. SELECT TOP 15 pedido.log_data_criacao, desc_ped, valor_ped FROM x_tbl_pedido AS pedido INNER JOIN x_tbl_cliente AS cliente ON pedido.id_cliente = cliente.id WHERE cliente.id = @formularioid ORDER BY pedido.log_data_criacao DESC Na query acima, vamos exibir os campos  log_data_criacao ,  desc_ped e  valor_ped dos últimos 15 registros (pedidos) ta tabela  x_tbl_pedido , cujo cliente do pedido seja igual ao cliente que o usuário está acessando no formulário de Clientes ( x_tbl_cliente ). A ordem dessa lista é decrescente baseada no campo log_data_criacao .           Regras de Visibilidade e Desativação Em todos os campos da plataforma, é possível criar regras para tornar um campo visível, invisível, ativo ou inativo, e definir quando uma dessas ações deve ocorrer. É possível adicionar várias regras para cada campo. Descrição É um texto que ajuda a identificar a regra que se está criando. Muito útil quando existem múltiplas regras. Ação Ativar Deixa o campo disponível para inserção de dados. É o estado padrão do campo. Inativar Deixa o campo indisponível para inserção de dados. Visível O campo é mostrado na tela, caso esteja inserido para tal, nas configurações de tela. Invisível O campo é não é mostrado na tela, mesmo que esteja inserido para tal, nas configurações de tela. A partir da etapa / Até a etapa Em formulários com etapas, é possível estabelecer que uma regra será aplicada em alguma(s) etapa(s). Para isso, basta selecionar as etapas nos campos "a partir da etapa" e "até a etapa", para definir em que momento do fluxo essa regra vai ser aplicada. Quando Define em que momento a ação deve acontecer. Sempre É o padrão do formulário. Condicional Tipo de condição Para fazer um validação condicional, estão disponíveis as seguintes condições: Se o campo: compara um campo com um valor, ou com outro campo. Abaixo, uma tabela com os operadores disponíveis para as comparações: Comparação por valor Comparação por outro campo For igual a É igual ao campo For maior ou igual a É diferente do campo For menor ou igual a    For maior que   For menor que   For diferente de   Conter   Não conter   É possível adicionar mais de um condição na mesma regra. Se é um novo formulário: regra será aplicada quando uma nova entrada no formulário estiver sendo criada. Se é edição de formulário: regra será aplicada quando uma entrada no formulário estiver sendo alterada.   Lista de atributos de configuração por campos Atributos dos campos e componentes do formulário Campo Textbox Label Dinâmica Novo Upload Lista de seleção (Combo) Pesqiusa com auto completar Checkbox (Único) Lista aberta com escolha única (Campo Radio) Fórmula Campo com Múltipla Escolha Botão Customizado Tabelas (Formulários Relacionados) Tabelas Relacionais (N:N) Componentes CsHtml Grupo de Informação                           Nome de Apresentação                           Tipo                           Campo de Texto Simples                           Campo de Texto Multi Linha                           Campo com criptografia MD5 (Ex: Senha)                           Campo Auto Numérico (Número Sequencial preenchido automaticamente)                           Texto ao lado do Checkbox                           Quando marcado                           Quando desmarcado                           Coluna Banco de Dados (SQL)                           Informações de ajuda                           Preenchimento Padrão                           Preencher Quando                           Valor Padrão                           Máscara                           Tipo de máscara                           Número                           Tipo de Número                           Inteiro                           Moeda (Real)                           Decimal (1 casa decimal)                           Decimal (2 casas decimais)                           Decimal (3 casas decimais)                           Decimal (4 casas decimais)                           Decimal (5 casas decimais)                           CPF                           CNPJ                           CEP                           Máscara Customizada                           Tipo de Customização                           Básica                           Avançada                           Máscara com 'Regular Expression'                           Telefone: País + DDD + Cel/Tel Brasil                           Telefone: DDD + Cel/Tel Brasil                           Telefone: Cel/Tel Brasil                           Data Data e hora no formato dd/mm/yyyy hh:mm                           Data e hora (Com Segundos) no formato dd/mm/yyyy hh:mm:ss                           Data sem hora no formato dd/mm/yyyy                           Hora no formato hh:mm                           Hora (Com Segundos) no formato hh:mm:ss                           Tamanho máximo de Preenchimento                           Preenchimento da Label Dinâmica                           Preencher a label dinâmica ao alterar o campo                           Campo de apresentação (Base de dados)                           Origem dos Dados                           Origem dos Itens                           Lista Dinâmica                           Lista Estática                           Carregamento de lista                           No carregamento inicial (On PageLoad)                           Na alteração do valor de um determinado campo (On Change)                           Base de dados                           Campo de apresentação (Base de dados)                           Origem dos Dados e Relacionamento com outros Formulários (Pai X Filho)                           Esse campo pode ser Relacionado a um formulario Pai e preenchido automáticamente pelo ID (Primary Key) do formulário pai                           Esconder campo quando o formulário for aberto através do formulario pai                           Definição da Fórmula                           Tipo de Cálculo                           Fórmula Numérica                           Fórmula por data/hora                           Fórmula                           Validação                           Obrigatório                           Obrigatório mesmo que por algum motivo o campo esteja marcado como invisível?                           Obrigatório a partir da etapa                           Valor do campo deve ser único em relação a todos os registros                           Valor do campo deve ser único em relação ao formulário PAI:                           Valor do campo deve ser único em relação APENAS ao CAMPO relacinoado do formulário PAI:                           Extensão Permitida                           Extensão não permitida                           Validação customizada                           Tipo de Validação                           Número igual e diferente                           Numerica: O valor digitado deve ser igual ao numero                           Numerica: O valor digitado deve ser diferente do numero                           Numerica: O valor digitado deve ser igual ao campo                           Numerica: O valor digitado deve ser diferente do campo                           Número máximo                           Numerica: O valor digitado nao pode ser maior que o numero                           Numerica: O valor digitado nao pode ser maior nem igual ao numero                           Numerica: O valor digitado nao pode ser maior que o campo                           Numerica: O valor digitado nao pode ser maior nem igual ao campo                           Número mínimo                           Numerica: O valor digitado nao pode ser menor que numero                           Numerica: O valor digitado nao pode ser menor nem igual ao numero                           Numerica: O valor digitado nao pode ser menor que o campo                           Numerica: O valor digitado nao pode ser menor nem igual ao campo                           Range numérico                           Numerica: O valor digitado tem que estar entre os numeros                           Numerica: O valor digitado NAO pode estar entre os numeros                           Texto igual e diferente                           Texto: O valor digitado deve ser igual ao texto                           Texto: O valor digitado deve ser diferente do texto                           Texto: O valor digitado deve ser igual ao campo                           Texto: O valor digitado deve ser diferente do campo                           Texto contém                           Texto: O valor digitado deve conter no minimo o texto                           Texto: O valor digitado NAO deve conter o texto                           Outros                           CNPJ                           CPF                           E-mail                           Avançado                           Regex                           Upload lista                           Upload: Upload de no máximo X itens                           Upload: Upload no mínimo X itens                           Upload: Upload exatamente X itens                           Seleção Lista                           Seleção: Selecionar no máximo X itens                           Seleção: Selecionar no mínimo X itens                           Seleção: Selecionar exatamente X itens                           Validar a partir da etapa                           Regras de Visibilidade e desativação                           Ação                           Ativar                           Inativar                           Visível                           Invisível                           Quando                           Sempre                           Condicional                           A partir da etapa                           Até a etapa                           Customização javascript                           Descrição                           Evento                           On Page Load                           On Blur                           On Change                           On Click                           On Focus                           On Input                           On KeyUp                           On KeyDown                           On Mouseover                           On Mouseout                           A partir da etapa                           Ordenação manual organizada pelo próprio usuário                           Customização da Lista                           Coluna Visível                           Prefixo                           Sufixo                           Informação no Rodapé                           Soma da Coluna                           Média da Coluna                           Mascara: Moeda (Real)                           Máscara: Decimal (1 casa decimal)                           Máscara: Decimal (2 casas decimais)                           Máscara: Decimal (3 casas decimais)                           Máscara: Decimal (4 casas decimais)                           Máscara: Decimal (5 casas decimais)                           Lista do formulário que podem ser apresentadas como Sub Lista                           Já abrir com as Sub Lista expandidas                           Sub Lista visível                           Apresentar nessa tabela de dados apenas os dados que foram cadastrados através desse campo da tela                                                       Regras de negócio (Automação) As regras de negócio são regras condicionais que podem executar diversas ações. Essas regras de negócio devem ser sempre associadas a um formulário, e sua criação deve ser feita nas configurações do formulário desejado. Criando as regras Antes de mais nada, é necessário definir um nome para a regra. Esse é o nome que será apresentado depois, na construção da linha do tempo. As regras de automação, podem ter 3 partes. Condicional (se) É onde podemos testar uma ou várias condições. Essas condições referem-se a comparações de um valor com um campo. É possível adicionar as seguintes condições: Se: é uma comparação simples; Caso Contrário: é o que vai ocorrer, caso a condição "Se" não se satisfaça; Se/Caso Contrário: é uma possibilidade de se colocar uma segunda condição; No exemplo acima, queremos dar um tratamento quando o campo 'Tipo de Entrega' for igual a 'Correios', outro quando for 'Mensageiro' e outro para todos os demais valores do campo. Criar Formulário A criação do formulário é o preenchimento do campos do formulário de destino com os valores do formulario de origem (onde a regra está sendo criada) ou com valores pré-definidos. Esses valores pré-definidos, em casos de campos de textos, podem ser fixados quando se define a regra de criação do formulário. Já os campo de seleção, como lista de seleção, a  lista aberta com escolha única (radio), a pesquisa com auto completar, e etc, podem ser atribuídos de outros campos que possuem as mesmas opções, ou selecionados de maneira fixa. Query SQL (Fonte de Dados) Usando essa opção, é possível fazer uma query sql em qualquer tabela do agilityflow e atribuir o resultado à uma variável, e usar o valor nas comparações e nos mapeamentos de formulários. Ao criar a query, será preciso definir o nome da variável e da query. O nome da variável, será usado posteriormente para identificar o valor nas condições e mapeamentos. A query, segue os padrões das queries utilizadas em outros pontos do agilityflow, e os detalhes podem ser vistos aqui . Uma diferença, é que o conteúdo da primeira linha e da primeira coluna (resultado da query) é atribuído à uma variável. Outra diferença, é que nessa query é obrigatório o uso do parâmetro "top 1". No exemplo abaixo, existe um query que verifica a existência do usuário e, dependendo do resultado, toma uma ou outra ação: É necessário colocar a execução da query antes do teste da variável na estrutura condicional (se). Programação customizada Uma forma de se customizar ainda mais o agilityflow é incluir programação em alguns pontos. A programação customizada permite que seja incluído qualquer código em C#, dando uma enorme flexibilidade de ações. Momento de execução das regras As regras precisam ser executadas em um determinado momento. Os momentos são esses: No carregamento inicial do formulário (OnPageLoad) Ao clicar no botão 'Salvar' Ao clicar no botão 'Deletar' Ao alterar o campo Configuração da timeline É quando as regras serão executadas. A timeline (linha do tempo) é uma ordem de acontecimentos onde as regras podem ser incluídas. Para o momento de alteração de campo, a timeline só tem um espaço. Para os demais momentos, são 3 espaços para a inclusão de regras: Antes de validar se o preenchimento dos campos está correto Depois de validar o preenchimento dos campos e Antes de salvar no banco de dados Depois de salvar no banco de dados Reordenar as regras Uma vez posicionada, as regras podem ser reordenadas. Basta clicar no ícone   e arrastar para a posição desejada. Inativar uma regra Para inativar uma regra, clique no menu à direita, e selecione a opção 'inativar nessa timeline'. Feito isso, a regra recebe uma tarja vermelha com a indicação 'inativo'.             Restrição de acesso a Dados na Lista Principal e Regras de Filtros Além de restrição do acesso a funcionalidades por Perfil, você pode em restringir o acesso a dados de uma determinada funcionalidade usando Filtros inicias. Na lista principal por exemplo, você pode restringir acesso aos dados, definindo condicionais nos Valor e Regras Iniciais de Filtros,  como na imagem abaixo. Para isso acesse o seu Formulário ou Fluxo, clica na opção "Construir a tela de lista de Consulta", deois acesse "Filtros: Valor e regras inicias" Você pode ir além e criar (sub)Queries, dentro das opções de filtro citadas acima. Essa é uma opção mais avançada e requer habilidade com SQL.   Em um fluxo de aprovação existe uma funcionalidade nativa que você consegue restringir o acesso nativamente, mostrando para o usuário apenas os fluxos em que ele participou, como na imagem abaixo     Se achar melhor, você pode entrar em contato com a gente e podemos detalhar como tudo isso funciona :-)