適用:使用者說「登記完要進我的試算表」「我都在試算表裡統計」,例如器材借用、衛材請領、意見回報。
資料寫進他自己的 Google 試算表;他照常在試算表裡看、篩選、統計。
什麼時候用這個 skill
- 他堅持資料要在自己的試算表裡。沒有這個堅持的話,預設用
form-app(平台資料服務):不用分享、不用審核、平台就能匯出 CSV。 - 只能新增一列:同仁不能在工具上改或刪試算表裡的資料——要改,請負責人在試算表裡改。
- 要讀回來顯示(例如列出借用中的)一起用:同一張試算表的
read(見sheet-viewer)。 - 有工號、排班這類員工資訊=二級:平台要已經開放(
/platform/limits的sheets.level2_open),而且負責人要先在應用管理頁「試算表」卡申請、簽同意書,
管理員核可後才發佈得了;開放程度只能是「只有名單上的人」。病患資料任何情況都不行。
- 先看
/platform/limits的sheets.enabled:false 就是平台還沒開放串接試算表,照實說並改用form-app。
做法
- manifest:
skills_used填sheet-form;data.collects照實列出每一欄。 - 請他給試算表網址與分頁,並在第一列放好欄位標題(最後兩欄的標題寫「填寫人」「填寫時間」,平台會填)。
- 請他分享給平台,權限選「編輯者」,並講清楚:「平台會替這個工具的使用者在表的最後加一列;讀回來的時候,工具的使用者也看得到這張表。」
- manifest:
```yaml
sheets:
loans:
url: https://docs.google.com/spreadsheets/d/<ID>/edit
range: 借用登記!A1:E5000
append: all # 或 [nurse, keeper]:只有這些角色能登記
columns: [item, borrower_unit, return_date]
```
- 程式送出:
await UberTeach.sheets.append('loans', { item, borrower_unit, return_date })。不要自己放填寫人姓名或時間的欄位。 - 發佈試用版:
sheets[].write是pending時告訴他「審核員核可之前只有你和代理人能登記,同事會看到『還在等審核』」。
骨架
<!doctype html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>器材借用登記</title>
</head>
<body>
<h1>器材借用登記</h1>
<p>請勿輸入病人資料。</p>
<form id="f">
<label>器材 <input name="item" required maxlength="100"></label>
<label>借用單位 <input name="borrower_unit" required maxlength="50"></label>
<label>預計歸還 <input name="return_date" type="date" required></label>
<button type="submit">登記</button>
</form>
<p id="status"></p>
<script src="https://platform.wanfangai.tw/sdk/v1.js"></script>
<script>
document.getElementById('f').addEventListener('submit', async (e) => {
e.preventDefault();
const values = Object.fromEntries(new FormData(e.target));
const status = document.getElementById('status');
try {
await UberTeach.sheets.append('loans', values); // 平台會加上填寫人、填寫時間
e.target.reset();
status.textContent = '已登記'; // textContent, never innerHTML
} catch (err) {
status.textContent = err.message; // 平台回的中文訊息,照樣顯示
}
});
UberTeach.me();
</script>
</body>
</html>發佈前檢查
- 他知道分享成「編輯者」的後果,而且同意;試算表最後兩欄的標題是「填寫人」「填寫時間」。
- 表單上有「請勿輸入病人資料」;沒有要人輸入工號(一級工具不能收)。
- 告訴他:登記之後最多一分鐘,工具讀回來就看得到;要改或刪,在試算表裡改。