sc_field_display

(system) #1

Por este exemplo no manual

sc_field_display ({campo}, on/off)

Permite, dinamicamente, exibir ou não um determinado campo do formulário.
Em princípio, todos os campos do formulário são exibidos (condição “on”).
EX:

  if ({tp_cli} == "fisica")
  {
      sc_field_display({cnpj}, off);
  }
  else
  {
      sc_field_display({cpf}, off);

tentamos fazer isto

if({or_status} == "F"){
   sc_field_display({or_numeroalterado}, off);
} else {
   sc_field_display({or_numeroalterado}, on);
}

e colocamos nos eventos OnInit, OnRefresh e OnLoad, só que não funcionou o que pode ser :

(Haroldo) #2

Acho que não precisa das chaves, tente sem as chaves, e a princípio, somente na onload, pois será quando terá um registro valido.
Na OnInit, é quando o formulario é carregado pela primeira vez antes do select
Na OnRefresh, somente com a recarga do forumulario,
Mas na onload, quando navega nos registros, depois do select, é o local ideal para colocar o código.

(system) #3

nao entendi, que chaves ?

(Haroldo) #4

desculpe, o parâmetro nome do campo deve estar entre chaves {}.
Eu uso o sc_field_display e esta funcionando normalmente.

(system) #5

eu acho que estou explicando errado.

tipo assim se o campo que vem da tabela for “F”, aparecerá o valor do banco (Sem a pessoa poder altera, somente visualização), se for diferente de “F” aparacerá o campo para a pessoa digitar, entendeu ?

o pessoal da script me respondeu e consegui desta forma, usando a macro sc_field_readonly({or_numeroalterado}, on) ao invez da sc_field_display.

(Eduardo Alves) #6

O sc_field_display não está funcionando mesmo (eu tentei usar de diversas maneiras), somente o sc_field_readonly. Uso a versão 4.00.0014

Se alguem conseguiu, favor postar…

um abraço

(Lene Veloso) #7

já tentou colocar a opção on/off entre aspas? Comigo deu certo!

Por exemplo:

if (!{id}){
sc_field_display({cancela}, “off”);
}

if ({cancela} == ‘S’){
sc_btn_display (“insert”, “off”);
sc_btn_display (“update”, “off”);
sc_field_readonly({cancela});
}

(system) #8

Em primeiro lugar, quero pedir desculpas pelo meu Português, eu estou usando Traduz Google para postar isso.

Quero agradecer-lhe uma solução para este problema que eu tenho tentado arduamente para encontrar uma solução para o Inglês falando no fórum. Eu estava perto de desistir antes Encontrei esta lista de discussão. A solução funciona bem e é muito diferente ao que está na documentação.

First, I want to apologize for my Portuguese, I am using Google translate to post this.

I want to thank you for a solution to this problem that I have tried very hard to find a solution to in the English speaking forum. I was close to giving up before I found this thread. Your solution works well, and is quite different to what is in the documentation.

(system) #9

Olá amigos,

Sou iniciante e estou tentando fazer o seguinte, tenho um radio com as opções Sim ou Não e usei o seguinte código:

if ({PossuiHabilitacao} == “Sim”)
{
sc_field_display({CategoriaHabilitacao}, on);
}else{
sc_field_display({CategoriaHabilitacao}, off);
}

Se o usuário possuir habilitação para dirigir e clicar no radio “Sim”, devia aparecer em baixo 5 checkbox com as categorias A, B, C, D e E. Se ele clicar em não, essas categorias ficam ocultas.

Mas ele só ocultou as categorias, mas se eu clicar sim ou não, ele não mostra as categorias.

No meu BD, PossuiHabilitacao e CategoriaHabilitacao são campos de uma tabela.

usei esse código em Eventos OnInit, OnRefresh e OnLoad e OnBeforeInsert só que não funciona o que pode ser???
O que está errado???

Obrigada

(Haroldo) #10

Verifique se o valor para a seleção de Sim é “Sim”. vá nas proriedades do campo em lookup.

(system) #11

Muito obrigada, amigo, já consegui…é que o valor de Sim e Não tnha só 1 caracter no BD, então mudei para S e N e deu…

(talhau) #12

Tenho uma dúvida, quero saber se funcionar rodar assim? Pq nao estou conseguindo.

tenho os campos valor1, valor2, valor3…

$i=1;
while ($i<=20) {
$teste=“valor”."$i";
sc_field_display($teste, off);
$i++;
};

Já tentei {$teste} e também não foi. Existe alguma forma?

(Haroldo) #13

não funciona assim.
quando o sc for gerar o fonte o código vai ser interpretado de maneira diferente. Talvez por referência você consiga ou usando como o sc geraria: $this->…