- 為何設定"查詢"欄位, 有設定 #R的關聯,執行時發生 'ref_XXXX' 關聯?因為Word與Excel會共用Server端的服務,當初Word沒有這個關聯設定,Excel就會報錯,解決方法就是在Word補上這個 #R的關聯關係,這樣Excel的查詢條件就可以使用。上例中是要在 "待進料明細表" 的Word表單中,增加"廠商編號"的 #R定義即可。
- 簡單的報表輸出,一定要使用Excel格式來另外設計嗎?Word導入之後,內部有一個Word套表,但一次只能一筆資料,如果要列印多筆如同Excel的列表,也可以在 Word的[其他設定]的"印表格式"來設定成"Excel"即可,這樣可以讓User輸出一個簡單的Excel列表,不必再以Excel來另外設計。
- Word跟Excel的印表差異?Word是單筆印表,針對單一的表單(可能有明細多筆資料)把資料套印在Word表格上,通常用在對外的單據表單。Excel是條列式印表,根據查詢條件來把資料整批印出,通常用在資料清冊或是統計報表所使用。
- 請問 Excel的資料來源如何取得一個自訂的SQL內容, 而不是固定的Table內容?Excel的資料來源通常是透過 “#M:”來定義,如果是固定的資料表直接定義資料表名即可;但如果要取得一個SQL查詢結果內容的話, 必須使用"#M: TableName.CommandName的用法,其格式定義如下:TableName: 這個名稱通常是指實體的Table名稱, 通常會與你的Word名稱相同, 所以Excel讀入時, 會檢查這個TableName是否存在, 這時如果你沒有一個相同名稱的Word(或Word內有相同的 #M:名稱), 這樣就會發生錯誤, 因為iCoder必須去檢查 '#' 的欄位定義與其他關係。有一種情況例外,就是Word有Master/Detail的定義,此時Excel也可以指定此TableName為Detail的資料表名稱, 也是允許的, 因為Detail的表名也確實存在。所以此TableName又稱為開發階段的資料表名稱。CommandName: 這是指Runtime的資料來源,就是真正產生RWD表單時, DataGrid會以此CommandName作為資料來源, 也就是說, 他可以是一個SQL與查詢結果來輸出到Excel表格中, 與TableName差異的事, TableName是#的定義用於設計, CommandName是實際的資料來源用於Runtime執行。
- Excel 的報表的表頭除了印出 查詢條件外? 可否印出欄位內容?
是可以透過Excel的 INDIRECT() 來印出欄位內容, 例如想在查詢條件 "客戶編號" 的下方印出 "客戶名稱", 而Excel欄位區又有 "客戶名稱"的 "#"定義時, 可以透過 =INDIRECT("C9") 這樣的定義方式來抓取"名稱"的欄位(Excel位置為C9), 如下:
- Excel的報表, 可以使用 View的資料表嗎?可以使用View。1. Excel報表中, 先設定好 "#M:"對應到 View的資料表, 如果有欄位不一樣, 可以使用":欄位名稱"來定義, 如下:2. Excel讀入時, 因為找不到View的Table, 所以會出現"相對資料表不存在, 是否自動建立?", 回答"確定"後, 即可讀入該Excel。
3. 最後"存檔"時, 匯出內容因為View已經存在, 不能產生同名的資料表, 所以要將"主表"勾選取消, 並產生Server端與RWD端頁面即可。