Incorporar resultados de ficheiros Excel externos
Estrutura
MergeExternalExcelFileResults(sFileList, iMergePDFStartPages, iMergePDFEndPages, sPageNumberFormat, dPageNumberX, dPageNumberY, sPageNumberAlign, iPageNumberFontSize)
Tipo
Função
Descrição
Este procedimento irá juntar uma secção de resultados provenientes de vários ficheiros Excel externos e criar um único ficheiro PDF. O PDF resultante é guardado temporariamente na base de dados para que possa ser posteriormente combinado com o certificado criado no PrintBuilder (normalmente, é retirada uma página de cabeçalho desse certificado e, em seguida, é inserida uma página final no fim — com os resultados do Excel no meio do PDF). As secções geradas a partir de cada ficheiro Excel são definidas na folha de cálculo «Saída em PDF», tal como acontece quando se utiliza o tipo de ponto de teste «Excel com saída em PDF». O ficheiro Excel é normalmente aberto a partir do mesmo projeto de script, utilizando o procedimento LaunchExternalExcelFile.
Parâmetros = 8
sFileList = uma lista dos ficheiros Excel a fundir, separados por vírgulas. Esta deve ser a localização completa, incluindo diretório/subdiretório + nome do ficheiro + extensão.
iMergePDFStartPages = o número de páginas que devem ser extraídas do início do certificado PrintBuilder correspondente e, em seguida, incorporadas no início do PDF final, antes dos resultados do Excel.
iMergePDFEndPages = o número de páginas que devem ser retiradas do final do certificado PrintBuilder correspondente e, em seguida, incorporadas ao final do PDF final, após os resultados do Excel.
sPageNumberFormat = Após a criação do PDF, o texto do número da página é inserido em todas as páginas. Este é o formato do texto. Note que os itens de fusão «[Página]» e «[Total]» são substituídos por valores reais. Exemplo: «Página [Página] de [Total]»
dPageNumberX = A posição X do texto do número da página em todas as páginas.
dPageNumberY = A posição Y do texto do número da página em todas as páginas.
sPageNumberAlign = O alinhamento do texto do número da página a partir da posição acima. Os valores possíveis são «LEFT», «CENTER» e «RIGHT».
iPageNumberFontSize = O tamanho da fonte do texto do número da página em todas as páginas.
Valor de retorno
A função devolve um «1» em caso de sucesso ou um «0» em caso de falha.
Exemplo
Pascal
sAllExcelFiles := ''; // padrão
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
'Página [Página] de [Total]', // sPageNumberFormat
6.20, // dPageNumberX
10.85, // dPageNumberY
'LEFT', // sPageNumberAlign
10); // iPageNumberFontSize
finally
Screen.Cursor := crDefault;
end;
if not bMerged then ShowMessage('Erro: Ficheiros NÃO foram fundidos.')
end;