Negli scenari di supply chain o commerciali, è spesso necessario generare rapidamente un "Contratto di Fornitura e Acquisto" standardizzato e popolare dinamicamente il suo contenuto basandosi su informazioni provenienti da fonti dati come acquirenti, venditori e dettagli dei prodotti. Di seguito, prenderemo come esempio un caso d'uso semplificato di "Contratto" per mostrarLe come configurare e utilizzare la funzione "Stampa Modello" per mappare le informazioni dei dati ai segnaposto nei modelli di contratto, generando così automaticamente il documento contrattuale finale.
Nel nostro esempio, esistono all'incirca le seguenti collezioni principali (omettendo altri campi irrilevanti):

Poiché il sistema attuale supporta solo la stampa di singoli record, faremo clic su "Stampa" nella pagina "Dettagli Contratto". Il sistema recupererà automaticamente il record del contratto corrispondente, insieme alle informazioni associate sulle parti e altri dettagli, e li inserirà nei documenti Word o PDF.
Questa documentazione è stata tradotta automaticamente dall'IA.
Si noti che il nostro plugin "Stampa Modello" è un plugin commerciale che deve essere acquistato e attivato prima di poter eseguire operazioni di stampa.

Conferma dell'attivazione del plugin:
Su qualsiasi pagina, crei un blocco dettagli (ad esempio, per gli utenti) e verifichi se esiste un'opzione di configurazione del modello corrispondente nella configurazione delle azioni:


Crei le collezioni principali (entità, contratti e voci di prodotto) progettate in precedenza (selezioni solo i campi principali).
| Categoria Campo | Nome Visualizzato Campo | Nome Campo | Interfaccia Campo |
|---|---|---|---|
| Campi PK & FK | |||
| ID | id | Intero | |
| ID Acquirente | buyer_id | Intero | |
| ID Venditore | seller_id | Intero | |
| Campi di Associazione | |||
| Voci del Contratto | contract_items | Uno a molti | |
| Acquirente (Parte A) | buyer | Molti a uno | |
| Venditore (Parte B) | seller | Molti a uno | |
| Campi Generali | |||
| Numero Contratto | contract_no | Testo su riga singola | |
| Data Inizio Consegna | start_date | Data/Ora (con fuso orario) | |
| Data Fine Consegna | end_date | Data/Ora (con fuso orario) | |
| Percentuale di Acconto (%) | deposit_ratio | Percentuale | |
| Giorni di Pagamento Dopo la Consegna | payment_days_after | Intero | |
| Nome Conto Bancario (Beneficiario) | bank_account_name | Testo su riga singola | |
| Nome Banca | bank_name | Testo su riga singola | |
| Numero Conto Bancario (Beneficiario) | bank_account_number | Testo su riga singola | |
| Importo Totale | total_amount | Numero | |
| Codici Valuta | currency_codes | Selezione singola | |
| Percentuale di Saldo (%) | balance_ratio | Percentuale | |
| Giorni di Saldo Dopo la Consegna | balance_days_after | Intero | |
| Luogo di Consegna | delivery_place | Testo lungo | |
| Nome Firmatario Parte A | party_a_signatory_name | Testo su riga singola | |
| Titolo Firmatario Parte A | party_a_signatory_title | Testo su riga singola | |
| Nome Firmatario Parte B | party_b_signatory_name | Testo su riga singola | |
| Titolo Firmatario Parte B | party_b_signatory_title | Testo su riga singola | |
| Campi di Sistema | |||
| Creato il | createdAt | Creato il | |
| Creato da | createdBy | Creato da | |
| Ultimo aggiornamento il | updatedAt | Ultimo aggiornamento il | |
| Ultimo aggiornamento da | updatedBy | Ultimo aggiornamento da |
| Categoria Campo | Nome Visualizzato Campo | Nome Campo | Interfaccia Campo |
|---|---|---|---|
| Campi PK & FK | |||
| ID | id | Intero | |
| Campi Generali | |||
| Nome della Parte | party_name | Testo su riga singola | |
| Indirizzo | address | Testo su riga singola | |
| Referente | contact_person | Testo su riga singola | |
| Telefono di Contatto | contact_phone | Telefono | |
| Posizione | position | Testo su riga singola | |
| Sito web | website | URL | |
| Campi di Sistema | |||
| Creato il | createdAt | Creato il | |
| Creato da | createdBy | Creato da | |
| Ultimo aggiornamento il | updatedAt | Ultimo aggiornamento il | |
| Ultimo aggiornamento da | updatedBy | Ultimo aggiornamento da |
| Categoria Campo | Nome Visualizzato Campo | Nome Campo | Interfaccia Campo |
|---|---|---|---|
| Campi PK & FK | |||
| ID | id | Intero | |
| ID Contratto | contract_id | Intero | |
| Campi di Associazione | |||
| Contratto | contract | Molti a uno | |
| Campi Generali | |||
| Nome Prodotto | product_name | Testo su riga singola | |
| Specifiche / Modello | spec | Testo su riga singola | |
| Quantità | quantity | Intero | |
| Prezzo Unitario | unit_price | Numero | |
| Importo Totale | total_amount | Numero | |
| Data di Consegna | delivery_date | Data/Ora (con fuso orario) | |
| Nota | remark | Testo lungo | |
| Campi di Sistema | |||
| Creato il | createdAt | Creato il | |
| Creato da | createdBy | Creato da | |
| Ultimo aggiornamento il | updatedAt | Ultimo aggiornamento il | |
| Ultimo aggiornamento da | updatedBy | Ultimo aggiornamento da |
Inserimento di dati di esempio:


Configuri le regole di collegamento per calcolare automaticamente il prezzo totale e i pagamenti a saldo:

Crei un blocco di visualizzazione, confermi i dati e abiliti l'azione "Stampa Modello":


Aggiunga una configurazione di modello, ad esempio "Contratto di Fornitura e Acquisto":


Successivamente, andiamo alla scheda "Elenco Campi", dove possiamo vedere tutti i campi dell'oggetto corrente. Dopo aver cliccato su "Copia", possiamo iniziare a compilare il modello.

File modello di contratto Word
Prepari in anticipo il modello di contratto (file .docx), ad esempio: SUPPLY AND PURCHASE CONTRACT.docx
In questo esempio, forniamo una versione semplificata del "Contratto di Fornitura e Acquisto", che contiene segnaposto di esempio:
{d.contract_no}: Numero del contratto{d.buyer.party_name}、{d.seller.party_name}: Nomi di acquirente e venditore{d.total_amount}: Importo totale del contrattoSuccessivamente, può copiare e incollare i campi dalla Sua collezione in Word.
Compilazione dei campi base:
Ad esempio, il numero del contratto in alto, o l'oggetto dell'entità firmataria del contratto. Clicchiamo su copia e lo incolliamo direttamente nello spazio vuoto corrispondente nel contratto.


Nei modelli, spesso è necessario formattare i campi, in particolare quelli di data. Il formato di data copiato direttamente è solitamente lungo (ad esempio, Mer Gen 01 2025 00:00:00 GMT) e deve essere formattato per visualizzare lo stile desiderato.
Per i campi data, può utilizzare la funzione formatD() per specificare il formato di output:
Esempio:
Ad esempio, se il campo originale che abbiamo copiato è {d.created_at}, e dobbiamo formattare la data nel formato 2025-01-01, allora modifichiamo questo campo in:
Stili comuni di formattazione della data:
YYYY - Anno (quattro cifre)MM - Mese (due cifre)DD - Giorno (due cifre)HH - Ora (formato 24 ore)mm - Minutiss - SecondiEsempio 2:
Supponiamo che ci sia un campo importo, come {d.total_amount} nel contratto. Possiamo utilizzare la funzione formatN() per formattare i numeri, specificando le cifre decimali e il separatore delle migliaia.
Sintassi:
2 indica due cifre decimali.true o false.Esempio 1: Formattare l'importo con separatore delle migliaia e due cifre decimali
Questo formatterà d.amount con due cifre decimali e aggiungerà un separatore delle migliaia.
Esempio 2: Formattare l'importo come numero intero senza cifre decimali
Questo formatterà d.amount come numero intero e aggiungerà un separatore delle migliaia.
Esempio 3: Formattare l'importo con due cifre decimali ma senza separatore delle migliaia
Qui il separatore delle migliaia è disabilitato, mantenendo solo due cifre decimali.
Altre esigenze di formattazione dell'importo:
Per i campi stringa, può utilizzare :upperCase per specificare il formato del testo, come la conversione del caso.
Sintassi:
Metodi di conversione comuni:
upperCase - Converte in tutto maiuscololowerCase - Converte in tutto minuscoloupperCase:ucFirst - Capitalizza la prima letteraEsempio:
Quando dobbiamo stampare una tabella contenente più sotto-voci (ad esempio, dettagli dei prodotti), di solito è necessario utilizzare la stampa in ciclo. In questo modo, il sistema genererà una riga di contenuto per ogni voce nell'elenco fino a quando tutte le voci non saranno state elaborate.
Supponiamo di avere un elenco di prodotti (ad esempio, contract_items), che contiene più oggetti prodotto. Ogni oggetto prodotto ha più attributi, come nome del prodotto, specifiche, quantità, prezzo unitario, importo totale e note.
Fase 1: Compilare i campi nella prima riga della tabella
Innanzitutto, nella prima riga della tabella (non l'intestazione), copiamo e compiliamo direttamente le variabili del modello. Queste variabili verranno sostituite dai dati corrispondenti e visualizzate nell'output.
Ad esempio, la prima riga della tabella è la seguente:
| Nome Prodotto | Specifiche / Modello | Quantità | Prezzo Unitario | Importo Totale | Nota |
|---|---|---|---|---|---|
| {d.contract_items[i].product_name} | {d.contract_items[i].spec} | {d.contract_items[i].quantity} | {d.contract_items[i].unit_price} | {d.contract_items[i].total_amount} | {d.contract_items[i].remark} |
Qui, d.contract_items[i] rappresenta l'i-esima voce nell'elenco dei prodotti, e i è un indice che rappresenta l'ordine del prodotto corrente.
Fase 2: Modificare l'indice nella seconda riga
Successivamente, nella seconda riga della tabella, modifichiamo l'indice del campo in i+1 e compiliamo solo il primo attributo. Questo perché durante la stampa in ciclo, dobbiamo recuperare la voce di dati successiva dall'elenco e visualizzarla nella riga successiva.
Ad esempio, la seconda riga viene compilata come segue:
| Nome Prodotto | Specifiche / Modello | Quantità | Prezzo Unitario | Importo Totale | Nota |
|---|---|---|---|---|---|
| {d.contract_items[i+1].product_name} |
In questo esempio, abbiamo cambiato [i] in [i+1], in modo da poter ottenere i dati del prodotto successivo nell'elenco.
Fase 3: Stampa in ciclo automatica durante il rendering del modello
Quando il sistema elabora questo modello, opererà secondo la seguente logica:
d.contract_items, compilando in ciclo ogni riga nel formato della tabella fino a quando tutti i dettagli del prodotto non saranno stati stampati.L'i in ogni riga verrà incrementato, garantendo che ogni riga visualizzi informazioni diverse sul prodotto.


A questo punto, esca dalla finestra popup corrente e clicchi su "Scarica modello" per ottenere il modello completo generato.
Consigli:
.doc o altri formati, potrebbe essere necessario convertirlo in .docx, a seconda del supporto del plugin.Con la funzione "Stampa Modello", potrà risparmiare notevolmente il lavoro ripetitivo nella gestione dei contratti, evitare errori di copia-incolla manuale e ottenere una produzione di contratti standardizzata e automatizzata. Le auguriamo un buon utilizzo!