模板與表單
系統使用 模板技術 來生成各式文件,通過模板機制,您可以在保證數據準確性的前提下,快速製作出符合公司風格的個性化文件。
模板是什麼?
在系統中,模板 是一種預定義的 DOCX/XLSX 文件,用於在生成 PDF 報表時自動插入系統數據。
簡單來說,模板就是“文件的藍圖”或“文件的底稿”。
- 模板裡包含了固定的結構、樣式和文字(如頁首頁尾、表格格式、標題樣式等)。
- 模板裡也包含一些占位符(如 <客戶名稱>、<訂單編號>),這些會在生成文件時被系統數據替換。
- 用戶不需要每次都手動排版或複製格式,只要準備好數據,系統就會自動根據模板生成統一、規範的文件。
公司 > 公司資訊 > 模板管理
檔案格式、占位符、數據類型與輸出格式
| 檔案格式 | 占位符 | 數據類型 | 輸出格式 |
|---|---|---|---|
| DOCX1 | Merge Field | 報價單 銷售契約 送貨單 設備維保記錄 | PDF2 |
| XLSX | &= | 採購單 發票清單 審計日誌 | PDF XLSX |
| CSV3 | 不適用 | 採購單 發票清單 審計日誌 IOT 設備記錄 | CSV |
根據您所在地區和訂閱的差異,您可能無法管理所有的模板
占位符是什麼?
占位符 是一段特殊標記,用來告訴系統在生成文件時,應該在哪裡填入以及填入何種數據。
- 在 Word 模板(DOCX) 中,占位符使用 MergeField 的形式。例如:
{ MERGEFIELD company.legalName \* MERGEFORMAT} - 在 Excel 模板(EXCEL) 中,占位符使用
&=的形式。例如:
&=item.sku.code
簡單理解:占位符就是“數據的臨時位置”。生成文件時,系統會用真實數據把這些位置填充起來,從而得到一份帶有實際內容的 PDF 或 Excel 報表,您可以下載模擬數據源來創建 MergeField,也可以根據下方提供的 KEY 手動創建 MergeField。
MergeField 占位符
合併域(英語:MergeField)是一種使用數據源的數據進行個性化文件的方法。3
MergeField 基礎說明
| 類型 | 範例 | 說明 |
|---|---|---|
| 域結果 | <<customer_legalName>> | 顯示內容 數據源未載入:合併域的 KEY 數據源已載入:合併結果 |
| 域代碼 | { MERGEFIELD FieldName [Switches]} | 可編輯格式,編輯後必須更新才能生效 |
MergeField 語法
{ MERGEFIELD FieldName [Switches]}
欄位說明:
- MERGEFIELD:固定格式,不可忽略,不可修改
- FieldName:數據源中的 KEY 或者列標題,大小寫敏感。
- Switches:域開關,用於格式化域內容的方法。
切換域的顯示方式
兩種方式:
- 游標移至合併域上右擊 > 切換域代碼
- 使用 Alt+F9 切換整個文件的合併域顯示方式, Shift+F9 切換當前選中的合併域
修改了域代碼後必須更新:
- 右擊 > 更新域
- 選擇域並按 F9
- 更新所有域:Ctrl+A(全選)> F9
如何插入合併域
在 Microsoft Office 由兩種常用的方式插入合併域:
- 導入數據源後插入合併域
- 點擊 郵件 > 開始郵件合併-選擇收件人 > 使用現有列表
- 通過 編寫和插入域-插入合併域 插入合併域
適用首次創建模板的用戶,快速入門。此外在設計複雜表格時,提高效率。
- 利用文件部件手動創建合併域
- 點擊 插入 > 文本-文件部件 > 域

- 在 “域窗口” 中選擇 MergeField,填入域名後即可插入合併域
模擬數據源下載
我們提供模擬數據源以便您設計模板:
格式化合併域內容(Switches)
在域代碼中可以使用 Switches 格式化日期、數字、前後綴,基礎語法:
<option> value
常見選項
| option | 說明 | 備註 |
|---|---|---|
| \b | 在域前插入文字 | 只有數據不為空白時才生效 |
| \f | 在域後插入文字 | 只有數據不為空白時才生效 |
| \@ | 格式化日期 | 只針對日期、時間、日期和時間類型的數據 |
| \# | 格式化數字 | 只針對數字類型的數據 |
| \* | 定義域結果 | 需要搭配指定的開關項使用 |
為了避免提供格式的文本錯誤,推薦使用 " 包裹格式文本,例如:\@ "yyyy-MM-dd"
時間與日期的格式
範例日期為(2025-09-01T20:09:01.999Z)
| 代碼 | 含義 | 範例 |
|---|---|---|
| yy | 年份後兩位 | 25 |
| yyyy | 四位年份 | 2025 |
| M | 月份,不補零 | 8 |
| MM | 月份,補零 | 08 |
| MMM | 月份縮寫 | Sep |
| MMMM | 月份全稱 | September |
| d | 日,不補零 | 1 |
| dd | 日,補零 | 01 |
| ddd | 星期縮寫 | Mon |
| dddd | 星期全稱 | Monday |
| h | 時,12小時制,不補零 | 8 |
| hh | 時,12小時制,補零 | 08 |
| H | 時,24小時制,不補零 | 20 |
| HH | 時,24小時制,補零 | 20 |
| m | 分,不補零 | 9 |
| mm | 分,補零 | 09 |
| s | 秒,不補零 | 1 |
| ss | 秒,不補零 | 01 |
| a/p | 上下午標記 | PM |
- 字母大小寫敏感
- 系統提供高精度時間,但 Word 對毫秒支持極差,可能無法完全顯示
數位格式
| 格式 | 輸入數據 | 顯示結果 | 備註 |
|---|---|---|---|
#.00 | 5.1 | 5.10 | 至少2位小數,不足補零.為小數分隔 |
#,#.00 | 1999.1 | 1,999.10 | 帶千位分隔,2位小數,不足補零,為千位分隔,.為小數分隔 |
#,###.## | 1999.1 | 1,999.1 | 帶千位分隔,至多2位小數,不足不補零,為千位分隔,.為小數分隔 |
#,00 | 5 | 5,00 | 至少2位小數,不足補零,為小數分隔 |
#.#,00 | 1999.1 | 1.999,10 | 帶千位分隔,2位小數,不足補零.為千位分隔,,為小數分隔 |
#.###,## | 1999.1 | 1.999,1 | 帶千位分隔,至多2位小數,不足不補零.為千位分隔,,為小數分隔 |
格式開關(大小寫、羅馬數字、序號等)
支持多種語言與檔案格式化方式,例:
- 大寫英文字母:Alphabetic
- 小寫英文字母:alphabetic
- 羅馬數字:Roman
- 中文大寫數字:CHINESENUM1/2/3
- 阿拉伯數字轉換為圓圈序號,例如:①②③。通常只支持 1~20 且需要特定字體,否則會出現亂碼。
| 格式 | 說明 | 範例 | 結果 |
|---|---|---|---|
| GB1 | 數字加點序號 | { MERGEFIELD %1% \* GB1 } | 1. |
| GB2 | 括號序號 | { MERGEFIELD %1% \* GB2 } | ⑴ |
| GB3 | 帶圈序號 | { MERGEFIELD %1% \* GB3 } | ① |
| Alphabetic | 阿拉伯數字轉大寫英文字母 | { MERGEFIELD %27% \* Alphabetic } | AA |
| alphabetic | 阿拉伯數字轉小寫英文字母 | { MERGEFIELD %1% \* alphabetic } | a |
| CardText | 轉換為英文基數詞 | { MERGEFIELD %10% \* CardText } | ten |
| DollarText | 英文金額 | { MERGEFIELD %10.5% \* DollarText } | ten and 50/100 |
| Hex | 十六進製表示 | { MERGEFIELD %10% \* Hex } | A |
| OrdText | 英文序數詞 | { MERGEFIELD %10% \* OrdText } | tenth |
| Ordinal | 英文序數形式 | { MERGEFIELD %10% \* Ordinal } | 10th |
| Roman | 大寫羅馬數字 | { MERGEFIELD %3% \* Roman } | Ⅲ |
| roman | 小寫羅馬數字 | { MERGEFIELD %3% \* roman } | ⅲ |
| CHINESENUM1 | 大寫簡體數字 | { MERGEFIELD %67289% \* CHINESENUM1 } | 六七二八九 |
| CHINESENUM2 | 財務用大寫格式 | { MERGEFIELD %67289% \* CHINESENUM2 } | 陸萬柒仟貳佰捌拾玖 |
| CHINESENUM3 | 非財務用大寫格式 | { MERGEFIELD %67289% \* CHINESENUM3 } | 六萬七千二百八十九 |
| Caps | 單詞首字母大寫 | { MERGEFIELD %too maker% \* Caps } | Too Maker |
| FirstCap | 段落首字母大寫 | { MERGEFIELD %too maker% \* FirstCap } | Too Maker |
| Upper | 所有字母大寫 | { MERGEFIELD %too maker% \* Upper } | TOO MAKER |
| Lower | 所有字母小寫 | { MERGEFIELD %Too Maker% \* Lower } | too maker |
範例中使用 %% 包裹的部分屬於虛擬碼,僅用於展示原始數據,便於理解和說明,實際使用中需要遵循語法規則
注意事項
- 不能在 “域窗口” 的 “域屬性” 中填寫格式化程式碼,您應該在 域代碼 狀態編輯格式化語法。
在 “域窗口” 內填入的格式語法,Office 會進行轉義,導致格式錯誤,例如\@會被轉義為\\@。 - 確保域代碼內的 KEY 是準確的,您可以載入模擬數據後點擊 郵件 > 預覽結果 進行預覽。
{ MERGEFIELD TableStart:xxx \* MERGEFORMAT }和{ MERGEFIELD TableEnd:xxx \* MERGEFORMAT }是專用語法。
在使用 預覽功能 時會提示 無效的合併域 錯誤資訊,點擊 取消 忽略錯誤。
MergeField KEY
KEY 用於定位具體的數據內容具有以下幾種類型:
- 常規 KEY:絕大多數 KEY 都屬於此類,他們由字母與下劃線組成,如
company_legalName TableStart:xxx與TableEnd:xxx:這兩個 KEY 為固定結構且必須搭配使用,其中的xxx代表 Table 內數據的前綴詞,只有與前綴匹配的數據才會被納入到表格。- 表格 KEY:表格內部的 KEY 由前綴詞、字母與下劃線組成,如:
xxx_name
MergeField 通用 KEY
| KEY | 說明 | 備註 |
|---|---|---|
| company_legalName | 公司法定名稱 | |
| company_address_tag | 公司地址中的標籤 | 完整的地址資訊需要使用 KEY 拼接 |
| company_address_country | 公司地址中的國家代碼 | |
| company_address_state | 公司地址中的省/州/市資訊 | |
| company_address_city | 公司地址中的城市資訊 | |
| company_address_district | 公司地址中的區/縣 | |
| company_address_street | 公司地址中的街道資訊 | |
| company_address_postalCode | 公司地址中的郵政編碼 | |
| company_tax_tin | 公司的納稅識別號 | |
| company_tax_billingAddress | 公司開票地址 | |
| company_tax_phone | 開票資料中的聯絡電話 | |
| company_tax_bank | 公司開戶銀行 | |
| company_tax_bankAccount | 銀行帳號 | |
| employee_name | 單據起草人員的姓名 | |
| employee_phone | 單據起草人員的手機號碼 | |
| employee_email | 單據起草人員的聯繫信箱 | |
| employee_familyName | 單據起草人員的姓氏 | |
| employee_givenName | 單據起草人員的名字 | |
| employee_middleName | 單據起草人員的中間名 | |
| employee_position | 單據起草人員的職務 | |
| customer_legalName | 客戶公司法定名稱 | |
| customer_address_tag | 客戶公司地址中的標籤 | |
| customer_address_country | 客戶公司地址中的國家代碼 | |
| customer_address_state | 客戶公司地址中的省/州/市資訊 | |
| customer_address_city | 客戶公司地址中的城市資訊 | |
| customer_address_district | 客戶公司地址中的區/縣 | |
| customer_address_street | 客戶公司地址中的街道資訊 | |
| customer_address_postalCode | 客戶公司地址中的郵政編碼 | |
| customer_tax_tin | 客戶公司的納稅識別號 | |
| customer_tax_billingAddress | 客戶公司開票地址 | |
| customer_tax_phone | 客戶開票資料中的聯絡電話 | |
| customer_tax_bank | 客戶公司開戶銀行 | |
| customer_tax_bankAccount | 客戶銀行帳號 | |
| customer_contact_name | 客戶聯絡人的姓名 | |
| customer_contact_phone | 客戶聯絡人的手機號碼 | |
| customer_contact_email | 客戶聯絡人的聯繫信箱 | |
| customer_contact_familyName | 客戶聯絡人的姓氏 | |
| customer_contact_givenName | 客戶聯絡人的名字 | |
| customer_contact_middleName | 客戶聯絡人的中間名 | |
| customer_contact_position | 客戶聯絡人的職務 |
報價單模板可用 KEY
報價單常規 KEY
| KEY | 說明 | 備註 |
|---|---|---|
| id | 報價單 Id | 至少19位純數字 Id |
| orderId | 編碼Id | 10-11位由數字與字母組合的編碼 Id |
| title | 報價單標題 | |
| inclTotal | 含稅總金額 | 按幣種格式化 |
| enclTotal | 不含稅總金額 | 按幣種格式化 |
| inclTotalDiscount | 含稅總折扣金額 | 按幣種格式化 |
| enclTotalDiscount | 不含稅中折扣金額 | 按幣種格式化 |
| taxes | 稅額 | 按幣種格式化 |
| inclTotal_capital | 大寫的含稅總金額 | 幣種對應的大寫金額 |
| enclTotal_capital | 大寫的不含稅總金額 | 幣種對應的大寫金額 |
| inclTotalDiscount_capital | 大寫的含稅總折扣金額 | 幣種對應的大寫金額 |
| enclTotalDiscount_capital | 大寫的不含稅中折扣金額 | 幣種對應的大寫金額 |
| taxes_capital | 大寫的稅額 | 幣種對應的大寫金額 |
| currency | 報價單的幣種 | |
| remark | 報價單備註資訊 | |
| dueInDays | 報價單有效天數 | 單位:天 |
| dueAt | ISO8601格式的失效日期 | |
| createdAt | ISO8601格式的創建日期 | |
| dueAt_date | 未格式化的失效日期 | 參閱 MergeField 格式化 |
| createdAt_date | 未格式化的創建日期 | |
| deliveryMethod | 發貨方式 | |
| deliveryTime | D/T 交付天數 | 單位:天 |
| payment_lineNumber | 付款條款序號 | |
| payment_name | 條款名稱 | |
| payment_dueInDays | 付款期限,單位:天 | |
| payment_dueAt | 付款截止日期 | 當付款條款未開始追蹤時無意義,且會被設置為當前日期往後 X 天,X取決於付款期限 |
| payment_dueAt_date | 付款截止日期 | 當付款條款未開始追蹤時無意義,且會被設置為當前日期往後 X 天,X取決於付款期限 |
| payment_percentage | 付款百分比 | |
| payment_amount | 應付款金額 | |
| payment_anchor | 付款錨點 | |
| payment_{index}_lineNumber | 子條款序號 | 如果沒有子條款則此 KEY 無效 |
| payment_{index}_name | 子條款名稱 | |
| payment_{index}_dueInDays | 子條款付款期限,單位:天 | |
| payment_{index}_dueAt | 子條款付款截止日期 | 當付款條款未開始追蹤時無意義,且會被設置為當前日期往後 X 天,X取決於付款期限 |
| payment_{index}_dueAt_date | 子條款付款截止日期 | 當付款條款未開始追蹤時無意義,且會被設置為當前日期往後 X 天,X取決於付款期限 |
| payment_{index}_percentage | 子條款付款百分比 | |
| payment_{index}_amount | 子條款應付款金額 | |
| payment_{index}_anchor | 子條款付款錨點 |
報價單表格 KEY
表格前綴詞:item
| KEY | 說明 | 備註 |
|---|---|---|
| item_lineNumber | 序號 | |
| item_quantity | 數量 | 格式化為 0.##,最多2位小數 |
| item_unit | 單位 | |
| item_taxRate | 稅率 | 格式化為百分比,例如:0.13 -> 13% |
| item_taxAmount | 稅額 | |
| item_inclPrice | 含稅單價 | 按幣種格式化 |
| item_enclPrice | 不含稅單價 | 按幣種格式化 |
| item_discountRate | 折扣率 | 格式化為百分比,例如:0.01 -> 1% |
| item_inclDiscount | 含稅折扣額 | 按幣種格式化 |
| item_enclDiscount | 不含稅折扣額 | 按幣種格式化 |
| item_inclSubTotal | 含稅小計 | 按幣種格式化 |
| item_enclSubTotal | 不含稅小計 | 按幣種格式化 |
| item_remark | 備註 | |
| item_sku_code | sku 編碼 | |
| item_sku_barcode | sku 條碼 | |
| item_sku_name | sku 名稱 | |
| item_sku_unit | sku 單位 | |
| item_sku_specification | sku 規格 | 按 sku 屬性格式化,例如:顏色 / 紅色;容量 / 16GB |
表格前綴詞:payment
| KEY | 說明 | 備註 |
|---|---|---|
| payment_lineNumber | 付款條款序號 | |
| payment_name | 條款名 | |
| payment_dueInDays | 付款期限 | 單位:天 |
| payment_dueAt | 付款截止日期 | 當付款條款未開始追蹤時無意義,且會被設置為當前日期往後 X 天,X取決於付款期限 |
| payment_dueAt_date | 付款截止日期 | 當付款條款未開始追蹤時無意義,且會被設置為當前日期往後 X 天,X取決於付款期限 |
| payment_percentage | 付款百分比 | |
| payment_amount | 應付款金額 | |
| payment_anchor | 付款錨點 |
兩者的 KEY 是相似的,但是表格內的付款條款包含子條款資訊,而常規 KEY 只有父條款資訊,子條款採用的是 payment_1_lineNumber 的格式,這有助於固定付款條款的單據使用。
契約模板可用 KEY
契約常規 KEY
大部分與報價單常規 KEY 一致,額外包含以下 KEY
| KEY | 說明 | 備註 |
|---|---|---|
| contractId | 契約編碼Id | 等同於報價單常規 KEY 中的 orderId |
| contractNo | 契約號 | 自訂編號,如果起草時未填寫則等同於 contractId |
| supplementalAgreement | 補充協議 | |
| warrantyClause | 質保期 | |
| signedAt | ISO8601格式的契約簽訂時間 | |
| signedAt_date | 未格式化的契約簽訂時間 | |
| signingPlace | 契約簽訂地點 | |
| deliveryDate | ISO8601格式的交付日期 | 由簽訂日期和交付天數推算 |
| deliveryDate_date | 未格式化的交付日期 |
契約表格 KEY
與報價單表格 KEY一致
契約內可以附上圖像或 docx 格式的附件,這些文件不是模板的一部分,如果您在製作契約的時候添加了這些附件,我們將這些附件追加到生成的文件中,他們的處理邏輯為:
- 圖像格式:例如 PNG,JPEG等格式,我們會將圖片的寬度撐滿整個文件同時按原始比例增大或縮小高度。
- docx 格式:此類檔案格式會按照添加順序追加到文件的末尾位置。
送貨單模板可用 KEY
送貨單常規 KEY
| KEY | 說明 | 備註 |
|---|---|---|
| id | 送貨單 Id | 至少19位純數字 Id |
| orderId | 編碼 Id | 10-11位由數字與字母組合的 Id |
| createdAt | ISO8601格式的創建日期 | |
| createdAt_date | 未格式化的創建日期 | |
| signedAt | ISO8601格式的創建日期 | |
| signedAt_date | 未格式化的創建日期 | |
| link_order_id | 關聯的報價單編碼 Id | 使用,作為間隔 |
| link_order_title | 關聯的報價單標題 | 使用,作為間隔 |
| link_contract_id | 關聯的契約編碼編號 | 使用,作為間隔 |
| link_contract_title | 關聯的契約標題 | 使用,作為間隔 |
送貨單表格 KEY
表格前綴詞:item 包含報價單表格 KEY,額外包含以下 KEY
| KEY | 說明 | 備註 |
|---|---|---|
| item_delivery_lineNumber | 送貨單內的序號 | |
| item_delivery_quantity | 送貨數量 | 格式化為 0.##,最多2位小數 |
| item_delivery_unit | 送貨單內的單位 | |
| item_delivery_remark | 送貨單內的備註 |
設備維保記錄模板可用 KEY
維保記錄常規 KEY
| KEY | 說明 | 備註 |
|---|---|---|
| id | 記錄 Id | 至少19位純數字 Id |
| orderId | 編碼 Id | 10-11位由數字與字母組合的 Id |
| severity | 事件緊急度 | |
| title | 事件標題 | |
| description | 描述 | |
| startAt | ISO8601格式的開始時間 | |
| startAt_date | 未格式化的開始時間 | |
| endAt | ISO8601格式的結束時間 | |
| endAt_date | 未格式化的結束時間 | |
| createdAt | ISO8601格式的創建時間 | |
| createdAt_date | 未格式化的創建時間 | |
| downtime | 設備下線時間 | |
| device_name | 設備名稱 | |
| device_tag | 設備標籤 | |
| device_category | 設備類別 | |
| device_model | 設備型號 | |
| device_serialNumber | 序號 | |
| device_owner | 所有者/使用者 | |
| device_effectiveDate | 生產日期 | yyyy-MM-dd格式 |
| device_manufactureDate | 啟用日期 | yyyy-MM-dd格式 |
| device_warrantyExpireDate | 過保日期 | yyyy-MM-dd格式 |
| device_location | 設備位置 | |
| device_address_tag | 設備地址中的標籤 | 完整的地址資訊需要使用 KEY 拼接 |
| device_address_country | 設備地址中的國家代碼 | |
| device_address_state | 設備地址中的省/州/市資訊 | |
| device_address_city | 設備地址中的城市資訊 | |
| device_address_district | 設備地址中的區/縣 | |
| device_address_street | 設備地址中的街道資訊 | |
| device_address_postalCode | 設備地址中的郵政編碼 |
維保記錄表格 KEY
表格前綴詞:record
| KEY | 說明 | 備註 |
|---|---|---|
| record_key | 維保表單內 欄位 對應的 標題 | 表單中 _ 開頭的 欄位 會被忽略 |
| record_value | 表單中記錄的數據 | 對於帶有選項的欄位會渲染為 ☑ xxx 和 ☐ xxx |
☑☐這兩個文本將強制使用 Noto Sans Symbols 2 字體,請查閱字體章節了解更多。
範例模板
我們提供了一些模板供您參考:
書籤占位符
書籤 是 Word 提供的一種定位工具,通過在文件的某個位置添加書籤,可以在後續閱讀文件時快速跳轉到該位置。 在系統中主要用於定位和在該位置插入圖片。根據文件類型與單據的不同,系統會尋找不同的書籤執行不同的操作,具體如下:
| 文件 | 單據 | 書簽名 | 操作 | 備註 |
|---|---|---|---|---|
| DOCX | 送貨單 設備維保記錄單 | signature | 插入簽名板的簽名圖片 | 需有簽名圖片才會插入圖片 |
| DOCX | 所有單據類型 | stamp | 插入數位簽章圖章 | 需文件證書才進行數位簽章 |
特殊占位符
特殊占位符 與其他文字沒有區別,主要用於 PDF 文件的處理。
| 文件 | 單據 | 標識文字 | 操作 | 備註 |
|---|---|---|---|---|
| 所有單據 | ###SIGNATURE_ANCHOR### | 插入數位簽章圖章 | 需文件證書才能執行數位簽章 |
一般把特殊占位符的字體顏色設置為 白色,字號設置為 1,同時使用文本框來時其懸浮在文件主體內容之上。
特殊占位符會一直保留在文件中,只有在完成相關操作後才會被刪除。
表單
在系統中,表單用於設備維修、保養等場景下。它通常由多個欄位(輸入框、選擇項、日期、數值等)組成,用於引導職員逐項完成數據輸入。
簡單來說,表單就是把“需要做的事”和“需要記錄的資訊”整理成一個可操作的清單,讓設備維護過程更高效、更標準化。
- 把需要檢查的事項(例如:潤滑油是否更換、電氣接頭是否牢固、安全裝置是否正常等)列出來;
- 用戶在操作時,只需要按照表單逐項確認、填寫或勾選,就能完成檢查記錄;
- 系統會根據填寫的內容,保存和生成相應的維修/保養記錄,確保過程規範、結果可追溯。
設備與物聯網 > 維保表單編輯
設備維保表單
表單本質為 JSON 格式的文本文件,您可以使用系統提供的線上編輯器編寫或者上傳 JSON 格式的文件。
設備與物聯網 > 維保表單編輯
使用文本編輯器編寫表單文件時,文件要求命名為 xxxForm.json並上傳至 雲端儲存 的 forms 目錄中。
文件需要符合下方的 Json Schema 要求。
From Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Generated schema for MaintenanceForm",
"type": "object",
"properties": {
"title": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"label": {
"type": "string"
},
"component": {
"type": "string",
"enum": [
"textfield",
"checkbox",
"select",
"date",
"datetime",
"number",
"radioColumn",
"radioRow",
"signaturePad",
"upload",
"download",
"hidden"
]
},
"multiline": {
"type": "boolean"
},
"dataType": {
"type": "string",
"enum": [
"string",
"number",
"boolean",
"array",
"null"
]
},
"options": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string"
},
"value": {
"type": [
"string",
"number",
"boolean"
]
}
}
}
},
"defaultValue": {
"type": [
"string",
"number",
"boolean",
"array",
"null"
]
}
},
"required": [
"field",
"label",
"component",
"dataType"
],
"allOf": [
{
"if": {
"properties": {
"component": {
"const": "select"
}
}
},
"then": {
"required": [
"options"
]
}
},
{
"if": {
"properties": {
"component": {
"const": "radio"
}
}
},
"then": {
"required": [
"options"
]
}
}
],
"additionalProperties": false
}
}
},
"required": [
"title",
"fields"
]
}
對於手動編寫 JSON 文件的用戶需要注意以下內容:
- 支持的表單以及對應的檔案名,請注意檔案名區分大小寫
- 保養事件 -> maintenance[_deviceCategory]Form.json
- 維修事件 -> repair[_deviceCategory]Form.json
- 韌體升級事件 -> firmware_update[_deviceCategory]Form.json
- 錯誤處理方式:
- 檔案名不匹配: 回落默認表單
- 檔案格式錯誤: 當用戶嘗試完成任務時會被拒絕,造成任務無法正常完成
- 不符合 Schema 要求: 用戶嘗試完成任務時可能成功,但模板文件可能無法正確處理數據格式,造成數據顯示錯誤
細分類別表單 🥈
針對不同類別的設備可以創建細分表單,在編輯器中填寫/選擇設備類別即可創建細分表單,或者在表單檔案名中加入 類別。
- 保養事件 -> maintenance_[deviceCategory/設備類別]Form.json
- 維修事件 -> repair_[deviceCategory/設備類別]Form.json
- 韌體升級事件 -> firmware_update_[deviceCategory/設備類別]Form.json
線上編輯器介紹

| 輸入框與按鈕 | 說明 |
|---|---|
| 事件 | 當前編輯的表單屬於哪種事件 |
| 設備類別 | 可以針對不同設備製作不同的表單,需要 🥈 訂閱權限 |
| 表單標題 | |
| 獲取當前表單 | 從伺服器中載入當前表單,主要用於表單修改 |
| 新增欄位 | 添加新的欄位到表單 |
| 提交表單 | 將當前表單內容保存至雲端儲存 |
| 重設表單 | 將當前表單內容清空,作用與當前界面,不影響伺服器端 |
| 預覽表單 | 您可以查看當前表單在實際任務階段的樣式 |
表單欄位說明
這是表單的主要內容,同時某些特定的欄位組件在模板的渲染中也有差異,請參閱下表
| 標題 | 說明 | 備註 |
|---|---|---|
| 欄位 | 表單欄位的 key | 在表單內必須唯一,重複的 key 會被後來者覆蓋。 以 _ 開頭的欄位在渲染時會被忽略 |
| 標題 | 顯示在輸入框中的標題資訊,可以被渲染到模板中 | |
| 組件 | 用於呈現輸入框類型 | 簽名板的數值為標識符 日期相關的組件為數位格式的時間戳 |
| 數據類型 | 組件所使用的數據格式 | |
| 預設值 | 當用戶不填寫欄位時使用的預設值,需要與數據類型匹配 | |
| 多行文本 | 僅文本輸入框組件可用,允許用戶輸入多行文本 | |
| 選項鍵 | 選項對應的 key | 必須唯一 |
| 選項值 | 選項對應的數值 |
- 簽名板是一個特殊的組件,其數據為設備維保事件的標識符。
- 如果需要在文件內插入簽名圖片,請使用書籤功能。
字體
伺服器提供的字體:
| 字體名 | 樣式 | 版本 |
|---|---|---|
| Noto4 Sans | 所有字重及變體 | 2.015 |
| Noto Sans JP | 所有字重及變體 | 2.004 |
| Noto Sans SC | 所有字重及變體 | 2.004 |
| Noto Sans TC | 所有字重及變體 | 2.004 |
| Noto Sans Symbols | 所有字重 | 2.003 |
| Noto Sans Symbols2 | Regular | 2.008 |
我們基於 Open Font License 許可使用 Noto 字體,如有疑問請參閱 SIL 問題解答。
我們推薦您使用 Noto 字體進行模板創建。
自 Noto 2.001 版本起 CJK 已被拆分為 Chinese(Simplified,Traditional),Japanese 和 Korean,我們不建議使用任何早於此版本的字體,
可以造成字體匹配錯誤.
如果您在模板中需要使用其他字體,請將字體上傳至伺服器中,避免模板渲染錯誤.
如果您在模板中使用了商業字體,請確保已自行取得合法的授權或許可。本系統僅負責根據您提供的模板以及字體生成文件,對於因使用未經授權的字體所產生的版權或法律問題,我們概不負責。