GAS 自製代課申請與月底結算系統
這份講義面向自學者,帶你理解一套「線上填寫、即時列印、紙本核章、承辦確認、月底結算」的代課申請系統。它不是要取代所有人事差勤制度,而是協助學校把代課申請資料流整理成可追蹤、可核章、可結算的行政流程。
1系統核心概念
本系統的設計重點不是「把紙本搬到線上」,而是重新整理代課申請的資料流與責任節點。
為什麼不用 Google 表單?
Google 表單很適合收集資料,但送出後無法自然導向「該筆申請的列印頁」。自製 GAS Web App 表單可以做到:送出後立即建立申請編號並跳轉列印代課單。
為什麼仍保留紙本?
許多學校仍需要紙本核章與留存。本系統不是強推無紙化,而是讓紙本不再負責重複抄寫與月底彙整。
2使用流程
老師端流程
由承辦人提供 GAS Web App 表單網址。
填寫申請老師、假別、經費來源、日期,以及每一節的班級、課程、代課老師與課務說明。
系統建立申請編號,寫入試算表,並立即導向紙本代課申請單。
依校內流程完成申請人、教學組長、教務主任、校長等核章。
紙本交回後,承辦人才能完成系統確認。
承辦端流程
檢查紙本申請單是否完成核章。
從紙本上的系統確認連結,或從「代課申請總表」中的確認連結進入。
確認紙本與系統資料一致後,按下「確認列入結算」。
執行「產生本月結算表」,系統只統計已確認資料。
3功能總覽
GAS 自製表單
不依賴 Google 表單,可在送出後直接導向列印頁。
每節獨立資料
不同節次可有不同班級、課程、代課老師與課務說明。
A4 代課申請單
送出後即時產生紙本單,保留核章與承辦確認欄位。
經費來源分類
支援公費代課、自費代課、其他,月底可依經費來源篩選。
身心調適假防呆
選擇身心調適假時,自動鎖定經費來源為公費代課。
月底結算表
承辦確認後才列入結算,並以節次明細逐列產生。
4資料表設計
Google Sheet 是這套系統的資料庫。建議不要任意改欄位名稱,因為程式通常會依欄位名稱讀寫資料。
主要工作表
| 工作表 | 用途 | 重點欄位 |
|---|---|---|
| 代課申請總表 | 記錄整張申請單的主資料與狀態。 | 申請編號、申請老師、請假原因、經費來源、狀態、承辦確認、是否列入結算。 |
| 代課節次明細 | 記錄每一節代課的細節。 | 申請編號、代課日期、節次、班級、課程、代課老師、鐘點費單價、預估金額。 |
| 代課老師名冊 | 設定代課老師與鐘點費資訊。 | 姓名、Email、身分、鐘點費單價、是否啟用。 |
| 月底結算表 | 承辦確認後,依節次明細產生月結資料。 | 結算月份、經費來源、代課老師、日期、節次、課程、預估金額。 |
| 系統設定 | 存放學校名稱、預設鐘點費與教務處 Email。 | 設定項目、設定值、說明。 |
| 操作紀錄 | 保留重要操作紀錄。 | 時間、操作者、動作、申請編號、說明。 |
主表與明細表的關係
代課申請總表(主表) 申請編號:SUB-11507-001 代課節次明細(子表) SUB-11507-001|第1節|502|社會|王老師 SUB-11507-001|第6節|301|數學|待教務處安排
5部署方式
檔案結構
第一次安裝步驟
- 建立一份新的 Google 試算表,作為系統資料庫。
- 點選
擴充功能 → Apps Script。 - 貼上
Code.gs。 - 新增三個 HTML 檔:
ApplicationForm、PrintTemplate、ConfirmTemplate。 - 儲存所有檔案。
- 在 Apps Script 執行
setupSystem()。 - 依照畫面提示完成授權。
- 部署為 Web App。
- 回到 Google Sheet,重新整理頁面。
- 從
代課管理 → 顯示老師填寫網址取得表單網址。
Web App 部署設定
| 設定項目 | 建議值 | 說明 |
|---|---|---|
| 部署類型 | 網頁應用程式 | 必須選 Web App,不能只儲存程式碼。 |
| 執行身分 | 我 | 讓系統以部署者權限寫入試算表。 |
| 存取權限 | 機構內使用者/知道連結的任何人 | 依學校帳號環境與資安政策選擇。 |
部署 → 管理部署作業 → 編輯 → 版本選「新增版本」→ 部署。
6日常操作
Google Sheet 自訂選單
系統初始化後,Google Sheet 上方會出現 代課管理 選單。
| 選單項目 | 使用時機 |
|---|---|
| 初始化系統工作表 | 第一次安裝或欄位缺漏時使用。 |
| 顯示老師填寫網址 | 取得 GAS Web App 表單網址,提供給老師填寫。 |
| 依申請編號查詢 | 承辦人收到紙本後,可用申請編號快速定位資料。 |
| 標記紙本已交回 | 收到紙本但尚未確認列入結算時使用。 |
| 確認列入結算 | 紙本核章完成且資料一致後使用。 |
| 退回修正 | 紙本或系統資料有誤時使用。 |
| 取消申請 | 該筆代課不成立時使用。 |
| 產生本月結算表 | 月底彙整本月資料。 |
| 指定月份產生結算表 | 補產某月份資料,例如 11507。 |
| 檢查異常資料 | 月底結算前,檢查重複安排或資料缺漏。 |
申請編號規則
格式:SUB-民國年月-流水號 範例:SUB-11507-001 說明:115 年 7 月的第 1 筆申請
7紙本列印與核章
老師送出表單後,系統會立即導向列印頁。這張紙本代課申請單的重點是:讓每一節代課內容清楚,並保留學校核章流程。
紙本申請單包含
- 申請編號與列印時間。
- 申請老師、職務班級、請假原因、經費來源、代課日期。
- 代課內容明細:節次、班級、課程、代課老師、代課老師簽名、課務說明。
- 核章欄位:申請人、教學組長、教務主任、校長。
- 承辦確認欄位:紙本已核章、系統資料與紙本一致、列入月底結算。
- 系統確認連結。
列印頁設計原則
- A4 一頁優先,但不能壓縮到難以閱讀。
- 2 至 4 節代課應維持正常字體與列高。
- 5 節以上才啟用 compact 模式。
- 系統確認連結應縮成頁尾小字,避免擠到第二頁。
8月底結算
月底結算不是抓所有申請資料,而是只抓承辦人確認後的資料。
列入結算的條件
主表狀態 = 已確認 主表承辦確認 = 已確認 主表是否列入結算 = 是 明細狀態 = 已確認 明細是否列入結算 = 是
不列入結算的情況
- 老師已送出,但尚未列印或尚未核章。
- 紙本已交回,但承辦人尚未確認。
- 資料被退回修正。
- 申請已取消。
- 代課老師仍為「待教務處安排」。
月底結算表每列代表什麼?
每一列代表一節代課,而不是一張申請單。這樣才能正確處理不同節次、不同課程、不同代課老師的情況。
9經費來源與身心調適假規則
經費來源
| 經費來源 | 系統處理 | 備註 |
|---|---|---|
| 公費代課 | 列入正式結算與統計。 | 可作為後續請款或鐘點費統計依據。 |
| 自費代課 | 列入紀錄與分類統計。 | 不應與公費代課混同,月底可用經費來源篩選。 |
| 其他 | 列入統計,但提醒承辦確認。 | 適合特殊經費或專案經費。 |
身心調適假
身心調適假 → 固定公費代課 前端:自動帶入並鎖定經費來源 後端:寫入資料前再次強制修正 異常檢查:若身心調適假不是公費代課,列為異常
10常見問題
開啟後出現「Google 雲端硬碟無法開啟這個檔案」
通常代表開錯網址,或複製到部署 ID 而不是 Web App URL。正確網址應類似:
https://script.google.com/macros/s/一長串部署ID/exec
出現「缺少申請編號」
通常是直接打開列印頁或確認頁,但網址沒有帶 id。列印頁應由系統送出後自動導向,或從「代課申請總表」的列印連結開啟。
修改程式後畫面沒有變
Apps Script 修改後必須新增版本重新部署。只按儲存不會更新正式 Web App。
列印變成兩頁
通常是系統確認連結太長、核章欄位過高、或表格列高過大。可把系統確認連結縮成頁尾小字,並在明細超過 4 或 5 筆時啟用 compact 模式。
代課老師顯示「待教務處安排」
列印頁應把「待教務處安排、待安排、教務處安排、未定」顯示為空白,但資料庫仍保留原值,方便承辦人後續追蹤。
11自我檢核練習
完成部署後,請用以下測試流程確認系統是否可用。
- 執行
setupSystem()。 - 部署 Web App。
- 開啟老師填寫網址。
- 建立一筆代課申請。
- 請假原因選「身心調適假」,確認經費來源自動鎖定「公費代課」。
- 勾選第1節與第6節。
- 第1節填:502、社會、王老師。
- 第6節填:301、數學、待教務處安排。
- 送出後確認跳到列印頁。
- 檢查第6節代課老師在紙本上是否顯示空白。
- 檢查核章欄位是否只有申請人、教學組長、教務主任、校長。
- 開啟確認連結,按下「確認列入結算」。
- 執行「產生本月結算表」。
- 確認結算表每一節各一列。
- 執行「檢查異常資料」,確認系統會提醒尚未安排代課老師的明細。
12GitHub Repository 整理建議
若要將本系統整理成 GitHub repo,建議讓專案不只是放程式碼,也要包含部署說明、資料表結構、流程圖與維護規範。
建議 repo 結構
AGENTS.md 應提醒 Codex 的重點
- 不要把 Google 表單重新導入主流程。
- 不要讓未確認資料進入月底結算。
- 不要把代課老師放在統一核章欄位。
- 代課老師簽名欄位應跟隨每一節明細。
- 身心調適假必須鎖定公費代課。
- 列印頁必須適合 A4 紙張。
- 不要硬編碼 Web App URL。