Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Permite a adição de elementos na tela de cadastro de Solicitação de Serviço no Portal SS

Informações
titleAtenção!
  • Este ponto de entrada está disponível a partir do release 12.1.17.

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Manufatura

Módulo:

SIGAMNT - Manutenção de Ativos e Gestão de Frotas

Rotina:

Rotina

Nome Técnico

MNTI0052

Portal SS - Tela de inclusão de SS

Ponto(s) de Entrada Envolvido(s)

Descrição

MNTI5201Permite inserir campos na tela inclusão de SS, quando aberto pelo portal SS

MNTI5006

Salva informações dos campos inseridos em tela pelo usuário.

Issues Relacionadas

DNG-357

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:

Permite a adição de elementos na tela de cadastro de Solicitação de Serviço no Portal de S.S.

Localização:

Portal de SS

Eventos:

Tela de SS (MNTI0052)

Programa Fonte:

MNTI5201.AHU

Observações:

O exemplo MNTI5201 demonstra como inserir campos na tela de SS, sendo neste caso um campo de usuário (TQB_TESTE).

O exemplo MNTI5SXB demonstra a construção da tela de consulta padrão.

Bloco de código
languagexml
themeEclipse
titleMNTI5201.AHU
linenumberstrue
<%
#include "protheus.ch"
  
//-----------------------------------------------------------
/*/ MNTI5201
    Fonte web de usuário para adição de elementos à página de cadastro de S.S. via Portal S.S.
    Este fonte será incorporado após o último campo apresentado pelo produto padrão.
/*/
//-----------------------------------------------------------
  
    Local cCampo1   := "TQB_TESTE"
  
%>


//-------------------------------------------------------------------------------
// Insere linha com campo TQB_TESTE (titulo, campo e botao para acionar a consulta padrao)
//-------------------------------------------------------------------------------
%>
<tr class="tabelaTr">
    <td class="tdLabel"> //<!-- Titulo -->
        <span class="<%= IIf( X3Obrigat( cCampo1 ) , 'labelObrigat', 'labelComum' )%>" >Campo Usuário:</span>
    </td>
    <td> //<!-- Campo -->
        <input type="Text" id="<%=cCampo1%>" class="inputCod" maxlength="<%= TamSx3( cCampo1 )[1] %>" value="<%=HttpSession->cCampo1%>" >
    </td>
    <td> //<!-- Botao para consulta padrao -->
        <button class="buttonF3" onMouseDown="<%=" fsConPad('" + Posicione("SX3", 2, cCampo1, "X3_F3")  + "', '" + cCampo1 + "' ) "%>" ><img class="imgF3" src="ng_lupacons.png" border="0"> </button>
    </td>
</tr>
 

<script>
 
    //*-------------------------------------------------------------------------------
    // Função JavaScript acionada ao clicar no botao de consulta padrao.
    // Em seguida, acionará a função B_fSXBPAD que pode ser visualizada no exemplo do fonte WEBCONS.PRW
    //-------------------------------------------------------------------------------*/
    function fsConPad(cTabela, cCampo){
         
        url="B_fSXBPAD.APW?TabelaF3=" + cTabela + "&CampoF3=" + cCampo;
  
        ji=window.open(url, "Jins2","status=no,scrollbars=yes,width=605,height=550,top=200,left=200");
        ji.focus();
    }
 
</script>
Bloco de código
languagesql
themeEclipse
titleWEBCONS.PRW
linenumberstrue
#include "protheus.ch"
#include "apwebex.ch"
 
//-----------------------------------------------------------
/*/ WebUser Function fSXBPAD
    Função generica de usuário para construção de tela de consulta padrão web,
    sendo também acionada ao realizar a pesquisa na consulta padrão.
/*/
//-----------------------------------------------------------
WebUser Function fSXBPAD()
   
    Local cHtml     := ''
    Local cPesquisa := ''
    Local cRecno    := '1;'
    Local cCampo
    Local cConpad
    Local cAliasCon
    Local nIndCon
     
    // Caso seja chamada para construir a tela da consulta padrao,
    // utiliza valores default do SXB
    If ValType( HttpGet->CampoF3  ) <> 'U'
        cCampo    := HttpGet->CampoF3
        cConpad   := Padr( HttpGet->TabelaF3, 6 )
        cAliasCon := AllTrim( Posicione('SXB', 1, cConpad + '101' , 'XB_CONTEM') )
        nIndCon   := Val( AllTrim( Posicione('SXB', 1, cConpad + '201' , 'XB_COLUNA') ) )
 
    Else // Caso seja chamada através da pesquisa na tela da consulta padrao,
         // utiliza os valores informados para a pesquisa
        cCampo    := HttpSession->cField
        cConpad   := Padr( HttpSession->cSearch, 6 )
        cAliasCon := HttpSession->cAliasSXB
        nIndCon   := Val( HttpPost->indices )
        cPesquisa := HttpPost->cPesquisa
 
    Endif
     
    WEB EXTENDED INIT cHtml START 'I005ENV'
         
        // Seleciona a tabela para pesquisa
        dbSelectArea(cAliasCon)
        dbSetOrder(nIndCon)
        If '_FILIAL' $ Substr( IndexKey(), 1, 10 )
            cPesquisa := xFilial( cAliasCon ) + cPesquisa
        Endif
 
        // Executa pesquisa, posicionando no registro correspondente
        dbSeek(cPesquisa)
        If (cAliasCon)->( !EoF() ) .And. Substr( &( cAliasCon + '->(' + IndexKey() + ')' ), 1, Len( cPesquisa ) ) == cPesquisa
            cRecno := cValToChar( (cAliasCon)->( RecNo() ) ) + ';'
        EndIf
   
        //Carrega variaveis de sessao web
        HttpSession->cSearch   := cConPad
        HttpSession->cField    := cCampo
        HttpSession->cAliasSXB := cAliasCon
        HttpSession->nIndSXB   := nIndCon
        HttpSession->cSeek     := cPesquisa
        HttpSession->cNumRec   := cRecno
        HttpSession->cCurPag   := '1'
   
        //Chama pagina responsavel por exibir a consulta padrão.
        cHtml += ExecInPage('MNTI5SXB')
   
    WEB EXTENDED END
   
Return cHtml
Bloco de código
languagesql
themeEclipse
titleMNTI5SXB.AHU
linenumberstrue
collapsetrue
<%
//-------------------------------------------------------------------
/*/{Protheus.doc} MNTI5SXB MNTI5SXB
    Fonte web de usuario para construção da tela de consulta padrão.
/*/
//-------------------------------------------------------------------
  
    Local cLINHACOLOR, lLINHACOLOR, nPos, nTamCol, lCbox, cPicture, nIndice//-------------------------------------------------------------------------------
    Local// aPages,Recupera nRecno,informações nNxtRc,do i,SXB j
para montagem da tela Localda id_pesqconsulta padrão
   := Trim(HttpSession->cSeek) //-------------------------------------------------------------------------------

    Local cConPadcLINHACOLOR, lLINHACOLOR, nPos,  := HttpSession->cSearchnTamCol, nIndice
    Local cAlias  aPages, nRecno, nNxtRc, i, j
   := HttpSession 
    Local id_pesq    := Trim(HttpSession->cSeek)
    Local cConPad    := HttpSession->cSearch
    Local cAlias     := HttpSession->cAliasSXB
    Local nInd       := HttpSession->nIndSXB
    Local aCamposSXB := {}
    Local nTamBrw    := 5
    Local cRetorno   := ''
    Local cNomeCon   := ''
    Local cContem    := ''
    Local nTamCpo cDescCmp   := ''
  
  Local nTamCpo cNomeCon := AllTrim( :=Posicione( 'SXB'
, 1, Padr( cConPad, Local cHeader := ''


    cHeader += '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'
    cHeader += '<html>'6 )+"101", 'XB_DESCRI' ) )
  
    dbSelectArea("SXB")
    dbSetOrder(1)
    cHeader// += '<head>'
    cHeader += '  <title>'Nome da consulta padrão + Tipo + Sequencia
    cHeader += '  Portal Inclus&atilde;o de SS - Consulta 'dbSeek(Padr(cConPad,6)+"401")
    While !EoF() .And. SXB->(XB_ALIAS+XB_TIPO+XB_SEQ) == Padr(cConPad,6) + "401"

    cHeader   += 'cContem  </title>':= AllTrim(SXB->XB_CONTEM)
    cHeader += '  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">'
    cHeader += '  <link rel="stylesheet" type="text/css" href="NGCSS.css">'
    cHeader += '</head>'
  
    cNomeCon := AllTrim( Posicione( 'SXB', 1, Padr( cConPad, 6 )+"101", 'XB_DESCRI' ) )
  
    dbSelectArea("SXB")
    dbSetOrder(1)
    // Nome da consulta padrão + Tipo + Sequencia
    dbSeek(Padr(cConPad,6)+"401")
    While !EoF() .And. SXB->(XB_ALIAS+XB_TIPO+XB_SEQ) == Padr(cConPad,6) + "401"
  If At(">",cContem) > 0 .and. Len(cContem) <= 154
            cContem := Substr(cContem, ( At(">", cContem ) + 1) )
        Endif
        
        nTamCpo := Posicione( 'SX3', 2, cContem, 'X3_TAMANHO' )
        nTamCol := IIf( nTamCpo < 15, 15, ( nTamCpo + 20 ) ) * 5
        nTamBrw += nTamCol

        nTamCol := 15
   aAdd(aCamposSXB,{  RetTitle( cContem ), ;
     lCbox   := .F.
        cPicture:= ''
        cContem := AllTrim(SXB->XB_CONTEM), ;
        If At(">",cContem) > 0 .and. Len(cContem) <= 154
            cContem := Substr(cContem, (At(">",cContem)+1))
 nTamCol, ;
               Endif
  
        cDescCmp:= AllTrim(SXB->XB_DESCRI)
  !Empty( Posicione( 'SX3', 2, cContem, 'X3_CBOX' ) ), ;
        // Pega informações na SX3.   
        lCbox   := ( !EmptyAllTrim( Posicione( 'SX3', 2, cContem, 'X3_CBOXPICTURE' ) ) );
        nTamCpo := Posicione( 'SX3', 2, cContem, 'X3_TAMANHO' )
        nTamCol := IIf( nTamCpo < 15, 15, ( nTamCpo + 20 ) ) })

        dbSelectArea("SXB")
        cPicture:= AllTrim( Posicione( 'SX3', 2, cContem, 'X3_PICTURE' ) )dbSkip()
    EndDo
  
    dbSelectArea("SXB")
    cDescCmp:= RetTitle( cContem )
dbSeek(Padr(cConPad,6)+"501",.T.)
    While SXB->XB_ALIAS == Padr(cConPad,6) .And. SXB->XB_TIPO == "5"
        nTamColcRetorno :+= nTamCol*5AllTrim(SXB->XB_CONTEM)+";"
        nTamBrw += nTamCol
  SXB->(dbSkip())
    EndDo
    cRetorno := aAddSubStr(aCamposSXBcRetorno, {cDescCmp, AllTrim(SXB->XB_CONTEM), nTamCol, lCbox, cPicture})1,Len(cRetorno)-1)
  
    //Verifica tamanho   dbSelectArea("SXB")do Browse
    If nTamBrw <  dbSkip()560
    EndDo
  
   If dbSelectAreaLen("SXB")aCamposSXB) > 0
    dbSetOrder(1)
    // Nome da consulta padrão aCamposSXB[Len(aCamposSXB)][3] += Tipo(560 + Sequencia
    dbSeek(Padr(cConPad,6)+"501",.T.)
    While SXB->XB_ALIAS == Padr(cConPad,6) .And. SXB->XB_TIPO == "5"- nTamBrw)
        Endif
        cRetornonTamBrw +:= AllTrim(SXB->XB_CONTEM)+";"560
        SXB->(dbSkip())
    EndDo
    cRetorno := SubStr(cRetorno,1,Len(cRetorno)-1)
  
    //Verifica tamanho do Browse
    If nTamBrw < 560
        If Len(aCamposSXB) > 0
            aCamposSXB[Len(aCamposSXB)][3] += (560 - nTamBrw)
        Endif
        nTamBrw := 560
    Endif
%>
  
<%=cHeader%>
<%
//Endif

%>

<%
//-------------------------------------------------------------------------------
// Cabeçalho da página HTML
//-------------------------------------------
// Inicio da estilização da pagina.
//------------------------------------
%>
<style type="text/css">
  
    body {
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>'  Portal  margin: 5px;
    }Inclus&atilde;o de SS - Consulta '</title>
     
    a{<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        text-decoration: none;
        color: #253453;
        font-weight: bold;
    }
     
    a:link, a:visited{
        color: #253453;
        font-weight: bold;
    }
     
    a:hover{
        background-color:#8ca0c7;
        color: #FFFFFF;<link rel="stylesheet" type="text/css" href="NGCSS.css">
</head>

<%
//-------------------------------------------------------------------------------
// Estilização da tela/página da consulta padrão
//-------------------------------------------------------------------------------
%>
<style type="text/css">
  
    body {
        font-weightmargin: bold5px;
    }
    a:active 
    a{
        colortext-decoration: #253453none;
        font-weightcolor: bold#253453;
    }
    font-weight: bold;
    a.pagina{}
     
    text-decorationa: none;link, a:visited{
        color: #FFFFFF#253453;
        font-weight: nonebold;
    }
     
    a.pagina:link, a.pagina:visited{:hover{
        background-color:#8ca0c7;
        color: #FFFFFF;
        font-weight: nonebold;
    }
     
    a.pagina:hoveractive{
        color: #FFFFFF#253453;
        font-weight: bold;
    }
     
    a.pagina:active{{
        text-decoration: none;
        color: #FFFFFF;
        font-weight: boldnone;
    }
     
    a.divrolagem pagina:link, a.pagina:visited{
    /* define barra de rolagem automatica quando o
 color: #FFFFFF;
        conteudo ultrapassar o limite em x ou y */font-weight: none;
    }
     
    a.pagina:hover{
        overflowcolor: auto#FFFFFF;
    /* define o limite maximo da autura do div */font-weight: bold;
    }
    a.pagina:active{
        heightcolor: 300px#FFFFFF;
    /* define o limite maximo da largura do div */font-weight: bold;
    }
     
    .divrolagem {
  width: 580px;
     
overflow: auto; /* define barra de rolagem automatica quando o conteudo ultrapassar o limite em x ou y*/
        height: 300px;  /* define o limite maximo da autura do div */
        width: 580px;   /* define o limite maximo da largura do div*/
        padding-top: 5pt;
    }

    /*Mantem cabecalho do browse estatico*/
    .rowHeader{
        position:relative;
        top: expression(offsetParent.scrollTop);
        height:18px;
        z-index: 20;
        background-color: #263957;
    }

</style>

<%
//-----------------------------------------
// Fim da estilização da pagina.
//--------------------------------------
%>
</STYLE>
<script language="Javascript">
  
<%
//// Funções Javascript referentes às ações na tela de consulta padrão
//-------------------------------------------
// Seleciona registro e popula campo.
//------------------------------------
%>

<script language="Javascript">
  
/* Função para selecionar o registro na consulta padrão */
function fcSeleciona(cCodRet, cCamposAtu){

    var aRet = cCodRet.split(';')
    var aCampos = cCamposAtu.split(';');

    for(i=0; i<aCampos.length;i++){
        window.opener.document.getElementById(aCampos[i]).value = aRet[i];
        window.opener.document.getElementById(aCampos[i]).focus();
    }
  
    close();
    return;
}
<%
//------------------------------------
// Pesquisa valor informados

/* Função para realizar a busca do registro informado no campo
// de pesquisa.
//------------------------------------
%>
 */
function fcPesquisar(){
    document.forms[0].cPESQUISA.value = document.forms[0].f_nome.value;
    document.forms[0].action = 'B_fSXBPAD.APW';
    document.forms[0].submit();
}

 
function getStrInPos(cSTR,nAll,nPos,cDiv){
    <%/*Funcao recebe string de campos e retorna um campo determinado*/%>
    <%/*cSTR:string de campos:"CAMPO1#CAMPO2#CAMPO3#...#" / nAll:qnt.total / nPos:campo.retorno*/%>
    aArray = new Array (nAll-1);
    cTXT = cSTR;
    nI = 0;
    for (c=0;c<nAll;c++){
        aArray[c] = "";
    }
    for (c=0;c<nAll;c++){
        nP = cTXT.indexOf(cDiv);
        aArray[c] = cTXT.substring(nI,nP);
        cTXT = cTXT.substring((nP+1),cTXT.length);
    }
    cReturn = aArray[(nPos-1)];
    return cReturn;
}
  
</script>
  
<form name='MNTI5SXB' method='post' action=''>
<opener.location.reload()>
<body onLoad="document.MNTI5SXB.f_nome.focus()">
  
<INPUT TYPE="HIDDEN" NAME="cPESQUISA" VALUE="">
<INPUT TYPE="HIDDEN" NAME="cNumRec" value='<%=HttpSession->cNumRec%>'>
<INPUT TYPE="HIDDEN" NAME="cCurPag" value='<%=HttpSession->cCurPag%>'>
  
<div id="divCabec" style="width: 580px;">
    <div id="bordaCabec" style="width: 580px;">
</script>

<%
//-------------------------------------------------------------------------------
// Início do formulário da página HTML
//-------------------------------------------------------------------------------
%>

<form name='MNTI5SXB' method='post' action=''>
<opener.location.reload()>
<body onLoad="document.MNTI5SXB.f_nome.focus()">
  
<INPUT TYPE="HIDDEN" NAME="cPESQUISA" VALUE="">
<INPUT TYPE="HIDDEN" NAME="cNumRec" value='<%=HttpSession->cNumRec%>'>
<INPUT TYPE="HIDDEN" NAME="cCurPag" value='<%=HttpSession->cCurPag%>'>

<%
//-------------------------------------------------------------------------------
// Área de pesquisa
//-------------------------------------------------------------------------------
%>

    <div id="divCabec" style="width: 580px;">
        <div id="bordaCabec" style="width: 580px;">
            <b class="bordaEsqAzul1"></b><b class="bordaEsqAzul2"></b><b class="bordaEsqAzul3"></b><b class="bordaEsqAzul4"></b>
            <div id="tituloCabec" class="divtitulo" style="width: 100%; height:15px;">
                <span style="padding: 0pt 0pt 0pt 10pt">Preencha o campo abaixo e clique em Pesquisar.</span>
            </div>
            <b class="bordaEsqAzul1bordaDirAzul4"></b><b class="bordaEsqAzul2bordaDirAzul3"></b><b class="bordaEsqAzul3bordaDirAzul2"></b><b class="bordaEsqAzul4bordaDirAzul1"></b>
        </div>
    </div>
    
    <div id="tituloCabec" class="divtitulodivIndices" style="width: 100%580px; height:15px;"background-color: #FFFFFF; padding-bottom: 10pt">

    <table>
        <tr width="100%">
            <span<td colspan="2"><span class="txtTitulo" style="padding: 0pt 0pt 0pt 10pt">Preencha o campo abaixo e clique em Pesquisar.</span>;">Consulta <%=cNomeCon%></span></td>
        </tr>
        </div><tr>
        <b class="bordaDirAzul4"></b><b class="bordaDirAzul3"></b><b class="bordaDirAzul2"></b><b class="bordaDirAzul1"></b>
    </div>
</div>
  
<div id="divIndices" style="width: 580px; background-color: #FFFFFF; padding-bottom: 10pt">
  
    <table>
    <td width="290px" align="left" style='padding: 0pt 0pt 0pt 10pt'>
                <tr<input widthname="100%f_nome">
  type="text"          <td colspanid="2f_nome"><span classsize="txtTitulo50" onChange='fcPesquisar();' style="padding: 0pt 0pt 0pt 10pt;">Consulta <%=cNomeCon%></span><width:270px;">
            </td>
        </tr>
    <td>
     <tr>
           <input  <td width="290px" align="left" style='padding: 0pt 0pt 0pt 10pt'>type="button" name="Submit" value="Pesquisar" onclick="fcPesquisar();" onmouseover="this.style.cursor='pointer'"/>
            </td>
        </tr>
        <input<tr namewidth="f_nome100%">
  type          <td colspan="text2" width="290px" idalign="f_nome"left" style='padding: 0pt 0pt 0pt 10pt'>
                <select size="501" onChange='fcPesquisar();'name="indices" style="width:270px275px;">
            </td>
    <%//Monta ComboBox com Indices da Pesquisa
   <td>
                <input type=dbSelectArea("buttonSIX" name="Submit" value="Pesquisar" onclick="fcPesquisar();" onmouseover="this.style.cursor='pointer'"/>
)
                    </td>dbSetOrder(1)
        </tr>
        <tr width="100%">
   dbSeek(cAlias)
         <td colspan="2" width="290px" align="left" style='padding: 0pt 0pt 0pt 10pt'>
     While !Eof() .and. SIX->INDICE == cAlias
      <select size="1" name="indices" style="width:275px;">
                <%//Monta ComboBox com Indices da Pesquisa
If Val(SIX->ORDEM) > 0
                            nIndice := dbSelectAreaVal("SIX"->ORDEM)
                       dbSetOrder(1) Else
                    dbSeek(cAlias)
         nIndice++
                   While !Eof() .and. SIX->INDICE == cAliasEndif
                        If Val(SIX->ORDEM) > 0nIndice == nInd%>
                            <option nIndice := Val(SIX->ORDEM)selected value="<%=nIndice%>"><%=SixDescricao()%></option>
                        Else<%Else%>
                            nIndice++
  <option value="<%=nIndice%>"><%=SixDescricao()%></option>
            <%           Endif
                        If nIndice == nInd%>dbSelectArea("SIX")
                            <option selected value="<%=nIndice%>"><%=SixDescricao()%></option>dbSkip()
                    EndDo
    <%Else%>
            %>
                <option value="<%=nIndice%>"><%=SixDescricao()%></option></select>
            <%</td>
           Endif</tr>
        </tr>
                dbSelectArea("SIX")</table>
</div>

<%
    //-------------------------------------------------------------------------------
    // Paginação                   dbSkip()do resultado
        //-------------------------------------------------------------------------------

    aPages        EndDo:= StrTokArr(HttpSession->cNumRec,';')
    nRecno := IIf(Val(HttpSession->cCurPag) <=         %>
                </select>
            </td>
        </tr>
        </tr>
    </table>
</div>
<%
    aPages := StrTokArr(HttpSession->cNumRec,';'Len(aPages), Val(aPages[Val(HttpSession->cCurPag)]  ), 0 )
    nRecnonNxtRc := IIf(Val(HttpSession->cCurPag) <= Len(aPages) , Val(aPages[Val(HttpSession->cCurPag)]  ), 0 )
    nNxtRc := IIf(Val(HttpSession->cCurPag) < Len(aPages) , Val(aPages[Val(HttpSession->cCurPag)+1]), +1]), 0 )
%>
  
<div id="bordaPags" style="width: 580px;">
    <b class="bordaEsqAzul1"></b><b class="bordaEsqAzul2"></b><b class="bordaEsqAzul3"></b><b class="bordaEsqAzul4"></b>/-------------------------------------------------------------------------------
    <div id="divPags" class="divtitulo" style="width: 100%; height: 40px;">
        <div id="txtPags" class="divtitulo// Área de seleção dos registros
    //-------------------------------------------------------------------------------
%>

<div id="bordaPags" style="width: 100%; height:20px580px;">
    <b        <span style="padding: class="bordaEsqAzul1"></b><b class="bordaEsqAzul2"></b><b class="bordaEsqAzul3"></b><b class="bordaEsqAzul4"></b>
    <div id="divPags" class="divtitulo" style="width: 100%; height: 40px;">
        <div id="txtPags" class="divtitulo" style="width: 100%; height:20px;">
            <span style="padding: 5pt 0pt 0pt 10pt">Para selecionar um Registro, clique sobre um dos campos da linha.</span>
        </div>
    </div>
    <b class="bordaDirAzul4"></b><b class="bordaDirAzul3"></b><b class="bordaDirAzul2"></b><b class="bordaDirAzul1"></b>
</div>
  
<div class="divrolagem">
    <table width="<%=nTamBrw%>" id="browse">
        <thead>
            <tr align="left" valign="middle" class="rowHeader">
                <%For i:=1 To Len(aCamposSXB)%>
                    <th width="<%=aCamposSXB[i][3]%>">
                        <span class="headerField"><%=aCamposSXB[i][1]%></span>
                    </th>
                <%Next i%>
            </tr>
        </thead>
        <tBody>
            <%lLINHACOLOR := .T.
  
                dbSelectArea(cAlias)
                dbSetOrder(nInd)
                dbSeek(id_pesq)
                dbGoTo(nRecno)
                 
                // Faz a busca dos registros que serão apresentados em tela
                While (cAlias)->(!Eof()) .And. nNxtRc != &(cAlias+"->(RecNo())") .and. Substr(&(cAlias+"->("+IndexKey()+")"),1,Len(id_pesq)) == id_pesq
  
                    %>
  
                    <tr class="linhaBrowse">
                        <%
                        If lLINHACOLOR
                            cLINHACOLOR := "WHITE"
                            lLINHACOLOR := .F.
                        Else
                            cLINHACOLOR = "#dae3f2"
                            lLINHACOLOR := .T.
                        EndIf
                        For i:=1 To Len(aCamposSXB)
                            If aCamposSXB[i][4]
                                cColuna := Substr(NGRETSX3BOX(aCamposSXB[i][2],&(aCamposSXB[i][2])),1,aCamposSXB[i][3])
                            Else
                                cColuna := &(aCamposSXB[i][2])
                            Endif
  
                            If !Empty(aCamposSXB[i][5])
                                cColuna := Transform(cColuna,aCamposSXB[i][5])
                            Endif
                            %>
                            <td width="<%=aCamposSXB[i][3]%>" height="12" bgcolor="<%=cLINHACOLOR%>" style="text-align:left">
                                <span class="celula">
                                    <%
                                        aRet := StrTokArr(cRetorno,';')
                                        cRet := ""
                                        For j := 1 To Len(aRet)
                                            cRet += &(aRet[j])+";"
                                        Next j
                                        cRet := SubStr(cRet,1,Len(cRet)-1)
                                    %>
                                    <a href="javascript:fcSeleciona('<%=(cRet)%>', '<%=HttpSession->cField%>')">
                                    <%=cColuna%></a>
                                </span>
                            </td>
                        <%Next i%>
                    </tr>
                  <%dbSelectArea(cAlias)
                    dbSkip()
                EndDo%>
        </tBody>
    </table>
</div>
  
<div id="bordaPags" style="width: 580px;">
    <b         </tBody>
    </table>
</div>

<%
//-------------------------------------------------------------------------------
// Área de paginação
//-------------------------------------------------------------------------------
%>

<div id="bordaPags" style="width: 580px;">
    <b class="bordaEsqAzul1"></b><b class="bordaEsqAzul2"></b><b class="bordaEsqAzul3"></b><b class="bordaEsqAzul4"></b>
        <div id="divPags" class="divtitulo" style="height:15px;">
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
            </table>
        </div>
    <b class="bordaDirAzul4"></b><b class="bordaDirAzul3"></b><b class="bordaDirAzul2"></b><b class="bordaDirAzul1"></b>
</div>
</form>
</body>
</html>


<%//-------------------------------------------------------------------/*/ MNTI5SXB    Fonte web de usuario para construção da tela de consulta padrão./*///-------------------------------------------------------------------
    //-------------------------------------------------------------------------------    // Recupera informações do SXB para montagem da tela da consulta padrão    //-------------------------------------------------------------------------------
    Local cLINHACOLOR, lLINHACOLOR, nPos, nTamCol, nIndice    Local aPages, nRecno, nNxtRc, i, j        Local id_pesq    := Trim(HttpSession->cSeek)    Local cConPad    := HttpSession->cSearch    Local cAlias     := HttpSession->cAliasSXB    Local nInd       := HttpSession->nIndSXB    Local aCamposSXB := {}    Local nTamBrw    := 5    Local cRetorno   := ''    Local cNomeCon   := ''    Local cContem    := ''    Local nTamCpo    := ''      cNomeCon := AllTrim( Posicione( 'SXB', 1, Padr( cConPad, 6 )+"101", 'XB_DESCRI' ) )      dbSelectArea("SXB")    dbSetOrder(1)    // Nome da consulta padrão + Tipo + Sequencia    dbSeek(Padr(cConPad,6)+"401")    While !EoF() .And. SXB->(XB_ALIAS+XB_TIPO+XB_SEQ) == Padr(cConPad,6) + "401"
        cContem := AllTrim(SXB->XB_CONTEM)        If At(">",cContem) > 0 .and. Len(cContem) <= 154            cContem := Substr(cContem, ( At(">", cContem ) + 1) )        Endif                nTamCpo := Posicione( 'SX3', 2, cContem, 'X3_TAMANHO' )        nTamCol := IIf( nTamCpo < 15, 15, ( nTamCpo + 20 ) ) * 5        nTamBrw += nTamCol
        aAdd(aCamposSXB,{  RetTitle( cContem ), ;                            AllTrim(SXB->XB_CONTEM), ;                            nTamCol, ;                            !Empty( Posicione( 'SX3', 2, cContem, 'X3_CBOX' ) ), ;                            AllTrim( Posicione( 'SX3', 2, cContem, 'X3_PICTURE' ) ) ;                        })
        dbSelectArea("SXB")        dbSkip()    EndDo      dbSelectArea("SXB")    dbSeek(Padr(cConPad,6)+"501",.T.)    While SXB->XB_ALIAS == Padr(cConPad,6) .And. SXB->XB_TIPO == "5"        cRetorno += AllTrim(SXB->XB_CONTEM)+";"        SXB->(dbSkip())    EndDo    cRetorno := SubStr(cRetorno,1,Len(cRetorno)-1)      //Verifica tamanho do Browse    If nTamBrw < 560        If Len(aCamposSXB) > 0            aCamposSXB[Len(aCamposSXB)][3] += (560 - nTamBrw)        Endif        nTamBrw := 560    Endif
%>
<%//-------------------------------------------------------------------------------// Cabeçalho da página HTML//-------------------------------------------------------------------------------%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>    <title>'  Portal Inclus&atilde;o de SS - Consulta '</title>    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">    <link rel="stylesheet" type="text/css" href="NGCSS.css"></head>
<%//-------------------------------------------------------------------------------// Estilização da tela/página da consulta padrão//-------------------------------------------------------------------------------%><style type="text/css">      body {        margin: 5px;    }         a{        text-decoration: none;        color: #253453;        font-weight: bold;    }         a:link, a:visited{        color: #253453;        font-weight: bold;    }         a:hover{        background-color:#8ca0c7;        color: #FFFFFF;        font-weight: bold;    }    a:active{        color: #253453;        font-weight: bold;    }         a.pagina{        text-decoration: none;        color: #FFFFFF;        font-weight: none;    }         a.pagina:link, a.pagina:visited{        color: #FFFFFF;        font-weight: none;    }         a.pagina:hover{        color: #FFFFFF;        font-weight: bold;    }    a.pagina:active{        color: #FFFFFF;        font-weight: bold;    }         .divrolagem {        overflow: auto; /* define barra de rolagem automatica quando o conteudo ultrapassar o limite em x ou y*/        height: 300px;  /* define o limite maximo da autura do div */        width: 580px;   /* define o limite maximo da largura do div*/        padding-top: 5pt;    }
    /*Mantem cabecalho do browse estatico*/    .rowHeader{        position:relative;        top: expression(offsetParent.scrollTop);        height:18px;        z-index: 20;        background-color: #263957;    }
</style>
<%//-------------------------------------------------------------------------------// Funções Javascript referentes às ações na tela de consulta padrão//-------------------------------------------------------------------------------%>
<script language="Javascript">  /* Função para selecionar o registro na consulta padrão */function fcSeleciona(cCodRet, cCamposAtu){
    var aRet = cCodRet.split(';')    var aCampos = cCamposAtu.split(';');
    for(i=0; i<aCampos.length;i++){        window.opener.document.getElementById(aCampos[i]).value = aRet[i];        window.opener.document.getElementById(aCampos[i]).focus();    }      close();    return;}

/* Função para realizar a busca do registro informado no campo de pesquisa */function fcPesquisar(){    document.forms[0].cPESQUISA.value = document.forms[0].f_nome.value;    document.forms[0].action = 'B_fSXBPAD.APW';    document.forms[0].submit();}
</script>
<%//-------------------------------------------------------------------------------// Início do formulário da página HTML//-------------------------------------------------------------------------------%>
<form name='MNTI5SXB' method='post' action=''><opener.location.reload()><body onLoad="document.MNTI5SXB.f_nome.focus()">  <INPUT TYPE="HIDDEN" NAME="cPESQUISA" VALUE=""><INPUT TYPE="HIDDEN" NAME="cNumRec" value='<%=HttpSession->cNumRec%>'><INPUT TYPE="HIDDEN" NAME="cCurPag" value='<%=HttpSession->cCurPag%>'>
<%//-------------------------------------------------------------------------------// Área de pesquisa//-------------------------------------------------------------------------------%>
    <div id="divCabec" style="width: 580px;">        <div id="bordaCabec" style="width: 580px;">            <b class="bordaEsqAzul1"></b><b class="bordaEsqAzul2"></b><b class="bordaEsqAzul3"></b><b class="bordaEsqAzul4"></b>            <div id="tituloCabec" class="divtitulo" style="width: 100%; height:15px;">                <span style="padding: 0pt 0pt 0pt 10pt">Preencha o campo abaixo e clique em Pesquisar.</span>            </div>            <b class="bordaDirAzul4"></b><b class="bordaDirAzul3"></b><b class="bordaDirAzul2"></b><b class="bordaDirAzul1"></b>        </div>    </div>        <div id="divIndices" style="width: 580px; background-color: #FFFFFF; padding-bottom: 10pt">
    <table>        <tr width="100%">            <td colspan="2"><span class="txtTitulo" style="padding: 0pt 0pt 0pt 10pt;">Consulta <%=cNomeCon%></span></td>        </tr>        <tr>            <td width="290px" align="left" style='padding: 0pt 0pt 0pt 10pt'>                <input name="f_nome"  type="text"  id="f_nome" size="50" onChange='fcPesquisar();' style="width:270px;">            </td>            <td>                <input type="button" name="Submit" value="Pesquisar" onclick="fcPesquisar();" onmouseover="this.style.cursor='pointer'"/>            </td>        </tr>        <tr width="100%">            <td colspan="2" width="290px" align="left" style='padding: 0pt 0pt 0pt 10pt'>                <select size="1" name="indices" style="width:275px;">                <%//Monta ComboBox com Indices da Pesquisa                    dbSelectArea("SIX")                    dbSetOrder(1)                    dbSeek(cAlias)                    While !Eof() .and. SIX->INDICE == cAlias                        If Val(SIX->ORDEM) > 0                            nIndice := Val(SIX->ORDEM)                        Else                            nIndice++                        Endif                        If nIndice == nInd%>                            <option selected value="<%=nIndice%>"><%=SixDescricao()%></option>                        <%Else%>                            <option value="<%=nIndice%>"><%=SixDescricao()%></option>            <%           Endif                        dbSelectArea("SIX")                        dbSkip()                    EndDo                %>                </select>            </td>        </tr>        </tr>    </table></div>
<%    //-------------------------------------------------------------------------------    // Paginação do resultado    //-------------------------------------------------------------------------------
    aPages := StrTokArr(HttpSession->cNumRec,';')    nRecno := IIf(Val(HttpSession->cCurPag) <= Len(aPages), Val(aPages[Val(HttpSession->cCurPag)]  ), 0 )    nNxtRc := IIf(Val(HttpSession->cCurPag) < Len(aPages) , Val(aPages[Val(HttpSession->cCurPag)+1]), 0 )
        //-------------------------------------------------------------------------------    // Área de seleção dos registros    //-------------------------------------------------------------------------------%>
<div id="bordaPags" style="width: 580px;">    <b class="bordaEsqAzul1"></b><b class="bordaEsqAzul2"></b><b class="bordaEsqAzul3"></b><b class="bordaEsqAzul4"></b>    <div id="divPags" class="divtitulo" style="width: 100%; height: 40px;">        <div id="txtPags" class="divtitulo" style="width: 100%; height:20px;">            <span style="padding: 5pt 0pt 0pt 10pt">Para selecionar um Registro, clique sobre um dos campos da linha.</span>        </div>    </div>    <b class="bordaDirAzul4"></b><b class="bordaDirAzul3"></b><b class="bordaDirAzul2"></b><b class="bordaDirAzul1"></b></div>  <div class="divrolagem">    <table width="<%=nTamBrw%>" id="browse">        <thead>            <tr align="left" valign="middle" class="rowHeader">                <%For i:=1 To Len(aCamposSXB)%>                    <th width="<%=aCamposSXB[i][3]%>">                        <span class="headerField"><%=aCamposSXB[i][1]%></span>                    </th>                <%Next i%>            </tr>        </thead>        <tBody>            <%lLINHACOLOR := .T.                  dbSelectArea(cAlias)                dbSetOrder(nInd)                dbSeek(id_pesq)                dbGoTo(nRecno)                                 // Faz a busca dos registros que serão apresentados em tela                While (cAlias)->(!Eof()) .And. nNxtRc != &(cAlias+"->(RecNo())") .and. Substr(&(cAlias+"->("+IndexKey()+")"),1,Len(id_pesq)) == id_pesq                      %>                      <tr class="linhaBrowse">                        <%                        If lLINHACOLOR                            cLINHACOLOR := "WHITE"                            lLINHACOLOR := .F.                        Else                            cLINHACOLOR = "#dae3f2"                            lLINHACOLOR := .T.                        EndIf                        For i:=1 To Len(aCamposSXB)                            If aCamposSXB[i][4]                                cColuna := Substr(NGRETSX3BOX(aCamposSXB[i][2],&(aCamposSXB[i][2])),1,aCamposSXB[i][3])                            Else                                cColuna := &(aCamposSXB[i][2])                            Endif                              If !Empty(aCamposSXB[i][5])                                cColuna := Transform(cColuna,aCamposSXB[i][5])                            Endif                            %>                            <td width="<%=aCamposSXB[i][3]%>" height="12" bgcolor="<%=cLINHACOLOR%>" style="text-align:left">                                <span class="celula">                                    <%                                        aRet := StrTokArr(cRetorno,';')                                        cRet := ""                                        For j := 1 To Len(aRet)                                            cRet += &(aRet[j])+";"                                        Next j                                        cRet := SubStr(cRet,1,Len(cRet)-1)                                    %>                                    <a href="javascript:fcSeleciona('<%=(cRet)%>', '<%=HttpSession->cField%>')">                                    <%=cColuna%></a>                                </span>                            </td>                        <%Next i%>                    </tr>                  <%dbSelectArea(cAlias)                    dbSkip()                EndDo%>        </tBody>    </table></div>
<%//-------------------------------------------------------------------------------// Área de paginação//-------------------------------------------------------------------------------%>
<div id="bordaPags" style="width: 580px;">    <b class="bordaEsqAzul1"></b><b class="bordaEsqAzul2"></b><b class="bordaEsqAzul3"></b><b class="bordaEsqAzul4"></b> <div b>        <div id="divPags" class="divtitulo" style="height:15px;"> <table >            <table width="100%" border="0" cellspacing="0" cellpadding="0"> </table> </div> <b >            </table>        </div>    <b class="bordaDirAzul4"></b><b class="bordaDirAzul3"></b><b class="bordaDirAzul2"></b><b class="bordaDirAzul1"></b> </div> </form> </body> <b></div></form></body></html>