> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Otros scripts de ejemplo

> Ejemplos de VBScript y JScript que convierten el evento Pages moved en un evento de fusión de documentos y fusionan parámetros de registro de documentos cuando se fusionan documentos.

Estos scripts de ejemplo muestran cómo gestionar eventos de fusión de documentos en ABBYY FlexiCapture. Cada ejemplo está disponible tanto en VBScript como en JScript.

<div id="turn-the-pages-moved-event-into-a-document-merge-event">
  ## Convierta el evento Pages moved en un evento de fusión de documentos
</div>

Este controlador se ejecuta en el evento [Pages moved](/es/flexi-capture/appendix/scripts/moving-pages) y lo convierte en un evento de fusión de documentos. Si se mueven todas las páginas de un documento, ese documento se incorpora por completo al documento de destino. El procedimiento `Events.OnDocumentsMerge` gestiona el evento de fusión de documentos.

<div id="vbscript">
  ### VBScript
</div>

```vb theme={null}
Dim currentDocument, currentDocumentPagesMoved
set currentDocument = Pages( 0 ).Document
currentDocumentPagesMoved = 0

For i = 0 to Pages.Count - 1
    If Pages( i ).Document.Id <> currentDocument.Id Then
        ' El siguiente documento
        If currentDocument.Pages.Count = currentDocumentPagesMoved Then
            ' Todas las páginas se han movido del documento anterior. El evento se desencadena.
            Events.OnDocumentsMerge TargetDocument, currentDocument
        End If
        Set currentDocument = Pages( i ).Document
    Else
Next

If currentDocument.Pages.Count = currentDocumentPagesMoved Then
    ' Todas las páginas se han movido del último documento. El evento se desencadena.
    Events.OnDocumentsMerge TargetDocument, currentDocument
End If
```

<div id="jscript">
  ### JScript
</div>

```javascript theme={null}
var currentDocument = Pages( 0 ).Document;
var currentDocumentPagesMoved = 0;

for( i = 0; i < Pages.Count - 1; i++ ) {
    if( Pages( i ).Document.Id != currentDocument.Id ) {
        // El siguiente documento
        if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {
            // Todas las páginas se han movido del documento anterior. El evento se desencadena.
            Events.OnDocumentsMerge( TargetDocument, currentDocument );
        }
        currentDocument = Pages( i ).Document;
    } else {
        currentDocumentPagesMoved = currentDocumentPagesMoved + 1;
    }
}

if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {
    // Todas las páginas se han movido del último documento. El evento se desencadena.
    Events.OnDocumentsMerge( TargetDocument, currentDocument )
}
```

<div id="merge-registration-parameters-when-documents-merge">
  ## Combinar parámetros de registro cuando se combinan documentos
</div>

Este controlador combina los parámetros de registro del documento en el evento de fusión de documentos. Cuando varios documentos se combinan en un documento de destino, solo se agregan desde los documentos nuevos los parámetros que faltan en el documento de destino.

Guarde este código en un módulo compartido y llame al procedimiento `OnDocumentsMerge` cuando se combinen documentos. Para obtener más información, consulte [Convertir el evento Pages moved en un evento de fusión de documentos](#turn-the-pages-moved-event-into-a-document-merge-event).

<div id="vbscript">
  ### VBScript
</div>

```vb theme={null}
Sub MergeProperty(ByVal TargetDocument, ByVal propertyName, ByVal propertyValue)
    If TargetDocument.Properties.Get(propertyName) = "" Then
        ' No existe ese parámetro en el documento.
        TargetDocument.Properties.Set(propertyName, propertyValue)
    End If
End Sub

Sub OnDocumentsMerge(ByVal Target, ByVal Document)
    ' Fusión de parámetros de registro.
    For i = 0 To Document.Properties.Count - 1
        MergeProperty(Target, Document.Properties(i).Name, Document.Properties(i).Value)
    Next
End Sub
```

<div id="jscript">
  ### JScript
</div>

```javascript theme={null}
function MergeProperty( TargetDocument, propertyName, propertyValue )
{
    if( TargetDocument.Properties.Get( propertyName ) == "" ) {
        // No existe ese parámetro en el documento.
        TargetDocument.Properties.Set( propertyName, propertyValue );
    }
}

function OnDocumentsMerge( Target, Document )
{
    // Fusión de parámetros de registro.
    for( i = 0; i < Document.Properties.Count - 1; i++ ) {
        MergeProperty( Target, Document.Properties(i).Name, Document.Properties(i).Value );
    }
}
```
