ข้ามไปยังเนื้อหา

ไวยากรณ์เทมเพลต

ตัวแปรคือตัวยึดตำแหน่งในเทมเพลตของคุณ ซึ่งจะถูกแทนที่ด้วยข้อมูลจริงจากเรกคอร์ดใน Lark Base

ใช้วงเล็บปีกกาคร่อมชื่อฟิลด์ที่ถูกต้อง:

{Field_Name}

ตัวอย่าง:

  • {Customer_Name} → “Acme Corp”
  • {Invoice_Date} → “2024-01-15”
  • {Total_Amount} → “1,500.00”
หมวด ประเภทฟิลด์ ผลลัพธ์เริ่มต้น
ข้อความ ข้อความธรรมดา, อีเมล, ฟิลด์บาร์โค้ด ตามเดิม
ตัวเลข ตัวเลข, สกุลเงิน, ความคืบหน้า (%), คะแนน รูปแบบของ Lark (เช่น $1,234.56)
วันที่/เวลา วันที่, เวลาที่สร้าง, เวลาที่แก้ไข รูปแบบของ Lark (ตามการตั้งค่าเขตเวลา)
ตัวเลือก ตัวเลือกเดี่ยว, หลายตัวเลือก ข้อความ / คั่นด้วยจุลภาค
บุคคล User, Created By, Modified By, Group ชื่อที่แสดง
ข้อมูลติดต่อ โทรศัพท์, URL หมายเลขโทรศัพท์ / URL
ช่องทำเครื่องหมาย ค่าใช่/ไม่ใช่ true / false
ไฟล์แนบ ไฟล์และรูปภาพ ดูรูปภาพแบบไดนามิก
เรกคอร์ดที่เชื่อมโยง เข้าถึงข้อมูลจากตารางที่เกี่ยวข้อง ดูเรกคอร์ดที่เชื่อมโยง
Lookup ค่าที่ดึงมาจากเรกคอร์ดที่เชื่อมโยง ค่าที่แปลงแล้ว
สูตร ฟิลด์คำนวณ (ข้อความ ตัวเลข วันที่) ขึ้นอยู่กับชนิดของผลลัพธ์

เข้าถึงฟิลด์ของเรกคอร์ดที่เชื่อมโยงด้วยเครื่องหมายจุด:

{Customer.Name}
{Customer.Address}
{Customer.Email}

ซ้อนได้ลึกสุด 5 ระดับ:

{Order.Customer.Company.Address.City}

คุณสมบัติเพิ่มเติมของฟิลด์ (เครื่องหมายจุด)

หัวข้อที่มีชื่อว่า “คุณสมบัติเพิ่มเติมของฟิลด์ (เครื่องหมายจุด)”

ฟิลด์บางประเภทมีคุณสมบัติย่อยให้เรียกใช้ผ่านเครื่องหมายจุด หากไม่ใช้จุด ฟิลด์จะแสดงค่าเริ่มต้น

{Website} → "https://example.com" (ที่อยู่ลิงก์)
{Website.text} → "Example Site" (ข้อความของลิงก์)
{Website.link} → "https://example.com" (ที่อยู่ลิงก์)

Created By และ Modified By เก็บผู้ใช้เพียงคนเดียว จึงใช้เครื่องหมายจุดได้ตรง ๆ ส่วนฟิลด์ User เป็นลิสต์เสมอ แม้จะมีคนเดียวก็ตาม ดังนั้น {Assignee.name} จะไม่ได้ค่า ให้ใช้การระบุลำดับหรือลูปแทน:

{Created_By} → "John Doe"
{Created_By.name} → "John Doe"
{Created_By.en_name} → "John Doe" (ชื่อภาษาอังกฤษ)
{Created_By.id} → "ou_abc123"
{Assignee} → "John Doe, Jane Roe"
{Assignee[0].name} → "John Doe"
{Assignee[0].en_name} → "John Doe" (ชื่อภาษาอังกฤษ)
{Assignee[0].id} → "ou_abc123" (ID ผู้ใช้ Lark)

สำหรับฟิลด์หลายบุคคล ให้ใช้ลูป:

{#Assignee}
{name} ({en_name})
{/Assignee}
{Office} → "Headquarters, 123 Main St, City"
{Office.name} → "Headquarters"
{Office.full_address} → "123 Main St, City, Country"
{Office.address} → "123 Main St"

ฟิลด์กลุ่มก็เป็นลิสต์เช่นกัน {Team.name} จึงไม่ได้ค่า ให้ใช้การระบุลำดับหรือลูปแทน:

{Team} → "Engineering, Design" (ชื่อกลุ่มคั่นด้วยจุลภาค)
{Team[0].name} → ชื่อกลุ่มแรก
{Team[0].id} → ID กลุ่มแรก

หากต้องการทุกกลุ่ม ให้ใช้ลูป:

{#Team}
{name} (ID: {id})
{/Team}

ฟิลด์หลายตัวเลือกสามารถวนลูป หรือเชื่อมค่าด้วยตัวคั่นที่กำหนดเองได้:

{Tags} → "Red, Blue, Green" (ค่าเริ่มต้นคั่นด้วยจุลภาค)
{Tags | join:" / "} → "Red / Blue / Green"
{#Tags}
- {.}
{/Tags}

ฟิลด์ตัวเลขและวันที่ (ฟิลเตอร์เขียนทับรูปแบบ)

หัวข้อที่มีชื่อว่า “ฟิลด์ตัวเลขและวันที่ (ฟิลเตอร์เขียนทับรูปแบบ)”

ฟิลด์ตัวเลขและวันที่/เวลาจะแสดงตามรูปแบบเริ่มต้นของ Lark เมื่อใช้ฟิลเตอร์ ระบบจะใช้ค่าดิบ (ตัวเลขจริงหรือ epoch timestamp) และเขียนทับรูปแบบของ Lark ทั้งหมด:

{Price} → "$1,234.50" (รูปแบบของ Lark)
{Price | number:2} → "1,234.50" (ตัวเลขดิบ จัดรูปแบบใหม่)
{Price | currency:"EUR":"de-DE"} → "1.234,50 €" (ตัวเลขดิบ locale เยอรมัน)
{Date} → "2026/02/26" (รูปแบบของ Lark)
{Date | date:"DD MMM YYYY"} → "26 Feb 2026" (timestamp ดิบ จัดรูปแบบใหม่)

ฟิลด์ที่ไม่มีฟิลเตอร์จะคงรูปแบบเดิมของ Lark เสมอ

สำหรับฟิลด์ที่เชื่อมกับหลายเรกคอร์ด ให้ใช้ไวยากรณ์ลูปเพื่อทำซ้ำเนื้อหาสำหรับแต่ละรายการ:

{#Line_Items}
Product: {Product_Name}
Quantity: {Quantity}
Price: {Price}
{/Line_Items}

{#Field} เปิดลูป และ {/Field} ปิดลูป ภายในลูปให้ใช้ชื่อฟิลด์โดยไม่ต้องใส่ชื่อฟิลด์แม่นำหน้า

คุณสามารถใช้ {/} แทนการพิมพ์ชื่อฟิลด์ซ้ำ:

{#Line_Items}
{Product_Name} - {Price}
{/}

เมื่อวางแท็กลูปไว้ในแถวของตาราง ทั้งแถวจะถูกทำซ้ำสำหรับแต่ละรายการ — เหมาะมากสำหรับตารางรายการสินค้า

Product Qty Price
{#Line_Items} {Product_Name} {Quantity} {Price} {/Line_Items}

สำหรับอาร์เรย์ที่เก็บค่าอย่างง่าย (ไม่ใช่อ็อบเจ็กต์) ให้ใช้ {.} เพื่ออ้างถึงรายการปัจจุบัน:

{#Tags}
{.}
{/Tags}

ภายในลูปใด ๆ จะมีตัวแปรพิเศษเหล่านี้ให้ใช้:

ตัวแปร คำอธิบาย ตัวอย่าง
{$index} ลำดับปัจจุบัน (เริ่มที่ 0) 0, 1, 2, …
{$num} หมายเลขแถว (เริ่มที่ 1) 1, 2, 3, …
{$first} เป็น true ที่รายการแรก แสดงค่า true / false
{$last} เป็น true ที่รายการสุดท้าย แสดงค่า true / false

ลูปสามารถซ้อนกันได้ ลูปด้านในยังเข้าถึงฟิลด์จากขอบเขตด้านนอกได้:

{#Departments}
Department: {Name}
{#Employees}
{Name} works in {Department.Name}
{/Employees}
{/Departments}

หากมีชื่อฟิลด์ซ้ำกันทั้งด้านในและด้านนอก ระบบจะให้ความสำคัญกับขอบเขตด้านใน

แสดงหรือซ่อนเนื้อหาตามค่าของฟิลด์

แสดงเนื้อหาเฉพาะเมื่อฟิลด์มีข้อมูล:

{#if Discount}
Discount applied: {Discount}
{/if}

แสดงเนื้อหาเฉพาะเมื่อฟิลด์ว่าง:

{#if !Notes}
No additional notes.
{/if}
{#if Status == "Approved"}
This invoice has been approved.
{/if}
{#if Status != "Draft"}
This document has been submitted.
{/if}

ฟิลเตอร์ใช้เปลี่ยนวิธีแสดงค่า โดยใช้เครื่องหมายไปป์ (|):

{Field | filterName}
{Field | filterName:"arg1":"arg2"}

ฟิลเตอร์จะทำงานหลังจากดึงค่ามาแล้ว และก่อนนำไปใส่ในเอกสาร หากไม่ใช้ฟิลเตอร์ ค่าจะแสดงตามรูปแบบเริ่มต้นของ Lark

ฟิลเตอร์ คำอธิบาย ตัวอย่าง ผลลัพธ์
upper ตัวพิมพ์ใหญ่ทั้งหมด {Name | upper} ACME CORP
lower ตัวพิมพ์เล็กทั้งหมด {Name | lower} acme corp
capitalize ขึ้นต้นแต่ละคำด้วยตัวพิมพ์ใหญ่ {Name | capitalize} Acme Corp
trim ตัดช่องว่างหน้า-หลัง {Name | trim} Acme Corp
truncate ตัดให้สั้นตามความยาว (ค่าเริ่มต้น 50) {Description | truncate:16} Lorem ipsum dolo...
pad เติมอักขระให้ครบ (ค่าเริ่มต้น 0) {$num | pad:3} 001

ฟิลเตอร์ตัวเลขทุกตัวรับพารามิเตอร์ locale เพิ่มเติมได้ เพื่อจัดรูปแบบตามภูมิภาค:

ฟิลเตอร์ พารามิเตอร์ ตัวอย่าง ผลลัพธ์
number ทศนิยม, locale {Price | number:2} 1,234.50
number ทศนิยม, locale {Price | number:2:"de-DE"} 1.234,50
currency รหัสสกุลเงิน, locale {Price | currency:"USD"} $1,234.50
currency รหัสสกุลเงิน, locale {Price | currency:"EUR":"de-DE"} 1.234,50 €
currency รหัสสกุลเงิน, locale {Price | currency:"JPY":"ja-JP"} ¥1,235
percent ทศนิยม, locale {Rate | percent:1} 45.6%
percent ทศนิยม, locale {Rate | percent:1:"de-DE"} 45,6 %

จัดรูปแบบวันที่ด้วยรูปแบบที่กำหนดเอง — มีประโยชน์เมื่อรูปแบบสำเร็จรูปของ Lark ไม่ตรงกับที่ต้องการ

ไวยากรณ์: {Field | date:"format":"timezone":"locale"}

พารามิเตอร์ทั้งหมดไม่บังคับ เขตเวลาเริ่มต้นคือ UTC และ locale เริ่มต้นคือ en-US

ฟิลเตอร์ พารามิเตอร์ ตัวอย่าง ผลลัพธ์
date รูปแบบ, เขตเวลา, locale {Date | date:"DD MMM YYYY"} 26 Feb 2026
date รูปแบบ, เขตเวลา, locale {Date | date:"dddd, DD MMMM YYYY"} Thursday, 26 February 2026
date รูปแบบ, เขตเวลา, locale {Date | date:"DD MMMM YYYY":"UTC":"fr-FR"} 26 février 2026
date รูปแบบ, เขตเวลา, locale {Date | date:"dddd, DD MMMM YYYY":"UTC":"de-DE"} Donnerstag, 26 Februar 2026

ตัวระบุรูปแบบวันที่ที่รองรับ:

ตัวระบุ ผลลัพธ์ ตัวอย่าง
YYYY ปีแบบ 4 หลัก 2026
MMMM ชื่อเดือนเต็ม (ตาม locale) February, février, Februar
MMM ชื่อเดือนย่อ (ตาม locale) Feb, fév, Feb
MM เดือนแบบ 2 หลัก 02
dddd ชื่อวันเต็ม (ตาม locale) Thursday, Donnerstag, 木曜日
ddd ชื่อวันย่อ (ตาม locale) Thu, Do,
DD วันที่แบบ 2 หลัก 26
HH ชั่วโมงแบบ 24 ชั่วโมง 15
mm นาที 30
ss วินาที 00

ตัวอย่าง:

{Invoice_Date | date:"DD MMM YYYY"} → 26 Feb 2026
{Invoice_Date | date:"YYYY-MM-DD"} → 2026-02-26
{Invoice_Date | date:"MM/DD/YYYY"} → 02/26/2026
{Invoice_Date | date:"DD/MM/YYYY":"Asia/Tokyo"} → 26/02/2026 (เขตเวลาโตเกียว)
{Invoice_Date | date:"dddd, DD MMMM YYYY":"UTC":"ja-JP"} → 木曜日, 26 2月 2026
{Invoice_Date | date:"DD MMMM YYYY":"UTC":"id-ID"} → 26 Februari 2026
ฟิลเตอร์ คำอธิบาย ตัวอย่าง ผลลัพธ์
join เชื่อมค่าในอาร์เรย์ (ค่าเริ่มต้น , ) {Tags | join:" / "} Red / Blue / Green
default ค่าสำรองเมื่อว่าง {Phone | default:"N/A"} N/A

ต่อฟิลเตอร์หลายตัวได้ด้วยไปป์ โดยทำงานจากซ้ายไปขวา:

{Name | trim | upper} → " hello " กลายเป็น "HELLO"
{$num | pad:3} → 1 กลายเป็น "001"
{Phone | default:"N/A" | upper} → null กลายเป็น "N/A"

ฟิลเตอร์ใช้ได้กับตัวแปรของลูปและการอ้างถึงรายการปัจจุบันด้วย:

{#Items}
#{$num | pad:3} - {Name | upper}
{/Items}
{#Tags}{. | capitalize}, {/Tags}

แทนที่รูปภาพตัวยึดตำแหน่งด้วยรูปจริงจากฟิลด์ไฟล์แนบของ Lark:

  1. แทรกรูปภาพใดก็ได้ลงในเทมเพลต Word (รูปนี้คือตัวยึดตำแหน่ง)
  2. คลิกขวาที่รูป → Edit Alt Text
  3. ในช่องคำอธิบาย Alt Text ให้พิมพ์ {FieldName}
  4. บันทึกเทมเพลต

รูปตัวยึดตำแหน่งจะถูกแทนที่ด้วยรูปจริงจากฟิลด์ไฟล์แนบ โดยคงขนาดของตัวยึดตำแหน่งไว้

สำหรับฟิลด์ที่มีไฟล์แนบหลายไฟล์ ให้ใช้การระบุลำดับ:

{Photo} → รูปแรก (เท่ากับ {Photo[0]})
{Photo[1]} → รูปที่สอง
{Photo[2]} → รูปที่สาม

สำหรับฟิลด์ที่มีจำนวนไฟล์แนบไม่แน่นอน ให้ใช้ไวยากรณ์ลูปโดยตั้ง {.} เป็น alt text ของรูป ไฟล์แนบแต่ละไฟล์จะขยายเป็นสำเนาของตัวยึดตำแหน่งเอง:

{#Product_Photos}
[รูปภาพที่มี alt text: {.}]
{/Product_Photos}

เมื่ออยู่ในตาราง ไฟล์แนบแต่ละไฟล์จะได้แถวของตัวเอง:

# Photo Filename
{#Product_Photos} {$num} alt ของรูป: {.} {name} {/Product_Photos}

คุณสมบัติที่ใช้ได้ภายในลูป:

ตัวแปร คำอธิบาย ตัวอย่าง
{name} ชื่อไฟล์ photo1.jpg
{type} ชนิด MIME image/jpeg
{size} ขนาดไฟล์ (ไบต์) 204800

ตัวยึดตำแหน่งรูปภาพใช้ได้ภายในบล็อกลูปเช่นกัน แต่ละรอบจะดึงรูปของรายการนั้น:

{#Employees}
Name: {Name}
Photo: [รูปภาพที่มี alt text: {Photo}]
{/Employees}

สร้าง QR โค้ดและบาร์โค้ดจากค่าของฟิลด์ ตั้งค่าเหมือนกับรูปภาพแบบไดนามิก — ผ่าน Alt Text ของรูป

{QR:FieldName}

ตัวอย่าง: {QR:Order_ID} จะสร้าง QR โค้ดที่บรรจุค่าของ Order_ID

ไวยากรณ์ ชนิด หมายเหตุ
{BARCODE:FieldName} Code128 ค่าเริ่มต้น รองรับตัวอักษรและตัวเลข
{BARCODE128:FieldName} Code128 ระบุ Code128 อย่างชัดเจน
{BARCODE39:FieldName} Code39 เฉพาะตัวพิมพ์ใหญ่และตัวเลข
{BARCODEEAN13:FieldName} EAN-13 รหัสสินค้าค้าปลีก 13 หลัก
{BARCODEEAN8:FieldName} EAN-8 EAN แบบสั้น 8 หลัก
{BARCODEUPCA:FieldName} UPC-A ค้าปลีกอเมริกาเหนือ 12 หลัก
{BARCODEUPCE:FieldName} UPC-E UPC แบบย่อ
{BARCODEITF14:FieldName} ITF-14 รหัสขนส่ง / ลังสินค้า
{BARCODEDATAMATRIX:FieldName} DataMatrix 2 มิติ ความหนาแน่นสูง
{BARCODEPDF417:FieldName} PDF417 2 มิติ แบบเส้นซ้อนชั้น

คำนำหน้าไม่แยกตัวพิมพ์เล็ก-ใหญ่ — {qr:Field} และ {QR:Field} ใช้ได้เหมือนกัน

ไวยากรณ์ตัวยึดตำแหน่งทั้งหมดใช้ได้ในหัวกระดาษและท้ายกระดาษเช่นเดียวกับในเนื้อหาหลัก

การใช้งานที่พบบ่อย:

  • ชื่อบริษัทหรือโลโก้ในหัวกระดาษ
  • เลขที่เอกสารหรือวันที่ในท้ายกระดาษ
  • ป้ายกำกับแบบไดนามิก เช่น Invoice for {Customer_Name}

วิธีเพิ่ม: Insert → Header/Footer → Edit แล้วพิมพ์ตัวยึดตำแหน่ง เช่น {Field_Name}

ไวยากรณ์ คำอธิบาย
{Field} ตัวแปรทั่วไป
{Field.Nested} ฟิลด์ของเรกคอร์ดที่เชื่อมโยง (เครื่องหมายจุด)
{URL.text} / {URL.link} คุณสมบัติย่อยของ URL
{Created_By.name} / {Assignee[0].name} คุณสมบัติย่อยของผู้ใช้
{Location.name} / {Location.full_address} คุณสมบัติย่อยของตำแหน่งที่ตั้ง
{Team[0].name} / {Team[0].id} คุณสมบัติย่อยของกลุ่ม
{#Field}...{/Field} วนลูปฟิลด์หลายค่า
{/} แท็กปิดแบบย่อ (ปิดลูปที่ใกล้ที่สุด)
{.} รายการปัจจุบันในลูป (อาร์เรย์อย่างง่าย)
{$index} ลำดับในลูป (เริ่มที่ 0)
{$num} หมายเลขแถว (เริ่มที่ 1)
{$first} / {$last} บูลีนรายการแรก/สุดท้าย
{#if Field}...{/if} เงื่อนไข (มีค่า)
{#if !Field}...{/if} เงื่อนไข (ว่าง)
{#if Field == "val"}...{/if} เงื่อนไข (เท่ากับ)
{#if Field != "val"}...{/if} เงื่อนไข (ไม่เท่ากับ)
{Field | upper} ฟิลเตอร์: ตัวพิมพ์ใหญ่
{Field | lower} ฟิลเตอร์: ตัวพิมพ์เล็ก
{Field | capitalize} ฟิลเตอร์: ขึ้นต้นคำด้วยตัวพิมพ์ใหญ่
{Field | trim} ฟิลเตอร์: ตัดช่องว่าง
{Field | truncate:30} ฟิลเตอร์: ตัดสั้นพร้อมจุดไข่ปลา
{Field | pad:3} ฟิลเตอร์: เติมศูนย์
{Field | number:2} ฟิลเตอร์: ตัวเลขพร้อมทศนิยม
{Field | number:2:"de-DE"} ฟิลเตอร์: ตัวเลขตาม locale
{Field | currency:"USD"} ฟิลเตอร์: รูปแบบสกุลเงิน
{Field | currency:"EUR":"de-DE"} ฟิลเตอร์: สกุลเงินตาม locale
{Field | percent:1} ฟิลเตอร์: เปอร์เซ็นต์
{Field | date:"DD MMM YYYY"} ฟิลเตอร์: รูปแบบวันที่กำหนดเอง
{Field | date:"dddd, MMMM DD":"UTC":"fr-FR"} ฟิลเตอร์: วันที่ตาม locale
{Field | join:" / "} ฟิลเตอร์: เชื่อมอาร์เรย์ด้วยตัวคั่น
{Field | default:"N/A"} ฟิลเตอร์: ค่าสำรอง
{Field | trim | upper} ต่อฟิลเตอร์ (ซ้ายไปขวา)
{Photo} / {Photo[1]} รูปภาพ (ผ่าน Alt Text)
{QR:Field} QR โค้ด (ผ่าน Alt Text)
{BARCODE:Field} บาร์โค้ด (ผ่าน Alt Text)