define variable hTest as handle no-undo.
DEFINE TEMP-TABLE test BEFORE-TABLE before-table-name
FIELD columnNum AS INTEGER
FIELD description LIKE ITEM.DESCRIPTION
FIELD prod-code LIKE PRODMSTR.PROD-CODE
INDEX myIndex IS UNIQUE columnNum ASCENDING.
DEFINE DATASET ds-1
FOR test.
hTest = TEMP-TABLE test:HANDLE.
hTest:TRACKING-CHANGES = TRUE.
DEFINE VARIABLE uniqueColumn AS INTEGER INIT 1.
hTest:SET-CALLBACK-PROCEDURE("ROW-CREATE","increment").
PROCEDURE increment:
test.columnNum = uniqueColumn.
uniqueColumn = uniqueColumn + 1.
END PROCEDURE.
DEFINE VARIABLE hTest AS HANDLE NO-UNDO.
DEFINE TEMP-TABLE test BEFORE-TABLE before-table-name
FIELD columnNum AS INTEGER
FIELD prod-code LIKE PRODMSTR.PROD-CODE
INDEX myIndex IS UNIQUE columnNum ASCENDING.
DEFINE BUFFER bTest FOR TEMP-TABLE test.
DEFINE DATASET dSet FOR bTest.
DEFINE VARIABLE uniqueColumn AS INTEGER INIT 1.
/* Create a handle so we can set the temp-table's TRACKING-CHANGES to true */
hTest = TEMP-TABLE test:HANDLE.
hTest:TRACKING-CHANGES = TRUE.
/* Use the temp-table's buffer to set a callback procedure. */
BUFFER bTest:SET-CALLBACK-PROCEDURE ("ROW-CREATE","increment").
/* Callback procedure */
PROCEDURE increment:
DEFINE INPUT PARAMETER DATASET FOR dSet.
bTest.columnNum = uniqueColumn.
uniqueColumn = uniqueColumn + 1.
END PROCEDURE.
/* Populate the temp-table using its buffer */
FOR EACH PRODMSTR WHERE PRODMSTR.DISC-INDEX > 0 AND PRODMSTR.DISC-INDEX < 5 NO-LOCK:
CREATE bTest.
bTest.prod-code = PRODMSTR.PROD-CODE.
END.
FOR EACH test NO-LOCK:
DISPLAY test.
END.
PAUSE.
QUIT.
columnNum PRODUCT CODE
---------- ------------
1 30101
2 30111
3 30240
4 30303
5 30304
6 30305
7 30306
8 30307
9 30308
10 30309
...