Como Fazer

Mostrando campos do SharePoint selecionados como somente leitura

Erick Alves de Moura
- Head of Delivery e Arquiteto Principal na Trinapse, Microsoft 365, Power Platform e Copilot
· 3 min de leitura
Mostrando campos do SharePoint selecionados como somente leitura

Com a  ação setValue  na formatação JSON do SharePoint, pessoas da comunidade estão criando várias soluções ou casos de uso.

Assim, a ação setValue  expande as possibilidades do que podemos fazer usando a formatação de lista, no entanto, precisamos ter em mente que as pessoas podem facilmente ignorar as regras que implementamos se abrirem o item da lista no formulário de lista  ou no menu rápido editar visualização.

Portanto, com alguns ajustes, podemos tornar isso mais difícil de acontecer. Este post mostra os ajustes, mas a ideia pode ser facilmente reutilizada em outros casos.

1) Desative a visualização de edição rápida do SharePoint

Primeiramente, ao desabilitar a Edição Rápida nas visualizações, as pessoas terão que interagir com qualquer botão personalizado criado ou com os formulários de lista para modificar os dados.

Então, para desativar a edição rápida, navegue até a página de configurações da lista e, em configurações avançadas:

Mostrando campos do SharePoint selecionados como somente leitura — 1) Desative a visualização de edição rápida do SharePoint (imagem 1 de 2)

Na sequência, desative a edição rápida:

Mostrando campos do SharePoint selecionados como somente leitura — 1) Desative a visualização de edição rápida do SharePoint (imagem 2 de 2)

2) Oculte os campos do formulário do SharePoint

Em qualquer exibição de lista, clique em Novo:

Mostrando campos do SharePoint selecionados como somente leitura — 2) Oculte os campos do formulário do SharePoint (imagem 1 de 4)

No menu de personalização do formulário, clique em editar colunas:

Mostrando campos do SharePoint selecionados como somente leitura — 2) Oculte os campos do formulário do SharePoint (imagem 2 de 4)

Em vez de remover os campos, clique em  Editar fórmula  nos campos que deseja ocultar e adicione uma condição que nunca será atendida:

formulário SharePoint — 2) Oculte os campos do formulário do SharePoint (imagem 1 de 5)

Na fórmula de exemplo abaixo, estamos apenas verificando se a contagem de usuários do campo Likes é igual a -1 para exibir o campo.

Essa condição nunca será atendida, pois a contagem de curtidas é sempre maior ou igual a zero:

formulário SharePoint — 2) Oculte os campos do formulário do SharePoint (imagem 2 de 5)

=if(length([$Likes]) == -1,’true’, ‘false’)

Esse truque precisa ser feito usando fórmulas condicionais porque, se os campos estiverem ocultos removendo-os do formulário, os valores não estarão acessíveis pelo modelo JSON.

A ideia é ter uma condição que nunca será atendida na fórmula de visibilidade, tornando o valor do campo acessível, mas sempre oculto.

Salve as alterações do formulário antes de continuar.

3) Adicione o conteúdo JSON personalizado ao cabeçalho ou rodapé do formulário para exibir os valores do campo

Para adicionar um cabeçalho personalizado ao exemplo anterior de Like/Dislike, a última etapa é simplesmente adicionar o formato JSON personalizado ao cabeçalho do formulário para exibir os valores. Este exemplo, os dois campos que estavam ocultos no formulário serão mostrados usando o modelo JSON (como na fórmula anterior, os campos Like e Dislike foram ocultos sem serem removidos).

Para isso, clique na opção ‘Novo item’ como no passo anterior, mas agora selecione ‘Configurar layout’ :

formulário SharePoint — 3) Adicione o conteúdo JSON personalizado ao cabeçalho ou rodapé do formulário para exibir os valores do campo (imagem 3 de 5)

Então, adicione o modelo JSON para o Cabeçalho (ou Rodapé se preferir exibir os valores no Rodapé):

formulário SharePoint — 3) Adicione o conteúdo JSON personalizado ao cabeçalho ou rodapé do formulário para exibir os valores do campo (imagem 4 de 5)

Modelo JSON:


{
    “$schema”: “https://developer.microsoft.com/json-schemas/sp/column-formatting.schema.json”,
    “elmType”: “div”,
    “style”: {
        “display”: “flex”,
        “flex-direction”: “row”
    },
    “children”: [
        {
            “elmType”: “div”,
            “attributes”: {
                “class”: “ms-fontColor-themePrimary”
            },
            “children”: [
                {
                    “elmType”: “span”,
                    “attributes”: {
                        “iconName”: “=if(indexOf([$Like.email] , @me) > -1, ‘LikeSolid’, ‘Like’)”
                    },
                    “style”: {
                        “padding-right”: “6px”
                    }
                },
                {
                    “elmType”: “span”,
                    “txtContent”: “=length([$Like]) + ‘ people liked this'”,
                    “style”: {
                        “padding-right”: “12px”
                    }
                }
            ]
        },
        {
            “elmType”: “div”,
            “attributes”: {
                “class”: “ms-fontColor-themePrimary”
            },
            “children”: [
                {
                    “elmType”: “span”,
                    “attributes”: {
                        “iconName”: “=if(indexOf([$Dislike.email] , @me) > -1, ‘DislikeSolid’, ‘Dislike’)”
                    },
                    “style”: {
                        “padding-right”: “6px”
                    }
                },
                {
                    “elmType”: “span”,
                    “txtContent”: “=length([$Dislike])+ ‘ people disliked this'”
                }
            ]
        }
    ]
}

Salve as alterações do formulário e agora o formulário de lista ficará assim, com os valores somente leitura exibidos no cabeçalho:

formulário SharePoint — 3) Adicione o conteúdo JSON personalizado ao cabeçalho ou rodapé do formulário para exibir os valores do campo (imagem 5 de 5)

Conclusão

Esse truque torna mais difícil para as pessoas editarem os valores no formulário, no entanto, ele não bloqueia totalmente os campos. Esteja ciente de que as pessoas podem usar APIs do SharePoint, Power Automate ou Power Apps para ignorar os valores somente leitura se tiverem permissões de colaboração nas listas ou bibliotecas.

Erick Alves de Moura
Head of Delivery e Arquiteto Principal na Trinapse, Microsoft 365, Power Platform e Copilot

Erick Alves de Moura é Head of Delivery e Arquiteto Principal da Trinapse, consultoria brasileira especializada em Microsoft 365. Acumula 14 anos de experiência em arquitetura e entrega de soluções sobre SharePoint, Power Platform, Microsoft Graph e Copilot, sempre em ambientes corporativos de grande porte.

Ver maisVer menos

Ao longo da carreira, conduziu migrações de SharePoint on-premises para o SharePoint Online, desenhou intranets corporativas, automatizou processos de negócio com Power Apps e Power Automate e, mais recentemente, projetou agentes de IA integrados ao Microsoft 365.

São projetos com milhares de usuários, regras de governança rígidas e integração com sistemas legados, o tipo de cenário em que a decisão de arquitetura importa mais do que a ferramenta.

Fluente em inglês, atende clientes globais e é o arquiteto responsável pela conta da Bayer nos Estados Unidos, no Brasil, atua junto a cooperativas de crédito, agronegócio e indústria, setores com forte exigência de conformidade e continuidade operacional.

Escreve no blog da Trinapse desde 2019. São mais de 240 artigos publicados sobre SharePoint, Modern Workplace, Copilot e agentes de IA, Power Platform e automação de processos, em dois formatos: tutoriais técnicos passo a passo e análises de decisão sobre arquitetura e adoção do Microsoft 365. Todo conteúdo nasce de projeto real entregue, não de documentação traduzida.

LinkedIn
Compartilhar:

Precisa aplicar isso na sua empresa? Fale com nossos especialistas.

Falar com um especialista