Autor Tópico: ** RESOLVIDO ** Clausula where do fomrulario nao recebe variavel.  (Lida 3066 vezes)

thekey

  • Visitante
** RESOLVIDO ** Clausula where do fomrulario nao recebe variavel.
« Online: Setembro 21, 2009, 01:48:59 pm »
Olá Amigos, é um prazer participar deste forum.
Meu problema parece simples de se resolver, mas não consigo NEM A PAU JUVENAL!

Possuo a seguinte linha na "Clausula Where" de meu formulario: ID = '[idempresa]

No evento ONINIT defini esta variavel da seguinte forma:

$vteste = '123';
$idempresa = $vteste;
global $idempresa;

*PROBLEMA: A variavel na clausula Where do formulario nao recebe o conteudo da variavel idempresa. Alguem pode me ajudar ?

Abracos.

« Última modificação: Novembro 06, 2009, 09:31:10 am por Rodrigo Lins »

andrezica

  • Novato
  • *
  • Mensagens: 8
Re: Clausula where do fomrulario nao recebe variavel.
« Responder #1 Online: Setembro 21, 2009, 02:59:53 pm »
Boa tarde thekey.

Não sei se entendi bem o que o você quer mas,... o scriptcase tem uma macro que, durante a execução do programa você pode passar uma variável para a sua cláusula where.
O nome da macro é sc_select_where(add).

Não sei se é isso que você está procurando? Se não for, tamos aí. 

thekey

  • Visitante
Re: Clausula where do fomrulario nao recebe variavel.
« Responder #2 Online: Setembro 21, 2009, 03:25:49 pm »
Obrigado pela antencao Andrezica, mas nao é isto que procuro.

Preciso que a variavel [idempresa] que está na parte SQL > "Clausula where" do formulario, receba os valores já atribuidos a ela no evento ONINIT deste projeto.

o que não está acontecendo, parece que a linha idempresa = 'qualquer valor' no ONINIT , não é passado para a sentece SQL do formulario.

Parece simples, mas nao sei como fazer.

Aguardo  alguma SANTA Resposta.

George Carvalho

  • Expert
  • *****
  • Mensagens: 1373
    • Email
Re: Clausula where do fomrulario nao recebe variavel.
« Responder #3 Online: Setembro 22, 2009, 06:42:56 am »
Para definir uma variavel global no SC use a macro

sc_set_global([sua_variavel]);
George Carvalho
Porto de Galinhas/PE

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: Clausula where do fomrulario nao recebe variavel.
« Responder #4 Online: Setembro 22, 2009, 09:34:25 am »
entao....
nesse caso... defino a variavel global logo no inicio do projeto... no caso no controle do login:

$idempresa = 0;
sc_set_global($idempresa);


e no init do formulário, vc pode colocar somente:
$idempresa = '123';

e no Where:
ID = '[idempresa]'

(considerando que esse ID é um campo do formulário corrente neh!?


thekey

  • Visitante
Re: Clausula where do fomrulario nao recebe variavel.
« Responder #5 Online: Setembro 22, 2009, 10:15:04 am »
DEU CERTO !!!!!

Prezados gcarvalho e waae,

unindo as 2 informações consegui entender o problema.

Primeiramente o uso da macro SC_SET_GLOBAL  foi muito importante, pois parece que nem em todos os casos usar simplesmente global $variavel, nao funciona.

Em segundo lugar, me deparei com um detalhe que o SCRIPTCASE engana agente, quando se executa um formulario e o scriptcase no ato da compilacao te pede o valor de uma variavel a ser utilizada, nao significa necessariamente que ele nao irá resgatar o valor dela em seus eventos.

Apesar de usar as variaveis globais, ao compilar e o scriptcase me pedir o conteudo da variavel, eu estava achando que a global nao estava passando o valor, na verdade ignore o pedido de valor da variavel que se ela for setada mais na frente em seus eventos ela vai funcionar.

ABRACOS !!!