Histórico da Página
Permite a adição de elementos na tela de cadastro de Solicitação de Serviço no Portal SS
Informações | ||
---|---|---|
| ||
|
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Manufatura | ||||
Módulo: | SIGAMNT - Manutenção de Ativos e Gestão de Frotas | ||||
Rotina: |
| ||||
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<% #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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<% //------------------------------------------------------------------- /*/{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ã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ã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> |
//------------------------------------------------------------------------------- // 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ã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>
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas