Ten dokument został przetłumaczony przez AI. W przypadku niedokładności, proszę odnieść się do wersji angielskiej
W scenariuszach łańcucha dostaw lub handlu często pojawia się potrzeba szybkiego generowania ustandaryzowanych „Umów dostawy i zakupu” oraz dynamicznego wypełniania ich treścią na podstawie informacji ze źródeł danych, takich jak dane kupujących, sprzedających i szczegóły produktów. Poniżej, na przykładzie uproszczonego przypadku użycia „Umowy”, pokażemy Państwu, jak skonfigurować i używać funkcji „Drukowanie z szablonu”, aby mapować dane do symboli zastępczych w szablonach umów, automatycznie generując w ten sposób ostateczny dokument umowy.
W naszym przykładzie istnieją zasadniczo następujące główne kolekcje (pomijając inne nieistotne pola):

Ponieważ obecny system obsługuje tylko drukowanie pojedynczych rekordów, klikniemy „Drukuj” na stronie „Szczegóły umowy”, a system automatycznie pobierze odpowiedni rekord z kolekcji contracts oraz powiązane informacje z kolekcji parties i wypełni nimi dokumenty Word lub PDF.
Proszę pamiętać, że nasza funkcja „Drukowanie z szablonu” to komercyjna wtyczka, którą należy zakupić i aktywować, aby móc wykonywać operacje drukowania.

Potwierdzenie aktywacji wtyczki:
Na dowolnej stronie proszę utworzyć blok szczegółów (np. dla użytkowników) i sprawdzić, czy w konfiguracji akcji dostępna jest opcja konfiguracji szablonu:


Proszę utworzyć zaprojektowane powyżej główne kolekcje dla podmiotów, umów i pozycji produktów (wystarczy wybrać kluczowe pola).
Contracts)| Kategoria pola | Nazwa wyświetlana pola | Nazwa pola | Interfejs pola |
|---|---|---|---|
| Pola PK i FK | |||
| ID | id | Liczba całkowita | |
| ID Kupującego | buyer_id | Liczba całkowita | |
| ID Sprzedającego | seller_id | Liczba całkowita | |
| Pola powiązań | |||
| Pozycje umowy | contract_items | Jeden do wielu | |
| Kupujący (Strona A) | buyer | Wiele do jednego | |
| Sprzedający (Strona B) | seller | Wiele do jednego | |
| Pola ogólne | |||
| Numer umowy | contract_no | Tekst jednowierszowy | |
| Data rozpoczęcia dostawy | start_date | Data i czas (ze strefą czasową) | |
| Data zakończenia dostawy | end_date | Data i czas (ze strefą czasową) | |
| Współczynnik zaliczki (%) | deposit_ratio | Procent | |
| Dni płatności po dostawie | payment_days_after | Liczba całkowita | |
| Nazwa konta bankowego (Beneficjent) | bank_account_name | Tekst jednowierszowy | |
| Nazwa banku | bank_name | Tekst jednowierszowy | |
| Numer konta bankowego (Beneficjent) | bank_account_number | Tekst jednowierszowy | |
| Całkowita kwota | total_amount | Liczba | |
| Kody walut | currency_codes | Wybór pojedynczy | |
| Współczynnik salda (%) | balance_ratio | Procent | |
| Dni salda po dostawie | balance_days_after | Liczba całkowita | |
| Miejsce dostawy | delivery_place | Tekst długi | |
| Nazwisko sygnatariusza Strony A | party_a_signatory_name | Tekst jednowierszowy | |
| Tytuł sygnatariusza Strony A | party_a_signatory_title | Tekst jednowierszowy | |
| Nazwisko sygnatariusza Strony B | party_b_signatory_name | Tekst jednowierszowy | |
| Tytuł sygnatariusza Strony B | party_b_signatory_title | Tekst jednowierszowy | |
| Pola systemowe | |||
| Utworzono o | createdAt | Utworzono o | |
| Utworzono przez | createdBy | Utworzono przez | |
| Ostatnia aktualizacja o | updatedAt | Ostatnia aktualizacja o | |
| Ostatnia aktualizacja przez | updatedBy | Ostatnia aktualizacja przez |
Parties)| Kategoria pola | Nazwa wyświetlana pola | Nazwa pola | Interfejs pola |
|---|---|---|---|
| Pola PK i FK | |||
| ID | id | Liczba całkowita | |
| Pola ogólne | |||
| Nazwa podmiotu | party_name | Tekst jednowierszowy | |
| Adres | address | Tekst jednowierszowy | |
| Osoba kontaktowa | contact_person | Tekst jednowierszowy | |
| Telefon kontaktowy | contact_phone | Telefon | |
| Stanowisko | position | Tekst jednowierszowy | |
| Strona internetowa | website | URL | |
| Pola systemowe | |||
| Utworzono o | createdAt | Utworzono o | |
| Utworzono przez | createdBy | Utworzono przez | |
| Ostatnia aktualizacja o | updatedAt | Ostatnia aktualizacja o | |
| Ostatnia aktualizacja przez | updatedBy | Ostatnia aktualizacja przez |
Contract Line Items)| Kategoria pola | Nazwa wyświetlana pola | Nazwa pola | Interfejs pola |
|---|---|---|---|
| Pola PK i FK | |||
| ID | id | Liczba całkowita | |
| ID Umowy | contract_id | Liczba całkowita | |
| Pola powiązań | |||
| Umowa | contract | Wiele do jednego | |
| Pola ogólne | |||
| Nazwa produktu | product_name | Tekst jednowierszowy | |
| Specyfikacja / Model | spec | Tekst jednowierszowy | |
| Ilość | quantity | Liczba całkowita | |
| Cena jednostkowa | unit_price | Liczba | |
| Całkowita kwota | total_amount | Liczba | |
| Data dostawy | delivery_date | Data i czas (ze strefą czasową) | |
| Uwagi | remark | Tekst długi | |
| Pola systemowe | |||
| Utworzono o | createdAt | Utworzono o | |
| Utworzono przez | createdBy | Utworzono przez | |
| Ostatnia aktualizacja o | updatedAt | Ostatnia aktualizacja o | |
| Ostatnia aktualizacja przez | updatedBy | Ostatnia aktualizacja przez |
Wprowadzanie przykładowych danych:


Konfiguracja reguł powiązań jest następująca, automatycznie obliczająca cenę całkowitą i płatności końcowe:

Proszę utworzyć blok widoku, po potwierdzeniu danych, włączyć akcję „Drukowanie z szablonu”:


Proszę dodać nową konfigurację szablonu, na przykład „Umowa dostawy i zakupu”:


Następnie przejdziemy do zakładki „Lista pól”, gdzie zobaczą Państwo wszystkie pola bieżącego obiektu. Po kliknięciu „Kopiuj” będą Państwo mogli rozpocząć wypełnianie szablonu.

Plik szablonu umowy Word
Proszę wcześniej przygotować wzór umowy (plik .docx), na przykład: SUPPLY AND PURCHASE CONTRACT.docx
W tym przykładzie przedstawiamy uproszczoną wersję „Umowy dostawy i zakupu”, która zawiera przykładowe symbole zastępcze:
{d.contract_no}: numer umowy{d.buyer.party_name}, {d.seller.party_name}: nazwy kupującego i sprzedającego{d.total_amount}: całkowita kwota umowyNastępnie mogą Państwo skopiować pola z utworzonej kolekcji i wkleić je do dokumentu Word.
Wypełnianie podstawowych pól:
Na przykład numer umowy na górze lub obiekt podmiotu podpisującego umowę. Proszę kliknąć „Kopiuj” i wkleić bezpośrednio w odpowiednie puste miejsce w umowie.


W szablonach często musimy formatować pola, zwłaszcza pola daty. Bezpośrednio skopiowany format daty jest zazwyczaj długi (np. Wed Jan 01 2025 00:00:00 GMT) i wymaga sformatowania, aby wyświetlić pożądany styl.
Dla pól daty można użyć funkcji formatD(), aby określić format wyjściowy:
Przykład:
Na przykład, jeśli oryginalne pole, które skopiowaliśmy, to {d.created_at}, a chcemy sformatować datę do formatu 2025-01-01, należy zmodyfikować to pole na:
Typowe style formatowania daty:
YYYY - Rok (cztery cyfry)MM - Miesiąc (dwie cyfry)DD - Dzień (dwie cyfry)HH - Godzina (format 24-godzinny)mm - Minutyss - SekundyPrzykład 2:
Załóżmy, że istnieje pole kwoty, takie jak {d.total_amount} w umowie. Możemy użyć funkcji formatN() do formatowania liczb, określając liczbę miejsc dziesiętnych i separator tysięcy.
Składnia:
2 oznacza zachowanie dwóch miejsc dziesiętnych.true lub false.Przykład 1: Formatowanie kwoty z separatorem tysięcy i dwoma miejscami dziesiętnymi
Spowoduje to sformatowanie d.amount do dwóch miejsc dziesiętnych i dodanie separatora tysięcy.
Przykład 2: Formatowanie kwoty do liczby całkowitej bez miejsc dziesiętnych
Spowoduje to sformatowanie d.amount do liczby całkowitej i dodanie separatora tysięcy.
Przykład 3: Formatowanie kwoty z dwoma miejscami dziesiętnymi, ale bez separatora tysięcy
Tutaj wyłączono separator tysięcy i zachowano tylko dwa miejsca dziesiętne.
Inne potrzeby formatowania kwot:
Dla pól tekstowych można użyć :upperCase, aby określić format tekstu, na przykład konwersję wielkości liter.
Składnia:
Typowe metody konwersji:
upperCase - Konwertuje na same wielkie literylowerCase - Konwertuje na same małe literyupperCase:ucFirst - Zmienia pierwszą literę na wielkąPrzykład:
Gdy musimy wydrukować tabelę zawierającą wiele pozycji podrzędnych (np. szczegóły produktów), zazwyczaj stosujemy drukowanie w pętli. W ten sposób system wygeneruje wiersz treści dla każdej pozycji na liście, aż wszystkie pozycje zostaną przetworzone.
Załóżmy, że mamy listę produktów (na przykład contract_items), która zawiera wiele obiektów produktów. Każdy obiekt produktu ma wiele atrybutów, takich jak nazwa produktu, specyfikacja, ilość, cena jednostkowa, całkowita kwota i uwagi.
Krok 1: Wypełnienie pól w pierwszym wierszu tabeli
Najpierw, w pierwszym wierszu tabeli (nie w nagłówku), bezpośrednio kopiujemy i wypełniamy zmienne szablonu. Zmienne te zostaną zastąpione odpowiednimi danymi i wyświetlone w wynikach.
Na przykład, pierwszy wiersz tabeli wygląda następująco:
| Nazwa produktu | Specyfikacja / Model | Ilość | Cena jednostkowa | Całkowita kwota | Uwagi |
|---|---|---|---|---|---|
| {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} |
Tutaj d.contract_items[i] reprezentuje i-tą pozycję na liście produktów, a i to indeks, który reprezentuje kolejność bieżącego produktu.
Krok 2: Modyfikacja indeksu w drugim wierszu
Następnie, w drugim wierszu tabeli, modyfikujemy indeks pola na i+1 i wypełniamy tylko pierwszy atrybut. Dzieje się tak, ponieważ podczas drukowania w pętli musimy pobrać kolejną pozycję danych z listy i wyświetlić ją w następnym wierszu.
Na przykład, drugi wiersz wypełniamy następująco:
| Nazwa produktu | Specyfikacja / Model | Ilość | Cena jednostkowa | Całkowita kwota | Uwagi |
|---|---|---|---|---|---|
| {d.contract_items[i+1].product_name} |
W tym przykładzie zmieniliśmy [i] na [i+1], dzięki czemu możemy uzyskać dane kolejnego produktu z listy.
Krok 3: Automatyczne drukowanie w pętli podczas renderowania szablonu
Gdy system przetwarza ten szablon, będzie działał zgodnie z następującą logiką:
d.contract_items, wypełniając w pętli każdy wiersz w formacie tabeli, aż wszystkie szczegóły produktów zostaną wydrukowane.Indeks i w każdym wierszu będzie się zwiększał, zapewniając, że każdy wiersz wyświetla inne informacje o produkcie.


W tym momencie proszę zamknąć bieżące okno podręczne i kliknąć „Pobierz szablon”, aby uzyskać wygenerowany, kompletny szablon.
Wskazówki:
.doc lub innych, może być konieczna konwersja do .docx, w zależności od obsługi wtyczki.Życzymy pomyślnego korzystania! Dzięki funkcji „Drukowanie z szablonu” mogą Państwo znacznie ograniczyć powtarzalne zadania w zarządzaniu umowami, uniknąć błędów wynikających z ręcznego kopiowania i wklejania oraz osiągnąć standaryzację i automatyzację generowania umów.