Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
Dalam skenario rantai pasok atau perdagangan, seringkali diperlukan untuk dengan cepat membuat "Kontrak Pengadaan dan Pembelian" yang terstandardisasi dan mengisi konten secara dinamis berdasarkan informasi dari sumber data seperti pembeli, penjual, detail produk, dan lainnya. Berikut ini, kami akan menggunakan contoh kasus penggunaan "Kontrak" yang disederhanakan untuk menunjukkan kepada Anda cara mengonfigurasi dan menggunakan fitur "Cetak Template" untuk memetakan informasi data ke placeholder dalam template kontrak, sehingga dokumen kontrak akhir dapat dibuat secara otomatis.
Dalam contoh ini, secara garis besar terdapat koleksi-koleksi utama berikut (dengan mengabaikan kolom lain yang tidak relevan):

Karena sistem saat ini hanya mendukung pencetakan satu catatan, kami akan mengeklik "Cetak" pada halaman "Detail Kontrak", dan sistem akan secara otomatis mengambil catatan contracts yang sesuai, serta informasi parties terkait dan lainnya, lalu mengisinya ke dalam dokumen Word atau PDF.
Perlu diketahui, plugin "Cetak Template" kami adalah plugin komersial yang perlu dibeli dan diaktifkan sebelum operasi pencetakan dapat dilakukan.

Konfirmasi Aktivasi Plugin:
Pada halaman mana pun, buat blok detail (misalnya users), dan periksa apakah ada opsi konfigurasi template yang sesuai dalam konfigurasi aksi:


Buat koleksi entitas utama, koleksi kontrak, dan koleksi item produk yang dirancang di atas (cukup pilih kolom inti).
Contracts)| Kategori Kolom | Nama Tampilan Kolom | Nama Kolom | Antarmuka Kolom |
|---|---|---|---|
| Kolom PK & FK | |||
| ID | id | Bilangan Bulat | |
| ID Pembeli | buyer_id | Bilangan Bulat | |
| ID Penjual | seller_id | Bilangan Bulat | |
| Kolom Asosiasi | |||
| Item Kontrak | contract_items | Satu ke Banyak | |
| Pembeli (Pihak A) | buyer | Banyak ke Satu | |
| Penjual (Pihak B) | seller | Banyak ke Satu | |
| Kolom Umum | |||
| Nomor Kontrak | contract_no | Teks Satu Baris | |
| Tanggal Mulai Pengiriman | start_date | Tanggal Waktu (dengan zona waktu) | |
| Tanggal Akhir Pengiriman | end_date | Tanggal Waktu (dengan zona waktu) | |
| Rasio Deposit (%) | deposit_ratio | Persen | |
| Hari Pembayaran Setelah Pengiriman | payment_days_after | Bilangan Bulat | |
| Nama Rekening Bank (Penerima) | bank_account_name | Teks Satu Baris | |
| Nama Bank | bank_name | Teks Satu Baris | |
| Nomor Rekening Bank (Penerima) | bank_account_number | Teks Satu Baris | |
| Jumlah Total | total_amount | Angka | |
| Kode Mata Uang | currency_codes | Pilihan Tunggal | |
| Rasio Saldo (%) | balance_ratio | Persen | |
| Hari Saldo Setelah Pengiriman | balance_days_after | Bilangan Bulat | |
| Tempat Pengiriman | delivery_place | Teks Panjang | |
| Nama Penandatangan Pihak A | party_a_signatory_name | Teks Satu Baris | |
| Jabatan Penandatangan Pihak A | party_a_signatory_title | Teks Satu Baris | |
| Nama Penandatangan Pihak B | party_b_signatory_name | Teks Satu Baris | |
| Jabatan Penandatangan Pihak B | party_b_signatory_title | Teks Satu Baris | |
| Kolom Sistem | |||
| Dibuat Pada | createdAt | Dibuat pada | |
| Dibuat Oleh | createdBy | Dibuat oleh | |
| Terakhir Diperbarui Pada | updatedAt | Terakhir diperbarui pada | |
| Terakhir Diperbarui Oleh | updatedBy | Terakhir diperbarui oleh |
Parties)| Kategori Kolom | Nama Tampilan Kolom | Nama Kolom | Antarmuka Kolom |
|---|---|---|---|
| Kolom PK & FK | |||
| ID | id | Bilangan Bulat | |
| Kolom Umum | |||
| Nama Pihak | party_name | Teks Satu Baris | |
| Alamat | address | Teks Satu Baris | |
| Kontak Person | contact_person | Teks Satu Baris | |
| Telepon Kontak | contact_phone | Telepon | |
| Jabatan | position | Teks Satu Baris | |
| Situs Web | website | URL | |
| Kolom Sistem | |||
| Dibuat Pada | createdAt | Dibuat pada | |
| Dibuat Oleh | createdBy | Dibuat oleh | |
| Terakhir Diperbarui Pada | updatedAt | Terakhir diperbarui pada | |
| Terakhir Diperbarui Oleh | updatedBy | Terakhir diperbarui oleh |
Contract Line Items)| Kategori Kolom | Nama Tampilan Kolom | Nama Kolom | Antarmuka Kolom |
|---|---|---|---|
| Kolom PK & FK | |||
| ID | id | Bilangan Bulat | |
| ID Kontrak | contract_id | Bilangan Bulat | |
| Kolom Asosiasi | |||
| Kontrak | contract | Banyak ke Satu | |
| Kolom Umum | |||
| Nama Produk | product_name | Teks Satu Baris | |
| Spesifikasi / Model | spec | Teks Satu Baris | |
| Kuantitas | quantity | Bilangan Bulat | |
| Harga Satuan | unit_price | Angka | |
| Jumlah Total | total_amount | Angka | |
| Tanggal Pengiriman | delivery_date | Tanggal Waktu (dengan zona waktu) | |
| Catatan | remark | Teks Panjang | |
| Kolom Sistem | |||
| Dibuat Pada | createdAt | Dibuat pada | |
| Dibuat Oleh | createdBy | Dibuat oleh | |
| Terakhir Diperbarui Pada | updatedAt | Terakhir diperbarui pada | |
| Terakhir Diperbarui Oleh | updatedBy | Terakhir diperbarui oleh |
Masukkan Data Contoh:


Konfigurasikan aturan keterkaitan sebagai berikut, untuk secara otomatis menghitung total harga dan pembayaran sisa:

Buat blok tampilan, setelah mengonfirmasi data, aktifkan aksi "Cetak Template":


Tambahkan konfigurasi template baru, misalnya "Kontrak Pengadaan dan Pembelian":


Selanjutnya, kita akan masuk ke tab daftar kolom, di mana kita dapat melihat semua kolom dari objek saat ini. Setelah mengeklik "Salin", kita dapat mulai mengisi template.

Berkas Template Kontrak Word
Siapkan template kontrak (.docx) terlebih dahulu, contohnya: SUPPLY AND PURCHASE CONTRACT.docx
Dalam contoh ini, kami menyajikan versi sederhana dari "Kontrak Pengadaan dan Pembelian", yang berisi placeholder contoh:
{d.contract_no}: Nomor kontrak{d.buyer.party_name}, {d.seller.party_name}: Nama pembeli, nama penjual{d.total_amount}: Jumlah total kontrakSelanjutnya, Anda dapat menyalin kolom dari koleksi yang telah Anda buat dan menempelkannya ke dalam Word.
Pengisian Kolom Dasar:
Misalnya, nomor kontrak di bagian atas, atau objek entitas penandatangan kontrak. Kita cukup mengeklik "Salin" dan menempelkannya langsung ke ruang kosong yang sesuai di kontrak.


Dalam template, kita sering perlu memformat kolom, terutama kolom tanggal. Format tanggal yang disalin langsung biasanya panjang (misalnya Wed Jan 01 2025 00:00:00 GMT), dan perlu diformat untuk menampilkan gaya yang kita inginkan.
Untuk kolom tanggal, Anda dapat menggunakan fungsi formatD() untuk menentukan format keluaran:
Contoh:
Misalnya, jika kolom asli yang kita salin adalah {d.created_at}, dan kita perlu memformat tanggal menjadi format 2025-01-01, maka ubah kolom ini menjadi:
Gaya Pemformatan Tanggal Umum:
YYYY - Tahun (empat digit)MM - Bulan (dua digit)DD - Tanggal (dua digit)HH - Jam (format 24 jam)mm - Menitss - DetikContoh 2:
Misalkan ada kolom nominal, seperti {d.total_amount} dalam kontrak. Kita dapat menggunakan fungsi formatN() untuk memformat angka, menentukan jumlah desimal dan pemisah ribuan.
Sintaks:
2 berarti mempertahankan dua angka desimal.true atau false.Contoh 1: Memformat nominal dengan pemisah ribuan dan dua angka desimal
Ini akan memformat d.amount menjadi dua angka desimal dan menambahkan pemisah ribuan.
Contoh 2: Memformat nominal menjadi bilangan bulat tanpa angka desimal
Ini akan memformat d.amount menjadi bilangan bulat dan menambahkan pemisah ribuan.
Contoh 3: Memformat nominal dengan dua angka desimal tetapi tanpa pemisah ribuan
Di sini, pemisah ribuan dinonaktifkan, dan hanya dua angka desimal yang dipertahankan.
Kebutuhan Pemformatan Nominal Lainnya:
Untuk kolom string, Anda dapat menggunakan :upperCase untuk menentukan format teks, seperti konversi huruf besar/kecil.
Sintaks:
Metode Konversi Umum:
upperCase - Mengonversi ke huruf besar semualowerCase - Mengonversi ke huruf kecil semuaupperCase:ucFirst - Mengkapitalisasi huruf pertamaContoh:
Ketika kita perlu mencetak tabel yang berisi beberapa sub-item (misalnya detail produk), biasanya diperlukan metode pencetakan berulang. Dengan cara ini, sistem akan menghasilkan satu baris konten untuk setiap item dalam daftar, hingga semua item selesai diproses.
Misalkan kita memiliki daftar produk (misalnya contract_items), yang berisi beberapa objek produk. Setiap objek produk memiliki beberapa atribut, seperti nama produk, spesifikasi, kuantitas, harga satuan, jumlah total, dan catatan.
Langkah 1: Isi Kolom pada Baris Pertama Tabel
Pertama, pada baris pertama tabel (bukan header), kita langsung menyalin dan mengisi variabel template. Variabel-variabel ini akan diganti dengan data yang sesuai dan ditampilkan dalam keluaran.
Misalnya, baris pertama tabel adalah sebagai berikut:
| Product Name | Specification / Model | Quantity | Unit Price | Total Amount | Remark |
|---|---|---|---|---|---|
| {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} |
Di sini, d.contract_items[i] mewakili item ke-i dalam daftar produk, dan i adalah indeks yang mewakili urutan produk saat ini.
Langkah 2: Ubah Indeks pada Baris Kedua
Selanjutnya, pada baris kedua tabel, kita akan mengubah indeks kolom menjadi i+1, dan cukup mengisi atribut pertama. Ini karena saat pencetakan berulang, kita perlu mengambil data item berikutnya dari daftar dan menampilkannya di baris berikutnya.
Misalnya, baris kedua diisi sebagai berikut:
| Product Name | Specification / Model | Quantity | Unit Price | Total Amount | Remark |
|---|---|---|---|---|---|
| {d.contract_items[i+1].product_name} |
Dalam contoh ini, kita mengubah [i] menjadi [i+1], sehingga kita bisa mendapatkan data produk berikutnya dalam daftar.
Langkah 3: Pencetakan Berulang Otomatis Saat Rendering Template
Ketika sistem memproses template ini, ia akan beroperasi sesuai dengan logika berikut:
d.contract_items, mengisi setiap baris secara berulang dalam format tabel hingga semua detail produk selesai dicetak.Nilai i di setiap baris akan bertambah, memastikan bahwa setiap baris menampilkan informasi produk yang berbeda.


Pada titik ini, keluar dari popup saat ini dan klik "Unduh template" untuk mendapatkan template lengkap yang telah dibuat.
Tips:
.doc atau format lain, mungkin perlu dikonversi ke .docx, tergantung pada dukungan plugin.Selamat menggunakan! Dengan fitur "Cetak Template", Anda dapat sangat menghemat pekerjaan berulang dalam manajemen kontrak, menghindari kesalahan penyalinan manual, dan mencapai standardisasi serta keluaran kontrak otomatis.