> ## 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.

# Autres scripts d’exemple

> Exemples VBScript et JScript qui transforment l’événement Pages moved en événement de fusion de documents et fusionnent les paramètres d’enregistrement du document lorsque des documents sont fusionnés.

Ces scripts d’exemple montrent comment gérer les événements de fusion de documents dans ABBYY FlexiCapture. Chaque exemple est disponible à la fois en VBScript et en JScript.

<div id="turn-the-pages-moved-event-into-a-document-merge-event">
  ## Convertir l’événement Pages moved en événement de fusion de documents
</div>

Ce gestionnaire se déclenche lors de l’événement [Pages moved](/fr/flexi-capture/appendix/scripts/moving-pages) et le convertit en événement de fusion de documents. Si toutes les pages d’un document sont déplacées, ce document est entièrement incorporé au document cible. La procédure `Events.OnDocumentsMerge` gère l’événement de fusion de documents.

<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
        ' Le document suivant
        If currentDocument.Pages.Count = currentDocumentPagesMoved Then
            ' Toutes les pages ont été déplacées depuis le document précédent. L'événement est déclenché.
            Events.OnDocumentsMerge TargetDocument, currentDocument
        End If
        Set currentDocument = Pages( i ).Document
    Else
Next

If currentDocument.Pages.Count = currentDocumentPagesMoved Then
    ' Toutes les pages ont été déplacées depuis le dernier document. L'événement est déclenché.
    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 ) {
        // Le document suivant
        if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {
            // Toutes les pages ont été déplacées depuis le document précédent. L'événement est déclenché.
            Events.OnDocumentsMerge( TargetDocument, currentDocument );
        }
        currentDocument = Pages( i ).Document;
    } else {
        currentDocumentPagesMoved = currentDocumentPagesMoved + 1;
    }
}

if( currentDocument.Pages.Count == currentDocumentPagesMoved ) {
    // Toutes les pages ont été déplacées depuis le dernier document. L'événement est déclenché.
    Events.OnDocumentsMerge( TargetDocument, currentDocument )
}
```

<div id="merge-registration-parameters-when-documents-merge">
  ## Fusionner les paramètres d’enregistrement lors de la fusion de documents
</div>

Ce gestionnaire fusionne les paramètres d’enregistrement des documents lors de l’événement de fusion de documents. Lorsque des documents sont fusionnés dans un document cible, seuls les paramètres absents du document cible sont ajoutés à partir des nouveaux documents.

Stockez ce code dans un module partagé et appelez la procédure `OnDocumentsMerge` lorsque des documents sont fusionnés. Pour plus d’informations, consultez [Transformer l’événement Pages moved en événement de fusion de documents](#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
        ' Le document ne contient pas ce paramètre.
        TargetDocument.Properties.Set(propertyName, propertyValue)
    End If
End Sub

Sub OnDocumentsMerge(ByVal Target, ByVal Document)
    ' Fusion des paramètres d'enregistrement.
    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 ) == "" ) {
        // Le document ne contient pas ce paramètre.
        TargetDocument.Properties.Set( propertyName, propertyValue );
    }
}

function OnDocumentsMerge( Target, Document )
{
    // Fusion des paramètres d'enregistrement.
    for( i = 0; i < Document.Properties.Count - 1; i++ ) {
        MergeProperty( Target, Document.Properties(i).Name, Document.Properties(i).Value );
    }
}
```
