TIPTOP 提供一個的 Library 可以將畫面單身的資料匯出到 Excel ,
例如:CALL cl_export_to_excel(ui.Interface.getRootNode(),base.TypeInfo.create(g_sfq),'','')
但是有程式在視窗上是有二個單身,像是工單發料、工單退料、付款沖帳、收款沖帳…等,
或是有程式會開啟另一個視窗的明細資料,像出貨單的單價,應付帳款的多發票…等。
同一支程式會呼叫多個畫面或是有多單身的情況時,
用 cl_export_to_excel 就會發現,怎麼匯出到 Excel 的資料是對的,但是欄位的名稱是錯的。
造成匯出來就會不整齊,不會依序排好。
因為 ui.Interface.getRootNode() 都是抓第一個顯示的單身來當作匯出的資料陣列。
所以我們就要把 ui.Interface.getRootNode() 改成正確的 node (節點)。
TIPTOP 並非 MDI 視窗架構,所以一個 Windows 只會有一個 Form。
畫面的架構:
UserInterface
|--Windows
| |-- Form
| | |--Table
| |--Dialog
|--TopMenu
|--ToolBar
如下圖所示:
參考 4js 網站說明,提供 ui.window 的函數說明:
CLASS Method:
forName( name STRING ):回傳目前是否有開啟 name 視窗,並傳回位置
getCurrent():回傳目前的視窗位置
OBJECT Method:
findNode( t STRING, n STRING ):找尋類型為 t,且名稱為 n 的節點
createForm( n STRING ):開啟一個新的畫面,且傳回新畫面的位置
getForm():回傳目前畫面的位置
getNode():回傳目前節點的位置
setText( t STRING ) :設定視窗的標題名稱
getText():回傳視窗的標題名稱
setImage( n STRING ):設定視窗的 icon 圖示
getImage():回傳視窗的 icon 圖示
首先要先宣告二個變數:
DEFINE w ui.Window
DEFINE n om.DomNode
再來就是要取得目前的視窗和要匯出 Excel 的 Node:
如果是新的視窗來顯示的話,只要用 getNode 即可,
LET w = ui.Window.getCurrent()
LET n = w.getNode()
如果是多單身的視窗,就要告訴系統是那一個單身 Node:
LET w = ui.Window.getCurrent()
LET n = w.findNode("Table","s_sfs")
然後再修改 cl_export_to_excel 把 ui.Interface.getRootNode() 改為 n 就可以了,
CALL cl_export_to_excel(n,base.TypeInfo.create(g_sfs),'','')
***********************************************************************************************
在 Genero 中,您可以透過兩種主要方式來查看或檢查應用程式畫面的樹狀結構:在
Genero Studio 的設計階段,以及在應用程式執行階段的除錯模式。1. 在 Genero Studio 中 (設計階段)
當您在 Genero Studio 中編輯表單設計檔案 (.4fd 或 .per) 時,您可以直接在介面中看到其結構。
- 表單結構 (Form Structure) 檢視:在 Genero Studio 的 Form Designer 介面中,通常右側或下方會有一個稱為「Form Structure」或「結構」的面板。此面板會以樹狀結構列出表單中的所有容器(如
WINDOW,GROUP,HBOX,VBOX,GRID,FOLDER)和各個元件(如FIELD,BUTTON,TABLE,TREE等),顯示它們的階層關係。
2. 在應用程式執行階段 (除錯模式) (這樣做,就可以看到類似以上截圖的的debug畫面)
當程式實際執行時,特別是使用
Genero Desktop Client (GDC) 或 Genero Web Client (GWC-JS)
時,您可以啟用特殊的除錯模式來查看實際生成的使用者介面抽象樹 (Abstract User Interface, AUI Tree)。
使用 Genero Desktop Client (GDC)
- 啟用除錯模式:您需要在啟動 GDC 時加入
-D選項,例如在執行應用程式的捷徑或命令列中加入此參數。 - 檢視 AUI Tree:在應用程式執行時,按下 Ctrl 鍵並同時滑鼠右鍵點擊您想檢查的畫面元件。這將會彈出一個「AUI Debug Tree」視窗,顯示該元件及其父層、子層的詳細樹狀結構和屬性。
使用 Genero Web Client (GWC-JS)
- 啟用除錯模式:需要確保 Genero Application Server (GAS) 運行在開發者模式 (development mode)。
- 檢視 AUI Tree:在瀏覽器中運行應用程式時,如果處於除錯模式,畫面右上角會出現一個「Debug Tools」圖示。點擊該圖示,會在新的瀏覽器分頁中開啟 GWC-JS 除錯工具頁面,您可以在其中看到 AUI Tree 的分頁。
這些工具對於除錯表單佈局、確認元件的父子關係以及了解 Genero 如何將 4GL/4FD 定義轉換為實際執行畫面非常有幫助。
沒有留言:
張貼留言