logologo
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
เริ่มต้น
คู่มือ
การพัฒนา
ปลั๊กอิน
API
logologo
ภาพรวม
คำอธิบายการกำหนดค่า

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

การใช้งานพื้นฐาน
การวนซ้ำ

เครื่องมือจัดรูปแบบ

ภาพรวม
การจัดรูปแบบข้อความ
การจัดรูปแบบตัวเลข
การจัดรูปแบบสกุลเงิน
การจัดรูปแบบวันที่
การจัดรูปแบบช่วงเวลา
การจัดรูปแบบอาร์เรย์

ฟังก์ชันขั้นสูง

การกำหนดเงื่อนไข
คุณสมบัติขั้นสูง
คำถามที่พบบ่อย
กรณีการใช้งาน
Previous Pageการใช้งานพื้นฐาน
Next Pageเครื่องมือจัดรูปแบบ
TIP

เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ

#การวนซ้ำ (Loop Handling)

การวนซ้ำใช้สำหรับแสดงผลข้อมูลซ้ำๆ จากอาร์เรย์หรืออ็อบเจกต์ โดยการกำหนดจุดเริ่มต้นและจุดสิ้นสุดของการวนซ้ำ เพื่อระบุเนื้อหาที่ต้องการให้ทำซ้ำครับ/ค่ะ ด้านล่างนี้จะอธิบายสถานการณ์ทั่วไปหลายกรณีครับ/ค่ะ

#การวนซ้ำอาร์เรย์ (Iterating over Arrays)

#1. คำอธิบายไวยากรณ์

  • ใช้แท็ก {d.array[i].property} เพื่อกำหนดรายการที่กำลังวนซ้ำอยู่ และใช้ {d.array[i+1].property} เพื่อระบุรายการถัดไปสำหรับกำหนดขอบเขตการวนซ้ำครับ/ค่ะ
  • ในระหว่างการวนซ้ำ ระบบจะใช้บรรทัดแรก (ส่วน [i]) เป็นเทมเพลตสำหรับการทำซ้ำโดยอัตโนมัติ คุณเพียงแค่ต้องเขียนตัวอย่างการวนซ้ำเพียงครั้งเดียวในเทมเพลตครับ/ค่ะ

รูปแบบไวยากรณ์ตัวอย่าง:

{d.arrayName[i].property}
{d.arrayName[i+1].property}

#2. ตัวอย่าง: การวนซ้ำอาร์เรย์แบบง่าย

#ข้อมูล
{
  "cars": [
    { "brand": "Toyota", "id": 1 },
    { "brand": "Hyundai", "id": 2 },
    { "brand": "BMW",    "id": 3 },
    { "brand": "Peugeot","id": 4 }
  ]
}
#เทมเพลต
Carsid
{d.cars[i].brand}{d.cars[i].id}
{d.cars[i+1].brand}
#ผลลัพธ์
Carsid
Toyota1
Hyundai2
BMW3
Peugeot4

#3. ตัวอย่าง: การวนซ้ำอาร์เรย์แบบซ้อนกัน

เหมาะสำหรับกรณีที่อาร์เรย์มีการซ้อนอาร์เรย์อยู่ภายใน และสามารถซ้อนกันได้ไม่จำกัดระดับครับ/ค่ะ

#ข้อมูล
[
  {
    "brand": "Toyota",
    "models": [
      { "size": "Prius 4", "power": 125 },
      { "size": "Prius 5", "power": 139 }
    ]
  },
  {
    "brand": "Kia",
    "models": [
      { "size": "EV4", "power": 450 },
      { "size": "EV6", "power": 500 }
    ]
  }
]
#เทมเพลต
{d[i].brand}

Models
{d[i].models[i].size} - {d[i].models[i].power}
{d[i].models[i+1].size}

{d[i+1].brand}
#ผลลัพธ์
Toyota

Models
Prius 4 - 125
Prius 5 - 139

Kia

#4. ตัวอย่าง: การวนซ้ำแบบสองทิศทาง (ฟีเจอร์ขั้นสูง, v4.8.0+)

การวนซ้ำแบบสองทิศทางช่วยให้สามารถวนซ้ำทั้งในแถวและคอลัมน์ได้พร้อมกัน ซึ่งเหมาะสำหรับการสร้างตารางเปรียบเทียบและการจัดวางที่ซับซ้อนอื่นๆ ครับ/ค่ะ (หมายเหตุ: ปัจจุบันบางรูปแบบรองรับเฉพาะในเทมเพลต DOCX, HTML และ MD อย่างเป็นทางการเท่านั้นครับ/ค่ะ)

#ข้อมูล
{
  "titles": [
    { "name": "Kia" },
    { "name": "Toyota" },
    { "name": "Hopium" }
  ],
  "cars": [
    { "models": [ "EV3", "Prius 1", "Prototype" ] },
    { "models": [ "EV4", "Prius 2", "" ] },
    { "models": [ "EV6", "Prius 3", "" ] }
  ]
}
#เทมเพลต
{d.titles[i].name}{d.titles[i+1].name}
{d.cars[i].models[i]}{d.cars[i].models[i+1]}
{d.cars[i+1].models[i]}
#ผลลัพธ์
KiaToyotaHopium
EV3Prius 1Prototype
EV4Prius 2
EV6Prius 3

#5. ตัวอย่าง: การเข้าถึงค่าตัววนซ้ำ (Loop Iterator) (v4.0.0+)

ภายในลูป คุณสามารถเข้าถึงค่าดัชนีของการวนซ้ำปัจจุบันได้โดยตรง ซึ่งช่วยให้ตอบสนองความต้องการด้านการจัดรูปแบบพิเศษได้ง่ายขึ้นครับ/ค่ะ

#ตัวอย่างเทมเพลต
{d[i].cars[i].other.wheels[i].tire.subObject:add(.i):add(..i):add(...i)}

หมายเหตุ: จำนวนจุดใช้เพื่อระบุระดับของค่าดัชนีที่แตกต่างกัน (เช่น .i แทนระดับปัจจุบัน ส่วน ..i แทนระดับก่อนหน้า) ขณะนี้มีปัญหาเกี่ยวกับการเรียงลำดับย้อนกลับ โปรดดูรายละเอียดในเอกสารทางการครับ/ค่ะ

#การวนซ้ำอ็อบเจกต์ (Iterating over Objects)

#1. คำอธิบายไวยากรณ์

  • สำหรับคุณสมบัติ (property) ในอ็อบเจกต์ คุณสามารถใช้ .att เพื่อรับชื่อคุณสมบัติ และใช้ .val เพื่อรับค่าคุณสมบัติได้ครับ/ค่ะ
  • ในระหว่างการวนซ้ำ แต่ละครั้งจะวนซ้ำไปทีละรายการคุณสมบัติครับ/ค่ะ

รูปแบบไวยากรณ์ตัวอย่าง:

{d.objectName[i].att}  // ชื่อคุณสมบัติ
{d.objectName[i].val}  // ค่าคุณสมบัติ

#2. ตัวอย่าง: การวนซ้ำคุณสมบัติของอ็อบเจกต์

#ข้อมูล
{
  "myObject": {
    "paul": "10",
    "jack": "20",
    "bob":  "30"
  }
}
#เทมเพลต
People namePeople age
{d.myObject[i].att}{d.myObject[i].val}
{d.myObject[i+1].att}{d.myObject[i+1].val}
#ผลลัพธ์
People namePeople age
paul10
jack20
bob30

#การจัดเรียง (Sorting)

การใช้ฟังก์ชันการจัดเรียง ช่วยให้คุณสามารถจัดเรียงข้อมูลอาร์เรย์ได้โดยตรงภายในเทมเพลตครับ/ค่ะ

#1. คำอธิบายไวยากรณ์: การจัดเรียงจากน้อยไปมาก

  • ใช้คุณสมบัติเป็นเกณฑ์ในการจัดเรียงภายในแท็กการวนซ้ำ รูปแบบไวยากรณ์คือ:
    {d.array[sortingAttribute, i].property}
    {d.array[sortingAttribute+1, i+1].property}
  • หากต้องการจัดเรียงหลายเกณฑ์ คุณสามารถคั่นคุณสมบัติการจัดเรียงหลายรายการด้วยเครื่องหมายจุลภาคภายในวงเล็บเหลี่ยมได้ครับ/ค่ะ

#2. ตัวอย่าง: การจัดเรียงตามคุณสมบัติที่เป็นตัวเลข

#ข้อมูล
{
  "cars": [
    { "brand": "Ferrari", "power": 3 },
    { "brand": "Peugeot", "power": 1 },
    { "brand": "BMW",     "power": 2 },
    { "brand": "Lexus",   "power": 1 }
  ]
}
#เทมเพลต
Cars
{d.cars[power, i].brand}
{d.cars[power+1, i+1].brand}
#ผลลัพธ์
Cars
Peugeot
Lexus
BMW
Ferrari

#3. ตัวอย่าง: การจัดเรียงหลายคุณสมบัติ

#ข้อมูล
{
  "cars": [
    { "brand": "Ferrari", "power": 3, "sub": { "size": 1 } },
    { "brand": "Aptera",  "power": 1, "sub": { "size": 20 } },
    { "brand": "Peugeot", "power": 1, "sub": { "size": 20 } },
    { "brand": "BMW",     "power": 2, "sub": { "size": 1 } },
    { "brand": "Kia",     "power": 1, "sub": { "size": 10 } }
  ]
}
#เทมเพลต
Cars
{d.cars[power, sub.size, i].brand}
{d.cars[power+1, sub.size+1, i+1].brand}
#ผลลัพธ์
Cars
Kia
Aptera
Peugeot
BMW
Ferrari

#การกรองข้อมูล (Filtering)

การกรองข้อมูลใช้สำหรับกรองแถวข้อมูลในการวนซ้ำตามเงื่อนไขที่กำหนดครับ/ค่ะ

#1. คำอธิบายไวยากรณ์: การกรองข้อมูลตัวเลข

  • เพิ่มเงื่อนไขในแท็กการวนซ้ำ (เช่น age > 19) รูปแบบไวยากรณ์คือ:
    {d.array[i, condition].property}

#2. ตัวอย่าง: การกรองข้อมูลตัวเลข

#ข้อมูล
[
  { "name": "John",   "age": 20 },
  { "name": "Eva",    "age": 18 },
  { "name": "Bob",    "age": 25 },
  { "name": "Charly", "age": 30 }
]
#เทมเพลต
People
{d[i, age > 19, age < 30].name}
{d[i+1, age > 19, age < 30].name}
#ผลลัพธ์
People
John
Bob

#3. คำอธิบายไวยากรณ์: การกรองข้อมูลสตริง

  • ระบุเงื่อนไขสตริงโดยใช้เครื่องหมายอัญประกาศเดี่ยว ตัวอย่างรูปแบบ:
    {d.array[i, type='rocket'].name}

#4. ตัวอย่าง: การกรองข้อมูลสตริง

#ข้อมูล
[
  { "name": "Falcon 9",    "type": "rocket" },
  { "name": "Model S",     "type": "car" },
  { "name": "Model 3",     "type": "car" },
  { "name": "Falcon Heavy","type": "rocket" }
]
#เทมเพลต
People
{d[i, type='rocket'].name}
{d[i+1, type='rocket'].name}
#ผลลัพธ์
People
Falcon 9
Falcon Heavy

#5. คำอธิบายไวยากรณ์: การกรองข้อมูล N รายการแรก

  • คุณสามารถใช้ดัชนีการวนซ้ำ i เพื่อกรองเอา N รายการแรกออกมาได้ ตัวอย่างไวยากรณ์:
    {d.array[i, i < N].property}

#6. ตัวอย่าง: การกรองข้อมูลสองรายการแรก

#ข้อมูล
[
  { "name": "Falcon 9" },
  { "name": "Model S" },
  { "name": "Model 3" },
  { "name": "Falcon Heavy" }
]
#เทมเพลต
People
{d[i, i < 2].name}
{d[i+1, i < 2].name}
#ผลลัพธ์
People
Falcon 9
Model S

#7. คำอธิบายไวยากรณ์: การยกเว้น N รายการสุดท้าย

  • ใช้ดัชนีติดลบ i เพื่ออ้างถึงรายการจากท้ายสุด เช่น:
    • {d.array[i=-1].property} ใช้สำหรับเรียกดูรายการสุดท้าย
    • {d.array[i, i!=-1].property} ใช้สำหรับยกเว้นรายการสุดท้าย

#8. ตัวอย่าง: การยกเว้นรายการสุดท้ายและสองรายการสุดท้าย

#ข้อมูล
[
  { "name": "Falcon 9" },
  { "name": "Model S" },
  { "name": "Model 3" },
  { "name": "Falcon Heavy" }
]
#เทมเพลต
最后一项: {d[i=-1].name}

排除最后一项:
{d[i, i!=-1].name}
{d[i+1, i!=-1].name}

排除最后两项:
{d[i, i<-2].name}
{d[i+1, i<-2].name}
#ผลลัพธ์
最后一项: Falcon Heavy

排除最后一项:
Falcon 9
Model S
Model 3

排除最后两项:
Falcon 9
Model S

#9. คำอธิบายไวยากรณ์: การกรองข้อมูลอัจฉริยะ

  • คุณสามารถซ่อนทั้งแถวได้ตามเงื่อนไขที่ซับซ้อน โดยใช้บล็อกเงื่อนไขอัจฉริยะ ตัวอย่างรูปแบบ:
    {d.array[i].property:ifIN('keyword'):drop(row)}

#10. ตัวอย่าง: การกรองข้อมูลอัจฉริยะ

#ข้อมูล
[
  { "name": "Falcon 9" },
  { "name": "Model S" },
  { "name": "Model 3" },
  { "name": "Falcon Heavy" }
]
#เทมเพลต
People
{d[i].name}
{d[i].name:ifIN('Falcon'):drop(row)}
{d[i+1].name}
#ผลลัพธ์
People
Model S
Model 3

(หมายเหตุ: แถวที่มีคำว่า “Falcon” ในเทมเพลตจะถูกลบออกด้วยเงื่อนไขการกรองอัจฉริยะครับ/ค่ะ)

#การลบข้อมูลซ้ำ (Deduplication)

#1. คำอธิบายไวยากรณ์

  • ด้วยการใช้ตัววนซ้ำ (iterator) ที่กำหนดเอง คุณสามารถรับรายการที่ไม่ซ้ำกัน (unique) โดยอิงจากค่าของคุณสมบัติได้ ไวยากรณ์จะคล้ายกับการวนซ้ำทั่วไป แต่จะละเว้นรายการที่ซ้ำกันโดยอัตโนมัติครับ/ค่ะ

ตัวอย่างรูปแบบ:

{d.array[property].property}
{d.array[property+1].property}

#2. ตัวอย่าง: การเลือกข้อมูลที่ไม่ซ้ำกัน

#ข้อมูล
[
  { "type": "car",   "brand": "Hyundai" },
  { "type": "plane", "brand": "Airbus" },
  { "type": "plane", "brand": "Boeing" },
  { "type": "car",   "brand": "Toyota" }
]
#เทมเพลต
Vehicles
{d[type].brand}
{d[type+1].brand}
#ผลลัพธ์
Vehicles
Hyundai
Airbus