Galera, existe alguma função em advpl que possa habilitar ou desabilitar o seu preenchimento em tempo de execução, e esse campo estaria em uma grid.
Galera, existe alguma função em advpl que possa habilitar ou desabilitar o seu preenchimento em tempo de execução, e esse campo estaria em uma grid.
Bom dia, você terá que fazer isso em MVC no evento OnChange ou em alguma verificação que você terá que colocar em algum campo antes.
Exemplo: o usuário digita um campo antes, neste campo chama a função e verifica se o próximo campo estará acessível ou não.
User Function HabilitarCampo()
Local oGrid := GetGrid("MINHAGRID")
Local nLinha := 1
Local cCampo := "CAMPO1"
// Habilitar edição do campo
oGrid:SetFieldEnable(nLinha, cCampo, .T.)
// Desabilitar edição do campo
//oGrid:SetFieldEnable(nLinha, cCampo, .F.)
Return
então, a questão é que gostaria de realizar em uma tela padrão do protheus como exemplo os itens da solicitação de compra, teria outra forma ou daria para utilizar mesmo assim o MVC?
— Tauani Vitória 15 de Mar de 2024Então os Fontes originais da totvs, pelo menos a sua grande maioria já são em MVC, Você cria essa validação com ponto de entrada.
— Lucas de Paulo Santos 15 de Mar de 2024Se não der certo como ponto de entrada, voce compila ele normalmente e coloca pra chamar no campo dentro do configurador
— Lucas de Paulo Santos 15 de Mar de 2024Tauani, você pode utilizar o campo Modo de Edição (X3_WHEN) na configuração do campo para especificar uma regra para habilitação ou não. Este campo espera um retorno lógico para habilitar (.T.) ou não (.F.) a edição.
Exemplo: para habilitar o campo ZYX_TIPO apenas quando o campo ZYX_CLI for igual a '1', informe o seguinte conteúdo no X3_WHEN do campo ZYX_TIPO:
M->ZYX_CLI == '1'
Apenas lembrando que o campo não é removido do formulário/grid, apenas altera sua propriedade de alteração/visualização em tempo de execução de acordo com a regra passada.
Para maiores informações: https://medium.com/protheus-erp/modo-de-alteracao-68186f6b71e2