Walking the widget Tree

SKaushal

New Member
Hello Everybody,
Greetings.
Once again back with a problem. I'm writing a program to audit the changes to table and wrote a database trigger as follows:
/* ------------------------------- */
TRIGGER PROCEDURE FOR WRITE OF Invent OLD BUFFER oInvent.
DEFINE VARIABLE tmp-List AS CHARACTER.
DEFINE VARIABLE tt AS INTEGER.
DEFINE VARIABLE fld-nm AS CHARACTER.
DEFINE VARIABLE Tab-nm AS Character.
DEFINE VARIABLE fld AS Character.
DEFINE VARIABLE count AS INTEGER.
DEFINE VARIABLE hdl AS HANDLE.
DEFINE VARIABLE cnt AS INTEGER.
DEFINE VARIABLE OldVar AS CHARACTER.
DEFINE VARIABLE NewVar AS CHARACTER.
BUFFER-COMPARE Invent TO oInvent SAVE RESULT IN tmp-List.

DEFINE FRAME frm-OldBuf oInvent
WITH SCROLLABLE STREAM-IO.
DEFINE FRAME frm-CurBuf Invent
WITH SCROLLABLE STREAM-IO.

ASSIGN FRAME frm-OldBuf:HIDDEN = TRUE.
ASSIGN FRAME frm-CurBuf:HIDDEN = TRUE.

DISPLAY oInvent WITH FRAME frm-OldBuf.
DISPLAY Invent WITH FRAME frm-CurBuf.

CREATE tRepLog.
ASSIGN tRepLog.TransactionID = DBTASKID(LDBNAME(BUFFER tRepLog))
tRepLog.TableName = "Invent"
tRepLog.KeyValue = "Serial-No"
tRepLog.LogEvent = "WRITE"
tRepLog.LogDate = TODAY
tRepLog.LogTime = TIME.

ASSIGN hdl = FRAME frm-OldBuf:CURRENT-ITERATION.
hdl = hdl:FIRST-CHILD.

DO WHILE VALID-HANDLE(hdl):
IF hdl:INDEX GT 0 THEN DO:
/* Problem area - unable to find soluton */
END.
ELSE DO:
DO count = 1 TO NUM-ENTRIES(tmp-List):
fld = ENTRY(count,tmp-List).
IF fld = hdl:NAME THEN DO:
OldVar = OldVar + hdl:NAME + ":" + hdl:SCREEN-VALUE + " ".
END.
END.
END.
hdl = hdl:NEXT-SIBLING.
END.
tRepLog.oFldVar = OldVar.

/* --------------------------------- */

This works fine but the problem is with fields with EXTENT.In that case, working in ver 8.2 it doesn't allow (eg. hdl:EXTENT kind of thing) and also I can't find, what kind of attributes are available when using (Current-Iteration and FRAME).
Any ideas how can I work with "Array/Extent" fields?
any kind of suggestion will be highly appreciated.

Thnx..

SK
 
Top