2016-09-19 59 views
-1

手柄中正在使用的是什麼? 應該將它用作數據類型還是它是一個對象?請解釋使用緩衝區的句柄的用法。手柄 - 正在使用中

我所遇到以下一組與手柄和緩衝區的行:

ON WRITE OF customer NEW BUFFER new_in OLD BUFFER old_in 
do: 
    DEFINE VARIABLE m_obuf_hdl AS HANDLE NO-UNDO. 
    DEFINE VARIABLE m_nbuf_hdl AS HANDLE NO-UNDO. 

    ASSIGN m_obuf_hdl = BUFFER old_in:HANDLE 
      m_nbuf_hdl = BUFFER new_in:HANDLE. 
end. 
+0

這是一個非常普遍的問題。如果再顯示幾行代碼,則可以更容易地根據您的示例對其進行解釋。 –

+0

你應該描述你的實際問題! – Jensd

回答

4

HANDLE是ABL數據類型。 HANDLE的目的是成爲內置對象類型的引用(指針),就像代碼中的Buffer一樣。您可以在ABL文檔的「緩衝區對象句柄」部分找到緩衝區的方法和屬性。此示例循環遍歷緩衝區的所有字段(緩衝區old_in)並輸出所有字段:

DEFINE VARIABLE i  AS INTEGER NO-UNDO . 
DEFINE VARIABLE hField AS HANDLE NO-UNDO . 

DO i = 1 TO m_obuf_hdl:NUM-FIELDS: 
    ASSIGN hField = m_obuf_hdl:BUFFER-FIELD (i). 
    MESSAGE hField:NAME hField:BUFFER-VALUE. 
END.