CRITICO!!! Passagem de parâmetro - Consulta / Formulario

(LuisGustavo) #1

Boa tarde sr(a)s…

Passei o final de semana tentando resolver um dilema que era simplesmente passar como parametro o id de uma consulta para um formulario simples…

Tentei de diversas maneiras … sc_redir, sc_link, com variavel global… logicamente que cada um na sua sintaxe… porem unica solução que encontrei foi criar uma ligação da minha consulta como se eu fosse edita-la e ai criar um campo LABEL onde na onload eu atribui o seu conteúdo como sendo um link conforme abaixo.

{gerar_cdm} = “<a href=”…//form_tb_cdm/form_tb_cdm.php?id_etiqueta="."{tran_id}"."" >Gerar CDM";

No meu formulario onde eu precisa da variável eu ia testando com as linhas abaixo e ele sempre ele me retornava vazio para a variavel id_etiqueta quando eu utilizava as funcoes:

Linha de teste
echo " get ==== " . $_GET[“id_etiqueta”] . “
”;
echo " post === " . $_POST[“id_etiqueta”] . “
”;
echo " global = " . [id_transferencia] . “
”;

sc_link (Eu crirei um campo html_imagem na minha consulta, coloquei os parametros, tudo conforme a regra… ele chama a aplicação mas nada de mostrar o conteudo)

sc_redir(Para esta função eu criei um botao php, tbm tudo conforme o figurino, ele chama a aplicação mas nada de trazer o conteudo da variavel id_etiqueta)

Tentei usar todas as maneiras existentes mostradas aqui no forum e no help, nenhuma funcionou…

ex: (Só para mostrar os comandos encontrados no forum

sc_redir(http://localhost:85/ramati.php?emp_cod=$var_emp_cod) //Com paramentro junto
sc_redir(ramati.php, emp_cod={var_emp_cod}) //Com paramentro separado

o mesmo com o sc_link… diversas maneiras todas rodam sem erro, porem não retornam o valor de id_etiquta…
Agora pergunto… essas funções realmente funciona com alguem nesta situação… consulta / Formulario??? não encontrei ninguem no forum que obteve sucesso.

Sendo que a unica solução que encontrei foi a descrita acima… fazer uma ligação para editar o registro, incluir um campo label e alterar seu conteudo conforme comando acima…

Bom é isso… só quero ter certeza que não estou fazendo nenhuma besteira e deixar uma solução para alguem que encontre a mesma dificuldade.

Att.

(Haroldo) #2

funcionam sim.

(LuisGustavo) #3

Ola Harold…

Mas qual é a magia!? rs…
pode me dar uma exemplo… de postagem com retorno?

Esta certo a maneira com que usei para receber a variavel postada pelo sc_link?

echo " get ==== " . $_GET[“id_etiqueta”] . “
”;

Qual seria a maneira correta?

(Haroldo) #4

Você tem diversas opções para passar parâmetros entre aplicações:
No caso da consulta:
ligação de campos, botão de ligação, criar um campo label e colocar um código html.

na aplicação chamada apenas utilize o campo [CAMPOPASSADO] que o sc relatará no momento da criação da ligação.

Em base de conhecimento no site do sc tem exemplos de utilização.

(LuisGustavo) #5

Caro amigo, após mais uns dias quebranco a cabeça no meu problema pergunto, existe uma solução?

Objetivo:
Eu tenho uma consulta em que quero pegar o ID e passar para um formulario em branco (em branco para uma nova inclusao). A intenção disso é pegar algumas informações já digitadas de uma tabela para aproveitar no formulario.

Como eu fiz isso:
Teste em todos os eventos iniciais, onload, init… e em ambos só funciona no caso de eu deixar se o teste inicial que verifica se existe a variavel utilizada para passagem de parametro com o id do registro necessario. Na primeira vez que eu clico no link de ligação ele abre o formulario com os registro em aberto, porem com os campos automaticos certos… na segunda ele traz o formulario em branco com os dados certos… estou ficando doido com isso! rs…

if(isset($id_etiqueta)){

    sc_apl_conf("form_tb_cdm", "start", "new");
$id_etiqueta = $_GET["id_etiqueta"];


sc_lookup(transf, "
SELECT
   tran_id,
   tran_modelo_produto,
   tran_descricao_produto,
   tran_pn_produto,
   tran_quant_produzida,
   tran_turno,
   tran_num_etiqueta,
   tran_num_quebra
FROM
   tb_transferencia
WHERE 
   (tran_id = '$id_etiqueta')
");

if (FALSE === {transf}) {
	sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({transf})) {
	sc_error_message("Nenhum valor foi retornado pelo banco.<BR>");
}
else {

	
// Carrega os campos preenchidos automaticamente.

{tb_cdm_pn}		= {transf[0][3]};
{tb_cdm_descricao}	= {transf[0][2]};
{tb_cdm_modelo}		= {transf[0][1]};
{tb_cdm_turno}		= {transf[0][5]};
{tb_cdm_quant_lote}	= {transf[0][4]};
{tb_cdm_num_etiqueta}	= {transf[0][6]};
	

}

Existe uma solução mais simples para se fazer isso, abrir um form em branco e buscar os dados de uma outra tabela atraves do parametro passado.

Grato.