Histórico da Página
HTML |
---|
<div id="main-content" class="wiki-content group"> <h1 id="id-2.1Formulário-ComocriarumformuláriodiretamentenoECM">Cómo>How crearto create una formularioform directamentedirectly enin ECM<ECM.</h1> <ol> <li>Crear<li>Create an unHTML archivofile HTMLwith conthe losfields camposwith conthe elsame mismoname nombreused utilizado enin Microsiga Protheus<Protheus.</li> <li>Agregar el archivo HTML como un Nuevo Fichero en los<li>Add the HTML file as a New Card Index in the Documents of ECM Documentosand check dethe ECMCode ythat verificarwas elgenerated. CódigoThis quecode sewill generó.be Esteused códigoin sethe utilizarácreation enof lathe creación del Processo en el futuro<future Process.</li> </ol> <p> </p> <p> <em>*Para más información sobre personalizaciones del formulario For more information about form customizations in ECM, see enthe ECM, consultedocumentation. laThe documentaciónObjective deof ECM.this Eldocumentation objetivois de estato documentaciónprovide the escare citarwe losmust cuidadostake queto sebuild debena tenerform parafor crearintegration unwith formulario para la integración con Microsiga Protheus.</em> </p> <h2 id="id-2.1Formulário-Exemplodeformulário">Ejemplo de formulario<>Sample form.</h2> <blockquote> <p align="left"><HTML></p> <p align="left"><HEAD></p> <p align="left">  <TITLE>EjemploTITLE> Example - Customer Cliente</TITLE></p> <p align="left">  <LINK REL=STYLESHEET HREF="/webdesk203/wdk/global.css"></p> <p align="left"></HEAD></p> <p align="left"><BODY scroll=yes></p> <p align="left"><span class="NumSecao"></p> <p align="left"><strong> RegistroRegistration</strong></span></p> <p align="left"><HR></p> <p align="left"><br></p> <p align="left"><form></p> <p align="left"><table></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Códigob>Code:</b></td></p> <p align="left">    <td class="Normal"><strong><input type="text" size="6" name="A1_COD"></strong></td></p> <p align="left">  </tr></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Tiendab>Loja:</b></td></p> <p align="left">    <td class="Normal"><strong><input type="text" size="2" name="A1_TIENDALOJA"></strong></td></p> <p align="left">  </tr></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Física/Jurídica:</b></td></p> <p align="left">    <td class="Normal"><strong></p> <p align="left">        <select name="A1_PERSONAPESSOA"></p> <p align="left">            <option value="F">Física</option></p> <p align="left">            <option value="J">Jurídica</option></p> <p align="left">        </select></p> <p align="left">       </strong></td></p> <p align="left">  </tr></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Nombreb>Name:</b></td></p> <p align="left">    <td class="Normal"><strong><input type="text" size="40" name="A1_NOMBRENOME"></strong></td></p> <p align="left">  </tr></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Nombreb>Trade FantasíaName:</b></td></p> <p align="left">    <td class="Normal"><strong><input type="text" size="20" name="A1_NREDUCNREDUZ"></strong></td></p> <p align="left">  </tr></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Direcciónb>Address:</b></td></p> <p align="left">    <td class="Normal"><strong><input type="text" size="40" name="A1_DIREND"></strong></td></p> <p align="left">  </tr></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Tipob>Type:</b></td></p> <p align="left">    <td class="Normal"><strong></p> <p align="left">        <select name="A1_TIPO"></p> <p align="left">            < option value = "F">Cons. Final > Cons. End </option></p> <p align="left">            <option value="L">Productor>Rural RuralProducer</option></p> <p align="left">            <option value="R">Revendedor>Reseller</option></p> <p align="left">            <option value="S">Solidario>Solidary</option></p> <p align="left">            <option value="X">Exportación>Export</option></p> <p align="left">        </select></p> <p align="left">    </strong></td></p> <p align="left">  </tr></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Municipiob>City:</b></td></p> <p align="left">    <td class="Normal"><strong><input type="text" size="60" name="A1_MUN"></strong></td></p> <p align="left">  </tr></p> <p align="left">  <tr></p> <p align="left">    <td align="right" width="150" class="Labels"><b>Estadob>State:</b></td></p> <p align="left">    <td class="Normal"><strong><input type="text" size="2" name="A1_EST"></strong></td></p> <p align="left">  </tr></p> <p align="left"> </table></p> <p align="left"></form></p> <p align="left"></BODY></p> <p align="left"></HTML></p> </blockquote> <h1 id="id-2.1Formulário-Construindoformuláriospararotinasautomáticas">Creación>Building deforms formularios parafor rutinasautomatic automáticas<routines.</h1> <ol> <li>Configurar<li>Configure lathe integraciónintegration parafor GED entrebetween Protheus yand ECM en elin Configuradorthe enConfigurator, lain opciónthe <em>Entorno<em>Environment > Totvs ECM > Wizard deGED GED<Wizard</em> option. </li> <li>Utilizar<li>Use la funciónthe <strong>FWECMPutCard</strong> function to parasend enviarthe elform formularioto athe ECM, comoaccording muestrato elthe siguienteexample ejemplobelow (elthe card ficheroindex sewill crearábe encreated lain carpetathe <em>ERP_MP \ <empresas> \ MP_CARDS</em> enfolder in ECM): </li> </ol> <h2 id="id-2.1Formulário-Exemplodecódigo-fonte">Ejemplo>Example of desource código-fuente<code.</h2> <blockquote> <p align="left" style="margin-left: 30.0px;">#include "totvs.ch".</p> <p align="left" style="margin-left: 30.0px;">User Function FormCliente().</p> <p align="left" style="margin-left: 30.0px;">Local cProcessId := "CLIENTE" // si se informa actualice el formulario relacionado con elif provided, it updates the form related to the process, procesootherwise, sinocreates creea unonew nuevo<one.</p> <p align="left" style="margin-left: 30.0px;">Local cDescription := "FormularioCustomer del registro de cliente"file form".</p> <p align="left" style="margin-left: 30.0px;">Local cCardDescription := "".</p> <p align="left" style="margin-left: 30.0px;">Local aHTML := Array(1,2) // archivos del formulario<form files.</p> <p align="left" style="margin-left: 30.0px;">Local aEvents := Array(1,2) // events that eventoswill quenot sebe personalizaráncustomized parafor elthe formulario<form.</p> <p align="left" style="margin-left: 30.0px;">Local nFormId</p> <p align="left" style="margin-left: 30.0px;">Local aError</p> <p align="left"> </p> <p align="left" style="margin-left: 30.0px;">aHTML[1][1] := "cliente.html" // nombrefile del archivo<name</p> <p align="left" style="margin-left: 30.0px;">aHTML[1][2] := '<HTML>'+; // contenidofile del archivo<content</p> <p align="left" style="margin-left: 30.0px;">'<HEAD>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <TITLE>EjemploTITLE>Example - ClienteCustomer</TITLE>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <LINK REL=STYLESHEET HREF="/webdesk203/wdk/global.css">'+;</p> <p align="left" style="margin-left: 30.0px;">'</HEAD>'+;</p> <p align="left" style="margin-left: 30.0px;">'<BODY scroll=yes>'+;</p> <p align="left" style="margin-left: 30.0px;">'<span class="NumSecao">'+;</p> <p align="left" style="margin-left: 30.0px;">'<strong> RegistroRegistration</strong></span>'+;</p> <p align="left" style="margin-left: 30.0px;">'<HR>'+;</p> <p align="left" style="margin-left: 30.0px;">'<br>'+;</p> <p align="left" style="margin-left: 30.0px;">'<form>'+;</p> <p align="left" style="margin-left: 30.0px;">'<table>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Códigob>Code:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong><input type="text" size="6" name="A1_COD"></strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Tiendab>Store:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong><input type="text" size="2" name="A1_TIENDALOJA"></strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Físicab>Individual/JurídicaLegal Entity:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong>'+;</p> <p align="left" style="margin-left: 30.0px;">'        <select name="A1_PERSONAPESSOA">'+;</p> <p align="left" style="margin-left: 30.0px;">'            <option value="FI">Física>Individual</option>'+;</p> <p align="left" style="margin-left: 30.0px;">'            <option value="JE">Jurídica>Legal Entity</option>'+;</p> <p align="left" style="margin-left: 30.0px;">'        </select>'+;</p> <p align="left" style="margin-left: 30.0px;">'    </strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Nombreb>Name:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong><input type="text" size="40" name="A1_NOMBRENOME"></strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Nombreb>Trade FantasíaName:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong><input type="text" size="20" name="A1_NREDUCNREDUZ"></strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Direcciónb>Address:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong><input type="text" size="40" name="A1_DIREND"></strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Tipob>Type:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong>'+;</p> <p align="left" style="margin-left: 30.0px;">'        <select name="A1_TIPO">'+;</p> <p align="left" style="margin-left: 30.0px;">'            <option value="F">Cons. Final</option>'+;</p> <p align="left" style="margin-left: 30.0px;">'            <option value="L">Productor>Rural RuralProducer</option>'+;</p> <p align="left" style="margin-left: 30.0px;">'            <option value="R">Revendedor>Reseller</option>'+;</p> <p align="left" style="margin-left: 30.0px;">'            <option value="S">Solidario>Solidary</option>'+;</p> <p align="left" style="margin-left: 30.0px;">'            <option value="X">Exportación>Export</option>'+;</p> <p align="left" style="margin-left: 30.0px;">'            </select>'+;</p> <p align="left" style="margin-left: 30.0px;">'       </strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Municipiob>City:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong><input type="text" size="60" name="A1_MUN"></strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">'  <tr> '+;</p> <p align="left" style="margin-left: 30.0px;">'    <td align="right" width="150" class="Labels"><b>Estadob>State:</b></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'    <td class="Normal"><strong><input type="text" size="2" name="A1_EST"></strong></td>'+;</p> <p align="left" style="margin-left: 30.0px;">'  </tr>'+;</p> <p align="left" style="margin-left: 30.0px;">' </table>'+;</p> <p align="left" style="margin-left: 30.0px;">'</form>'+;</p> <p align="left" style="margin-left: 30.0px;">'</BODY>'+;</p> <p align="left" style="margin-left: 30.0px;">'</HTML>'</p> <p align="left"> </p> <p align="left" style="margin-left: 30.0px;">aEvents[1][1] := "setEnable" // name nombreof delthe evento<event</p> <p align="left" style="margin-left: 30.0px;">aEvents[1][2] := 'function setEnable() {'+; // scriptJavaScript enlanguage lenguaje JavaScript<script</p> <p align="left" style="margin-left: 30.0px;">'log.info("Prueba deFunction llamadacall de funcióntest");'+;</p> <p align="left" style="margin-left: 30.0px;">'}'</p> <p align="left"> </p> <p align="left" style="margin-left: 30.0px;"> nFormId := <strong>FWECMPutCard(cProcessId,cDescription,cCardDescription,aHTML,aEvents)</strong> // devuelvereturns elthe códigoECM delcard ficheroindex en ECMcode </p> <p align="left" style="margin-left: 30.0px;">If FWWFIsError()</p> <p align="left" style="margin-left: 30.0px;">   aError := FWWFGetError()</p> <p align="left" style="margin-left: 30.0px;">   MsgStop(aError[2])</p> <p align="left" style="margin-left: 30.0px;">Else</p> <p align="left" style="margin-left: 30.0px;">   MsgInfo("FicheroCard actualizadoindex conupdated éxitosuccessfully")</p> <p align="left" style="margin-left: 30.0px;">EndIf</p> <p align="left" style="margin-left: 30.0px;">Return</p> </blockquote> <h1 id="id-2.1Formulário-ConstruindoformuláriospararotinasMVC">Creando>Building formulariosforms parafor rutinasMVC MVC<routines.</h1> <ol> <li>Configurar<li>Configure lathe integraciónintegration parafor GED entrebetween Protheus yand ECM en elin Configuradorthe Configurator, enin lathe opción EntornoEnvironment > Totvs ECM > GED Wizard de GED<option.</li> <li>Utilizar<li>Use el métodothe <strong>GetXMLLayout</strong> method of dethe View parato generargenerate elthe HTML .<br /> <ol> <li>Sólo<li>Only losthe componentes Fields yand Grid components sewill convertiránbe a HTML<converted into HTML.</li> <li>Sólo<li>Only losthe formulariosforms delof tipothe CRUD yand Master/Detail type puedencan be exportarseexported ato ECM, yasince queyou nocannot essimulate posibleall simularthe todosevents losfrom eventos dethe losother demástypes tipos de formularios de of Microsiga Protheus forms.</li> <li>Este<li>This method métodois esjust sóloa unademonstration demostraciónof dehow cómothe esmechanism elis mecanismoin en Microsiga Protheus. MVC forms Loshave formulariosan MVCautomatic tienenway unaof formagenerating automáticaa deprocess generarwith unform proceso con formulario en ECM en lasin ECM, in the routine 'Related 'Acciones Relacionadas' de la rutinaActions'.</li> </ol></li> </ol> <blockquote> <p align="left">#include "totvs.ch".</p> <p align="left">User Function FormView()</p> <p align="left">Local oView := FWLoadView("MATA030_MVC")</p> <p align="left">Local cProcessId := "CLIENTE" // siif seprovided, informait actualiceupdates the elform formulariorelated relacionadoto conthe elprocess, procesootherwise, sinocreates creea unonew nuevo<one.</p> <p align="left">Local cDescription := "FormularioCustomer del registro de cliente"file form".</p> <p align="left">Local cCardDescription := "".</p> <p align="left">Local aEvents := Array(1,2) // eventosevents quethat sewill personalizarán para el formulario<not be customized for the form.</p> <p align="left">Local nFormId</p> <p align="left">Local aError</p> <p align="left">Local aFiles</p> <p align="left">Local lHtm := .T.</p> <p align="left">Local lEmbedded := .F.</p> <p align="left">Local lDocType := .T.</p> <p align="left"> </p> <p align="left"> <a href="http://oViewsetOperation(3)" class="external-link" rel="nofollow">oView:setOperation(3)</a> </p> <p align="left"> </p> <p align="left"> aFiles := oView:<strong>GetXMLLayOut(lHtm,lEmbedded,lDocType)</strong> </p> <p align="left"> </p> <p align="left">aEvents[1][1] := "setEnable" // name nombreof delthe evento<event</p> <p align="left">aEvents[1][2] := 'function setEnable() {'+; // script enJavaScript lenguajelanguage JavaScript<script</p> <p align="left">'log.info("PruebaFunction de llamada de funcióncall test");'+;</p> <p align="left">'}'</p> <p align="left"> </p> <p align="left">nFormId := FWECMPutCard(cProcessId,cDescription,cCardDescription,aFiles,aEvents) // devuelvereturns elthe códigocard delindex ficherocode enin ECM</p> <p align="left">If FWWFIsError()</p> <p align="left">   aError := FWWFGetError()</p> <p align="left">   MsgStop(aError[2])</p> <p align="left">Else</p> <p align="left">   MsgInfo("FicheroCard actualizadoindex conupdated éxitosuccessfully")</p> <p align="left">EndIf</p> <p align="left">Return</p> </blockquote> <h2 id="id-2.1Formulário-UsandoMVCnosformuláriosModelo1">Usando>Using MVC MVCModel en los formularios Modelo 1<1 forms</h2> <p>Para<p>For rutinasautomatic automáticasroutines delof tipothe ModeloModel 1 (CRUD) type that queuse utilizanonly sóloData camposDictionary delfields, Diccionario de Datos se puede utilizar MVC para simplificar el proceso de personalización del formulario, de la siguiente manerayou can use MVC to simplify the form customization process, as follows:</p> <blockquote> <p align="left">#include "totvs.ch".</p> <p align="left">User Function FormTable()</p> <p align="left">Local cTable := "SA1"</p> <p align="left">Local cProcessId := "MATA030"</p> <p align="left">Local cDescription := "ClienteCustomer (rutinaautomatic automáticaroutine)"</p> <p align="left">Local oView</p> <p align="left">Local aEvents := Array(1,2) // eventosevents quethat sewill personalizarán para el formulario<not be customized for the form.</p> <p align="left">Local nFormId</p> <p align="left">Local aError</p> <p align="left">Local aFiles</p> <p align="left">Local lHtm := .T.</p> <p align="left">Local lEmbedded := .F.</p> <p align="left">Local lDocType := .T.</p> <p align="left"> </p> <p align="left"> <strong>FwAliasMVC(cTable,cProcessId,cDescription)</strong> </p> <p align="left"> </p> <p align="left">oView := FwLoadView("PROTHEUSMVC")</p> <p align="left"> <a href="http://oViewsetOperation(3)" class="external-link" rel="nofollow">oView:setOperation(3)</a> </p> <p align="left"> </p> <p align="left"> aFiles := <strong>oView:GetXMLLayOut(lHtm,lEmbedded,lDocType)</strong> </p> <p align="left">aEvents[1][1] := "setEnable" // name nombreof delthe evento<event</p> <p align="left">aEvents[1][2] := 'function setEnable() {'+; // scriptJavaScript enlanguage lenguaje JavaScript<script</p> <p align="left">'log.info("PruebaFunction de llamada de funcióncall test");'+;</p> <p align="left">'}'</p> <p align="left"> </p> <p align="left">nFormId := FWECMPutCard(cProcessId,cDescription,cCardDescription,aFiles,aEvents) // devuelvereturns elthe códigocard delindex ficherocode enin ECM</p> <p align="left">If FWWFIsError()</p> <p align="left">   aError := FWWFGetError()</p> <p align="left">   MsgStop(aError[2])</p> <p align="left">Else</p> <p align="left">   MsgInfo("FicheroCard actualizadoindex conupdated éxitosuccessfully")</p> <p align="left">EndIf</p> <p align="left">Return</p> </blockquote> <p align="left"> </p> <p align="left"> </p> <p> </p> <p> <br /> <br /> </p> <p> </p> </div> |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas