** RESOLVIDO ** Clausula where do fomrulario nao recebe variavel.

(system) #1

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.

(andrezica) #2

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í.

(system) #3

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) #4

Para definir uma variavel global no SC use a macro

sc_set_global([sua_variavel]);

(waae) #5

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!?

(system) #6

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 !!!