Capturar o nome do campo no form que esta com foco

(keycos) #1

bom dia Amigos

Eu tenho uma duvida , existem no SC como eu saber o nome do campo que esta recebendo o foco.

Ou seja conforme o usuario der o foco em deternimados campos eu jogo o nome desse campo em uma variavel.

e aproveitando o gancho existe como dinamicamente eu alterar a minha ordenacao de pesquisa no formulario?

Obrigado a todos

(Rodrigo Lins) #2

No ScriptCase existe a possibilidade de trabalhar com Javascript e Ajax, onde nestes dois tipos existem o evento chamado ‘onFocus’, que ele seria executado no foco do campo escolhido.

Eu não sei ao certo como fariamos de uma maneira geral ele só retornar os campos que tiveram foco, por exemplo, creio que teria que fazer através do javascript, etc…

Mas, você pode estar criando um evento para cada campo e dentro de cada um armazenar em uma variável global o nome do mesmo. O problema é que seria muito manual o processo, se você possuir muitos campos, será um trabalho muito árduo…

Mas, vai a “dica”.

Para alterar dinamicamente um “formulário”, vocÊ pode estar trabalhando com a aplicação de filtro, voce cria uma nova aplicação de filtro baseado na mesma tabela do formulário, e faz a ligação para o formulário em questão.

Ou dependendo muito da regra, teria que criar através de código especificos… que vai depender muito do que você está querendo.
Na aplicação de consulta, já existem estas opções por padrão.

Rodrigo Lins.

(keycos) #3

Foi como eu imagina , quando o campo ganhar o foco tenho que carrgar esse valor em uma variavel global e utiliza-la na funcao que eu quero.

De toda maneira obrigado pela explicacao.

(keycos) #4

Rodrigo

Estou usando a versao 4 do SC , só que na opcao de filtro nao esta me dando a opcao de ordernar pelo filtro e assim alterar dinamicamente meu formulario, ainda existe na versao 4 , ou eu que estou procurando errado .

Obrigado pela atencao

(Rodrigo Lins) #5

Ah sim, acho que sei o que você está falando…

Existem 2 tipos de dados (campos) que aparecem somente no filtro já presente dentro da consulta, que são:

  • Ordenação dos Campos;
  • Campos da consulta;

Que através do filtro, da consulta, pode escolher os campos que irão aparecer na grid e a ordenação também.
Você só irá conseguir utilizar ele através da consulta, para o formulário não será possível.

Uma outra solução que estou pensando agora, seria você obrigar o preenchimento de um campo criado (contendo os tipos de ordenação) e utilizar variável global no formulário (no SQL) para montar este ORDER BY e no evento onInit você atribuir este valor ou fazer a regra…
Espero ter dado alguma idéia…

Rodrigo Lins.

(keycos) #6

bom dia Rodrigo Tudo bem

Vejo que estou na direcao certa. o que eu estou fazendo é colocar na opcao ordernar do Sql do formulario o campo que eu quero . estou tentando usar uma variavel tipo [var_order] . quando executa depois de me pedir o valor de var_order dá essa mesnsagem.

Parse error: syntax error, unexpected ‘[’, expecting T_STRING in C:\Arquivos de programas\netmake\v4\wwwroot\scriptcase\app\pj_padrao\frm_produtos\frm_produtos_apl.php on line 1291

Eu posso resolver isso entrando no php , mais isso da muito trabalho e toda fez que eu compilar tenho que entrar de novo.

Sem essa mensagem resolveria todo meus problemas (que tenho por enquanto) rsss.

Mais a posicao é essa. se conseguir resolver eu posto aqui como consegui resolver.

Obrigado pela atencao

(keycos) #7

Olha como ele gera no php

$sc_order_by = “” . $_SESSION[‘var_order’] . “”;
$sc_order_by = str_replace("order by ", “”, $sc_order_by);
$sc_order_by = str_replace("ORDER BY ", “”, trim($sc_order_by));
if (!empty($sc_order_by))
{
$nmgp_select .= " order by $sc_order_by ";
}