Compartilhar via


Associar controles a uma linha específica no Repositório de Dados ao inserir um bloco de construção

Um bloco de construção do documento é uma parte do conteúdo desenvolvida previamente, como uma folha de rosto, um cabeçalho, um rodapé ou uma cláusula incorporada pela personalização em um contrato. Os blocos de construção personalizados facilitam a criação rápida de documentos do Word de aparência profissional.

Use controles de conteúdo em blocos de construção personalizados que foram mapeados para XML que contém dados. O conteúdo daqueles controles de conteúdo serão, então, automaticamente vinculados à parte XML personalizada adequada (se existir) quando a parte for inserida. Alternativamente, como mostra o exemplo a seguir, você poderá adicionar de forma dinâmica a parte XML personalizada e os mapeamento XML quando a parte for inserida. Por exemplo, para construir uma página de capa, você pode colocar um controle de conteúdo de imagem que exibe uma imagem recuperada de um elemento em um objeto CustomXMLPart anexado. Similarmente, você poderá criar o nome do projeto usando um controle de conteúdo de texto que você mapeia para um elemento em um objeto CustomXMLPart contendo o nome do projeto

Isto facilita a atualização de seus dados. Para atualizar um desses itens, você poderá escrever algumas linhas de código para atualizar cada documento armazenado no servidor que usa este bloco de construção de folha de rosto. Por exemplo, você poderá substituir um logotipo antigo por um novo. Ou, se o título do projeto for alterado, você poderá atualizar o texto no elemento XML que você mapeou para o controle de conteúdo do texto contendo o nome do projeto, por esse meio, atualizando automaticamente todos os documentos armazenados no servidor.

Os objetos usados nestes exemplos são:

Amostra

Suponha que o usuário tenha inserido seu bloco de construção do documento personalizado em um documento e baseado naquela ação, você deseja inserir e mapear a parte XML personalizada.

<?xml version="1.0" encoding="utf-8" ?> 
<projects> 
  <project> 
    <title>Data-Driven Document Generation</title> 
    <manager>Frank Martinez</manager> 
    <customer>Northwind Traders</customer> 
  </project> 
</projects>

O código de exemplo a seguir carregará o arquivo XML anterior e mapeará cada controle de conteúdo para o nó XML adequado naquela nova parte XML personalizada, quando o bloco de construção do documento chamado "Relatório da Empresa" for adicionado.

Private Sub Document_BuildingBlockInsert(ByVal Range As Range, _ 
        ByVal Name As String, ByVal Category As String, _ 
        ByVal Type As String, ByVal Template As String) 
 
    Dim cc As ContentControl 
    Dim part As CustomXMLPart 
 
    If Name = "Company Report" Then 
        'add the custom XML 
        ActiveDocument.CustomXMLParts.Add 
        Set part = ActiveDocument.CustomXMLParts(ActiveDocument.CustomXMLParts.Count).Load("c:\myProjects.xml") 
 
        'map the controls 
        For Each cc In Range.ContentControls 
            cc.XMLMapping.SetMapping cc.XMLMapping.XPath, cc.XMLMapping.PrefixMappings, part 
        Next cc 
    End If 
 
End Sub

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.