Histórico da Página
HTML |
---|
<div id="main-content" class="wiki-content group"> <h1 id="WidgetdeConsultaRápida-Objetivo"> <span style="color: rgb(0, 51, 102);">Objetivo<>Objective</span> </h1> <p style="line-height: 15.0pt;"> <span style="font-size: 10.5pt; font-family: Arial, sans-serif;">El<span>The<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">>Quick Widget de consultaQuery Widget</span></strong><span rápida</span></strong><span class="apple-converted-space"> </span>span>to be queprovided estaráby<span disponible para <span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">Fluig</span></strong>, will presentaráshow althe usuariouser los datos de <spandata of<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">indicadores<></span><span>indicators</strong><span class="apple-converted-space"> </span>span>to definidosbe pordefined lasby áreasthe debusiness negocioareas parafor cadaeach uno de los <spanof the<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">ERPs</span></strong>. EsteThis widget obtendráwill datosobtain deinformation configuraciónsettings deand informaciónbusiness y negocios a través dedata through<span servicios<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">REST</span></strong><span class="apple-converted-space"> </span>aspan>services serto implementadobe porimplemented cadaby unoeach deof losthe segmentossegments. ParaFor lathe<span línea<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">Datasul</span></strong><span class="apple-converted-space"> </span></span><spanspan> line, the<span class="apple-converted-space"> el servicio<strong><span</span><strong><span style="font-family: Arial, sans-serif;">REST</span></strong><span class="apple-converted-space"> </span>seráspan>service proporcionadowill porbe la<spanprovided by the<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">Framework>Datasul Datasul<Framework</span></strong>, quewhich ain suturn vezwill buscarásearch lathe configuraciónsettings yand losdata datosof deeach cada uno de losof the indicadoresindicators deof una determinado<spanparticular<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">BO</span></strong><span class="apple-converted-space"> </span>(Business Object Progress). Estos<spanThese<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">BOs</span></strong><span class="apple-converted-space"> </span>deben ser implementadosspan>must be implemented by the porbusiness lasareas áreasresponsible defor negocio responsables de los indicadoresthe indicators. </span> </p> <p style="line-height: 15.0pt;"> <span style="font-size: 10.5pt; font-family: Arial, sans-serif;">El>The<span <span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">widget>Quick de consulta Query Widget</span></strong><span rápida</span></strong><span class="apple-converted-space"> </span> seráspan>will be similar to the semejante al del formulario de la<spanform in<span class="apple-converted-space"> </span><strong><span style="font-family: Arial, sans-serif;">Imagen>Figure 1</span></strong><span class="apple-converted-space"> </span>a continuaciónspan>below. </span> </p> <p> </p> <p style="line-height: 15.0pt;"> <span style="font-size: 10.5pt; font-family: Arial, sans-serif;">Puede>You accedercan access a unprototype prototipoof dethe laQuick pantallaQuery dewidget widgetscreen dethrough consultathe pantallalink <a href="http://cassino:8180/integration/static/quicksearch/index.html?indicator=1" class="external-link" rel="nofollow">http://cassino:8180/integration/static/quicksearch/index.html?indicator=</a><a href="http://jvd009436:8280/totvs-monitor/quicksearch/index.html?indicator=1" class="external-link" rel="nofollow">X</a>XXX dondewhere XXXX debemust serbe elthe códigocode of delthe indicadorregistered registradoindicator. </span> </p> <p style="text-align: center;"> <img class="confluence-embedded-image" src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A44%3A27.png?version=1&modificationDate=1408056262000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A44%3A27.png?version=1&modificationDate=1408056262000&api=v2"><br /> <strong>Figure <strong>Imagen 1</strong> </p> <h1 style="text-align: left;" id="WidgetdeConsultaRápida-Cadastrodeindicadores"> <span style="color: rgb(0, 51, 102);">Registro de indicadores.<>Indicator register</span> </h1> <p style="text-align: left;"> <span style="font-size: 10.5pt; line-height: 107.0%; font-family: Arial, sans-serif;">Los>The <strong><<strong>indicators</strong> indicadoresmust debenbe estarregistered registradosin en el <strong>GOLD</strong> enunder lathe opción<span><strong>option<span><strong> "ENG20065“ENG20065 – Registro deQuick indicadorQuery de consulta rápida"<Indicator Register”</strong> </span>comospan>as muestrashown la<spanin<span class="apple-converted-space"> </span><span><strong>Imagenspan><span><strong>Figure 2</strong>.</span> </span><span style="font-size: 10.5pt; line-height: 107.0%; font-family: Arial, sans-serif;"> </span> </p> <p style="text-align: center;"> <strong style="text-align: center;"><img class="confluence-embedded-image" src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A45%3A32.png?version=1&modificationDate=1408056327000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A45%3A32.png?version=1&modificationDate=1408056327000&api=v2"></strong> </p> <p style="text-align: center;"> <strong style="text-align: center;">Imagen>Figure 2</strong> </p> <p> UnaOnce vezthe se<strong>indicator</strong> ingreseregister aroutine lais rutina de registro de<strong> accessed, <strong>GOLD indicadores </strong>alstrong>will open <strong>GOLDthe </strong>se abrirá una pantalla de inicio como muestra la <strong>Imagen<strong> initial screen, as shown in <strong>Figure<strong> 3.</strong></strong> </p> <p style="text-align: left;">.</p> <p style="text-align: center;"> <img class="confluence-embedded-image" src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A45%3A55.png?version=1&modificationDate=1408056349000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A45%3A55.png?version=1&modificationDate=1408056349000&api=v2"><br /> <strong>Figure <strong>Imagen 3</strong> </p> <p> En la <strong>Imagen<strong><strong>Figure<strong> 3 </strong></strong><strong>tenemosstrong><strong>shows the lasfollowing siguientes accionesactions:</strong> </p> <ul> <li><strong>Incluir<li><strong>Add: </strong>Habilitastrong>Enables the losfields camposfor parathe elregistration registroof dea unnew nuevo <strong>bookmark<strong>indicator.</strong></li> <li><strong>Modificar<li><strong>Modify: </strong>Permitestrong>Allows la<strong>the<strong> </strong>edición<strong>strong>editing<strong> </strong>destrong>of a un<strong>previously <strong>marcadorselected </strong>previamente seleccionadostrong>indicator.</li> <li><strong>Copiar<li><strong>Copy versiónVersion:</strong> CreaCreates laa réplicareplica deof unan <strong></strong> indicadorindicator deof de <strong>Innovación<<strong>Innovation</strong>(79) ato <strong>Sustentación<<strong></strong>strong>Supportability(69).</li> <li><strong>Eliminar<li><strong>Delete:</strong> EliminaRemoves elthe <strong>bookmark<strong>indicator.</strong></li> <li><strong>Buscar<li><strong>Search: </strong>Realizastrong>Performs lathe búsquedasearch defor <strong>marcadores<strong>indicators.</strong></li> <li><strong>Primero<li><strong>First, anteriorPrevious, siguienteNext, últimaLast: </strong>Navegastrong>Navigates a través de los registros de <strong>marcadores<between <strong>indicator</strong> records.</li> <li><strong>Lista<li><strong>List:</strong> SeOpens abrea unalist pantallascreen con la lista dewith all<strong> todos los <strong> marcadores indicators.</strong></li> <li><strong>Exportar<li><strong>Export: </strong>Realiza la exportación de <strong>marcadoresstrong>Exports <strong>indicators </strong>enstrong>in una archivo <strong>fluig_indic.d</strong> file.</li> </ul> <p> ParaWhen activarchoosing lathe opciónoption I<strong>ncluir<A<strong>dd</strong>, la<strong>GOLD <strong>GOLD</strong>will </strong>permitirá incluir en los campos como muestra la <strong>Imagen enable the fields for addition as shown in <strong>Figure 4.</strong> </p> <p style="text-align: left;"> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A46%3A17.png?version=1&modificationDate=1408056372000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A46%3A17.png?version=1&modificationDate=1408056372000&api=v2"> </p> <p style="text-align: center;"> <strong>Imagen<strong>Figure 4</strong> </p> <p> SegúnAs shown lain <strong>Imagen<strong>Figure 4</strong>, tenemosthe losfollowing siguientesfields campos paraare incluiravailable for addition: </p> <ul> <li style="list-style-type: none; background-image: none;"><ul> <li><strong>Subproducto<li><strong>Sub Product: </strong>Indicastrong>Indicates para cuál marcador sefor which emitirá el subproducto.<sub-product the indicator will be issued</li> <li><strong>Pactote<li><strong>Package: </strong><strong>Indicastrong><strong>Indicates en quéin paquetewhich serápackage lanzado elthe </strong><strong>marcador<strong><strong>indicator</strong>.< will be released</li> <li><strong>Marcador<li><strong>Indicator: </strong>Campostrong>Sequential secuencialfield que seráwhich elwill identificadoridentify delthe marcadorindicator. (GeneradoGenerated automáticamenteautomatically).</li> <li><strong>Nombre<li><strong>BO de BOName:</strong> DebeThe name serof informadothe elBO nombre de BO (ej.(ex: <strong>fluig/qs/usuario user.p</strong>) that quewill be seráresponsible responsablefor deproviding aportarthe informaciónsettings deinformation configuraciónand ythe derecords registros para el marcador en cuestión. Más adelante en estefor the indicator at hand must be entered. Further in this document documentowe veremoswill lossee detallesthe paradetails lafor implementaciónimplementation deof estethis BO.</li> <li><strong>Descripción<li><strong>Description delof marcadorindicator:</strong> DescripciónDescription delof marcadorindicator quethat sewill utilizarábe paraused mostrarloto endisplay elit widgetin dethe <strong>Consultas<strong>Fluig</strong> rápidas<<strong>Quick Query</strong> de <strong>Fluigwidget.</strong></li> <li><p> <strong>Registro<strong>Records porper páginaPage:</strong> CantidadNumber of derecords registrosthat quewill sebe mostrarándisplayed enin elthe widget de <strong>Consultas<strong>Fluig</strong> <strong>Quick rápidas <Query</strong> de <strong>Fluigwidget. </strong>A través de este campostrong>The widget will perform the automatic page break elaccording widgetto haráthe unanumber paginaciónof automáticarecords medianteto el cálculo de la cantidad de registros a visualizarbe displayed. </p></li> <li><p> <strong>Cuenta<strong>Has con cachécache:</strong> indicaindicates whether sithe elbrowse exploradorwill debecache almacenar en caché datosthe data. </p></li> <li><p> <strong>Tiempo<strong>Time deof losdata datos en la memoriain memory:</strong> tiempo entime, in seconds, segundosthat quethe elbrowser navegadorwill debekeep mantener la memoria cachéthe cache. </p></li> <li><strong>BO<li><strong>Custom personalizadoBO:</strong> SiIf a escustomization necesariois hacer una personalización, se debe informar en este campo el nombrerequired, the custom BO name must be entered in this field. This BO demust implement BOthe parasame personalización.procedures Esteas BOa debedefault aplicarBO, losas mismosdescribed procedimientos que el BO estándar como mostraremos más adelantebelow.</li> <li><strong>Autocompletar<li><strong>Autocomplete:</strong> checkbox queindicating indica siif elautocomplete autocompletadois estáenabled habilitadofor parathis este <strong>marcador<<strong>indicator</strong>.<br /> <br /></li> </ul></li> </ul> <p> <span>Para<span>For elproduct actual69, productothe 69,current elpackage paqueteis 60 – 12.1.1, yawhich estéwill sugerido.already Labe pantallarecommended. noThe permitescreen eldoes registronot enallow un paqueteregistration superiorin a higher éstepackage.</span> </p> <p> <span>Si<span>If elthe usuariouser iniciaregisters sesiónin ena unpackage paquetebelow inferiorthe alofficial oficialone, lathe pantallascreen avisaráwill quedisplay existea unmessage paqueteinforming superiorthat ya quehigher este registro debe ser registrado en el paquete oficial tambiénpackage is available, and that this record must also be registered in the official package.</span> </p> <p> <span> </span> </p> <p> <span>En<span>In the laexport opciónoption, dethe exportaranalyst elmust analistaselect debefor seleccionarwhich cuál subproducto y paquete quiere exportar los marcadores comosubproduct and package the indicators should be exported, as shown in<span muestra la<span class="apple-converted-space"> </span><strong><span>Imagenspan><strong><span>Figure 5</span></strong>. </span> </p> <p> <span>Después<span>After deexporting, que la exportación se crea un archivoa fluig_indic.d file will be created, fluig_indic.(d) que debe ser versionado en TFS en la carpeta univdataand a version of it copied to the TSF of the univdata folder ($/FOUNDATION/Fontes_Doc/Sustentacao/V11/V11/progress/src/univdata)</span> </p> <p> <span><span style="color: red;">NOTA>NOTE: The Esanalyst completais responsabilidadentirely delresponsible analistafor cumplirthis concommit estein committhe en la carpeta univdata<univdata folder</span></span><span> </span> </p> <p> </p> <p style="text-align: center;"> <strong><img class="confluence-embedded-image" src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A47%3A40.png?version=1&modificationDate=1408056455000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-14%2019%3A47%3A40.png?version=1&modificationDate=1408056455000&api=v2"></strong> </p> <p style="text-align: center;"> <strong>Imagen<strong>Figure 5</strong> </p> <p style="text-align: left;"> </p> <h1 id="WidgetdeConsultaRápida-Importandoindicadores"> <span style="color: rgb(0, 51, 102);">Importar>Importing marcadores.<indicators</span> </h1> <p> DespuésAfter dethe laindicators exportaciónare de losexported indicadores (fluig_indic.d) es, they must also be necesario importar la misma dentro de la imported within <strong>Datasul</strong>. Para realizarThis esteprocedure procedimiento es posible acceder al menú may be performed through the menu  (Foundation --> BásicoBasic (NPS) --> Tareas Tasks --> Importación de consultas rápidasImporting Quick Queries). </p> <p> AlWhen accederaccessing athis este menú elmenu item, <strong>Datasul </strong>abrirá lastrong>will pantallaopen dean importaciónimport dequick consultasquery rápidasscreen, comoas muestrashown lain <strong>Imagen<strong>Figure 6.</strong> </p> <p style="text-align: left;"> <strong><strong style="text-align: center;"><img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-15%208%3A57%3A56.png?version=1&modificationDate=1408103870000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/image2014-8-15%208%3A57%3A56.png?version=1&modificationDate=1408103870000&api=v2"></strong></strong> </p> <p style="text-align: center;"> <strong><strong </p> <p style="text-align: center;"><strong> style="text-align: center;"><strong>Imagen 6</strong></strong></strong><<strong>Figure 6</strong> </p> <p style="text-align: left;">En esta pantalla simplemente informar>In this screen, simply enter the lalocation ubicaciónof del archivothe fluig_indic.d yfile realizarand laimport importaciónit.</p> <h2 style="text-align: left;" id="WidgetdeConsultaRápida-ServiçoRESTeBOsdeIndicadores"> <strong>Servicio<strong>REST RESTService yand BOs deof Marcadores.<Indicators</strong> </h2> <p style="text-align: left;"> ElThe <strong>Widget<strong>Quick deQuery consultaWidget rápida<</strong> utilizawill unuse una servicio <strong>REST</strong> disponibleservice enavailable elat <strong>Datasul</strong> parato obtenerobtain losthe datosdata necesariosrequired parafor elthe marcadorindicator. Este servicioIn turn, this <strong>REST</strong> a su vezservice obtendráwill laobtain informaciónthe yinformation losand datosdata deof cadaeach marcador a través delindicator through registrothe deindicator marcadoresregister yand deof una <strong>BO </strong>asociadostrong>linked conto elthe marcadorindicator. </p> <p style="text-align: left;"> ParaTo ayudarassist enin elthe procesoprocess deof desarrollodeveloping dethe BO, fue creadothe el include <strong>i_fluig_indicator.i </strong>ya questrong>was contendrá todos loscreated, and will contain all default temp-tables estándarto abe serused utilizadosin en losthe procedimientosprocedures. In Paraorder poderto utilizaruse elthis include simplemente importarlo, simply import it in the enbeginning elof iniciothe delBO BO,by insertarinserting lathe siguientefollowing línealine: </p> <div class="table-wrap"> <table class="confluenceTable"> <tbody> <tr> <th class="confluenceTh">{include/i_fluig_indicator.i}</th> </tr> </tbody> </table> </div> <p style="text-align: left;"> <span style="font-size: 10.0pt; line-height: 13.0pt;">Cada>Each </span><strong style="font-size: 10.0pt; line-height: 13.0pt;">BO</strong><span style="font-size: 10.0pt; line-height: 13.0pt;"> deof marcadoran debeindicator must implementarimplement losthe </span><strong style="font-size: 10.0pt; line-height: 13.0pt;">procedures</strong><span style="font-size: 10.0pt; line-height: 13.0pt;"> que sedescribed describen a continuaciónbelow:</span> </p> <p style="text-align: left;"> <span style="font-size: 10.0pt; line-height: 13.0pt;"><br /></span> </p> <h3 id="WidgetdeConsultaRápida-NomedaProcedure:pi-obtem-campos-entidade-pai"> <strong style="font-size: 10.0pt; line-height: 13.0pt;">Nombre>Procedure del procedureName:</strong><span style="font-size: 10.0pt; line-height: 13.0pt;"> </span><span style="color: rgb(255, 0, 0);"><strong>pi-obtem-campos-entidade-pai</strong></span> </h3> <p> <strong>Descripción<strong>Description:</strong> devuelvereturns lathe listalist deof columnascolumns deof lathe entidad matriz para poblar elparent entity to populate the upper left combobox superiorof izquierdothe widget (<strong>Imagen<strong>Figure 1</strong>). </p> <p> <strong>Parámetros<strong>Parameters:</strong> </p> <ul> <li><strong>usuario<li><strong>user:</strong> eluser identificadoridentifier defor usuarioERP para(CHARACTER el- ERP (tipo CHARACTER - INPUT).INPUT type)</li> <li><strong>empresa<li><strong>company:</strong> elcompany identificador de la empresa paraidentifier for ERP el ERP (tipo CHARACTER - INPUT type).</li> <li><strong>ttParentFields:</strong> temp-tablatable conwith la listathe códigocode/etiquetalabel list. Should Debecontain conteneronly sólothe lositems elementosthat quethe eluser usuariois tieneallowed permisoto para consultarquery (tipo TEMP-mesaTABLE – deOUTPUT salidatype)</li> </ul> <p style="margin-left: 30.0px;">       Campos de la TEMP-TABLE fields:</p> <ul style="list-style-type: square;"> <li style="margin-left: 60.0px;">ccode: CHARACTER - código del campo<field code</li> <li style="margin-left: 60.0px;">clabel: CHARACTER - label del campo<field label</li> </ul> <div> <strong>Ejemplo<strong>Example delof procedure: </strong> </div> <div> <p> </p> <div class="table-wrap"> <table class="confluenceTable"> <tbody> <tr> <td class="confluenceTd"><p>/* Procedure pi-obtem-campos-entidade-pai */</p> <p>PROCEDURE pi-obtem-campos-entidade-pai:</p> <p>                DEFINE INPUT PARAMETER usuariouser AS CHARACTER NO-UNDO.</p> <p>                DEFINE INPUT PARAMETER empresacompany AS CHARACTER NO-UNDO.</p> <p>                DEFINE OUTPUT PARAMETER TABLE FOR ttParentFields.</p> <p> </p> <p>                CREATE ttParentFields.</p> <p>                ASSIGN ttParentFields.ccode = "des_grp_usuar"</p> <p>                              ttParentFields.clabel = "Grupo".</p> <p>END PROCEDURE.<PROCEDURE</p></td> </tr> </tbody> </table> </div> <p> </p> </div> <h3 id="WidgetdeConsultaRápida-NomedaProcedure:pi-obtem-colunas"> <strong>Nombre<strong>Procedure del ProcedureName: <span style="color: rgb(255, 0, 0);">pi-obtem-colunas</span></strong> </h3> <p> <strong>Descripción<strong>Description:</strong> devuelvereturns unaa lista de <strong>Column<strong>Column Model</strong> Model</strong> de las columnas que se mostrarán en el grid del widget de consulta rápida. Esta información será utilizada por el servicio para montar la <strong>colModel</strong> componiendo el <strong>JSON</strong> de respuestalist of the columns to be displayed in the quick query widget grid. This information will be used by the service to assemble the <strong>colModel</strong>, comprising the response <strong>JSON</strong>. </p> <p> <strong>Parámetros<strong>Parameters:</strong> </p> <ul> <li><strong>usuario<li><strong>user:</strong> eluser identificadoridentifier defor usuarioERP para(CHARACTER el- ERP (tipo CHARACTER - INPUT).INPUT type)</li> <li><strong>empresa<li><strong>company:</strong> elcompany identificadoridentifier de la empresa parafor ERP el ERP (tipo CHARACTER - INPUT type).</li> <li><strong>ttColumnModel:</strong> temp-table conwith losthe datos desettings configuración de las columnas del Grid. Debe contener sólo losdata for the Grid columns. Should contain only the columns that the elementosuser queis elallowed usuarioto tiene permiso para consultar (tipo query (TEMP-TABLE – OUTPUT type).</li> </ul> <p style="margin-left: 30.0px;">       Campos de la TEMP-TABLE fields:</p> <ul> <li style="list-style-type: none;"><ul> <li>cname: CHARACTER - nombre de la columna.<column name</li> <li>cindex: CHARACTER - índice de la columna.<column index</li> <li>clabel: CHARACTER - label de la columna.<column name</li> <li>lsortable: LOGICAL: indica si el usuario puede solicitar - indicates whether the user can sort by clasificación por columna.<column</li> <li>iwidth: INTEGER - anchocolumn enwidth, pixels de la columna.<in pixels</li> <li>calign: CHARACTER - alineación de la columnacolumn alignment (left, center or o rigth)</li> <li>csorttype: CHARACTER - tiposorting de ordenacióntype (asc oor descdec).</li> <li>cformatter: CHARACTER - tipoformatter de formateadortype, eje.g.: date</li> <li>cdatefmt: CHARACTER - formatodate parafield campo dataformat, eje.g.: "d-M-Y"</li> <li>lshowOnGrid:LOGICAL - indicaindicates siwhether esethis campofield debe presentarseshould enbe displayed elin grid (default option es= true)</li> <li>cdefault-value: CHARACTER - valor default paravalue elfor campofield.</li> </ul></li> </ul> <div> ParaFor másfurther informacióninformations, seplease puederefer consultarto elthe componentecolModel colModelcomponent, cformatter delof jqGrid, en la páginaat: <a href="http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options" class="external-link" rel="nofollow">http://www.trirand.com/jqgridwiki/doku.php?id=wiki:colmodel_options</a> </div> <p> EnWhen elopening casoa derelated aperturaaction dein unaa acciónProgress relacionadaprogram, coninclude ela programacolumn Progress, incluir en la devolución del procedure una columna denominada <strong>rowid</strong>named <strong>rowid</strong> in the procedure return.  </p> <p> <strong>Ejemplo<strong>Example delof procedure:</strong> </p> <div class="table-wrap"> <table class="MsoTableGrid confluenceTable"> <tbody> <tr> <td style="width: 424.7pt; border: solid windowtext 1.0pt; padding: 0.0cm 5.4pt 0.0cm 5.4pt;" valign="top" width="566" class="confluenceTd"><p class="MsoNormal" style="line-height: normal;">/* Procedure pi-obtem-colunas */</p> <p class="MsoNormal" style="line-height: normal;">PROCEDURE pi-obtem-colunas:</p> <p class="MsoNormal" style="line-height: normal;">                DEFINE INPUT PARAMETER cusuario AS CHARACTER NO-UNDO.</p> <p class="MsoNormal" style="line-height: normal;">                DEFINE INPUT PARAMETER cempresa AS CHARACTER NO-UNDO.</p> <p class="MsoNormal" style="line-height: normal;">                DEFINE OUTPUT PARAMETER TABLE FOR ttColumnModel.</p> <p class="MsoNormal" style="line-height: normal;"> </p> <p class="MsoNormal" style="line-height: normal;">                 <span>CREATE ttColumnModel.</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                ASSIGN ttColumnModel.cname = "cod_usuario"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.clabel = "UsuarioUsuário"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.cindex = "cod_usuario"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.iwidth = 160</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.lsortable = TRUE.</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                CREATE ttColumnModel.</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                ASSIGN ttColumnModel.cname = "nom_usuario"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.clabel = "NombreNome"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.clabelcindex = "Nombrenom_usuario"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.iwidth = 250</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.lsortable = TRUE.</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                CREATE ttColumnModel.</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                ASSIGN ttColumnModel.cname = "ind_tip_usuar"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.clabel = "Tipo"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.cindex = "ind_tip_usuar"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.iwidth = 160.</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                CREATE ttColumnModel.               </span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                ASSIGN ttColumnModel.cname = "rowid"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.clabel = "Rowid"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  ttColumnModel.cindex = "rowid"</span> </p> <p class="MsoNormal" style="line-height: normal;"> <span>                                  </span>ttColumnModel.iwidth = 100. </p> <p class="MsoNormal" style="line-height: normal;">END PROCEDURE.</p></td> </tr> </tbody> </table> </div> <p> <strong><br /></strong> </p> <h3 id="WidgetdeConsultaRápida-NomedaProcedure:pi-obtem-lista-selecao"> <strong>Nombre<strong>Procedure del ProcedureName: <span style="color: rgb(255, 0, 0);">pi-obtem-lista-selecao</span></strong> </h3> <p> <strong>Descripción<strong>Description:</strong> returns a devuelvelist unaof listaitems deto artículoscomprise quethe componenselectionValues lain selectionValuesthe enresponse JSON, quewhich sewill utilizarábe paraused poblarto elpopulate the upper right combobox superiorof derecho delthe widget (<strong>Imagen<strong>Figure 1</strong>). </p> <p> <strong>Parámetros<strong>Parameters:</strong> </p> <ul> <li><strong>usuario<li><strong>user:</strong> eluser identificadoridentifier defor usuarioERP para(CHARACTER el- ERP (tipo CHARACTER - INPUT).INPUT type)</li> <li><strong>empresa<li><strong>company:</strong> elcompany identificadoridentifier de la empresa parafor ERP el ERP (tipo CHARACTER - INPUT type).</li> <li><strong>ttSelectionValues:</strong> temp-table conwith lathe listalist deof filtrosfilters (valoresselection de selecciónvalues). Debe contener sólo los elementosShould contain only the items that the queuser elis usuarioallowed tieneto permisoquery para consultar (tipo TEMP-TABLE – OUTPUT). OUTPUT type)</li> </ul> <p style="margin-left: 30.0px;">       Campos de la TEMP-TABLE fields:</p> <ul> <li style="list-style-type: none;"><ul> <li>ccode: CHARACTER - códigofield del campo<code</li> <li>clabel: CHARACTER - label delfield campo<label</li> </ul></li> </ul> <p> <strong>Ejemplo<strong>Example delof procedure:</strong> </p> <div class="table-wrap"> <table class="confluenceTable"> <tbody> <tr> <td class="confluenceTd"><p>/* Procedure pi-obtem-lista-selecao */</p> <p>PROCEDURE pi-obtem-lista-selecao:</p> <p>                DEFINE INPUT PARAMETER usuariouser AS CHARACTER NO-UNDO.</p> <p>                DEFINE INPUT PARAMETER empresacompany AS CHARACTER NO-UNDO.</p> <p>                DEFINE OUTPUT PARAMETER TABLE FOR ttSelectionValues.</p> <p> </p> <p>                CREATE ttSelectionValues.</p> <p>                ASSIGN ttSelectionValues.ccode = "AUSR"</p> <p>                               ttSelectionValues.clabel = "Todos losos usuariosusuários".</p> <p>                CREATE ttSelectionValues.</p> <p>                ASSIGN ttSelectionValues.ccode = "OADM"</p> <p>                               ttSelectionValues.clabel = "SóloApenas Administradores".</p> <p>                CREATE ttSelectionValues.</p> <p>                ASSIGN ttSelectionValues.ccode = "OSUP"</p> <p>                               ttSelectionValues.clabel = "SóloApenas Super".</p> <p>                CREATE ttSelectionValues.</p> <p>                ASSIGN ttSelectionValues.ccode = "OCOM"</p> <p>                               ttSelectionValues.clabel = "SóloApenas usuarios comunesSuper".</p> <p>                CREATE ttSelectionValues.</p> <p>                ASSIGN ttSelectionValues.ccode = "OSPV"</p> <p>                               ttSelectionValues.clabel = "SóloApenas Supervisores".</p> <p>END PROCEDURE.</p></td> </tr> </tbody> </table> </div> <p> <strong><br /></strong> </p> <h1 id="WidgetdeConsultaRápida-NomedaProcedure:pi-obtem-acoes-relacionadas"> <strong style="font-size: 10.0pt; line-height: 13.0pt;">Nombre>Procedure del ProcedureName: <span style="color: rgb(255, 0, 0);">pi-obtem-acoes-relacionadas</span> </strong> </h1> <p> <strong>Descripción<strong>Description:</strong> returns devuelvea unalist listaof deitems artículosto paracomprise componerrelatedActions elitem ítemin selectionActionsthe enresponse JSON, de respuesta, que sewhich will be used to utilizarápopulate parathe poblarRelated elActions combo de acciones relacionadas (<strong>Imagen (<strong>Figure 1</strong>). </p> <p> <strong>Parámetros<strong>Parameters:</strong> </p> <ul> <li><strong>usuario<li><strong>user:</strong> eluser identificadoridentifier defor usuarioERP para(CHARACTER el- ERP (tipo CHARACTER - INPUT).INPUT type)</li> <li><strong>empresa<li><strong>company:</strong> elcompany identificadoridentifier de la empresa parafor ERP el ERP (tipo CHARACTER - INPUT type).</li> <li><strong>ttRelatedActions:</strong> temp-table conwith lathe lista delist marcadoresof related relacionadosindicators. Should contain Debeonly contenerthe sóloitems losthat elementosthe queuser elis usuario tiene permiso para consultarallowed to query (tipo TEMP-TABLE – OUTPUT type).</li> </ul> <p style="margin-left: 30.0px;">       Campos de la TEMP-TABLE fields:</p> <ul> <ul> <li>clabel: CHARACTER - labelfield del campo<label</li> <li>ctype: CHARACTER - type tipoof deform formularioto porbe abriropened. ValoresPossible posiblesvalues (md, flex oor progress).</li> <li>cmodule: CHARACTER - módulomodule to abe abrir.<opened</li> <li>cprogram: CHARACTER - program programato abe abrir.<opened</li> <li>cviewtype: CHARACTER - tipotype deof formatoscreen deformat lato pantallabe poropened. abrir. Utilizado paraUsed for ctype = md oor ctype = flex. Valores posibles Possible values (portlet,view and (portlet, view y window).</li> <li>crowid: CHARACTER - puedenshould be usarseused parato informarinform elthe campofield quethat representaráwill represent elthe rowid parato entidadesrelated vinculadasentities. </li> </ul> </ul> <div> <span style="color: rgb(0, 0, 0);">Si>If lathe solicitud por abrir deapplication being metadatos, es necesario que el formulario está registrado en el menúopened is of Metadata type, the form must be registered in the deapplication la aplicaciónMenu.</span> </div> <p>Con<p>With estathis informacióninformation, sethe montaránURLs laswill URLsbe segúnassembled losaccording formatosto siguientesthe formats below:</p> <p> <u>Progress:</u> </p> <p> <a href="http://10.80.5.40:8080/abl-external-call/execute?module=sec&program=sec000aa.w&user=13" class="external-link" rel="nofollow">http://10.80.5.40:8080/abl-external-call/execute?module=sec&program=sec000aa.w&user=framework</a> </p> <p> <u>Metadatos<u>Metadata:</u> </p> <p> <a href="http://10.80.5.40:8080/josso/signon/externalUserAuthentication.do?josso_cmd=external-login&type=md&fromFluig=true&program=fnd.CRUDUsuarMestre&viewtype=view&userid=framework&password=ZnJhbWV3b3Jr=" class="external-link" rel="nofollow">http://10.80.5.40:8080/josso/signon/externalUserAuthentication.do?josso_cmd=external-login&type=md&fromFluig=true&program=fnd.CRUDUsuarMestre&viewtype=view&userid=framework&password=ZnJhbWV3b3Jr=</a> </p> <p> <u>Flex:</u> </p> <p> <a href="http://serverport" class="external-link" rel="nofollow">http://server:port/josso/signon/externalUserAuthentication.do?josso_cmd=external-login&type=frwk&module=fnd&</a><a href="http://10.80.5.40:8080/josso/signon/externalUserAuthentication.do?josso_cmd=external-login&type=md&fromFluig=true&program=fnd.CRUDUsuarMestre&viewtype=view&userid=framework&password=ZnJhbWV3b3Jr=" class="external-link" rel="nofollow">fromFluig=true</a><a href="http://serverport" class="external-link" rel="nofollow">&program=datasul-calculatorportlet-flex&viewtype=portlet&userid=super&password=c3N6a0AxMjM=</a> </p> <p>Por<p>Details detallesof dehow cómoto configurarassemble lasthe direccionesURLs, URL, consultar el documentoquery the document:</p> <p> <a href="81789202.html">Invocación>Invoking Applications deand AplicacionesForms yon FormulariosDatasul en el Datasul vía Fluig</a>through Fluig </p> <p> <strong>Ejemplo<strong>Example delof procedure:</strong> </p> <div class="table-wrap"> <table class="confluenceTable"> <tbody> <tr> <td class="confluenceTd"><p>/* Procedure pi-obtem-acoes-relacionadas */</p> <p>PROCEDURE pi-obtem-acoes-relacionadas:</p> <p>    DEFINE INPUT PARAMETER usuariouser AS CHARACTER CHARACTER NO-UNDO.</p> <p>    DEFINE INPUT PARAMETER empresacompany AS CHARACTER NO-UNDO.</p> <p> </p> <p>    DEFINE OUTPUT PARAMETER TABLE FOR ttRelatedActions.</p> <p> </p> <p>    CREATE ttRelatedActions.</p> <p>    ASSIGN ttRelatedActions.clabel = "EjemploExemplo Progress"</p> <p>           ttRelatedActions.ctype = "progresoprogress"</p> <p>           ttRelatedActions.cmodule = "sec"</p> <p>           ttRelatedActions.cprogram = "sec000aa.w".</p> <p>    CREATE ttRelatedActions.</p> <p>    ASSIGN ttRelatedActions.clabel = "EjemploExemplo MetadatosMetadados"</p> <p>           ttRelatedActions.ctype = "md"</p> <p>           ttRelatedActions.cprogram = "fnd.CRUDUsuarMestre"</p> <p>           ttRelatedActions.cviewtype = "view".  </p> <p>    CREATE ttRelatedActions.</p> <p>    ASSIGN ttRelatedActions.clabel = "EjemploExemplo Flex"</p> <p>           ttRelatedActions.ctype = "flex"</p> <p>           ttRelatedActions.cmodule = "fnd"</p> <p>           ttRelatedActions.cprogram = "datasul-calculatorportlet-flex"</p> <p>           ttRelatedActions.cviewtype = "portlet".</p> <p>END PROCEDURE.</p></td> </tr> </tbody> </table> </div> <p> </p> <h3 id="WidgetdeConsultaRápida-NomedaProcedure:pi-obtem-auto-complete"> <strong>Nombre<strong>Procedure del ProcedureName: <span style="color: rgb(255, 0, 0);">pi-obtem-auto-complete</span></strong> </h3> <p> <strong>Descripción<strong>Description:</strong> realizaperforms unaa búsquedasearch enin lathe basedata debank datosto para devolver una lista de artículos que se utilizará para poblar el combobox de autocompletar en la consulta rápida del return a list of items that will be used to populate the combobox of the auto-complete in the Quick Query widget. </p> <p> <strong>Parámetros<strong>Parameters:</strong> </p> <ul> <li><strong>usuario<li><strong>user:</strong> el identificador de usuario para el user identifier for ERP (tipo CHARACTER - INPUT INPUTtype).</li> <li><strong>empresa<li><strong>company:</strong> elcompany identificadoridentifier de la empresa parafor ERP el ERP (tipo CHARACTER - INPUT type).</li> <li><strong>csearchfield:</strong> LaIdentifier columnaof dethe identificadormaster entable lacolumn tablato maestrabe paraused serin utilizado en la búsquedathe search (tipo CHARACTER - INPUT INPUT type).</li> <li><strong>csearchvalue:</strong> Text Buscarfor textosearch (tipo CHARACTER - INPUT type).</li> <li><strong>cselection:</strong> campowidget deselection selección delfield widget (tipo CHARACTER – INPUT type).</li> <li><strong>clist:</strong> string quecontaining contienea lalist listaof devalues valores encontradosfound, dondewhere cadaeach elementoitem debemust serbe separadoseparated porby |||| (four pipes) - (cuatro barras)-(tipo LONGCHAR-OUTPUTLONGCHAR – OUTPUT type).</li> </ul> <p>          EjemploExample:  “Adm“Fin. Financiera Administrator|| || TOTVS administrador "Administrator”.</p> <p> <strong>Ejemplo<strong>Example delof procedure:</strong> </p> <div class="table-wrap"> <table class="confluenceTable"> <tbody> <tr> <td class="confluenceTd"><p>PROCEDURE pi-obtem-auto-complete:</p> <p>    DEFINE INPUT PARAMETER usuariouser AS CHARACTER CHARACTER NO-UNDO.</p> <p>    DEFINE INPUT PARAMETER empresacompany AS CHARACTER NO-UNDO.</p> <p>    DEFINE INPUT PARAMETER csearchfield AS CHARACTER NO-UNDO.</p> <p>    DEFINE INPUT PARAMETER csearchvalue AS CHARACTER NO-UNDO.</p> <p> <span> DEFINE INPUT PARAMETER cselection AS CHARACTER NO-UNDO.</span> </p> <p>    DEFINE OUTPUT PARAMETER clist AS LONGCHAR NO-UNDO.</p> <p> </p> <p>    IF csearchvalue = ? THEN</p> <p>        ASSIGN csearchvalue = "".</p> <p>       </p> <p>    DEFINE VARIABLE hQuery  AS HANDLE  NO-UNDO.</p> <p>    DEFINE VARIABLE hbuffer AS HANDLE  NO-UNDO.</p> <p>  </p> <p>    CREATE BUFFER hbuffer FOR TABLE "EMSFND.GRP_USUAR".</p> <p>   </p> <p>    CREATE QUERY hQuery.</p> <p>    hQuery:SET-BUFFERS(hbuffer).</p> <p>    hQuery:QUERY-PREPARE("FOR EACH GRP_USUAR WHERE " + csearchfield +  " MATCHES '*" + csearchvalue + "*'").</p> <p>    hQuery:QUERY-OPEN.</p> <p>   </p> <p>    HQUERY:GET-FIRST().</p> <p>    REPEAT WHILE hbuffer:AVAIL: </p> <p>        IF  clist = '' THEN</p> <p>            clist = hbuffer:BUFFER-FIELD(csearchfield):BUFFER-VALUE.</p> <p>        ELSE</p> <p>            clist = clist + '||||' + hbuffer:BUFFER-FIELD(csearchfield):BUFFER-VALUE.</p> <p> </p> <p>        hQuery:GET-NEXT(). </p> <p>    END.</p> <p>   </p> <p>    hQuery:QUERY-CLOSE().</p> <p>    DELETE OBJECT hQuery.</p> <p>    DELETE OBJECT hbuffer.</p> <p>   </p> <p>END PROCEDURE.</p></td> </tr> <tr> <td colspan="1" class="confluenceTd"> </td> </tr> </tbody> </table> </div> <p> <strong><br /></strong> </p> <p> <strong>Nombre<strong>Procedure del ProcedureName: <span style="color: rgb(255, 0, 0);">pi-obtem-dados</span></strong> </p> <p> <strong>Descripción<strong>Description:</strong> realizaperforms unaa búsquedasearch enin lathe basedata debank datosto parareturn devolverthe lapage páginaof derecords registrosrequested solicitadosby por elthe widget. </p> <p> <strong>Parámetros<strong>Parameters:</strong> </p> <ul> <li><strong>usuario<li><strong>user:</strong> eluser identificadoridentifier defor usuarioERP para(CHARACTER el- ERP (tipo CHARACTER - INPUT).INPUT type)</li> <li><strong>empresa<li><strong>company:</strong> elcompany identificadoridentifier de la empresa parafor ERP el ERP (tipo CHARACTER - INPUT type).</li> <li><strong>csortcol:</strong> name nombreof decolumn columnaused utilizadofor parasorting ordenarrecords los registros (tipo CHARACTER - INPUT type).</li> <li><strong>csortorder:</strong> tipo de ordenación de losrecord sorting type: asc ou dec registros: asc o desc (tipo CHARACTER - INPUT type).</li> <li><strong style="font-size: 10.0pt; line-height: 13.0pt;">csearchfield:</strong><span style="font-size: 10.0pt; line-height: 13.0pt;"> columnacolumn parato aplicarapply filtrofilter (tipo CHARACTER - INPUT type).</span></li> <li><strong>csearchvalue:</strong> valorvalue parato aplicarapply filtrofilter (tipo CHARACTER - INPUT type).</li> <li><strong>cselection:</strong> campowidget de selección del widgetselection field (tipo CHARACTER – INPUT type).</li> <li><strong style="font-size: 10.0pt; line-height: 13.0pt;">cfields:</strong><span style="font-size: 10.0pt; line-height: 13.0pt;"> longchar quethat contiene las columnas de los datos que se van a devolver en lacontains the columns of data that will be returned in <strong>ttData</strong>.(tipoLONGCHAR LONGCHAR – OUTPUT type) </span></li> <li><span style="font-size: 10.0pt; line-height: 13.0pt;"><strong>ttData</strong>: Temp-table quethat contienecontains losthe datossearch dereturn devolución de la búsqueda.data. (TEMP-TABLE - (tipo TEMP-TABLE - OUTPUTOUTPUT type)</span></li> </ul> <div> <p style="margin-left: 30.0px;">  Campos de la TEMP-TABLE fields:</p> <ul> <li style="list-style-type: none;"><ul> <li>crecords: CHARACTER - valoresvalus queto sebe mostraránpresented enin elthe gridquick delquery widget degrid. laThese consultavalues rápida.must Estosbe valoresseparated se pueden separarby "||||" and con "||||" y deberán estar en la secuencia de las columnas definidas en el campo must follow the sequence of the columns defined in the field <strong>cfields</strong>. </li> </ul></li> </ul> </div> <p> <strong>Ejemplo<strong>Example delof procedure:</strong> </p> <div class="table-wrap"> <table class="confluenceTable"> <tbody> <tr> <td class="confluenceTd"><p>/* Procedure pi-obtem-dados */</p> <p>PROCEDURE pi-obtem-dados:</p> <p>    DEFINE INPUT PARAMETER usuariouser AS CHARACTER CHARACTER NO-UNDO.</p> <p>    DEFINE INPUT PARAMETER empresacompany AS CHARACTER NO-UNDO.</p> <p>    DEFINE INPUT PARAMETER csortcol AS CHARACTER NO-UNDO.   </p> <p>    DEFINE INPUT PARAMETER csortorder AS CHARACTER NO-UNDO. </p> <p>    DEFINE INPUT PARAMETER csearchfield AS CHARACTER NO-UNDO.</p> <p>    DEFINE INPUT PARAMETER csearchvalue AS CHARACTER NO-UNDO.</p> <p>    DEFINE INPUT PARAMETER cselection AS CHARACTER NO-UNDO.</p> <p>    DEFINE OUTPUT PARAMETER cfields AS LONGCHAR NO-UNDO.</p> <p>    DEFINE OUTPUT PARAMETER TABLE FOR ttData.</p> <p> </p> <p>    DEFINE VARIABLE hbusuario   AS HANDLE      NO-UNDO.</p> <p>    DEFINE VARIABLE hbusuariogrpusuario AS HANDLE      NO-UNDO.</p> <p>    DEFINE VARIABLE hbgrpusuario AS HANDLE      NO-UNDO.</p> <p>       </p> <p>    DEFINE VARIABLE hqusuario   AS HANDLE      NO-UNDO.</p> <p>    DEFINE VARIABLE cwhere      AS CHARACTER   NO-UNDO INITIAL " FOR EACH usuar_mestre ".</p> <p>    DEFINE VARIABLE cadvwhere   AS CHARACTER   NO-UNDO INITIAL " FOR EACH grp_usuar WHERE grp_usuar.des_grp_usuar MATCHES '*&1*', each usuar_grp_usuar WHERE usuar_grp_usuar.cod_grp_usuar = grp_usuar.cod_grp_usuar, each usuar_mestre WHERE usuar_mestre.cod_usuario = usuar_grp_usuar.cod_usuario ".</p> <p>    DEFINE VARIABLE corderby    AS CHARACTER   NO-UNDO INITIAL " BY usuar_mestre.".</p> <p>    DEFINE VARIABLE iaux        AS INTEGER     NO-UNDO.</p> <p>    DEFINE VARIABLE ireposition AS INTEGER     NO-UNDO.</p> <p>    DEFINE VARIABLE ladvanced   AS LOGICAL     NO-UNDO INITIAL FALSE.</p> <p> </p> <p> </p> <p>   /***************************** DEFINING DEFINIENDOFIELDS CAMPOS ************************************/</p> <p>    ASSIGN cfields = "cod_usuario" + "||||" + "nom_usuario" + "||||" + "ind_tip_usuar" + "||||" + "rowid".</p> <p> </p> <p>    /* EstableciendoSorting la ordenación por columnaby column */</p> <p>    ASSIGN corderby = corderby + csortcol.</p> <p> </p> <p>    /* VerificandoChecking elthe tipo de sort en la ordenaciónsorting type */</p> <p>    CASE csortorder:</p> <p>        WHEN "desc" THEN DO:</p> <p>            corderby = corderby + " DESCENDING ".</p> <p>        END.</p> <p>    END CASE.</p> <p> </p> <p>    /* ArmandoPerforming losmatches matchesfor paraauto-complete auto-completar */</p> <p>    IF csearchvalue <> "null" THEN DO:</p> <p>        cwhere = SUBSTITUTE(cadvwhere,csearchvalue).</p> <p>        ladvanced = TRUE.</p> <p>    END.</p> <p>   </p> <p>    / * MontandoAssembling elwhere whereby porthe columnacombo delcolumn combo */</p> <p>    CASE cselection:</p> <p>        WHEN "OADM" THEN DO:</p> <p>            cwhere = cwhere + " &1 usuar_mestre.ind_tip_usuar = 'Admin' ".</p> <p>        END.</p> <p>        WHEN "OSUP" THEN DO:</p> <p>            cwhere = cwhere + " &1 usuar_mestre.ind_tip_usuar = 'Super' ".</p> <p>        END.</p> <p>        WHEN "OCOM" THEN DO:</p> <p>            cwhere = cwhere + " &1 usuar_mestre.ind_tip_usuar = 'Comum' ".</p> <p>        END.</p> <p>        WHEN "OSPV" THEN DO:</p> <p>            cwhere = cwhere + " &1 usuar_mestre.ind_tip_usuar = 'Supervisor' ".</p> <p>        END.</p> <p>    END CASE.</p> <p> </p> <p>    IF ladvanced THEN DO:</p> <p>        cwhere = SUBSTITUTE(cwhere," AND ").</p> <p>    END.</p> <p>    ELSE DO:</p> <p>        cwhere = SUBSTITUTE(cwhere," WHERE ").</p> <p>    END.</p> <p> </p> <p>    / * TerminadoFinishing elassembling where */</p> <p>    cwhere = cwhere + corderby.</p> <p>  </p> <p>    / * EstablecerAssembling lathe consultaquery conwith bufferdynamic dinámicobuffer */</p> <p>    CREATE BUFFER hbgrpusuario FOR TABLE "EMSFND.grp_usuar".</p> <p>    CREATE BUFFER hbusuariogrpusuario FOR TABLE "EMSFND.usuar_grp_usuar".</p> <p>    CREATE BUFFER hbusuario FOR TABLE "EMSFND.usuar_mestre".</p> <p> </p> <p>    CREATE QUERY hqusuario.</p> <p>     IF ladvanced THEN DO:</p> <p>        hqusuario:SET-BUFFERS(hbgrpusuario,hbusuariogrpusuario, hbusuario).</p> <p>     END.</p> <p>     ELSE DO:</p> <p>        hqusuario:SET-BUFFERS(hbusuario).</p> <p>     END.</p> <p>                 </p> <p>    hqusuario:QUERY-PREPARE(cwhere).</p> <p>    hqusuario:QUERY-OPEN().</p> <p>   </p> <p>    hqusuario:GET-FIRST().</p> <p> </p> <p>    REPEAT WHILE hbusuario:AVAILABLE:</p> <p>        CREATE ttData.</p> <p>        ASSIGN ttData.crecords = hbusuario:BUFFER-FIELD("cod_usuario"):BUFFER-VALUE + "||||" +</p> <p>                                 hbusuario:BUFFER-FIELD("nom_usuario"):BUFFER-VALUE + "||||" +</p> <p>                                 hbusuario:BUFFER-FIELD("ind_tip_usuar"):BUFFER-VALUE + "||||" +</p> <p>                                 STRING(hbusuario:ROWID).</p> <p>        hqusuario:GET-NEXT().</p> <p>    END.</p> <p>   </p> <p>    DELETE OBJECT hqusuario.</p> <p>    DELETE OBJECT hbusuario.</p> <p>END PROCEDURE.</p></td> </tr> </tbody> </table> </div> <p> </p> <h1 id="WidgetdeConsultaRápida-DetalhamentodeRegistros"> <strong>Detalle<strong>Records de registros<Details</strong> </h1> <p> A program travéscan be delopened comboboxthrough dethe <strong>Acciones<strong>Related relacionadas<Actions</strong> se puedecombobox abrirto undisplay programathe paradetails presentarof losa detallesrecord deselected un registro seleccionado en elon the grid. El programa por abrir puede ser del tipo Progress, Metadatos o Flex, definido de acuerdo con la URL devuelta por el procedureThe program to be opened may be of Progress, Metadata or Flex type, defined according to the URL returned by the <strong>pi-obtem-acoes-relacionadas</strong>. Para formularios Metadatos del tipoprocedure. For Metadata forms of CRUDFreeform notype, necesitait haceris ningúnnot cambio en el formulario, para que se abra mostrando el registro seleccionado en el grid del widget. Para programas Progress, formularios Flex y Metadatos tipo FreeForm es necesario hacer algunas implementaciones como se muestra a continuaciónnecessary to make any changes in the form for it to be opened displaying the record selected in the widget grid. For Progress programs, Flex forms and Metadata of FreeForm type, some implementations are needed, as seen below: </p> <h3 id="WidgetdeConsultaRápida-FreeForm:"> <strong><u>FreeForm:</u></strong> </h3> <p> Los<strong>FreeForm</strong> formulariosforms delthat tiporepresent <strong>FreeForm</strong>indicators queshould representanhave marcadores, deben tener un script del evento creationComplete de su contenedor principal (generalmente una script on the creationComplete event of its main container (usually a canvas). EsteThis script debe proporcionar un código similar al siguienteshould provide a code similar to the following: </p> <pre>DEFINE VARIABLE  mdProgram AS CHARACTER.</pre> <pre>DEFINE VARIABLE ttPreSelRecord AS TEMP-TABLE.</pre> <pre>mdProgram = GET-MD-PROGRAM().</pre> <pre>/* VerificaChecks siif elthe registroselected seleccionadorecord enviadasent porby el Fluig (siif existeany),</pre> <pre>   corresponds correspondeto althe formulariocurrent actualform */</pre> <pre>IF mdProgram = “crm1150.FFIndicadorX” THEN DO:</pre> <pre>    ttPreSelRecord = GET-PRE-SEL-RECORD().</pre> <pre>    /* Desde ese punto tenemos disponibles en temp-table ttPreSelRecord el< Based on that, we have the record sent by Fluig available at</pre> <pre>       registro enviado por el Fluigtemp-table ttPreSelRecord, dondewhere losthe nombresfield denames loscorrespond campos corresponden a los<to the</pre> <pre>       nombresnames definidosdefined enin elthe colModel delof serviciothe destart startservice. ElThe rest restoof delthe script <br /> should then debeprepare prepararthe lapresentation presentaciónof delthe registrorecord.*/</pre> <pre>    ...</pre> <pre>    ...</pre> <pre>END.<br /><br /> </pre> <h3 id="WidgetdeConsultaRápida-Flex:"> <u><strong>Flex:</strong></u> </h3> <p> ParaFor the formulariosforms implementadosimplemented enin <strong>Flex</strong> that querepresent representan marcadores, los desarrolladores deben hacer cambios para comprobar la inicialización del formulario de lasindicators, developers should make changes to check, when initializing the form, the variables <strong>Application.application.parameters.mdProgram</strong> yand <strong>Application.application.parameters.fluigSelRecord</strong>. SiIf estasthese variables have tienenvalid values valoresthat válidoscorrespond yto correspondenthe alform formularioat en cuestiónhand, debena introducirsedetail ascreen lawith pantallathe deavailable detallerecord con el registro disponible enmust be displayed in <strong>fluigSelRecord</strong>. </p> <p>Ejemplo<p>Example:</p> <div class="table-wrap"> <table class="confluenceTable"> <tbody> <tr> <td class="confluenceTd"><p> <strong>var</strong> fluigSelRecord:ObjetoObject = Application.application.parameters.fluigSelRecord; </p> <p> Alert.show(<strong>"num_pedido:"</strong> + fluigSelRecord.num_pedido); </p></td> </tr> </tbody> </table> </div> <h3 id="WidgetdeConsultaRápida-Progress:"> <u><strong>Progress:</strong></u> </h3> <h4 id="WidgetdeConsultaRápida-ThinTemplate:">Thin Template:</h4> <p>Programa<p>Register de registroprogram:</p> <p> DefiniciónDefinition delof include <strong>ut-indicador-tabela.i</strong>: </p> <p> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig1.png?version=1&modificationDate=1388403667000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig1.png?version=1&modificationDate=1388403667000&api=v2"> </p> <p style="text-align: center;"> <strong>Imagen<strong>Figure 3</strong> </p> <p style="text-align: center;"> </p> <p> IngresarInsert elthe códigocode siguientebelow enin elthe procedimientoprocedure de <strong>afterDisplayFields</strong> parato volverreposition athe colocar el registro seleccionadorecord selected: </p> <p>(ajusteadjust for dethe temp-table delof the programaprogram).</p> <p> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig2.png?version=1&modificationDate=1388403803000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig2.png?version=1&modificationDate=1388403803000&api=v2"> </p> <p style="text-align: center;"> <strong>Imagen<strong>Figure 4</strong> </p> <p> </p> <p> IncluirIn the enBO elof BOthe delprogram, programainclude una procedure quethat recibareceives el parámetrothe <strong>ROWID</strong> deof lathe tablatable, paraby cambiarparameter, lato posiciónreposition delthe registrorecord: </p> <p> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig3.png?version=1&modificationDate=1388403899000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig3.png?version=1&modificationDate=1388403899000&api=v2"> </p> <p style="text-align: center;"> <strong>Imagen<strong>Figure 5</strong> </p> <p> </p> <p> ProgramaProgram, desarrolladodeveloped enin <strong>Thin Template</strong>, abiertoopened with conthe registrorecord colocadopositioned: </p> <p> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig4.png?version=1&modificationDate=1388403977000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig4.png?version=1&modificationDate=1388403977000&api=v2"> </p> <p style="text-align: center;"> <strong>Imagen<strong>Figure 6</strong> </p> <p> </p> <h4 id="WidgetdeConsultaRápida-SmartObjects:">SmartObjects:</h4> <p>Programa<p>Register de registroprogram:</p> <p> DefiniciónDefinition delof include <strong>ut-indicador-tabela.i</strong>: </p> <p style="text-align: center;"> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig5.png?version=1&modificationDate=1388404130000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig5.png?version=1&modificationDate=1388404130000&api=v2"><strong>Imagen><strong>Figure 7</strong> </p> <p> </p> <p> InserteInsert the elcode códigobelow siguientein enthe el<strong> procedure<strong> local-initialize</strong> procedure parafor elrepositioning reposicionamientoof delthe registroselected seleccionadorecord, después deafter lathe línealine “<strong>run pi-after-initialize.</strong>”: </p> <pre>IF r-ind-tabela <> ? THEN DO:</pre> <pre>      RUN pi-reposiciona-query IN h_q01fn069 (INPUT r-ind-tabela).</pre> <pre>      ASSIGN r-ind-tabela = ?.</pre> <pre>END.</pre> <p> </p> <p> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig6.png?version=1&modificationDate=1388407827000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig6.png?version=1&modificationDate=1388407827000&api=v2"> </p> <p style="text-align: center;"> <strong>Imagen<strong>Figure 8</strong> </p> <p>El<p>Foundation programaprogram, dedeveloped lain FundaciónSmartObject, queopen se convirtió en SmartObject,with the abre con el registro colocadorecord positioned:</p> <p style="text-align: center;"> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig7.png?version=1&modificationDate=1388407919000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig7.png?version=1&modificationDate=1388407919000&api=v2"><strong>Imagen><strong>Figure 9</strong> </p> <p> </p> <h4 id="WidgetdeConsultaRápida-DWB:">DWB:</h4> <p>Programa<p>Register de registroprogram (programabase básicoprogram):</p> <p> <strong>Paso<strong>Step 1:</strong> </p> <p> AsegúreseMake desure quethat lathe variable <strong>v_rec_nome_tabela</strong> seis declaradeclared enin elthe programaprogram, comoas muestrashown lain imagenthe defigure abajobelow. </p> <p>  <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig8.png?version=1&modificationDate=1388408107000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig8.png?version=1&modificationDate=1388408107000&api=v2"> </p> <p style="text-align: center;"> <strong> ImagenFigure 10</strong> </p> <p> </p> <p> <strong>Paso<strong>Step 2:</strong> </p> <p> Utilice el programa inicial de incluirUse the initial include of the program on DWB, porfor ejemploexample, para incluirthe include “ix_p00_@&(program))”, parato declarardeclare lathe inclusióninclude deof la Fundaciónthe yfoundation and asignarloattribute athe lafollowing variablevalue defor tipothe <strong>RECID</strong> el valor respectivo del programa type variable of the program: </p> <p>  <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig9.png?version=1&modificationDate=1388408216000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig9.png?version=1&modificationDate=1388408216000&api=v2"> </p> <p style="text-align: center;">  <strong>Imagen<strong>Figure 11</strong> </p> <p> </p> <p> ParaTo recuperarrecover lathe <strong>RECID</strong> deof lathe tabladesired deseadatable, you esmust necesario comparar larun a comparison of the <strong>ROWID</strong> deof esathe tablasame contable el valorwith almacenado en lathe value stored in the variable <strong>r-ind-tabela</strong>, como seas muestrashown enin elthe ejemploexample utilizadobelow, enwith lathe tabla <strong>plano_cta_ctbl</strong> abajotable: </p> <pre> </pre> <pre>{utp/indicador-tabela.i}</pre> <pre>IF r-ind-tabela <> ? THEN DO:</pre> <pre>    FIND FIRST plano_cta_ctbl NO-LOCK</pre> <pre>        WHERE ROWID(plano_cta_ctbl) = r-ind-tabela NO-ERROR.</pre> <pre>    IF AVAIL plano_cta_ctbl THEN DO:</pre> <pre>        ASSIGN v_rec_plano_cta_ctbl = RECID(plano_cta_ctbl).</pre> <pre>    END.</pre> <pre>    ASSIGN r-ind-tabela = ?.</pre> <pre>END.</pre> <p>  <strong><img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig10.png?version=1&modificationDate=1388408349000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig10.png?version=1&modificationDate=1388408349000&api=v2"></strong> </p> <p style="text-align: center;">  <strong>Imagen<strong>Figure 12</strong> </p> <p> </p> <p> <strong>Paso<strong>Step 3:</strong> </p> <p> ComoSince elthe bloquemain-block principalof delthe programacore baseprogram en elon DWB tienealready yafeatures lathe investigaciónsearch in sobrethe lamain tablatable principalof delthe programaprogram porby lathe <strong>RECID</strong> deof lathe variable<strong> v_rec_nome_tabela</strong>, elthe desarrolladordeveloper nowill necesita hacer la colocaciónnot have to perform the positioning. </p> <p> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig11.png?version=1&modificationDate=1388408442000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig11.png?version=1&modificationDate=1388408442000&api=v2">  </p> <p style="text-align: center;">  <strong>Imagen<strong>Figure 13</strong> </p> <p> </p> <p style="text-align: center;"> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig12.png?version=1&modificationDate=1388408508000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig12.png?version=1&modificationDate=1388408508000&api=v2"><strong>Imagen><strong>Figure 14</strong> </p> <p> </p> <p>Programa<p>EMS5 de EMS5program, quedeveloped se convirtióin en DWB, abrióopened with conthe el registro seleccionadoselected record:</p> <p style="text-align: center;"> <img class="confluence-embedded-image image-center" src="http://tdn.totvs.com/download/attachments/107940104/fig13.png?version=1&modificationDate=1388408590000&api=v2" data-image-src="http://tdn.totvs.com/download/attachments/107940104/fig13.png?version=1&modificationDate=1388408590000&api=v2"><strong>Imagen><strong>Figure 15</strong> </p> <p> </p> <h1 id="WidgetdeConsultaRápida-DicasdeDesenvolvimento:">Consejos>Development de desarrollotips:</h1> <p> <div class="office-container"> <a href="/plugins/servlet/confluence/editinword/107940104/attachments/TratativasConsultaRapida.docx" class="confluence-button office-editable" data-use-path-auth="false">Edit Document</a> <div class="office-document"> <div> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt; font-weight: bold; text-decoration: underline">Tratativa>Handling deinformation informaciónin en la consulta rápida.<Quick Query</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt">Inicialmente>Initially, laa consultaquick rápidaquery debeshould traerbring elthe menorleast númeroinformation deas informaciónpossible, posible,therefore porthe loinitial quefilter elshould filtrobe inicialas deberestrictive ser lo más restrictivo posibleas possible.</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt">Se>The considerará como Búsqueda inicial y Filtro inicial el primero defirst filter of the list will be considered as the initial Search laand initial ListaFilter, portherefore lothe quefirst lasearch primerashould debe la Búsqueda debe ser aquellaone that queyou elwill usuariouse másthe utilizarámost yand elthe primerofirst delfilter Filtroshould deberábe serthe elmost más restrictivorestrictive. </span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt; font-weight: bold"> </span> </p> <p style="margin: 0pt"> <img src="http://tdn.totvs.com/plugins/servlet/benryanconversion?pageId=107940104&attachment=TratativasConsultaRapida.docx&name=152700088&val=/image-1.png" width="641" height="213" alt="" /> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt">Por>For seguridadgreater security, en el momento en que se realiza la búsqueda de losthe moment the search is made, some controls datos,should sebe debenperformed realizarin algunosrelation controlesto enthe relaciónparameters conreceived. losIn parámetrosaddition, recibidos.in Además,order parato facilitarfacilitate el debugdebugging, selog debegeneration incluirparameters alshould comienzobe delincluded eventoat lathe generaciónbeginning deof log de los parámetrosthe event.</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt">En>In resumenshort, elthe iniciobeginning deof lathe PI “pi-obtemget-dados”data” debemust serbe comoas seseen muestra a continuaciónbelow::</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">PROCEDURE pi-obtem-dados:</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    DEFINE INPUT  PARAMETER usuariouser      AS AS CHARACTER NO-UNDO.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    DEFINE INPUT  PARAMETER empresacompany      AS CHARACTER NO-UNDO.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    DEFINE INPUT  PARAMETER csortcol     AS CHARACTER NO-UNDO.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    DEFINE INPUT  PARAMETER csortorder   AS CHARACTER NO-UNDO.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    DEFINE INPUT  PARAMETER csearchfield AS CHARACTER NO-UNDO.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    DEFINE INPUT  PARAMETER csearchvalue AS CHARACTER NO-UNDO.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    </span> <span style="font-family: 'Courier New'; font-size: 8pt">DEFINE INPUT  PARAMETER cselection   AS CHARACTER NO-UNDO.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    DEFINE OUTPUT PARAMETER cfields      AS LONGCHAR  NO-UNDO.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    DEFINE OUTPUT PARAMETER TABLE FOR ttData.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    IF LOG-MANAGER:LOGGING-LEVEL > 2 THEN DO:</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">        LOG-MANAGER:WRITE-MESSAGE("Requisição QuickSearch recebida.",      "FLUIGQS") NO-ERROR.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">        LOG-MANAGER:WRITE-MESSAGE("usuario     : " + STRING(usuariouser),      "FLUIGQS") NO-ERROR.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">        LOG-MANAGER:WRITE-MESSAGE("empresa     : " + STRING(empresacompany),      "FLUIGQS") NO-ERROR.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">        LOG-MANAGER:WRITE-MESSAGE("csortcolempresa     : " + STRING(csortcolcompany),      "FLUIGQS") NO-ERROR.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">        LOG-MANAGER:WRITE-MESSAGE("csortorder  : " + STRING(csortorder),   "FLUIGQS") NO-ERROR.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">        LOG-MANAGER:WRITE-MESSAGE("csearchfield: " + STRING(csearchfield), "FLUIGQS") NO-ERROR.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">        LOG-MANAGER:WRITE-MESSAGE("csearchvalue: " + STRING(csearchvalue), "FLUIGQS") NO-ERROR.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">        LOG-MANAGER:WRITE-MESSAGE("cselection  : " + STRING(cselection),   "FLUIGQS") NO-ERROR.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    END.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    run pi-get-padrao (input-output csearchfield, input <LISTA BUSCA>).</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    </span> <span style="font-family: 'Courier New'; font-size: 8pt">/* <LISTA DEBUSCA> BÚSQUEDA>= =List, Listaseparated separadaby porcomma, comaof deitems loscreated elementosin creadosthe en la PI "pi-obtem-campos-entidade-pai"</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">             EjemploExample = "cod_tit_ap,cod_espec_docto,cdn_fornecedor,nom_abrev" */</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    </span> <span style="font-family: 'Courier New'; font-size: 8pt">run pi-get-padrao (input-output cselection, input <LISTA FILTRO>).</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    </span> <span style="font-family: 'Courier New'; font-size: 8pt">/* <LISTA DE FILTRO> = List, Listaseparated separadaby porcomma, comeof deitems loscreated elementosin creados en lathe PI "pi-obtem-lista-selecao"</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">              EjemploExample = "VENCH,ABERT,ATRAS,ATRAS30,ATRAS15" */</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    </span> <span style="font-family: 'Courier New'; font-size: 8pt">if csearchvalue = ? or csearchvalue = "null" then</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">       </span> <span style="font-family: 'Courier New'; font-size: 8pt">assign csearchvalue = "".</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt; font-weight: bold"> </span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt; font-weight: bold">Al>At finalthe delend programaof sethe debe incluir laprogram, the PI “pi-get-padrao” de la must be added, as siguienteshown manerabelow:</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt; font-weight: bold"> </span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">PROCEDURE pi-get-padrao:</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    def input-output param p_cod_index as char no-undo.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    def input        param p_lst_ops   as char no-undo.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    if lookup(p_cod_index, p_lst_ops) > 0 then return.</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">    assign p_cod_index = entry(1, p_lst_ops).</span> </p> <p style="margin: 0pt"> <span style="font-family: 'Courier New'; font-size: 8pt">END PROCEDURE.</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt; font-weight: bold">Autocompletar>Auto-Complete </span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt"> </span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt">Incluso>Even if sithe elSearch campofield de Búsquedahas no tuviese “auto-complete”, este métodothis method will always siemprebe seexecuted ejecutaráwhen cuandothe eluser usuariotypes ingresesomething algoin enthe el campo desearch field. búsqueda. Por lo tantoTherefore, esthe obligatoriaimplementation laof implementación delthe “pi-obtem-auto-complete” método “pi-obtem-auto-complete”method is mandatory.</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt">Para>For losthe camposfields that quedo nonot tenganhave "auto“auto-complete"complete”, elthe métodomethod debemust devolverreturn unaan listaempty vacíalist.</span> </p> <p style="margin: 0pt"> <span style="font-family: Calibri; font-size: 11pt"> </span> </p> </div> </div> </div> </p> <p class="MsoNormal" style="line-height: normal;"> </p> </div> |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas