<!DOCTYPE html>
<html lang="es" dir="ltr">
<head>
<base href="../../../../../">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Servicio SFDocuments.Form</title>
<link rel="shortcut icon" href="media/navigation/favicon.ico">
<link type="text/css" href="normalize.css" rel="Stylesheet">
<link type="text/css" href="prism.css" rel="Stylesheet">
<link type="text/css" href="default.css" rel="Stylesheet">
<script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="languages.js"></script><script type="text/javascript" src="es/langnames.js"></script><script type="text/javascript" src="flexsearch.debug.js"></script><script type="text/javascript" src="prism.js"></script><script type="text/javascript" src="help2.js" defer></script><script type="text/javascript" src="a11y-toggle.js" defer></script><script type="text/javascript" src="paginathing.js" defer></script><script type="text/javascript" src="es/bookmarks.js" defer></script><script type="text/javascript" src="es/contents.js" defer></script><script type="text/javascript" src="help.js" defer></script><meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<body>
<header id="TopLeftHeader"><a class="symbol" href="es/text/shared/05/new_help.html"><div></div></a><a class="logo" href="es/text/shared/05/new_help.html"><p dir="auto">Ayuda de LibreOffice 25.2</p></a><div class="dropdowns"><div class="modules">
<button type="button" data-a11y-toggle="modules-nav" id="modules" aria-haspopup="true" aria-expanded="false" aria-controls="modules-nav">Módulo</button><nav id="modules-nav" hidden=""></nav>
</div></div></header><aside class="leftside"><input id="accordion-1" name="accordion-menu" type="checkbox"><label for="accordion-1" dir="auto">Contenido</label><div id="Contents" class="contents-treeview"></div></aside><div id="SearchFrame"><div id="Bookmarks">
<input id="search-bar" type="search" class="search" placeholder="Buscar en los marcadores del módulo elegido" dir="auto"><div class="nav-container" tabindex="0"><nav class="index" dir="auto"></nav></div>
</div></div>
<div id="DisplayArea" itemprop="softwareHelp" itemscope="true" itemtype="http://schema.org/SoftwareApplication">
<noscript><div id="WarnJS"><h1 dir="auto">Active JavaScript en el navegador para mostrar las páginas de ayuda de LibreOffice.</h1></div></noscript>
<a id="ScriptForge-sf_form"></a>
<a id="bm_id41582391760252"></a>
<meta itemprop="keywords" content="Form service">
<a id="abstract"></a>
<h1 id="bm_id781582391760253" dir="auto">
<a id="FormService"></a><span class="literal">SFDocuments</span>.<span class="literal">Form</span> service</h1>
<p id="par_id931583589764919" class="paragraph" dir="auto">The <span class="literal">Form</span> service provides methods and properties to manage forms in LibreOffice documents. This service supports forms in Base, Calc and Writer documents and allows to:</p>
<ul itemprop="Unordered" itemscope="true" itemtype="http://schema.org/ItemList" dir="auto">
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id381618172063851" class="listitem" dir="auto">Open and activate forms.</p>
</li>
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id261618172129782" class="listitem" dir="auto">Navigate through records shown by the form.</p>
</li>
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id281618172141607" class="listitem" dir="auto">Get access to the controls inside the form.</p>
</li>
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id371618172155483" class="listitem" dir="auto">Get access to subforms of a parent form.</p>
</li>
</ul>
<div class="tip">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/tip.svg" alt="tip" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id351616768789190" dir="auto">The <span class="literal">SFDocuments</span>.<span class="literal">Form</span> service is available from LibreOffice 7.2 onwards.</p></div>
</div>
<br>
<p id="par_id451616765867881" class="paragraph" dir="auto">Forms are usually used in LibreOffice documents to create user interfaces connected to relational databases. Hence, the <span class="literal">Form</span> service provides quick access to the linked database through the <a target="_top" href="es/text/sbasic/shared/03/sf_database.html"><span class="literal">SFDatabases</span>.<span class="literal">Database</span> service</a>.</p>
<div class="tip">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/tip.svg" alt="tip" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id891598188164936" dir="auto">The <span class="literal">SFDocuments</span>.<span class="literal">Form</span> service is closely related to the <a target="_top" href="es/text/sbasic/shared/03/sf_formcontrol.html"><span class="literal">SFDocuments</span>.<span class="literal">FormControl</span> service.</a></p></div>
</div>
<br>
<h2 id="hd_id161616766330804" dir="auto">Definiciones</h2>
<h3 id="hd_id751616766382317" dir="auto">FormDocument</h3>
<p id="par_id951618172906010" class="paragraph" dir="auto">Los formularios se suelen crear dentro de documentos de Base, pero es posible añadirlos también a documentos de Writer y de Calc.</p>
<p id="par_id671618173380680" class="paragraph" dir="auto">In Base, each form you create using the <span class="menuitem">Insert - Form</span> functionality or through the <a target="_top" href="es/text/shared/autopi/01090000.html">Form Wizard</a> is actually a <span class="literal">FormDocument</span> that can be handled with the <span class="literal">Form</span> service. Base documents can contain an unlimited number of form documents.</p>
<p id="par_id841618177362626" class="paragraph" dir="auto">Below is an example showing the hierarchy of all the elements involved in accessing forms and subforms in a Base document. Suppose you have a Base file named <span class="literal">Employees.odb</span> and inside it you created a form document to add new employees to the database. The form document contains a main form named <span class="literal">EmployeeData</span> that gives access to a table. There is also a subform <span class="literal">WorksAtPlant</span> that allows you to associate the new employee to one of the plants of the company.</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Employees.odb (Base document)
|
|-- AddEmployee (FormDocument)
|
|-- EmployeeData (Main Form)
|
|-- WorksAtPlant (SubForm)
</code></pre></div>
<div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id221618173444457" dir="auto">A <span class="literal">FormDocument</span> can be seen as a set of forms that provide access to datasets such as database tables and queries from within LibreOffice documents. The names of forms and subforms inside a FormDocument can be accessed using the <a target="_top" href="es/text/shared/02/01170600.html">Form Navigator</a>.</p></div>
</div>
<br>
<h3 id="hd_id851616767037521" dir="auto">Formularios y subformularios</h3>
<p id="par_id681616767265034" class="paragraph" dir="auto">A form document is composed of one or more forms which, in turn, may also contain any number of subforms. A Form is an abstract set of controls that are linked to a specified data source, which can be a database table, a query or a SQL <span class="literal">SELECT</span> statement.</p>
<p id="par_id711618178831976" class="paragraph" dir="auto">In Calc and Writer documents, each form can be linked to datasets located in different databases. On the other hand, in Base documents the database contained in the document is common to all forms.</p>
<div class="tip">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/tip.svg" alt="tip" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id191616837111507" dir="auto">To invoke the <span class="literal">SFDocuments</span>.<span class="literal">Form</span> service refer to the methods <span class="literal">Forms()</span>, <span class="literal">FormDocuments()</span> and <span class="literal">OpenFormDocument()</span> of the <a target="_top" href="es/text/sbasic/shared/03/sf_document.html"><span class="literal">SFDocuments</span>.<span class="literal">Document</span></a> service</p></div>
</div>
<br>
<a id="serviceInvocation"></a>
<h2 id="hd_id581582885621841" dir="auto">Invocación del servicio</h2>
<p id="par_id141609955500101" class="paragraph" dir="auto">Antes de utilizar el servicio <span class="literal">Form</span>, es necesario cargar o importar la biblioteca <span class="literal">ScriptForge</span>:</p>
<div class="embedded">
<a id="importLibs"></a>
<div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id901528999850603" dir="auto">• Para cargar la biblioteca <span class="literal">ScriptForge</span> que necesitan las macros de Basic se debe usar la siguiente declaración:<br><span class="literal">GlobalScope.BasicLibraries.loadLibrary("ScriptForge")</span><br><br>• Los scripts de Python necesitan importar el módulo <span class="literal">scriptforge</span>:<br><span class="literal">from scriptforge import CreateScriptService</span></p></div>
</div>
<br>
</div>
<h3 id="hd_id991618179698545" dir="auto">En documentos de Writer</h3>
<p id="par_id51616767892693" class="paragraph" dir="auto">The code snippet below shows how to access the form named <span class="literal">Form1</span> that is inside a Writer file:</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Dim oDoc As Object, myForm As Object, ui as Object
Set ui = CreateScriptService("UI")
Set oDoc = ui.OpenDocument("/home/user/Documents/MyForm.odt")
Set myForm = oDoc.Forms("Form1")
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
from scriptforge import CreateScriptService
ui = CreateScriptService('UI')
doc = ui.OpenDocument('/home/user/Documents/MyForm.odt')
my_form = doc.Forms('Form1')
</code></pre></div>
<p id="par_id531618179517628" class="paragraph" dir="auto">Forms can be accessed by their names or by their indices, as shown below:</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Set myForm = oDoc.Forms(0)
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
my_form = doc.Forms(0)
</code></pre></div>
<div class="warning">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/warning.svg" alt="warning" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id181618250546617" dir="auto">If you try to access a <span class="literal">FormDocument</span> that is currently opened in <span class="emph">Design Mode</span> an exception will be raised.</p></div>
</div>
<br>
<h3 id="hd_id921618179792926" dir="auto">En documentos de Calc</h3>
<p id="par_id481618179851104" class="paragraph" dir="auto">A form in a Calc file must have a unique name inside its sheet. Hence, the <span class="literal">Forms</span> method requires two arguments, the first indicating the sheet name and the second specifying the form name.</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Dim oDoc As Object, myForm As Object, ui as Object
Set ui = CreateScriptService("UI")
Set oDoc = ui.OpenDocument("/home/user/Documents/MyForms.ods")
Set myForm = oDoc.Forms("Sheet1", "Form1")
</code></pre></div>
<p id="par_id51622028165429" class="paragraph" dir="auto">Esto se logra de idéntica manera utilizando Python:</p>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
ui = CreateScriptService('UI')
doc = ui.OpenDocument('/home/user/Documents/MyForms.ods')
my_form = doc.Forms('Sheet1', 'Form1')
</code></pre></div>
<h3 id="hd_id201618180055756" dir="auto">En documentos de Base</h3>
<p id="par_id711616768164987" class="paragraph" dir="auto">A <span class="literal">FormDocument</span> inside a Base document is accessed by its name. The following example opens the form document named <span class="literal">thisFormDocument</span> and accesses the form <span class="literal">MainForm</span>:</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Dim oDb As Object, myForm As Object
Set oDb = CreateScriptService("SFDocuments.Document", ThisDatabaseDocument)
' The statement below is necessary only if the form hasn't been opened yet
oDb.OpenFormDocument("thisFormDocument")
Set myForm = oDoc.Forms("thisFormDocument", "MainForm")
' Or, alternatively, to access the form by its index ...
Set myForm = oDb.Forms("thisFormDocument", 0)
</code></pre></div>
<div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id991618249636036" dir="auto">To perform any action on a form using the <span class="literal">Form</span> service, the <span class="literal">FormDocument</span> must have been opened either manually by the user or programmatically in a user script. The latter can be done by calling the <span class="literal">OpenFormDocument</span> method of the <a target="_top" href="es/text/sbasic/shared/03/sf_base.html"><span class="literal">Base</span> service</a>.</p></div>
</div>
<br>
<p id="par_id11618180564274" class="paragraph" dir="auto">To access a given subform of a form use the <span class="literal">SubForms</span> method. Note that in the example below <span class="literal">mySubForm</span> is a new instance of the <span class="literal">Form</span> service.</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Dim mySubForm As Object
Set mySubForm = myForm.SubForms("mySubForm")
</code></pre></div>
<p id="par_id681622028653480" class="paragraph" dir="auto">Los ejemplos anteriores se traducen en Python como:</p>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
db = CreateScriptService('SFDocuments.Document', XSCRIPTCONTEXT.getDocument())
# The statement below is necessary only if the form hasn't been opened yet
form_doc = db.OpenFormDocument('thisFormDocument')
form = form_doc.Forms('thisFormDocument', 'MainForm')
# O, alternativamente, para acceder al formulario por su índice ...
form = form_doc.Forms('thisFormDocument', 0)
sub_form = form.SubForms('mySubForm')
</code></pre></div>
<h3 id="hd_id211618180379064" dir="auto">En eventos de formulario</h3>
<p id="par_id421616768529754" class="paragraph" dir="auto">Para invocar el servicio <span class="literal">Form</span> cuando acaece un evento de formulario:</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Sub OnEvent(ByRef poEvent As Object)
Dim myForm As Object
Set myForm = CreateScriptService("SFDocuments.FormEvent", poEvent)
'(...)
End sub
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
def OnEvent(event: uno):
form = CreateScriptService('SFDocuments.FormEvent', event)
pass
</code></pre></div>
<div class="embedded">
<a id="FormEvent_Note"></a>
<div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id951618773412097" dir="auto">The <span class="literal">FormEvent</span> service is used exclusively to create instances of the <span class="literal">SFDocuments.Form</span> and <span class="literal">SFDocuments.FormControl</span> services when a form or control event takes place.</p></div>
</div>
<br>
</div>
<p id="par_id721623150543016" class="paragraph" dir="auto">Es recomendable liberar recursos después de utilizar el servicio Form.</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
myForm.Dispose() ' Basic
</code></pre></div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form.Dispose() # Python
</code></pre></div>
<p id="par_id221623150547406" class="paragraph" dir="auto">This operation is done implicitly when a form document is closed with the <span class="literal">CloseFormDocument()</span> method described below.</p>
<h2 id="hd_id651583668365757" dir="auto">Propiedades</h2>
<a id="properties_toc"></a>
<table border="1" class="" cellpadding="0" cellspacing="0">
<tr>
<th rowspan="" colspan="" class="tableheadcell" dir="auto">
<p id="par_id871583668386455" class="tableheadintable" dir="auto">Nombre</p>
</th>
<th rowspan="" colspan="" class="tableheadcell" dir="auto">
<p id="par_id491583668386455" class="tableheadintable" dir="auto">De solo lectura</p>
</th>
<th rowspan="" colspan="" class="tableheadcell" dir="auto">
<p id="par_id271583668474014" class="tableheadintable" dir="auto">Tipo</p>
</th>
<th rowspan="" colspan="" class="tableheadcell" dir="auto">
<p id="par_id401583668386455" class="tableheadintable" dir="auto">Descripción</p>
</th>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id151583668386455" class="tablecontentintable" dir="auto">AllowDeletes</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id371583668519172" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id271583668386455" class="tablecontentintable" dir="auto">Boolean</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id771583668386455" class="tablecontentintable" dir="auto">Especifica si el formulario permite eliminar registros.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id951583839708571" class="tablecontentintable" dir="auto">AllowInserts</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id541583839708548" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id751583839708362" class="tablecontentintable" dir="auto">Boolean</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id731583839708412" class="tablecontentintable" dir="auto">Especifica si el formulario permite añadir registros.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id511584027709311" class="tablecontentintable" dir="auto">AllowUpdates</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id761584027709516" class="tablecontent intable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id491584027709825" class="tablecontentintable" dir="auto">Boolean</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id971584027709752" class="tablecontentintable" dir="auto">Especifica si el formulario permite actualizar registros.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id491583839767611" class="tablecontentintable" dir="auto">BaseForm</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id31583839767743" class="tablecontent intable" dir="auto">Sí</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id741583839767926" class="tablecontentintable" dir="auto">String</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id111583839767195" class="tablecontentintable" dir="auto">Specifies the hierarchical name of the Base Form containing the actual form.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id83158383992056" class="tablecontentintable" dir="auto">Bookmark</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id771583839920487" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id971583839920282" class="tablecontentintable" dir="auto">Variant</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id451583839920858" class="tablecontentintable" dir="auto">Specifies uniquely the current record of the form's underlying table, query or SQL statement.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id751588333908795" class="tablecontentintable" dir="auto">CurrentRecord</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id571588333908716" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id781588333908500" class="tablecontentintable" dir="auto">Long</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id721588333908708" class="tablecontentintable" dir="auto">Identifies the current record in the dataset being viewed on a form. If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. Row count starts at 1. If the given row number is negative, the cursor moves to an absolute row position with respect to the end of the result set. Row -1 refers to the last row in the result set.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id251583774433989" class="tablecontentintable" dir="auto">Filter</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id501583774433513" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id411583774433779" class="tablecontentintable" dir="auto">String</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id151598177605296" class="paragraphintable" dir="auto">Specifies a subset of records to be displayed as a <span class="literal">SQL</span> <span class="literal">WHERE</span>-clause without the <span class="literal">WHERE</span> keyword.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id731588334016220" class="tablecontentintable" dir="auto">LinkChildFields</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id271588334016191" class="tablecontentintable" dir="auto">Sí</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id991588334016273" class="tablecontentintable" dir="auto">String</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id251588334016874" class="tablecontentintable" dir="auto">Specifies how records in a child subform are linked to records in its parent form.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id881616774153888" class="tablecontentintable" dir="auto">LinkParentFields</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id901616774153495" class="tablecontentintable" dir="auto">Sí</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id981616774153884" class="tablecontentintable" dir="auto">String</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id981616774153723" class="tablecontentintable" dir="auto">Specifies how records in a child subform are linked to records in its parent form.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id561616774304843" class="tablecontentintable" dir="auto">Name</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id501616774304840" class="tablecontentintable" dir="auto">Sí</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id71616774304482" class="tablecontentintable" dir="auto">String</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id461616774304497" class="tablecontentintable" dir="auto">El nombre del formulario actual.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id331616774384380" class="tablecontentintable" dir="auto">OrderBy</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id751616774384451" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id641616774384366" class="tablecontentintable" dir="auto">String</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id321616774384489" class="tablecontentintable" dir="auto">Specifies in which order the records should be displayed as a <span class="literal">SQL</span> <span class="literal">ORDER BY</span> clause without the <span class="literal">ORDER BY</span> keywords.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id281616774918384" class="tablecontentintable" dir="auto">Parent</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id261616774918923" class="tablecontentintable" dir="auto">Sí</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id861616774918694" class="tablecontentintable" dir="auto">Object</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id171616774918881" class="tablecontentintable" dir="auto">The parent of the current form. It can be either a <span class="literal">SFDocuments</span>.<span class="literal">Form</span> or a <span class="literal">SFDocuments</span>.<span class="literal">Document</span> object.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id581616777650809" class="tablecontentintable" dir="auto">RecordSource</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id501616777650751" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id991616777650362" class="tablecontentintable" dir="auto">String</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id91616777650933" class="tablecontentintable" dir="auto">Specifies the source of the data, as a table name, a query name or a SQL statement.</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id741598177924441" class="tablecontentintable" dir="auto">XForm</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id451598177924437" class="tablecontentintable" dir="auto">Sí</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id94159817792441" class="tablecontentintable" dir="auto">Objeto<br>de UNO</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id191598177924897" class="tablecontentintable" dir="auto">The UNO object representing interactions with the form. Refer to <a target="_blank" href="https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1form_1_1XForm.html">XForm</a> and <a target="_blank" href="https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1form_1_1component_1_1DataForm.html">DataForm</a> in the API documentation for detailed information.</p>
</td>
</tr>
</table>
<br>
<h2 id="hd_id421612628828054" dir="auto">Propiedades del evento</h2>
<p id="par_id41612629140856" class="paragraph" dir="auto">The properties below return or set URI strings that define the script triggered by the event.</p>
<a id="event_properties_toc"></a>
<table border="1" class="" cellpadding="0" cellspacing="0">
<tr>
<th rowspan="" colspan="" class="tableheadcell" dir="auto">
<p id="par_id961612628879819" class="tableheadintable" dir="auto">Nombre</p>
</th>
<th rowspan="" colspan="" class="tableheadcell" dir="auto">
<p id="par_id401612628879819" class="tableheadintable" dir="auto">De solo lectura</p>
</th>
<th rowspan="" colspan="" class="tableheadcell" dir="auto">
<p id="par_id281612628879819" class="tableheadintable" dir="auto">Descripción en el EDI de BASIC</p>
</th>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id431612629836735" class="tablecontentintable" dir="auto">OnApproveCursorMove</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id111612629836630" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id1001612629836902" class="tablecontentintable" dir="auto">Antes del cambio del registro de datos</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id701612629836389" class="tablecontentintable" dir="auto">OnApproveParameter</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id291612629836294" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id62161262983683" class="tablecontentintable" dir="auto">Rellenar parámetros</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id241612629836863" class="tablecontentintable" dir="auto">OnApproveReset</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id81612629836634" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id881612629836744" class="tablecontentintable" dir="auto">Antes de restablecer</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id201612629836996" class="tablecontentintable" dir="auto">OnApproveRowChange</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id591612629836830" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id161612629836775" class="tablecontentintable" dir="auto">Antes de la acción del registro de datos</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id111612629836950" class="tablecontentintable" dir="auto">OnApproveSubmit</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id891612629836630" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id461612629836679" class="tablecontentintable" dir="auto">Antes del envío</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id711612629836495" class="tablecontentintable" dir="auto">OnConfirmDelete</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id131612629836291" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id151612629836151" class="tablecontentintable" dir="auto">Confirmar eliminación</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id971612629836286" class="tablecontentintable" dir="auto">OnCursorMoved</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id211612629836725" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id361612629836624" class="tablecontentintable" dir="auto">Tras el cambio del registro de datos</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id721612629836537" class="tablecontentintable" dir="auto">OnErrorOccurred</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id311612629836481" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id721612629836752" class="tablecontentintable" dir="auto">Ha ocurrido un error</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id55161262983695" class="tablecontentintable" dir="auto">OnLoaded</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id981612629836116" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id381612629836635" class="tablecontentintable" dir="auto">Al cargar</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id621612629836155" class="tablecontentintable" dir="auto">OnReloaded</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id711612629836704" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id35161262983642" class="tablecontentintable" dir="auto">Al recargar</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id541616778783953" class="tablecontentintable" dir="auto">OnReloading</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id44161677878329" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id661616778783899" class="tablecontentintable" dir="auto">Antes de recargar</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id961616778529182" class="tablecontentintable" dir="auto">OnResetted</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id651616778529764" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id311616778529570" class="tablecontentintable" dir="auto">Después de restablecer</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id171616778529918" class="tablecontentintable" dir="auto">OnRowChanged</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id601616778529481" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id351616778529352" class="tablecontentintable" dir="auto">Tras la acción del registro de datos</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id91616778529622" class="tablecontentintable" dir="auto">OnUnloaded</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id711616778529292" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id981616778529250" class="tablecontentintable" dir="auto">Al descargar</p>
</td>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto">
<p id="par_id71616778529970" class="tablecontentintable" dir="auto">OnUnloading</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id521616778529932" class="tablecontentintable" dir="auto">No</p>
</td>
<td rowspan="" colspan="" dir="auto">
<p id="par_id511616778529291" class="tablecontentintable" dir="auto">Antes de descargar</p>
</td>
</tr>
</table>
<br>
<div class="tip">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/tip.svg" alt="tip" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id961618181634322" dir="auto">Para conocer más sobre las cadenas de URI, consulte la <a target="_blank" href="https://wiki.documentfoundation.org/Documentation/DevGuide/Scripting_Framework#Scripting_Framework_URI_Specification">especificación de URI del marco de programación de secuencias de órdenes</a> (en inglés).</p></div>
</div>
<br>
<a id="methods_toc"></a>
<table border="1" class="" cellpadding="0" cellspacing="0">
<tr>
<th rowspan="" colspan="3" class="tableheadcell" dir="auto">
<p id="par_id921606472825856" class="tableheadintable" dir="auto">Lista de métodos en el servicio Form</p>
</th>
</tr>
<tr>
<td rowspan="" colspan="" dir="auto"><p id="par_id381606472825856" class="tablecontentintable" dir="auto">
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#Activate">Activate</a><br>
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#Controls">Controls</a><br>
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#GetDatabase">GetDatabase</a><br>
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#MoveFirst">MoveFirst</a><br>
</p></td>
<td rowspan="" colspan="" dir="auto"><p id="par_id451606472825856" class="tablecontentintable" dir="auto">
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#MoveLast">MoveLast</a><br>
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#MoveNext">MoveNext</a><br>
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#MoveNew">MoveNew</a><br><br>
</p></td>
<td rowspan="" colspan="" dir="auto"><p id="par_id161606472825856" class="tablecontentintable" dir="auto">
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#MovePrevious">MovePrevious</a><br>
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#Requery">Requery</a><br>
<a target="_top" href="es/text/sbasic/shared/03/sf_form.html#Subforms">SubForms</a><br><br>
</p></td>
</tr>
</table>
<br>
<a id="Activate"></a>
<a id="bm_id721583933076548"></a>
<meta itemprop="keywords" content="Form service,Activate">
<h2 id="hd_id681583933076692" dir="auto">Activate</h2>
<p id="par_id871583933076448" class="paragraph" dir="auto">Sets the focus on the current <span class="literal">Form</span> instance. Returns <span class="literal">True</span> if focusing was successful.</p>
<p id="par_id81616858956290" class="paragraph" dir="auto">The behavior of the <span class="literal">Activate</span> method depends on the type of document where the form is located:</p>
<ul itemprop="Unordered" itemscope="true" itemtype="http://schema.org/ItemList" dir="auto">
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id761616858967361" class="listitem" dir="auto"><span class="emph">In Writer documents:</span> Sets the focus on that document.</p>
</li>
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id931616859010103" class="listitem" dir="auto"><span class="emph">In Calc documents:</span> Sets the focus on the sheet to which the form belongs.</p>
</li>
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id41616859019478" class="listitem" dir="auto"><span class="emph">In Base documents:</span> Sets the focus on the <span class="literal">FormDocument</span> the <span class="literal">Form</span> refers to.</p>
</li>
</ul>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id11622536171845" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.Activate(): bool</span></p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<p id="par_id921618228229529" class="paragraph" dir="auto">The following example assumes you want to activate the form named <span class="literal">FormA</span> located in <span class="literal">Sheet1</span> of the currently open Calc file. It first gets access to the document using the <span class="literal">Document</span> service and <span class="literal">ThisComponent</span> and then activates the form.</p>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
'Gets hold of the form that will be activated
Dim oDoc as Object, myForm as Object
Set oDoc = CreateScriptService("Document", ThisComponent)
<p id="par_id451618228193979" class="paragraph" dir="auto">Set myForm = oDoc.Forms("Sheet1", "FormA")</p>
'Activa el formulario
myForm.Activate()
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
doc = CreateScriptService('Document', XSCRIPTCONTEXT.getDocument())
form = doc.Forms('Sheet1', 'FormA')
form.Activate()
</code></pre></div>
<div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id81618228720782" dir="auto"><span class="literal">ThisComponent</span> applies to Calc and Writer documents. For Base documents use <span class="literal">ThisDataBaseDocument</span>.</p></div>
</div>
<br>
<a id="CloseFormDocument"></a>
<h2 id="hd_id18161686043718" dir="auto">CloseFormDocument</h2>
<div class="warning">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/warning.svg" alt="warning" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id951709729717741" dir="auto">This method is deprecated, use <a target="_top" href="es/text/sbasic/shared/03/sf_formdocument.html#CloseDocument">ScriptForge.FormDocument.CloseDocument</a> method instead.</p></div>
</div>
<br>
<p id="par_id501616860541195" class="paragraph" dir="auto">Closes the form document containing the actual <span class="literal">Form</span> instance. The <span class="literal">Form</span> instance is disposed.</p>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id811622538068303" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.CloseFormDocument(): bool</span></p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
myForm.CloseFormDocument() ' Basic
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form.CloseFormDocument() # Python
</code></pre></div>
<a id="Controls"></a>
<a id="bm_id41584541257826"></a>
<meta itemprop="keywords" content="Form service,Controls">
<h2 id="hd_id95158454125767" dir="auto">Controls</h2>
<p id="par_id161584541257982" class="paragraph" dir="auto">El valor que devuelve el método <span class="literal">Controls</span> depende de los argumentos que se le proporcionen:</p>
<ul itemprop="Unordered" itemscope="true" itemtype="http://schema.org/ItemList" dir="auto">
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id421598179770993" class="listitem" dir="auto">Si se llama al método <span class="emph">sin ningún argumento</span>, este devuelve la lista de los controles contenidos en el formulario. Considere que la lista devuelta no incluye los controles de los subformularios.</p>
</li>
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id81598185229301" class="listitem" dir="auto">If the optional <span class="literal">ControlName</span> argument is provided, the method returns a <span class="literal">FormControl</span> class instance referring to the specified control.</p>
</li>
</ul>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id471622538274231" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.Controls(opt controlname: str): any</span></p>
<div class="embedded">
<a id="functparameters"></a>
<h3 id="hd_id061420171139084157" dir="auto">Parámetros:</h3>
</div>
<p id="par_id1001584541257789" class="paragraph" dir="auto"><span class="emph">controlname</span> : A valid control name as a case-sensitive string. If absent, the list of control names is returned as a zero-based array.</p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Dim myForm As Object, myList As Variant, myControl As Object
Set myForm = myDoc.Forms("myForm")
myList = myform.Controls()
Set myControl = myform.Controls("myTextBox") ' SFDocuments.FormControl
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form = doc.Forms('myForm')
form_names = form.Controls()
form_control = form.Controls('myTextBox') # SFDocuments.FormControl
</code></pre></div>
<a id="GetDatabase"></a>
<a id="bm_id941616861134691"></a>
<meta itemprop="keywords" content="Form service,GetDatabase">
<a id="getDbContent"></a>
<h2 id="hd_id141616861134554" dir="auto">GetDatabase</h2>
<p id="par_id291616861407907" class="paragraph" dir="auto">Return a <a target="_top" href="es/text/sbasic/shared/03/sf_database.html"><span class="literal">SFDatabases</span>.<span class="literal">Database</span></a> instance giving access to the execution of SQL commands on the database the current form is connected to and/or that is stored in the current Base document.</p>
<p id="par_id991616861417207" class="paragraph" dir="auto">Each form has its own database connection, except in Base documents where they all share the same connection.</p>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id221622547947693" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.GetDatabase(opt user: str, opt password: str): svc</span></p>
<div class="embedded">
<a id="functparameters"></a>
<h3 id="hd_id061420171139084157" dir="auto">Parámetros:</h3>
</div>
<p id="par_id701616861134906" class="paragraph" dir="auto"><span class="emph">user, password</span>: The login optional parameters (Default = "").</p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Dim myDb As Object ' SFDatabases.Database
Set myDb = oForm.GetDatabase()
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
db = form.GetDatabase() # SFDatabases.Database
</code></pre></div>
<a id="MoveFirst"></a>
<a id="bm_id671616861787529"></a>
<meta itemprop="keywords" content="Form service,MoveFirst">
<h2 id="hd_id591616861787279" dir="auto">MoveFirst</h2>
<p id="par_id771616861842867" class="paragraph" dir="auto">The form cursor is positioned on the first record. Returns <span class="literal">True</span> if successful.</p>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id101622549004980" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.MoveFirst(): bool</span></p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
myForm.MoveFirst() ' Basic
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form.MoveFirst() # Python
</code></pre></div>
<a id="MoveLast"></a>
<a id="bm_id551616863143388"></a>
<meta itemprop="keywords" content="Form service,MoveLast">
<h2 id="hd_id831616863143434" dir="auto">MoveLast</h2>
<p id="par_id331616863143187" class="paragraph" dir="auto">The form cursor is positioned on the last record. Returns <span class="literal">True</span> if successful.</p>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id931622549019307" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.MoveLast(): bool</span></p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
myForm.MoveLast() ' Basic
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form.MoveLast() # Python
</code></pre></div>
<a id="MoveNew"></a>
<a id="bm_id231616863143638"></a>
<meta itemprop="keywords" content="Form service,MoveNew">
<h2 id="hd_id41161686314366" dir="auto">MoveNew</h2>
<p id="par_id361616863143954" class="paragraph" dir="auto">The form cursor is positioned on the new record area. Returns <span class="literal">True</span> if successful.</p>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id131622549039501" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.MoveNew(): bool</span></p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
myForm.MoveNew() ' Basic
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form.MoveNew() # Python
</code></pre></div>
<a id="MoveNext"></a>
<a id="bm_id171616863143921"></a>
<meta itemprop="keywords" content="Form service,MoveNext">
<h2 id="hd_id111616863143256" dir="auto">MoveNext</h2>
<p id="par_id541616863143461" class="paragraph" dir="auto">The form cursor is positioned on the next record. Returns <span class="literal">True</span> if successful.</p>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id291622549045804" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.MoveNext(opt offset: int): bool</span></p>
<div class="embedded">
<a id="functparameters"></a>
<h3 id="hd_id061420171139084157" dir="auto">Parámetros:</h3>
</div>
<p id="par_id271616863582607" class="paragraph" dir="auto"><span class="emph">offset</span>: The number of records to go forward (Default = 1).</p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
myForm.MoveNext() ' Basic
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form.MoveNext() # Python
</code></pre></div>
<a id="MovePrevious"></a>
<a id="bm_id71161686379488"></a>
<meta itemprop="keywords" content="Form service,MovePrevious">
<h2 id="hd_id371616863794447" dir="auto">MovePrevious</h2>
<p id="par_id616168637945" class="paragraph" dir="auto">The form cursor is positioned on the previous record. Returns <span class="literal">True</span> if successful.</p>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id981622549054028" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.MovePrevious(opt offset: int): bool</span></p>
<div class="embedded">
<a id="functparameters"></a>
<h3 id="hd_id061420171139084157" dir="auto">Parámetros:</h3>
</div>
<p id="par_id751616863794125" class="paragraph" dir="auto"><span class="emph">offset</span>: The number of records to go backwards (Default = 1).</p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
myForm.MovePrevious() ' Basic
</code></pre></div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form.MovePrevious() # Python
</code></pre></div>
<a id="Requery"></a>
<a id="bm_id741616864216894"></a>
<meta itemprop="keywords" content="Form service,Requery">
<h2 id="hd_id551616864216705" dir="auto">Requery</h2>
<p id="par_id811616864216529" class="paragraph" dir="auto">Reloads the current data from the database and refreshes the form. The cursor is positioned on the first record. Returns <span class="literal">True</span> if successful.</p>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id731622550132517" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.Requery(): bool</span></p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
myForm.Requery() ' Basic
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
form.Requery() # Python
</code></pre></div>
<a id="Subforms"></a>
<a id="bm_id441616864510542"></a>
<meta itemprop="keywords" content="Form service,Subforms">
<h2 id="hd_id241616864510145" dir="auto">Subforms</h2>
<p id="par_id891616864510614" class="paragraph" dir="auto">El valor que devuelve el método <span class="literal">Subforms</span> depende de los argumentos proporcionados:</p>
<ul itemprop="Unordered" itemscope="true" itemtype="http://schema.org/ItemList" dir="auto">
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id951616864510585" class="listitem" dir="auto">Si el método se llama <span class="emph">sin argumentos</span>, se devuelve la lista de subformularios contenidos en el formulario u ocurrencia del subformulario actual.</p>
</li>
<li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
<p id="par_id591616864510445" class="listitem" dir="auto">If the optional <span class="literal">subform</span> argument is provided, the method returns a new <span class="literal">SFDocuments</span>.<span class="literal">Form</span> instance based on the specified form/subform name or index.</p>
</li>
</ul>
<div class="embedded">
<a id="functsyntax"></a>
<h3 id="hd_id061420171139089682" dir="auto">Sintaxis:</h3>
</div>
<p id="par_id541622550497960" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.Subforms(): str[0..*]</span></p>
<p id="par_id161623413158150" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.Subforms(subform: str): svc</span></p>
<p id="par_id31623413181836" class="paragraph" dir="auto"><span class="input" data-tooltip="Pulse en el texto para copiarlo en el portapapeles">svc.Subforms(subform: int): svc</span></p>
<div class="embedded">
<a id="functparameters"></a>
<h3 id="hd_id061420171139084157" dir="auto">Parámetros:</h3>
</div>
<p id="par_id341616864510747" class="paragraph" dir="auto"><span class="emph">subform</span>: A subform stored in the current <span class="literal">Form</span> class instance given by its name or index.</p>
<p id="par_id211618230389251" class="paragraph" dir="auto">When this argument is absent, the method returns a list of available subforms as a zero-based array. If the form has a single subform, you can set <span class="literal">subform = 0</span> to get access to it.</p>
<div class="embedded">
<a id="functexample"></a>
<h3 id="hd_id061420171139088233" dir="auto">Ejemplo:</h3>
</div>
<div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
Dim myForm As Object, myList As Variant, mySubform As Object
myList = myform.Subforms()
Set mySubform = myForm.Subforms("mySubform") ' SFDocuments.Form
</code></pre></div>
<div class="embedded">
<a id="In_Python"></a>
<h5 id="hd_id831620312769993" dir="auto">En Python</h5>
</div>
<div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
subform_names = form.Subforms()
subform = form.Subforms('mySubform') # SFDocuments.Form
</code></pre></div>
<div class="embedded">
<a id="SF_InternalUse"></a>
<div class="warning">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/warning.svg" alt="warning" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="par_id851506659675843" dir="auto">Todas las rutinas o identificadores BASIC de <span class="literal">ScriptForge</span> precedidas por guion bajo «_» están reservadas para uso interno. No deben utilizarse en macros BASIC o secuencias Python.</p></div>
</div>
<br>
</div>
<a id="relatedtopics"></a><div class="relatedtopics">
<p class="related" itemprop="mentions" dir="auto"><a id="related"></a><span class="emph">Temas relacionados</span></p>
<div class="relatedbody" itemprop="mentions">
<div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/shared/03/sf_database.html"><span class="literal">SFDatabases</span>.<span class="literal">Database</span> service</a></p></div>
<div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/shared/03/sf_document.html">Servicio <span class="literal">SFDocuments</span>.<span class="literal">Document</span></a></p></div>
<div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/shared/03/sf_ui.html">Servicio <span class="literal">ScriptForge</span>.<span class="literal">UI</span></a></p></div>
</div>
</div>
</div>
<div id="DonationFrame"></div>
<footer><h2 style="text-align: center;"><a href="https://books.libreoffice.org" target="_blank">Libros de LibreOffice</a></h2>
<div class="noteicon" dir="auto" style="display:flex;justify-content:center;flex-wrap:wrap;row-gap:15px;">
<img src="media/navigation/libo-writer.svg" alt="Writer Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-calc.svg" alt="Calc Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-impress.svg" alt="Impress Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-draw.svg" alt="Draw Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-base.svg" alt="Base Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-math.svg" alt="Math Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-symbol-black.svg" alt="Getting Started Icon" style="width:60px;height:60px;">
</div>
<div id="DEBUG" class="debug">
<h3 class="bug">Help content debug info:</h3>
<p dir="auto">This page is: <a href="https://opengrok.libreoffice.org/xref/help/source/text/sbasic/shared/03/sf_form.xhp" target="_blank">/text/sbasic/shared/03/sf_form.xhp</a></p>
<p dir="auto">Title is: Servicio SFDocuments.Form</p>
<p id="bm_module" dir="auto"></p>
<p id="bm_system" dir="auto"></p>
<p id="bm_HID" dir="auto"></p>
</div></footer>
</body>
</html>