Detta dokument har översatts av AI. För eventuella felaktigheter, se den engelska versionen
I scenarier inom leveranskedjan eller handel är det ofta nödvändigt att snabbt generera ett standardiserat "Leverans- och inköpsavtal" och dynamiskt fylla i innehåll baserat på information från datakällor som köpare, säljare och produktdetaljer. Nedan kommer vi att använda ett förenklat "Avtal"-användningsfall som exempel för att visa er hur ni konfigurerar och använder funktionen "Mallutskrift" för att mappa datainformation till platshållare i avtalsmallar, och därmed automatiskt generera det slutliga avtalsdokumentet.
I vårt exempel finns det i stort sett följande huvudsakliga samlingar (andra irrelevanta fält utelämnas):

Eftersom det nuvarande systemet endast stöder utskrift av enskilda poster, kommer vi att klicka på "Skriv ut" på sidan "Avtalsdetaljer". Systemet kommer då automatiskt att hämta den motsvarande contracts-posten, samt relaterad parties-information och annan data, och fylla i dem i Word- eller PDF-dokument.
Observera att vår "Mallutskrift" är en kommersiell plugin som måste köpas och aktiveras innan utskriftsåtgärder kan utföras.

Bekräfta aktivering av plugin:
På valfri sida, skapa ett detaljblock (till exempel för användare) och kontrollera om det finns ett motsvarande alternativ för mallkonfiguration i åtgärdskonfigurationen:


Skapa de huvudsakliga samlingarna för parter, kontrakt och kontraktsradsposter som designats ovan (välj endast kärnfält).
| Field Category | Field Display Name | Field Name | Field Interface |
|---|---|---|---|
| PK & FK Fields | |||
| ID | id | Integer | |
| Köpar-ID | buyer_id | Integer | |
| Säljar-ID | seller_id | Integer | |
| Association Fields | |||
| Kontraktsartiklar | contract_items | One to many | |
| Köpare (Part A) | buyer | Many to one | |
| Säljare (Part B) | seller | Many to one | |
| General Fields | |||
| Kontraktsnummer | contract_no | Single line text | |
| Leverans startdatum | start_date | Datetime (with time zone) | |
| Leverans slutdatum | end_date | Datetime (with time zone) | |
| Depositionskvot (%) | deposit_ratio | Percent | |
| Betalningsdagar efter leverans | payment_days_after | Integer | |
| Bankkontonamn (Mottagare) | bank_account_name | Single line text | |
| Banknamn | bank_name | Single line text | |
| Bankkontonummer (Mottagare) | bank_account_number | Single line text | |
| Totalt belopp | total_amount | Number | |
| Valutakoder | currency_codes | Single select | |
| Saldokvot (%) | balance_ratio | Percent | |
| Saldodagar efter leverans | balance_days_after | Integer | |
| Leveransplats | delivery_place | Long text | |
| Part A Undertecknares namn | party_a_signatory_name | Single line text | |
| Part A Undertecknares titel | party_a_signatory_title | Single line text | |
| Part B Undertecknares namn | party_b_signatory_name | Single line text |
| System Fields | | | | | | Skapad den | createdAt | Created at | | | Skapad av | createdBy | Created by | | | Senast uppdaterad den | updatedAt | Last updated at | | | Senast uppdaterad av | updatedBy | Last updated by |
| Field Category | Field Display Name | Field Name | Field Interface |
|---|---|---|---|
| PK & FK Fields | |||
| ID | id | Integer | |
| General Fields | |||
| Partens namn | party_name | Single line text | |
| Adress | address | Single line text | |
| Kontaktperson | contact_person | Single line text | |
| Kontakttelefon | contact_phone | Phone | |
| Position | position | Single line text | |
| E-post | |||
| Webbplats | website | URL | |
| System Fields | |||
| Skapad den | createdAt | Created at | |
| Skapad av | createdBy | Created by | |
| Senast uppdaterad den | updatedAt | Last updated at | |
| Senast uppdaterad av | updatedBy | Last updated by |
| Field Category | Field Display Name | Field Name | Field Interface |
|---|---|---|---|
| PK & FK Fields | |||
| ID | id | Integer | |
| Kontrakts-ID | contract_id | Integer | |
| Association Fields | |||
| Kontrakt | contract | Many to one | |
| General Fields | |||
| Produktnamn | product_name | Single line text | |
| Specifikation / Modell | spec | Single line text | |
| Kvantitet | quantity | Integer | |
| Enhetspris | unit_price | Number | |
| Totalt belopp | total_amount | Number | |
| Leveransdatum | delivery_date | Datetime (with time zone) | |
| Anmärkning | remark | Long text | |
| System Fields | |||
| Skapad den | createdAt | Created at | |
| Skapad av | createdBy | Created by | |
| Senast uppdaterad den | updatedAt | Last updated at | |
| Senast uppdaterad av | updatedBy | Last updated by |
Ange exempeldata:


Konfigurera kopplingsregler enligt följande för att automatiskt beräkna totalpris och återstående betalning:

Skapa ett visningsblock, bekräfta data och aktivera åtgärden "Mallutskrift":


Lägg till en mallkonfiguration, till exempel "Leverans- och inköpsavtal":


Därefter går vi till fliken Fältlista, där vi kan se alla fält för det aktuella objektet. När ni har klickat på "Kopiera" kan ni börja fylla i mallen.

Word-mallfil för avtal
Förbered avtalsmallen (.docx-fil) i förväg, till exempel: SUPPLY AND PURCHASE CONTRACT.docx
I detta exempel ger vi en förenklad version av "Leverans- och inköpsavtal", som innehåller exempelplatshållare:
{d.contract_no}: Avtalsnummer{d.buyer.party_name}、{d.seller.party_name}: Köparens och säljarens namn{d.total_amount}: Totala avtalssummanDärefter kan ni kopiera och klistra in fälten från er samling i Word.
Fyllning av grundläggande fält:
Till exempel avtalsnumret högst upp, eller objektet för den avtalstecknande parten. Ni klickar på kopiera och klistrar sedan in det direkt i det motsvarande tomma utrymmet i avtalet.


I mallar behöver vi ofta formatera fält, särskilt datumfält. Datumformatet som kopieras direkt är vanligtvis långt (som Wed Jan 01 2025 00:00:00 GMT) och behöver formateras för att visa den stil vi önskar.
För datumfält kan ni använda funktionen formatD() för att ange utdataformatet:
Exempel:
Om det ursprungliga fältet ni kopierade är {d.created_at} och ni behöver formatera datumet till formatet 2025-01-01, ändrar ni fältet till:
Vanliga formateringsstilar för datum:
YYYY - År (fyra siffror)MM - Månad (två siffror)DD - Dag (två siffror)HH - Timme (24-timmarsformat)mm - Minuterss - SekunderExempel 2:
Anta att det finns ett beloppsfält, till exempel {d.total_amount} i avtalet. Vi kan använda funktionen formatN() för att formatera siffror, genom att ange antal decimaler och tusenavgränsare.
Syntax:
2 att två decimaler behålls.true eller false.Exempel 1: Formatera belopp med tusenavgränsare och två decimaler
Detta kommer att formatera d.amount till två decimaler och lägga till en tusenavgränsare.
Exempel 2: Formatera belopp till heltal utan decimaler
Detta kommer att formatera d.amount till ett heltal och lägga till en tusenavgränsare.
Exempel 3: Formatera belopp med två decimaler men utan tusenavgränsare
Här inaktiveras tusenavgränsaren och endast två decimaler behålls.
Andra behov för beloppsformatering:
För strängfält kan ni använda :upperCase för att ange textens format, till exempel konvertering av gemener/versaler.
Syntax:
Vanliga konverteringsmetoder:
upperCase - Konvertera till enbart stora bokstäverlowerCase - Konvertera till enbart små bokstäverupperCase:ucFirst - Versal första bokstavExempel:
När vi behöver skriva ut en tabell som innehåller flera underordnade poster (till exempel produktdetaljer), behöver vi vanligtvis använda loop-utskrift. På så sätt genererar systemet en rad innehåll för varje post i listan tills alla poster har gått igenom.
Anta att vi har en produktlista (till exempel contract_items), som innehåller flera produktobjekt. Varje produktobjekt har flera attribut, såsom produktnamn, specifikation, kvantitet, enhetspris, totalt belopp och anmärkningar.
Steg 1: Fyll i fält i tabellens första rad
Först, i tabellens första rad (inte rubrikraden), kopierar och fyller vi direkt i mallvariablerna. Dessa variabler kommer att ersättas av motsvarande data och visas i utdata.
Till exempel ser tabellens första rad ut så här:
| Produktnamn | Specifikation / Modell | Kvantitet | Enhetspris | Totalt belopp | Anmärkning |
|---|---|---|---|---|---|
| {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} |
Här representerar d.contract_items[i] den i-te posten i produktlistan, och i är ett index som representerar den aktuella produktens ordning.
Steg 2: Ändra indexet i den andra raden
Därefter, i tabellens andra rad, ändrar vi fältets index till i+1 och fyller endast i det första attributet. Detta beror på att vi vid loop-utskrift behöver hämta nästa datapost från listan och visa den på nästa rad.
Till exempel fylls den andra raden i så här:
| Produktnamn | Specifikation / Modell | Kvantitet | Enhetspris | Totalt belopp | Anmärkning |
|---|---|---|---|---|---|
| {d.contract_items[i+1].product_name} |
I detta exempel ändrade vi [i] till [i+1], vilket gör att vi kan hämta nästa produktdata i listan.
Steg 3: Automatisk loop-utskrift vid mallrendering
När systemet bearbetar denna mall kommer det att agera enligt följande logik:
d.contract_items, och loopa för att fylla i varje rad i tabellformatet tills alla produktdetaljer har skrivits ut.i i varje rad kommer att öka, vilket säkerställer att varje rad visar olika produktinformation.


Vid denna punkt, avsluta den aktuella popup-rutan och klicka på "Ladda ner mall" för att få den genererade kompletta mallen.
Tips:
.doc eller andra format kan den behöva konverteras till .docx, beroende på plugin-stöd.Lycka till med användningen! Med funktionen "Mallutskrift" kan ni avsevärt spara repetitivt arbete inom avtalshantering, undvika manuella kopierings- och inklistringsfel, och uppnå standardiserad och automatiserad avtalsutskrift.