campo obrigatório dinâmico

Gente, bom dia.

Não sei se este é o local correto para postar essa dúvida, porém eu procurei em vários lugares e não obtive retorno.

Alguém sabe me dizer se existe alguma macro para tornar um campo obrigatório dinâmicamente?

Não quero que ele venha como padrão obrigatório, mas dependendo dos campos que forem preenchidos, um determinado campo vira obrigatório.

Grato.

Macro creio que não, você pode tratar para que ele sejá obrigatório:

if((!empty({campo1})) AND (empty({campo2})))
{
sc_error_message(“Campo 2 é obrigatório quando o Campo 1 for preenchido!”);
}

abraço

1 Curtida

O bom é se tivesse uma macro para tornar o campo obrigatório, principalmente aquele pontinho vermelho…

Acredito que muitos seria beneficiado com essa macro!..

O que vcs acham?

Melhor seria se cada campo tivesse sua rotina de validação e não genericamente como é hoje.

Permitindo configurar como seria a validação e as mensagens definidas por nós.

Então cara, foi isso que eu tinha feito, mas a minha dúvida era justamente se não tinha uma macro para poder alterar dinamicamente a obrigatoriedade do campo, para não fugir muito o padrão, mas infelizmente acho que não existe =/

Não existe macro para o que vc pretende.

De qualquer forma, para fazer um campo obrigatório dinamicamamente, não teria que ser testada certa condição?

O que mudaria no exemplo do Tiago seria que ao invés de usar a sc_error_message() teria de usar uma outra macro, tipo sc_obrigatorio().

O “trabalho” de validar não sumiria com uma nova macro. Já que campos obrigatórios no SC emitem aviso de obrigatório ao processar o formulário. Seria válido apenas para que o campo mostrasse o aviso de dado obrigatório ao processar o campo.

Amigo é exatamente isso, em nenhum momento eu pedi pelo caminho MENOS trabalhoso, apenas o mais padronizado.
Com uma macro tipo “sc_obrigatorio()” a formatação de obrigatoriedade continuaria seguindo o padrão do formulário, e se não me engano não é apenas no submit do form, mas nos os campos ao perderem foco também emitem alerts de preenchimento obrigatório.
Ao usar um sc_alert ou sc_error_message, a caixa de mensagem muda de padrão do obrigatório.

Quanto ao ‘’ ao lado direito do label do campo vc pode utilizar a macro sc_label ({Meu_Campo}), colocando ou não o '’ conforme sua condição.

Roberto não me interprete mal. Por isso escrevi “trabalho” e não trabalho.

Lembre-se de que outras pessoas com menos experiência do que nós lê o fórum a procura de soluções para seus problemas e tento ser didático em meus posts para ajudar. Penso que a riqueza do debate é sempre válida para melhoramos cada vez mais. Em nossos dois últimos post, nós dois falamos a mesma coisa, de um jeito diferente.

Cleyton, me desculpe, sou novo aqui e não estava no feeling da sua resposta, inclusive pensei comigo mesmo -> ( isso eu já sabia!) rss

Mas eu não sou novo só aqui, como em forúns em geral, não tinha me ligado que ao responder pra 1 outras n pesssoas também acabam por tabela sanando suas dúvidas, perdão.

E George, grato pela informação com isso já consigo deixar o form mais padronizado.

Precisa desculpar-se não Roberto. Vamos em frente e sucesso em nossas jornadas.

Pessoal,

Esbarrei esses dias com esta dificuldade e resolvi da seguinte forma (ver abaixo), que resumidamente implica deixar o campo obrigatório e preencher o campo com algum caractere para que o mesmo seja gravado no banco.

  1. Marquei manualmente o campo como obrigatório, assim como aqueles que são NOT NULL na base de dados e já vem como preenchimento obrigatório.
  2. No evento OnLoad do formulário eu testo a condição que vai tornar o preenchimento do campo obrigatório ou não.
  3. Caso o resultado do teste seja positivo (preenchimento obrigatório), uso a função sc_field_display para mostrar o campo e como o mesmo já foi marcado obrigatório, o usuário tem que preencher.
  4. Caso o resultado do teste seja negativo (preenchimento NÃO obrigatório), uso a função sc_field_display para esconder o campo e como o mesmo já foi marcado obrigatório, preencho manualmente com um caractere qualquer, por exemplo “-”.

Att. Thiago Arreguy

1 Curtida

Faz tempo, mas apenas fazendo uma correção, a opção 3 não procede, se marcar como obrigatório o campo e somente usar a macro, e não preencher o campo, mesmo oculto o formulário irá cobrar, esta função exerce o poder de “escondido” e não como “desabilitado”.