所有文章
- NotesRichTextTable:在程式裡往 rich text 塞一個表格
你在程式裡用 NotesRichTextItem 組一封 rich text 信或文件,需要一個表格來排版摘要或報表 — NotesRichTextItem.AppendTable 建出來的就是 NotesRichTextTable。本文拆解怎麼建立、RowCount / ColumnCount、AddRow / RemoveRow、SetColor / SetAlternateColor 交替色、RightToLeft,以及怎麼用 NotesRichTextNavigator 走訪既有表格與一個關鍵限制:不知道 rich text 的確切結構,就讀不出儲存格內容。
2026.06.24 - NotesDXLImporter:把 DXL 灌回 Domino,設計元素 / 文件 / ACL 各有匯入策略
你用 NotesDXLExporter 把設計或文件匯出成 DXL(Domino XML)之後,怎麼把它灌回資料庫?NotesDXLImporter 就是反向那一半。本文拆解它的建立、三個關鍵匯入策略(DesignImportOption / DocumentImportOption / ACLImportOption 各自的 create / ignore / replace / update)、Import 方法與取回匯入 note 的方式,以及它跟 DXLExporter 怎麼組成完整的 DXL round-trip。
2026.06.23 - NotesViewEntry × NotesViewEntryCollection:不開文件就高效讀 view 的每一列
要把一個 view 裡每份文件的某些欄位值讀出來,很多人迴圈跑文件、逐筆 GetItemValue — 但那會把每份文件都打開,幾千筆就很慢。NotesViewEntry 讓你直接讀 view 已經算好的 ColumnValues、完全不開文件;NotesViewEntryCollection 是這些列的集合,還能跳過分類/總計列、做集合運算與 StampAll 批次蓋章。本文拆解這對「高效讀 view」的搭檔、ColumnValues 的效能關鍵、entry 的身份與階層屬性。
2026.06.22 - 開發者很少注意的 ODS:Domino 資料庫格式版本演進,與「什麼時候會升、由什麼決定」
你整天寫 LotusScript / XPages,大概從來沒在意過資料庫的 ODS(on-disk structure)版本 — 直到某個功能(像 LargeSummary)需要特定 ODS,或你把一顆舊 DB 在 server 之間搬動,搞不清楚 ODS 會不會跟著變。本文從開發者角度整理 ODS 的版本對應、最反直覺的一點(升 server 版本不等於升 ODS),以及 ODS 到底「什麼時候會變、由什麼決定」,最後回答一個具體情境:R9 的 ODS51 資料庫用 R12 client 新複製到 R12 server,ODS 會自動異動嗎?
2026.06.21 - 「Field is too large (32K)」在騙你:真正的牆通常是 64K summary buffer
一個 XPages 存檔錯誤:訊息寫「32K」,但你檢查每個欄位都沒破 32K(最大才 26K),照樣存不了。因為它指的數字常常不是你的問題 — 真正撞到的是「整份文件 summary 資料合計 64K」這道牆。本文先建立 summary / non-summary 與兩道大小限制的心智模型,再講 ODS 與 LargeSummary 為什麼是兩件事,最後用「這資料該不該是 summary」這個問題分流出兩種解法。
2026.06.21 - LotusScript 的 Evaluate:在程式裡直接跑 @formula
有時候你心裡那個剛好的工具是一個 @function — @Name、@Unique、@Explode、@DbLookup — 但你人在 LotusScript 裡。Evaluate 就是那座橋:把 @formula 當字串丟進去、在程式裡執行、拿回結果。本文拆解兩種呼叫形式(帶不帶 document context)、一個一定會踩的陷阱(回傳值永遠是陣列),以及哪些 @function 不支援(@Command、@Prompt、@PickList 等 UI 類)。
2026.06.20