ScriptCase: v 7.1.0004
App: Formulário Único Registro
Evento Código: onLoad
Macro: sc_field_disabled();
Problema: Hoje tentei usar a macro sc_field_disabled no evento onload do meu form e a mesma não sutil efeito algum. Tentei executa-la de várias maneiras, sc_field_disabled(“Nome=true”), sc_field_disabled(“nome=true”), sc_field_disabled("{nome}"), sc_field_disabled(“nome”). Com todos esses testes e nada. Então cheguei a conclusão que fosse um bug da versão.
Almeida,
Utilizo assim (evento onLoad), e funciona.
sc_field_disabled(“campo”);
Versão do SC 7.00.0018
Att,
Jocimar
Pois é jocimar, na v 7.0 a mesma funcionava perfeitamente, nunca tive problemas ou dúvida na hora de usa-la, agora na v7.1 a bicha zicou… rsrss
Boa tarde,
Reportei este problema para nossa equipe de bugs.
att,
Bernhard Bernsmann
Almeida,
Qual o tipo de campo no scriptcase que você está tentando desabilitar?
Tentou clicar no campo para verificar se o mesmo está disponivel para a digitação?
Tentei clicar no campo, o mesmo aceitou editar.
Tem esse bug também, os campos desabilitados não estão pegando o css do tema, tenho que editar o arquivo css do SC
mudando as cores do mesmo, para não confundir.
Tentei em campos tipo, CPF, TEXTO, NUMERO.
Esse formulário único registro está usando blocos? Caso sim, por acaso o campo está no 2 bloco?
Tentou criar um formulário único registro e adicionar apenas o campo no evento.
ex: sc_field_disabled(“cpf_cnpj”);
Sim o formulário está usando bloco e campo está no 2o bloco.
Tentei desabilitar todos os campos, apenas 1, tentei 1 por 1 e nem um dos campos foi desabilitado, tenho campo tipo data, cpf, texto, número.
Segue uma imagem abaixo para te mostrar a estrutura do me form, não fiz o teste criando um novoo formulário, com apenas 1 bloco, pois creio
que a macro deveria desabilitar um campo do 1, 2 ,3, 4, 5, 6, 7 bloco, qualquer bloco.
Se quiser que faça um teste poste aqui que farei.
Imagem:
Aproveitando, tive problema para esconder/mostrar bloco quando o campo no BD está com Char de qualquer tamanho utilizando o empty({campo}), considera vazio com campos do tipo varchar.
Como o campo têm 3 de tamanho, a função empty() considera que o campo não está em branco, pois há 3 espaços, aqui não estava funcionando, acabei utilizando strpos() para ver se há alguma espaço em branco, e assim fazer a condição funcionar, o que o esconder/mostrar bloco funciona.
O form é de único registro, com 7 páginas e cada página com alguns blocos!
O objetivo do meu form é mostrar os campos do SQL do form, porém criei campos na mão para preenchê-los no onRecord, e assim comparar conteúdo para mostrar apenas aqueles que foram alterados, mas somente os campos diferente, que não contenham informação (empty()).
A função empty() do PHP funciona assim mesmo, ou seja, se retorna para um {campo do formulário} espaços (neste caso criei o campo na mão), então não está vazio ?
Att,
Jocimar
Campos tipo char, nunca ficam vazios, sempre são preenchidos com espaços em seu tamanho total. Campos tipo varchar ficam vazios.
OK
Isto foi o que verifiquei, …, em linguagens procedurais, caso uma variável ou conteúdo de campo da tabela estejam vazias, independente do seu tamanho, a função empty() retorna .t. para campo sem conteúdo, entende o espaço como falta de informação, assim como campo do tipo numérico que está 0 (zerado).
Venham aprendendo o PHP na medida da necessidade, e estas particularidades vão sendo “aprendidas” na medida dos “problemas” encontrados!
Obrigado pelo retorno!
Att,
Jocimar
Tente usar empty(trim($variavel)).
Legal Almeida!
Tentei empty(trim( {campo} )), mas o SC se perde e dá a famosa tela branca!
Grato,
Jocimar
Não entendi a parada da tela branca, rsrs…
Tente algo assim
$valor = trim({varivavel});
if(empty($valor)){
...
}
Obrigado Almeida,
Tenho que conferir diversos campos, e cada linha fica assim:
sc_block_display(novo, off);
if ( ({chttpo}==“Exclusao” || {chttpo}==“Inclusao”) || ( {chttpo}==“Alteracao” && strpos({chtnov}," ")===false && {chtnov} != {chenov} )){
sc_block_display(novo, on);
}
Então, não pretendo criar mais variáveis para conferência no IF, têm que ficar em apenas numa linha.
Att,
Jocimar