Á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 a adição de elementos na tela inclusão de SS, quando aberto pelo portal SSde cadastro de Solicitação de Serviço no Portal SS

MNTI5006

Pós gravação de uma solicitacão de serviço via 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.

Informações
titleAtenção!
  • A extensão dos fontes abaixo deverão ser ".AHU", por se tratarem de fontes de usuário para Web.



Bloco de código
languagesql
themeEclipse
titleMNTI5201.AHU | Fonte exemplo para adição de elementos em tela
Bloco de código
languagexml
themeEclipse
titleMNTI5201.AHU
linenumberstrue
<%
#include "protheus.ch"
 
//-----------------------------------------------------------
/*/{Protheus.doc} MNTI5201
/*/
//---- 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.
/*/
//-----------------------------------------------------------
  
  // Procura noLocal SX3cCampo1 pelo campo TQB_TESTE onde o retorno será a Consulta padrão do campo.
    Local cSXBTest := Posicione('SX3', 2, '"TQB_TESTE', 'X3_F3')
 
    // Procura no SX3 pelo"
  
//-------------------------------------------------------------------------------
// Insere linha com campo TQB_TESTE onde o retorno será o tamanho do campo.
    Local nTamTest := Posicione('SX3', 2, 'TQB_TESTE', 'X3_TAMANHO')
%>

<script>
			   
	<% /* Só será necessário criar esta função, caso algum campo seja do Tipo F3. */ %>
    function fsConPad(cTabela, cCampo){
 
        <% /*Chama consulta padrão passando por parametro o campo no qual será aberto o F3 e qual a consulta padrão a ser executada.*/ %>
        <% /*A função fSXBPAD pode ser visualizada no exemplo de fonte abaixo (WEBCONS.PRW)*/ %>
        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();
    }
 
<% /* Este trecho está em Html, e é referente a inclusão dos campos em tela. */ %>
<tr class="tabelaTr">
    <td class="tdLabel"><span class="labelObrigat">Campo Usuário:</span></td>
    <td>
        <input name='TQB_TESTE' type='Text' id='TQB_TESTE' class="inputCod" maxlength='<%=nTamTest%>' value='<%=HttpSession->TQB_TESTE%>' >
    </td>
	<% /* Só será necessária a inclusão desse "Button" caso for utilizar um F3. */ %>
    <td>(titulo, campo e botao para acionar a consulta padrao)
//-------------------------------------------------------------------------------
%>
<tr class="tabelaTr">
    <td class="tdLabel"> <!-- Titulo -->
        <span class="<%= IIf( X3Obrigat( cCampo1 ) , 'labelObrigat', 'labelComum' )%>" ><%=Trim( RetTitle( cCampo1 ) )%>:</span>
    </td>
    <td> <!-- Campo -->
        <input type="Text" id="<%=cCampo1%>" class="inputCod" maxlength="<%= TamSx3( cCampo1 )[1] %>" value="<%=&('HttpSession->' + cCampo1)%>" onBlur='fValCpUsr(this.value,"<%=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 de usuário B_fSXBPAD que pode ser visualizada no exemplo do fonte WEBCONS.PRW
    -------------------------------------------------------------------------------*/
    function fsConPad(cTabela, cCampo){
         
        <button id='F3USER' class='buttonF3' onMouseDown='<%='fsConPad("' + cSXBTest + '","TQB_TESTE")'%>' > <img class="imgF3" src="ng_lupacons.png" border="0"> </button>
    </td>
</tr>
Bloco de código
languagesql
themeEclipse
titleWEBCONS.PRW
linenumberstrue
#include "protheus.ch"
#include "apwebex.ch"
//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();
    }


    /*-------------------------------------------------------------------------------
    /*/{Protheus.doc} fSXBPAD
Monta Consulta padrão chamado no Ponto de entrada MNTI5201 pela função JavaScript fsConPad
/*/
/// Função JavaScript acionada para validar o campo inserido em tela.
    // Em seguida, acionará a função padrão W_I05VLDCPO onde, internamente,
    // acionará a função de usuário B_VLDUSRCP que pode ser visualizada no exemplo do fonte WEBCONS.PRW
    -----------------------------------------------------------------------
WebUser Function fSXBPAD()
 
--------*/
    function LocalfValCpUsr( cHtmlcValor,     := ''cCampo ){
    Local cRecno   document.MNTI0052.action := '1;'
    Local cAliasCon := ''
    Local cAliasW_I05VLDCPO.APW?cValor=' + cValor + '&cCampo=' + cCampo;
       := '' document.MNTI0052.submit();
 
   }
 
</script>
Bloco de código
languagesql
themeEclipse
titleWEBCONS.PRW | Fonte exemplo para intermediar as ações entre a página do Portal SS e o Protheus
linenumberstrue
collapsetrue
#include "protheus.ch"
#include "apwebex.ch"

//-----------------------------------------------------------
/*/ WebUser Function fSXBPAD
Função genérica de usuário para executar a 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 a primeira abertura da consulta padrão pega o HttpGet->TabelaF3 e HttpGet->CampoF3.
    // Caso a busca for com a tela do SXB já aberta é então utilizado HttpSession->cSearch e HttpSession->cField
    Local cCampo    := IIf( ValType( HttpGet->CampoF3  ) == 'U', HttpSession->cField,  HttpGet->CampoF3 )
    Local cConpad   := IIf( ValType( HttpGet->TabelaF3 ) == 'U', HttpSession->cSearch, HttpGet->TabelaF3)
 
    // Caso seja realizadachamada apara consultaconstruir dea umtela registro dentro da tela de consulta padrãopadrao,
    	// serãoutiliza utilizadosvalores adefault chave de pesquisa e indices escolhidos pelo usuário
    Local cPesquisado SXB
	If ValType( HttpGet->CampoF3  ) <> 'U'
		cCampo    := HttpGet->CampoF3
		cConpad   := IIfPadr( ValType( HttpPost->cPesquisa ) == 'U', '', HttpPost->cPesquisa )
    Local HttpGet->TabelaF3, 6 )
		cAliasCon := AllTrim( Posicione('SXB', 1, cConpad + '101' , 'XB_CONTEM') )
		nIndCon   := IIfVal( ValTypeAllTrim( HttpPost->indices   ) == 'U',  0, Val( HttpPost->indicesPosicione('SXB', 1, cConpad + '201' , 'XB_COLUNA') ) )
 	
	Else // Caso seja WEBchamada EXTENDEDatravés INITda cHtmlpesquisa START 'I005ENV'
 
        na tela da consulta padrao,
		 // Alinhautiliza strnigos avalores direitainformados compara o tamanho máximo de 6.
a pesquisa
		cCampo      := HttpSession->cField
		cConpad  cConPad := Padr( cConPadHttpSession->cSearch, 6 )
		cAliasCon := HttpSession->cAliasSXB
		nIndCon   := Val( HttpPost->indices )
		cPesquisa  // Busca alias para busca dos dados a serem apresentados em tela.
        cAliasCon := AllTrim( Posicione('SXB', 1, cConpad + '101' , 'XB_CONTEM') )
        cAlias    := cAliasCon
 
        // nIndCon só será 0 quando for montar a Tela de consulta padrão.
        If nIndCon == 0
            nIndCon   := Val( AllTrim( Posicione('SXB', 1, cConpad + '201' , 'XB_COLUNA') ) )
        EndIf
 
        If cAliasCon <> 'ST9'
            dbSelectArea(cAliasCon)
            dbSetOrder(nIndCon)
            If '_FILIAL' $ Substr( IndexKey(), 1, 10 )
                cPesquisa := xFilial( cAliasCon ) + cPesquisa
            Endif
        EndIf
 
        // Executa chave de pesquisa e verifica se existem itens a serem exibidos posionando no primeiro ReCnO conforme o seek.
        dbSeek(cPesquisa)
        If (cAlias)->( !EoF() ) .And. Substr( &( cAliasCon + '->(' + IndexKey() + ')' ), 1, Len( cPesquisa ) ) == cPesquisa
            cRecno := cValToChar( (cAliasCon)->( RecNo() ) ) + ';'
        EndIf
 
        //Carrega variaveis de sessao
        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:= 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'
	
	// Aciona pagina responsável por exibir a consulta padrão
	// Neste caso, a página pode ser visualizada no exemplo MNTI5SXB.AHU
	cHtml += ExecInPage('MNTI5SXB')
	
	WEB EXTENDED END

Return cHtml

//-------------------------------------------------------------------
/*/{Protheus.doc} VLDUSRCP
Função para validação de campos inseridos em tela no portal de S.S.
Esta função é acionada através da função padrão W_I05VLDCPO, 
utilizada no fonte exemplo MNTI5201.AHU.
/*/
//-------------------------------------------------------------------
WebUser Function VLDUSRCP(cCampo, cValor)

	Local cHtml := ''
	Local cMsg  := ''
	
	WEB EXTENDED INIT cHtml START 'I005ENV'
	
	// Realiza validação do campo inserido em tela
	If cCampo == 'TQB_TESTE'
		// Verifica se o campo atende à validação especificada
		// Caso não, limpa seu conteúdo e apresenta mensagem em tela
		If AllTrim( cValor ) >= '000000' .And. AllTrim( cValor ) <= '000100'
			HttpSession->TQB_TESTE := ''
			cMsg := 'Nao é possivel selecionar a O.S.!'
		Else
			// Caso sim, repassa o valor informado no campo à sua variável da sessão
			HttpSession->TQB_TESTE := cValor
		Endif
	EndIf

	// Caso a variavel cMsg esteja preenchida, esta será apresentada em tela em forma de validação
	VldUsrSS(cCampo, Empty(cMsg), cMsg)
	
	WEB EXTENDED END

Return cHtml
Bloco de código
languagesql
themeEclipse
titleMNTI5SXB.AHU | Fonte exemplo responsável pela construção da tela de consulta padrão WEB
linenumberstrue
collapsetrue
<%
//-------------------------------------------------------------------
/*/{Protheus.doc} MNTI5SXB
    Fonte web de usuario para construção da tela de consulta padrão.
/*/
//-------------------------------------------------------------------
  
    Local cLINHACOLOR, lLINHACOLOR, nPos, nTamCol, lCbox, cPicture, nIndice
    Local aPages, nRecno, nNxtRc, i, j//-------------------------------------------------------------------------------
    Local id_pesq    := Trim(HttpSession->cSeek)
    Local cConPad    := HttpSession->cSearch
    Local cAlias     := HttpSession->cAliasSXB// Recupera informações do SXB para montagem da tela da consulta padrão
    //-------------------------------------------------------------------------------

    Local cLINHACOLOR, lLINHACOLOR, nPos, nTamCol, nIndice
    Local nIndaPages, nRecno, nNxtRc, i, j
    
    Local id_pesq    := Trim(HttpSession->nIndSXB>cSeek)
    Local cConPad  aCamposSXB  := {}HttpSession->cSearch
    Local nTamBrwcAlias     := 5HttpSession->cAliasSXB
    Local cRetorno   nInd       := HttpSession->nIndSXB
    Local aCamposSXB := ''{}
    Local nTamBrw cNomeCon   := ''5
    Local cContemcRetorno    := ''
    Local cDescCmpcNomeCon   := ''
    Local nTamCpocContem    := ''
    Local nTamCpo   cHeader := ''
  

    cHeadercNomeCon +:= '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'
    cHeader += '<html>'
    cHeader += '<head>'AllTrim( Posicione( 'SXB', 1, Padr( cConPad, 6 )+"101", 'XB_DESCRI' ) )
  
    dbSelectArea("SXB")
    dbSetOrder(1)
    cHeader// +=Nome 'da consulta <title>'
padrão + Tipo + cHeaderSequencia
 += '  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">'
If At(">",cContem) > 0 .and. Len(cContem) <= 154
      cHeader   += '  <linkcContem rel="stylesheet" type="text/css" href="NGCSS.css">'
:= Substr(cContem, ( At(">", cContem ) + 1) )
      cHeader += '</head>'
 Endif
        
    cNomeCon    nTamCpo := AllTrim( Posicione( 'SXBSX3', 12, Padr( cConPad, 6 )+"101", 'XB_DESCRIcContem, 'X3_TAMANHO' )
    )
  
  nTamCol := dbSelectArea("SXB")
    dbSetOrder(1)IIf( nTamCpo < 15, 15, ( nTamCpo + 20 ) ) * 5
    // Nome da consulta padrãonTamBrw += TiponTamCol

   + Sequencia
    dbSeek(Padr(cConPad,6)+"401")aAdd(aCamposSXB,{  RetTitle( cContem ), ;
    While !EoF() .And. SXB->(XB_ALIAS+XB_TIPO+XB_SEQ) == Padr(cConPad,6) + "401"
  
                    nTamCol := 15
   AllTrim(SXB->XB_CONTEM), ;
      lCbox   := .F.
        cPicture:= ''
        cContem := AllTrim(SXB->XB_CONTEM)nTamCol, ;
        If At(">",cContem) > 0 .and. Len(cContem) <= 154
            cContem := Substr(cContem, (At(">",cContem)+1))
        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, dbSelectArea( nTamCpo + 20 ) "SXB")
        dbSkip()
    EndDo
  
   cPicture:= AllTrimdbSelectArea("SXB")
 Posicione( 'SX3', 2, cContem, 'X3_PICTURE' )  dbSeek(Padr(cConPad,6)+"501",.T.)
    While    cDescCmp:SXB->XB_ALIAS == RetTitle( cContem )
          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 < 560
 dbSkip()
    EndDo
  
 If   dbSelectArea("SXB")
    dbSetOrder(1)
Len(aCamposSXB) > 0
      // Nome da consulta padrão + Tipo aCamposSXB[Len(aCamposSXB)][3] += Sequencia
(560    dbSeek(Padr(cConPad,6)+"501",.T.)- nTamBrw)
    While  SXB->XB_ALIAS == Padr(cConPad,6) .And. SXB->XB_TIPO == "5"
 Endif
        nTamBrw := 560
  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
%>
  
<%=cHeader%>
<%
// Endif

%>

<%
//----------------------------------------------------------------
// Inicio da estilização da pagina.---------------
// Cabeçalho da página HTML
//-------------------------------------------------------------------------------
%>
<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>'    margin: 5px;
    }
     Portal Inclus&atilde;o de SS - Consulta '</title>
    a{
        text-decoration: none;<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet"   color: #253453;
        font-weight: bold;
    }
     
    a:link, a:visited{
        color: #253453;
        font-weight: bold;
    }
     
    a:hover{
        background-color:#8ca0c7;
        color: #FFFFFF;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{
     
   color: #253453;
        font-weight: bold;
    }
     
    a.pagina{
        text-decoration: none;
        color: #FFFFFF#253453;
        font-weight: nonebold;
    }
     
    a.pagina:link, a.pagina:visited{
        color: #FFFFFF#253453;
        font-weight: nonebold;
    }
     
    a.pagina:hover{
        background-color:#8ca0c7;
        color: #FFFFFF;
        font-weight: bold;
    }
    a.pagina:active{
        color: #FFFFFF#253453;
        font-weight: bold;
    }
     
    a.divrolagem pagina{
    /* define barra de rolagem automatica quando o
text-decoration: none;
      conteudo ultrapassar o limite em x ou y */
color: #FFFFFF;
        font-weight: none;
    }
    overflow: auto;
    /* define o limite maximo da autura do div */a.pagina:link, a.pagina:visited{
        color: #FFFFFF;
            heightfont-weight: 300pxnone;
    /*}
 define o limite maximo da
 largura do div */ a.pagina:hover{
            widthcolor: 580px#FFFFFF;
     
   font-weight: bold;
    }
    padding-top: 5pt;
a.pagina:active{
        color: }#FFFFFF;
    /*Mantem  cabecalho do browse estatico*/font-weight: bold;
    .rowHeader{}
     
    position:relative;.divrolagem {
        topoverflow: expression(offsetParent.scrollTop);
        height:18px;
        z-index: 20;auto; /* define barra de rolagem automatica quando o conteudo ultrapassar o limite em x ou y*/
        background-colorheight: #263957300px;
  /* define  }
<%
//------------------------------------
// Fim da estilização da pagina.
//------------------------------------
%>
</STYLE>
<script language="Javascript">
  
<%
//------------------------------------
// Seleciona registro e popula campo.
//------------------------------------
%>
function fcSeleciona(cCodRet, cCamposAtu){
    var aRet = cCodRet.split(';')
    var aCampos = cCamposAtu.split(';');
    for(i=0; i<aCampos.length;i++){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);
        window.opener.document.getElementById(aCampos[i]).value = aRet[i]height:18px;
        window.opener.document.getElementById(aCampos[i]).focus()z-index: 20;
    }
  
    close()background-color: #263957;
    return;
}}

</style>

<%
//--------------------------------------
// Pesquisa valor informados 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// 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++){
        aArray[c]window.opener.document.getElementById(aCampos[i]).value = ""aRet[i];
    }
    for (c=0;c<nAll;c++){window.opener.document.getElementById(aCampos[i]).focus();
    }
  
  nP = cTXT.indexOfclose(cDiv);
    return;
}


/* Função para realizar 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;">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="bordaEsqAzul1bordaDirAzul4"></b><b class="bordaEsqAzul2bordaDirAzul3"></b><b class="bordaEsqAzul3bordaDirAzul2"></b><b class="bordaEsqAzul4bordaDirAzul1"></b>
        </div>
    </div>
    
    <div id="divIndices" style="width: 580px; background-color: #FFFFFF; padding-bottom: 10pt">

    <table>
      <div id="tituloCabec" class="divtitulo" style="width: 100%; height:15px; <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 <td width="290px" align="left" style="width'padding: 580px; background-color: #FFFFFF; padding-bottom: 10pt"0pt 0pt 0pt 10pt'>
  
      <table>
        <tr<input widthname="100%f_nome">
  type="text"          <td colspanid="2f_nome"><span classsize="txtTitulo"50" onChange='fcPesquisar();' style="padding: 0pt 0pt 0pt 10pt;">Consulta <%=cNomeCon%></span><width:270px;">
            </td>
        </tr>
    <td>
     <tr>
            <td width="290px" align="left" style='padding: 0pt 0pt 0pt 10pt'>
<input type="button" name="Submit" value="Pesquisar" onclick="fcPesquisar();" onmouseover="this.style.cursor='pointer'"/>
            </td>
        </tr>
 <input name="f_nome"  type="text"  id="f_nome" size="50" onChange='fcPesquisar();' style="width:270px; <tr width="100%">
            </td>
            <td><td colspan="2" width="290px" align="left" style='padding: 0pt 0pt 0pt 10pt'>
                <input<select typesize="button1" name="Submitindices" valuestyle="Pesquisar" onclick="fcPesquisar();" onmouseover="this.style.cursor='pointer'"/>width:275px;">
                <%//Monta ComboBox com Indices da Pesquisa
            </td>        dbSelectArea("SIX")
        </tr>
           <tr width="100%"> dbSetOrder(1)
            <td colspan="2" width="290px" align="left" style='padding: 0pt 0pt 0pt 10pt'>
 dbSeek(cAlias)
                  <select size="1" name="indices" style="width:275px;">
     While !Eof() .and. SIX->INDICE == cAlias
            <%//Monta ComboBox com Indices da Pesquisa
       If Val(SIX->ORDEM) > 0
          dbSelectArea("SIX")
                  nIndice := dbSetOrderVal(1SIX->ORDEM)
                      dbSeek(cAlias)  Else
                    While !Eof() .and. SIX->INDICE == cAlias        nIndice++
                        If Val(SIX->ORDEM) > 0
Endif
                        If nIndice == nInd%>
    nIndice := Val(SIX->ORDEM)
                      <option  Elseselected value="<%=nIndice%>"><%=SixDescricao()%></option>
                        <%Else%>
    nIndice++
                         Endif<option value="<%=nIndice%>"><%=SixDescricao()%></option>
            <%           Endif
 If   nIndice == nInd%>
                  dbSelectArea("SIX")
          <option selected value="<%=nIndice%>"><%=SixDescricao()%></option>
            dbSkip()
            <%Else%>
        EndDo
                %>
    <option value="<%=nIndice%>"><%=SixDescricao()%></option>
           </select>
 <%           Endif</td>
        </tr>
                dbSelectArea("SIX")</tr>
    </table>
</div>

<%
    //-------------------------------------------------------------------------------
    // Paginação do resultado
      //-------------------------------------------------------------------------------

    aPages       dbSkip(:= StrTokArr(HttpSession->cNumRec,';')
    nRecno := IIf(Val(HttpSession->cCurPag) <= Len(aPages), Val(aPages[Val(HttpSession->cCurPag)]  ),         EndDo0 )
    nNxtRc := IIf(Val(HttpSession->cCurPag)          %>
                </select>
    < Len(aPages) , Val(aPages[Val(HttpSession->cCurPag)+1]), 0 )

    
    </td>//-------------------------------------------------------------------------------
        </tr>
        </tr>// Área de seleção dos registros
    </table>
</div>
<%
    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 )
%>
  /-------------------------------------------------------------------------------
%>

<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>
  </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>