Ir para conteúdo
Fórum Script Brasil
  • 0

Consultar e retornar valor à página solicitante


nosliwde

Pergunta

Meus caros colegas,

Tenho a LisAnalitico.asp que possui um campo de código e outro de descrição. Quando o campo código é preenchido, ao pressionar o a tecla TAB, dispara o evento Onblur com a seguinte especificação:

<input type="Text" name="inCenCusIndice" size="6" value="<%=INDICECC%>" onFocus="return Focu(this)" onBlur="Pesquisar('PesCentroCusto2.asp',form.inCenCusDescricao.value, form.inCenCusIndice.value);return Sair(this)" class="entrada">

Uma função JavaScript Pesquisar é chamada e são passados para ela 2 valores, o valor do campo inCenCusDescricao e do campo inCenCusIndice e a página PesCentroCusto2.asp onde acontecerá a consulta no Banco de Dados.

Eis a função Pesquisar:

function Pesquisar()
{
    //arguments[0] = pagina
    //arguments[1] = descricao
    //arguments[2] = codigo
    pagina=arguments[0]
    check=true;
    if (arguments.length > 1) //se existir mais de um parametro na funcao 
    {
        tam = arguments[0].length;
        for (i=0;i<=tam;i++)
        {
            if (arguments[0].charAt(i)=='?') check=false; //verifica se existe o caracter '?' no parametro 
        }
        if (check==false) //caso exista o '?' a funcao acrescentara parametros com o '&'
        {
                if (arguments[1] !='' && arguments[2] != '') pagina = pagina +'&pesqdescricao='+arguments[1] +'&pesqcodigo='+arguments[2];
                else if (arguments[1] !='') pagina = pagina +'&pesqdescricao='+arguments[1];
                else if (arguments[2] !='') pagina = pagina +'&pesqcodigo='+arguments[2];
        }    
        else //caso não exista o '?' a funcao acrescentara o primeiro parametro com o '?' e o restante com '&'
        {
            if (arguments[1]!='' && arguments[2]!='') pagina = pagina +'?pesqdescricao='+arguments[1]+'&pesqcodigo='+arguments[2];
            else if (arguments[1]!='') pagina = pagina +'?pesqdescricao='+arguments[1];
            else if (arguments[2]!='') pagina = pagina +'?pesqcodigo='+arguments[2];
        }
    }
    window.open (pagina,"","toolbar=no,location=no,directories=no,status=no,scrollbars=yes,menubar=no,resizable=no,width=650,height=500,top=30,left=100");
}
Até tudo bem. A página PesCentroCusto2.asp é a página que possui o código para pesquisa. No momento, ela exibe o resultado da pesquisa, cada linha de resultado é um link e então o usuário tem que clicar sobre o resultado em forma de link que ativará uma função chamada Selecionar na pág. PesCentroCusto2.asp que fechará a página e enviará o resultado pesquisado e selecionado devolta à página que a chamou, a LisAnalitico.asp, preenchendo automaticamente os campos código e descrição em LisAnalitico.asp. Eis a função JavaScript Selecionar:
<script>
function Selecionar(cod,ind,desc)
{
    window.opener.document.form.inCenCusCodigo.value= cod;
    window.opener.document.form.inCenCusIndice.value= ind;
    window.opener.document.form.inCenCusDescricao.value= desc;
    window.close();
}
</script>

Agora a minha dúvida é:

Eu queria que após a consulta, não fosse preciso o usuário clicar no resultado exibido na tela. Queria que após o código de consulta da página PesCentroCusto2.asp encontrar o resultado pesquisado, que a função Selecionar (descrita acima) fosse automaticamente chamada, então os campos código e descrição da pág. LisAnalitico.asp seriam automaticamente preenchidos.

Como é que faço isto? Sei que a função Selecionar transfere os valores encontrados e automaticamente fecha a janela, mas como ativar esta função sem precisar clicar em um link?

Eu tentei assim e não funcionou.:

<%

'Testes

if rsCentroCusto.recordcount = 1 Then

%>

java script:Selecionar(<%=rsCentroCusto("CenCusCodigo")%>,<%=rsCentroCusto("CenCusCodigo")%>,<%=rsCentroCusto("CenCusDescricao")%>)

<%

end if

%>

Mas não funcionou.

E então, tem jeito? O que vocês me dizem? Existe uma outra forma. Por favor me ajudem.

Aguardo seu parecer.

Obrigado!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Bem-vindo ao fórum !

Creio que seu erro esteja no lugar onde você escreveu a chamada para a sua função, mas não é possível avaliar sem o código completo da página

Tente postar o seu código completo !

Se você escreveu o "javascript" com o espaço também irão ocorrer erros, mas creio que você não o escreveu assim (o fórum insere o espaço automaticamente)

Link para o comentário
Compartilhar em outros sites

  • 0

Ei o Código completo da página de consulta:

<%
If Session("PermAccesso")<>0 then 
            if (Session("Acesso")<>"") AND ((InStr(1, Session("Acesso"), ",Financeiro,")<>0) OR (InStr(1, Session("Acesso"), ",Administrador,")<>0)) then 
            else 
                    Session("Acesso")=""
                    Session("PermAccesso")=0
                    response.write "<script>alert('Você não tem acesso a este Módulo.\n\nEntre em contato com seu Usuário Master.');</script>" 
                    response.write "<script>parent.location='../index.htm';</script>" 
            end if
else
            Session("Acesso")=""
            Session("PermAccesso")=0
            response.write "<script>alert('Você não esta logado no sistema.\n\nFaça o login digitando seu login e sua senha nos campos indicados');</script>" 
            response.write "<script>parent.location='../index.htm';</script>" 
end if
%>

<%
    TABELA="CentrodeCusto"
    RAIZ="../../"
    TIPO_MENU="Listagem"
    tamanho_pagina= 30
%>

<html>
<head>
<title>- CENTROS DE CUSTO -</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link rel="stylesheet" href="..\..\Estilos\principal.css">

<!-- FUNCOES -->
<script src="..\..\Script\geral.js"></script>
<script src="..\..\Script\analitico.js"></script>
<script>
function Selecionar(cod,ind,desc)
{
    window.opener.document.form.inCenCusCodigo.value= cod;
    window.opener.document.form.inCenCusIndice.value= ind;
    window.opener.document.form.inCenCusDescricao.value= desc;
    window.close();
}
</script>

</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="cod0.focus()">

<%

    'VERIFICA EM QUAL PAGINA ESTA
    if Request.QueryString("Pagina")="" then
         pagina = 1
    else   
        pagina = Request.QueryString("Pagina")
    end if

    Set conexao = Server.CreateObject("ADODB.Connection")
    conexao.Open Application("Conexao")

    str = "SELECT COUNT(CenCusCodigo) AS TOTAL FROM CentroCusto CC INNER JOIN ACESSO_PERMISSAO A ON (A.EMPCODIGO=CC.EMPCODIGO) AND (CONVERT(INT,A.ACEPERCONTROLE01)=CC.CENCUSCODIGO) AND (A.USUCODIGO=" & Session("PermAccesso") & ") AND (ACEPERESCOPO='CENTROCUSTO') WHERE CC.EmpCodigo=" & Session("Empresa") & " "

    'str = "SELECT COUNT(CenCusCodigo) AS TOTAL FROM CentroCusto WHERE (EmpCodigo="&session("Empresa")&")"    

    Set rsTotal = Server.CreateObject("Adodb.Recordset")
    rsTotal.open str, Conexao, 1, 3

    strLista = "SELECT CenCusCodigo, CenCusIndice, CenCusDescricao FROM CentroCusto CC INNER JOIN ACESSO_PERMISSAO A ON (A.EMPCODIGO=CC.EMPCODIGO) AND (CONVERT(INT,A.ACEPERCONTROLE01)=CC.CENCUSCODIGO) AND (A.USUCODIGO=" & Session("PermAccesso") & ") AND (ACEPERESCOPO='CENTROCUSTO') WHERE CC.EmpCodigo=" & Session("Empresa") & " "

'    strLista = "SELECT CenCusCodigo, CenCusIndice, CenCusDescricao FROM CentroCusto WHERE (EmpCodigo="&session("Empresa")&")"

    'VERIFICA SE não EXISTE FILTRO
    if (Request.QueryString("semfiltro")<>1) then
        'MONTAR QUERY DE LISTAGEM COM PESQUISA        
        if not(Request.QueryString("inCampos")="") then
            strLista = strLista & " AND "& Request.QueryString("inCampos")
            'VERIFICA O TIPO DO CAMPO A SER PESQUISADO
              if not(Request.QueryString("inTipo")="") then
                'STRING
                if Request.QueryString("inTipo")="string" then
                      'VERIFICA O CRITERIO DE PESQUISA
                    if Request.QueryString("inCriterio")=1 then
                        strLista = strLista & " LIKE '" & Request.QueryString("inValor") & "%' " 
                      elseif Request.QueryString("inCriterio")=2 then
                        strLista = strLista & " LIKE '%" & Request.QueryString("inValor") & "%' " 
                    else
                        strLista = strLista & " LIKE '" & Request.QueryString("inValor") & "' " 
                    end if
                'DATA
                elseif Request.QueryString("inTipo")="data" then
                    strLista = strLista & "= '#" & Request.QueryString("inValor") & "#' " 
                elseif Request.QueryString("inTipo")="int" then
                    'VERIFICA O CRITERIO DE PESQUISA
                    if Request.QueryString("inCriterio")=1 then
                        strLista = strLista & "=" & Request.QueryString("inValor") & " " 
                      elseif Request.QueryString("inCriterio")=2 then
                        strLista = strLista & ">" & Request.QueryString("inValor") & " " 
                    else
                        strLista = strLista & "<" & Request.QueryString("inValor") & " " 
                    end if
                else
                    strLista = strLista & "=" & Request.QueryString("inValor") & " " 
                end if    
            end if    
            strLista = strLista + " ORDER BY " & Request.QueryString("inOrdem")
        else
            'VERIFICA SE FOI PESQUISADO PELA INICIAL
              if not(Request.QueryString("Inicial")="") then
                  if (Request.QueryString("Inicial")="Num") then
                      strLista = strLista & "AND (CenCusDescricao LIKE '[0-9]%')"
                else
                         strLista = strLista & "AND (CenCusDescricao LIKE '" & Request.QueryString("Inicial") & "%')"
                end if
              else
                if Request.QueryString("pesqdescricao") <> "" then
                    strlista = strlista & " AND CenCusDescricao LIKE '%" & Request.QueryString("pesqdescricao") & "%'" 
                elseif Request.QueryString("pesqcodigo") <> "" then
                    strlista = strlista & " AND CenCusIndice LIKE '" & Request.QueryString("pesqcodigo")&"%' "
                end if 
              strLista = strLista & " AND (0=0)"
            end if
        strLista = strLista + " ORDER BY CenCusIndice"
      end if
    else
        strLista = strLista + " ORDER BY CenCusIndice"
    end if
    Set rsCentroCusto = Server.CreateObject("Adodb.Recordset")
    rsCentroCusto.CursorLocation = 3
    rsCentroCusto.PageSize = tamanho_pagina
     rsCentroCusto.open strLista, conexao, 1, 3

    'VERIFICA QUANTAS PAGINAS TERÁ
    if rsCentroCusto.RecordCount>0 then
        rsCentroCusto.AbsolutePage = pagina
    end if    
    ultpagina = rsCentroCusto.RecordCount\tamanho_pagina
    sobra = rsCentroCusto.RecordCount mod tamanho_pagina
    if sobra>0 then
        ultpagina = ultpagina+1
    end if     
'    response.write request.querystring("semfiltro")        
%>

<form name="pesquisa" action="PesCentroCusto2.asp" method="GET" style="margin:0">
    <input type="HIDDEN" name="pagina" value="<%=pagina%>">
    <input type="Hidden" name="inCampos" value="<%=Request.QueryString("inCampos")%>">
    <input type="Hidden" name="txValor" value="<%=Request.QueryString("inValor")%>">
    <input type="Hidden" name="Inicial" value="<%=Request.QueryString("Inicial")%>">
    <input type="Hidden" name="inTipo" value="<%=Request.QueryString("inTipo")%>">
    <input type="Hidden" name="inCriterio" value="<%=Request.QueryString("inCriterio")%>">
    <input type="Hidden" name="inOrdem" value="<%=Request.QueryString("inOrdem")%>">
</form>

<!-- TABELA DE RESOLUCAO -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr valign="top"> 
    <td align="center"> 

<%
TITULO_SUPERIOR="FINANCEIRO :: COLETA :: C. DE CUSTO"
TITULO_INFERIOR="PESQUISA DE CENTRO DE CUSTO"
%>
<!-- #include file = "../../Include/Include_barrasox.inc" -->

<br>
<table width="300" align="CENTER" border="2" bordercolor="#999999" cellspacing="0" cellpadding="8">
        <tr> 
        <td align="CENTER"> 
          <input name="close" type="button" class="botoes_01" value="  Fechar " onClick="java script:window.close()">
            </td>
    </tr>
</table>
<br>
<%'///////////////////////////   FILTRO   /////////////////////////////////////////////////%>    
<!-- #include file = "../../Include/Include_Filtro.inc" -->
<br>
    <table  bgcolor="#ffffff" width="95%" border="0" cellspacing="0" cellpadding="0">
      <tr valign="top"> 
        <td>
          <table width="90%" border="0" cellspacing="0" cellpadding="0" align="center">
            <tr valign="top" align="center"> 
              <td> 
                      <tr> 
                       <td>N&ordm; Total: <b><%=rsTotal("TOTAL")%></b></td>
                       <td align="right" style="color:Red; font-family:Verdana;"><b>P&aacute;gina <%=pagina%> de <%=ultpagina%>&nbsp;&nbsp;&nbsp;</b></td>
                        </tr>
              
                                    <!-- TABELA DE CAMPOS --> 
                  <table width="100%" border="0" cellspacing="0" cellpadding="2">
                    <tr> 
                      <td class="titulo" width="20%">Código</td>
                      <td class="titulo">Descrição</td>
                    </tr>
                    <% 
                    cont=0
                    do while not (rsCentroCusto.EOF) and (cont<tamanho_pagina)
                        if (cont mod 2)=0 then cor="linha01" else cor="linha02" 

                %>
                <tr class="<%=cor%>" >
                    <td><a name="cod<%=cont%>" class="pesquisa" href="java script:Selecionar(<%=rsCentroCusto("CenCusCodigo")%>,'<%=rsCentroCusto("CenCusIndice")%>','<%=rsCentroCusto("CenCusDescricao")%>')"><%=rsCentroCusto("CenCusIndice")%></a></td>
                    <td><a class="pesquisa" href="java script:Selecionar(<%=rsCentroCusto("CenCusCodigo")%>,'<%=rsCentroCusto("CenCusIndice")%>','<%=rsCentroCusto("CenCusDescricao")%>')"><%=rsCentroCusto("CenCusDescricao")%></a></td>
                 </tr>
                <% 
                        rsCentroCusto.MoveNext
                        cont=cont+1
                      Loop 
                      'Testes
                      if rsCentroCusto.recordcount = 1 Then
                        response.Write ("Items Encontrados..: "& rsCentroCusto.recordcount)
                      %>
                      java script:Selecionar(<%=rsCentroCusto("CenCusCodigo")%>,<%=rsCentroCusto("CenCusCodigo")%>,<%=rsCentroCusto("CenCusDescricao")%>)
                      <%
                      end if
                %>
                 </table>                  
                </td>
        </tr>
     </table>
<!-- FIM DA TABELA DE CAMPOS --> 

    </td>
  </tr>
</table>
<br>
    <!-- FIM DA TABELA DE RESOLUCAO -->
    <table align="center">
        <tr>
            <td>
            <!-- PÁGINA -->
            <!-- #include file = "../../Include/Include_Pagina.inc" -->
            </td>
        </tr>
    </table>
<br>
<br>


</td>
</tr>
</table>
</body>
</html>

<%
    'LIBERA AS CONSULTAS
    rsCentroCusto.Close
    Set rsCentroCusto=nothing

    rsTotal.Close
    Set rsTotal=nothing
    
    conexao.close
    Set conexao=nothing
%>

Select se eu não fizer isto cabeças irão rolar, mas o meu Senhor é Deus e a porta que ele abre ninguém fecha

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...