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:
CustomXMLPart (modelo do objeto principal do Microsoft Office)
CustomXMLParts (modelo do objeto principal do Microsoft Office)
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.