Bom dia.
Tenho um código desenvolvido que analisa se restou apenas um registro no grid após um definição de parâmetros de consulta. A tela de filtro está na imagem:
No evento onValidate do Filtro eu recupero o valor de cada seleção através de variáveis globais:
“[Empresa] = {Empcod};
[Loteamento] = {Ltcod};
[Quadra] = {Ltqdr};
[Lote] = {Ltlot};”
No evento onScriptInit da Consulta inseri o seguinte código para verificação da quantidade de registros retornada pela seleção do filtro:
$Ltlot = [Lote]; if ($Ltlot != ''){ $Empcod = [Empresa]; $Ltcod = [Loteamento]; $Ltqdr = [Quadra]; $sql = "Select COUNT(*) from SENLTQ " . "WHERE Empcod = '" . $Empcod . "' " . "And Ltcod = " . $Ltcod . "And Ltqdr = '" . $Ltqdr . "' " . "And Ltlot = '" . $Ltlot . "'"; sc_select(rs,$sql); if ($rs->fields[0] == 1){ $app = "form_dbo_Quadra_Lote"; $target = "_self"; $_arr=array(“Empcod”=>$Empcod,"Ltcod"=>$Ltcod,"Ltqdr"=>$Ltqdr,"Ltlot"=>$Ltlot); sc_redir($app, $_arr, $target); } }
Reparem que essa consulta tem um redir caso o SELECT do banco de dados retorne somente um registro.
O filtro funciona como iframe da consulta. Ou seja, o filtro e o resultado da consulta estão na mesma tela conforme a imagem:
No momento em que a consulta identifica que o resultado tem apenas um registro aparece um “alert” na tela com o seguinte código:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd”>
<HTML DIR=‘LTR’>
<HEAD>
<TITLE></TITLE>
<META http-equiv=“Content-Type” content=“text/html; charset=utf-8” />
<META http-equiv=“Expires” content=“Fri, Jan 01 1900 00:00:00 GMT”>
<META http-equiv=“Last-Modified” content=“Mon, 30 Aug 2021 14:46:25” GMT">
<META http-equiv=“Cache-Control” content=“no-store, no-cache, must-revalidate”>
<META http-equiv=“Cache-Control” content=“post-check=0, pre-check=0”>
<META http-equiv=“Pragma” content=“no-cache”>
<link rel=“shortcut icon” href="…/_lib/img/scriptcase__NM__ico__NM__favicon.ico">
<link rel=“stylesheet” type=“text/css” href="…/_lib/css/bi_SENPAR/bi_SENPAR_error.css" />
<link rel=“stylesheet” type=“text/css” href="…/_lib/css/bi_SENPAR/bi_SENPAR_errorLTR.css" />
</HEAD>
<BODY>
<TABLE class=“scErrorTable” cellspacing=“0” cellpadding=“0” align=“center”>
<TR>
<TD class=“scErrorTitle” align=“left”>Atenção</TD>
</TR>
<TR>
<TD class=“scErrorMessage” align=“center”>Use of undefined constant “Empcod” - assumed ‘“Empcod”’ (this will throw an Error in a future version of PHP)</TD>
</TR>
</TABLE></BODY>
</HTML>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd”>
<HTML>
<HEAD>
<META http-equiv=“Content-Type” content=“text/html; charset=utf-8” />
<META http-equiv=“Expires” content=“Fri, Jan 01 1900 00:00:00 GMT”/>
<META http-equiv=“Last-Modified” content=“Mon, 30 Aug 2021 14:46:25 GMT”/>
<META http-equiv=“Cache-Control” content=“no-store, no-cache, must-revalidate”/>
<META http-equiv=“Cache-Control” content=“post-check=0, pre-check=0”/>
<META http-equiv=“Pragma” content=“no-cache”/>
</HEAD>
<link rel=“shortcut icon” href="…/_lib/img/scriptcase__NM__ico__NM__favicon.ico">
<BODY>
<form name=“Fredir” method=“post”
target="_self">
<input type=“hidden” name=“nmgp_parms” value="“Empcod”?#?04?@?Ltcod?#?4?@?Ltqdr?#?C?@?Ltlot?#?001?@?"/>
<input type=“hidden” name=“nmgp_url_saida” value="">
<input type=“hidden” name=“script_case_init” value=“6827”/>
</form>
<SCRIPT type=“text/javascript”>
window.onload = function(){
submit_Fredir();
};
function submit_Fredir()
{
document.Fredir.target = “_self”;
document.Fredir.action = “/scriptcase/app/biSENPAR/form_dbo_Quadra_Lote/form_dbo_Quadra_Lote.php”;
document.Fredir.submit();
}
</SCRIPT>
</BODY>
</HTML>
Veja como fica na tela do FireFox conforme a imagem:
Esse erro ocorre em todos os navegadores. Estou usando o FireFox como exemplo pois ele mostra a mensagem do alert completa, enquanto os outros navegadores apresentam a mensagem truncada.
O redirecionamento não ocorre. Se apertar F5 para atualização da tela a página é redirecionada porém sem as variáveis indicadas na tela.
Poderiam, por favor, me ajudar?