Usando o recurso 'Impressão de Modelo' para gerar Contratos de Fornecimento e Compra
Em cenários de cadeia de suprimentos ou comércio, muitas vezes é necessário gerar rapidamente um "Contrato de Fornecimento e Compra" padronizado e preencher dinamicamente o conteúdo com base em informações de fontes de dados, como compradores, vendedores e detalhes de produtos. A seguir, usaremos um caso de uso simplificado de "Contrato" como exemplo para mostrar a você como configurar e usar o recurso "Impressão de Modelo" para mapear informações de dados para os espaços reservados nos modelos de contrato, gerando automaticamente o documento final do contrato.
1. Visão Geral do Contexto e da Estrutura de Dados
Em nosso exemplo, existem aproximadamente as seguintes coleções principais (omitindo outros campos irrelevantes):
- parties: Armazena informações de unidades ou indivíduos da Parte A/Parte B, incluindo nome, endereço, pessoa de contato, telefone, etc.
- contracts: Armazena registros de contrato específicos, incluindo número do contrato, chaves estrangeiras de comprador/vendedor, informações do signatário, datas de início/fim, conta bancária, etc.
- contract_line_items: Usado para armazenar vários itens sob este contrato (nome do produto, especificação, quantidade, preço unitário, data de entrega, etc.)

Como o sistema atual suporta apenas a impressão de registros individuais, clicaremos em "Imprimir" na página "Detalhes do Contrato", e o sistema recuperará automaticamente o registro de contracts correspondente, bem como as parties associadas e outras informações, preenchendo-as em documentos Word ou PDF.
Esta documentação foi traduzida automaticamente por IA.
2. Preparação
2.1 Preparação do Plugin
Atenção, nosso plugin "Impressão de Modelo" é comercial e precisa ser adquirido e ativado antes que as operações de impressão possam ser realizadas.

Confirmar Ativação do Plugin:
Em qualquer página, crie um bloco de detalhes (por exemplo, usuários) e verifique se há uma opção de configuração de modelo correspondente na configuração de ação:


2.2 Criação de Coleções
Crie as coleções de entidade principal, de contrato e de itens de produto projetadas acima (selecione apenas os campos principais).
Coleção de Contratos (Contracts)
Coleção de Partes (Parties)
Coleção de Itens de Linha do Contrato (Contract Line Items)
2.3 Configuração da Interface
Inserir Dados de Exemplo:


Configure as regras de vinculação abaixo para calcular automaticamente o preço total e o pagamento do saldo:

Crie um bloco de visualização, confirme os dados e ative a ação "Impressão de Modelo":

2.4 Configuração do Plugin de Impressão de Modelo

Adicione uma configuração de modelo, como "Contrato de Fornecimento e Compra":


Em seguida, acesse a aba "Lista de Campos", onde você pode ver todos os campos do objeto atual. Depois de clicar em "Copiar", você pode começar a preencher o modelo.

2.5 Preparação do Arquivo de Contrato
Arquivo de Modelo de Contrato Word
Prepare o modelo de contrato (.docx) com antecedência, por exemplo: SUPPLY AND PURCHASE CONTRACT.docx
Neste exemplo, fornecemos uma versão simplificada do "Contrato de Fornecimento e Compra", que contém espaços reservados de exemplo:
{d.contract_no}: Número do contrato{d.buyer.party_name}、{d.seller.party_name}: Nomes do comprador e vendedor{d.total_amount}: Valor total do contrato- E outros espaços reservados como "pessoa de contato", "endereço", "telefone", etc.
Em seguida, você pode copiar os campos da sua coleção e colá-los no Word.
3. Tutorial de Variáveis de Modelo
3.1 Preenchimento de Variáveis Básicas e Propriedades de Objeto Associado
Preenchimento de Campos Básicos:
Por exemplo, o número do contrato no topo, ou o objeto da entidade que assina o contrato. Você clica em copiar e cola diretamente no espaço em branco correspondente no contrato.


3.2 Formatação de Dados
Formatação de Data
Nos modelos, muitas vezes precisamos formatar campos, especialmente campos de data. O formato de data copiado diretamente geralmente é longo (como Qua Jan 01 2025 00:00:00 GMT) e precisa ser formatado para exibir o estilo que desejamos.
Para campos de data, você pode usar a função formatD() para especificar o formato de saída:
Exemplo:
Por exemplo, se o campo original que você copiou é {d.created_at}, e você precisa formatar a data para o formato 2025-01-01, então modifique este campo para:
Estilos comuns de formatação de data:
YYYY- Ano (quatro dígitos)MM- Mês (dois dígitos)DD- Dia (dois dígitos)HH- Hora (formato 24 horas)mm- Minutosss- Segundos
Exemplo 2:
Formatação de Valores Monetários
Suponha que haja um campo de valor monetário, como {d.total_amount} no contrato. Você pode usar a função formatN() para formatar números, especificando casas decimais e separador de milhares.
Sintaxe:
- Casas decimais: Você pode especificar quantas casas decimais manter. Por exemplo,
2significa duas casas decimais. - Separador de milhares: Especifique se deve usar o separador de milhares, geralmente
trueoufalse.
Exemplo 1: Formatar valor monetário com separador de milhares e duas casas decimais
Isso formatará d.amount para duas casas decimais e adicionará um separador de milhares.
Exemplo 2: Formatar valor monetário para inteiro sem casas decimais
Isso formatará d.amount para um número inteiro e adicionará um separador de milhares.
Exemplo 3: Formatar valor monetário com duas casas decimais, mas sem separador de milhares
Aqui, o separador de milhares é desativado e apenas duas casas decimais são mantidas.
Outras necessidades de formatação de valor monetário:
- Símbolo da moeda: O próprio Carbone não oferece funções diretas de formatação de símbolo da moeda, mas você pode adicionar símbolos da moeda diretamente nos dados ou modelos. Por exemplo:
Formatação de String
Para campos de string, você pode usar :upperCase para especificar o formato do texto, como conversão de maiúsculas e minúsculas.
Sintaxe:
Métodos de conversão comuns:
upperCase- Converter para todas maiúsculaslowerCase- Converter para todas minúsculasupperCase:ucFirst- Capitalizar primeira letra
Exemplo:
3.3 Impressão em Loop
Como Imprimir Listas de Objetos Filhos (como Detalhes do Produto)
Quando precisamos imprimir uma tabela contendo vários subitens (por exemplo, detalhes do produto), geralmente precisamos usar a impressão em loop. Dessa forma, o sistema gerará uma linha de conteúdo para cada item da lista até que todos os itens sejam percorridos.
Suponha que temos uma lista de produtos (por exemplo, contract_items), que contém vários objetos de produto. Cada objeto de produto tem vários atributos, como nome do produto, especificação, quantidade, preço unitário, valor total e observações.
Passo 1: Preencher os Campos na Primeira Linha da Tabela
Primeiro, na primeira linha da tabela (não no cabeçalho), você copia e preenche diretamente as variáveis do modelo. Essas variáveis serão substituídas pelos dados correspondentes e exibidas na saída.
Por exemplo, a primeira linha da tabela é a seguinte:
Aqui, d.contract_items[i] representa o i-ésimo item na lista de produtos, e i é um índice que representa a ordem do produto atual.
Passo 2: Modificar o Índice na Segunda Linha
Em seguida, na segunda linha da tabela, você modificará o índice do campo para i+1 e preencherá apenas o primeiro atributo. Isso ocorre porque, durante a impressão em loop, precisamos recuperar o próximo item de dados da lista e exibi-lo na próxima linha.
Por exemplo, a segunda linha é preenchida da seguinte forma:
Neste exemplo, mudamos [i] para [i+1], para que possamos obter os próximos dados do produto na lista.
Passo 3: Impressão Automática em Loop Durante a Renderização do Modelo
Quando o sistema processa este modelo, ele operará de acordo com a seguinte lógica:
- A primeira linha será preenchida de acordo com os campos que você definiu no modelo.
- Em seguida, o sistema excluirá automaticamente a segunda linha e começará a extrair dados de
d.contract_items, preenchendo cada linha em loop no formato da tabela até que todos os detalhes do produto sejam impressos.
O i em cada linha será incrementado, garantindo que cada linha exiba informações de produto diferentes.
4. Carregar e Configurar o Modelo de Contrato
4.1 Carregar Modelo
- Clique no botão "Adicionar modelo" e insira o nome do modelo, por exemplo, "Modelo de Contrato de Fornecimento e Compra".
- Carregue o arquivo de contrato Word (.docx) preparado, que já contém todos os espaços reservados.

- Após a conclusão, o sistema listará o modelo na lista de modelos opcionais para uso futuro.
- Clique em "Usar" para ativar este modelo.

Neste ponto, saia do pop-up atual e clique em "Baixar modelo" para obter o modelo completo gerado.
Dicas:
- Se o modelo usar
.docou outros formatos, pode ser necessário convertê-lo para.docx, dependendo do suporte do plugin. - Em arquivos Word, tome cuidado para não dividir os espaços reservados em vários parágrafos ou caixas de texto, para evitar exceções de renderização.
Desejamos a você um bom uso! Com o recurso "Impressão de Modelo", você pode economizar muito trabalho repetitivo no gerenciamento de contratos, evitar erros de copiar e colar manualmente e alcançar a padronização e a saída automatizada de contratos.

