Aller directement au contenu principal

Fusionner les résultats d'un fichier Excel externe

Structure

MergeExternalExcelFileResults(sFileList, iMergePDFStartPages, iMergePDFEndPages, sPageNumberFormat, dPageNumberX, dPageNumberY, sPageNumberAlign, iPageNumberFontSize)

Type

Fonction

Description

Cette procédure permet de regrouper une partie des résultats provenant de plusieurs fichiers Excel externes et de créer un seul fichier PDF. Le fichier PDF obtenu est enregistré temporairement dans la base de données afin de pouvoir être fusionné ultérieurement avec le certificat généré par PrintBuilder (en général, une page d'en-tête est extraite de ce certificat, puis une page finale est ajoutée à la fin, les résultats Excel se trouvant au milieu du fichier PDF). Les sections générées à partir de chaque fichier Excel sont définies dans la feuille de calcul « PDF Output », tout comme lorsque l'on utilise le type de point de test « Excel avec sortie PDF ». Le fichier Excel est généralement ouvert depuis le même projet de script à l'aide de la procédure LaunchExternalExcelFile.

Paramètres = 8

sFileList = une liste des fichiers Excel à fusionner, séparés par des virgules. Il doit s'agir du chemin d'accès complet, comprenant le répertoire/sous-répertoire, le nom du fichier et l'extension.

iMergePDFStartPages = le nombre de pages à extraire du début du certificat PrintBuilder correspondant, puis à fusionner au début du fichier PDF final, avant les résultats Excel.

iMergePDFEndPages = le nombre de pages à extraire de la fin du certificat PrintBuilder correspondant, puis à ajouter à la fin du fichier PDF final, après les résultats Excel.

sPageNumberFormat = Une fois le fichier PDF créé, le texte du numéro de page est affiché sur toutes les pages. Voici le format du texte. Notez que les éléments de fusion « [Page] » et « [Total] » sont remplacés par des valeurs réelles. Exemple : « Page [Page] sur [Total] »

dPageNumberX = La position X du texte du numéro de page sur toutes les pages.

dPageNumberY = La position Y du texte du numéro de page sur toutes les pages.

sPageNumberAlign = L'alignement du texte du numéro de page par rapport à la position ci-dessus. Les valeurs possibles sont « LEFT », « CENTER » et « RIGHT ».

iPageNumberFontSize = La taille de police du texte du numéro de page sur toutes les pages.

Valeur de retour

La fonction renvoie « 1 » en cas de réussite ou « 0 » en cas d'échec.

Exemple

Pascal

sAllExcelFiles := ''; // valeur par défaut
dxmdExcelFiles.DisableControls;
try
dxmdExcelFiles.First;
while not dxmdExcelFiles.EOF do
begin
if sAllExcelFiles <> '' then sAllExcelFiles := sAllExcelFiles + ',';
if Trim(dxmdExcelFiles.FieldbyName('FILE_NAME').AsString) <> '' then sAllExcelFiles := sAllExcelFiles + sIndyTempDir + Trim(dxmdExcelFiles.FieldbyName('FILE_NAME').AsString);

dxmdExcelFiles.Next;
end;
finally
dxmdExcelFiles.EnableControls;
end;

if (Sender = bMergeAll) then
begin
Screen.Cursor := crHourglass;
try
bMerged := MergeExternalExcelFileResults(sAllExcelFiles,
1, // iMergePDFStartPages
1, // iMergePDFEndPages
'Page [Page] sur [Total]', // sPageNumberFormat
6.20, // dPageNumberX
10.85, // dPageNumberY
'LEFT', // sPageNumberAlign
10); // iPageNumberFontSize
finally
Screen.Cursor := crDefault;
end;
if not bMerged then ShowMessage('Erreur : fichiers NON fusionnés.')
end;