** RESOLVIDO ** Como fazer link em campo, criar var.global e chamar outra apl?

(rrma) #1

Olá a todos,

Gostaria de uma ajuda numa consulta simples (grid), onde preciso criar um link em um dos campos, e como ação do clique, preciso colocar o conteúdo do campo numa variável global e chamar um menu tipo árvore.

Alguém me dá uma força?

Obrigado.

Rodrigo Araújo

(system) #2

Rapaz… tu continua por aqui é? hehehe

Quanto a fazer a ligação e chamar o menu árvore, dá pra fazer uma ligação de “campo” pra chamar esse menu…

Mas pra gravar o valor em sessão não consegui pensar em nada “prático” aqui… dava pra criar uma função e chamar no evento onclick de um novo campo criado, que seria um “clone” do valor do campo que vc deseja mostrar, mas com um link “adaptado”, algo do tipo:

{campo_novo} = “”.{campo_original}."";

e a função iria pegar o valor passado como parâmetro, gravar em sessão e redirecionar pro menu… Bizarro não? nada prático… outra forma que pensei agora foi criar uma aplicação “intermediária” entre a grid e o menu, já que o menu árvore não trabalha “nativamente” com variáveis globais…

Por exemplo, criar uma aplicação Blank que iria receber o valor como parâmetro pela grid, gravá-lo em sessão e redirecionar pro menu árvore… ficaria algo assim:

// Evento OnExecute - Aplicação blank
// $campo = nome da var global que será criada
// [valor] = valor que será passado pela grid
// apl_menu = nome da apl menu árvore
$campo = [valor];
sc_set_global($campo);
sc_redir(apl_menu);

Depois só precisaria criar a ligação de campo normalmente, apontando pra essa aplicação Blank e passando o campo pra global [valor]…

Com certeza existem formas melhores pra fazer isso, mas enquanto não descobrimos o jeito é quebrar o galho com umas adaptações hehehe

Abraços,
Robson

(system) #3

Ah, Rodrigo…

talvez isso até funcione no próprio menu árvore… no onLoad, coloque algo parecido com o que citei pra apl blank… só não sei se na hora de fazer a ligação, o sc vai interpretar que precisa de um parâmetro… mas acho que sim… tenta aí hehe

// Evento onload - Menu árvore
$campo = [valor];
sc_set_global($campo);

Depois, quando for criar a ligação da grid pro menu, veja se aparece a opção de passar algo como parâmetro pra global [valor]…

Abraços,

Robson

(rrma) #4

E aí cabra!

Rapaz, até tinha feito a ligação de campo pra chamar o menu como vc falou, mas pra criar a variável global antes não consegui. Vou tentar a segunda opção que vc falou, com a apl blank.

Com relação à sua segunda resposta, o SC não habilita envio de parâmetro quando o destino é apl menu…
Vou tentando aqui…
Valeu a força!
Rodrigo

(rrma) #5

Robson,

Eu consegui de um jeito meio troncho! Não fiz exatamente como queria, mas parece que vai funcionar.
Usei apl de controle pra selecionar o registro desejado e no onValidate coloquei o seguinte:

$var_matricula = {lote}; lote é um campo da apl de controle
sc_set_global($var_matricula);
sc_redir(treemenu_GerenciadorLotes);

Agora, na apl de menu, eu não consegui exibir a variável $var_matricula como label, mas sei que é possível, pois vi o Rodrigo Lins fazer, só que agora falhou a memória aqui…
Vc sabe como fazer? Já tentei {}, [] e não aparece…

Valeu!
Rodrigo

(rrma) #6

Consegui!

Tava errando em dois pontos:

sc_set_global($var_matricula); Tinha que tirar o $
No menu usei: “Lote: [var_matricula]”

Valeu!
Rodrigo