start.p
| 1 |
DEFINE TEMP-TABLE tt1 FIELD f1 as character. |
|---|---|
| 2 |
create tt1. |
| 3 |
assign tt1.f1 = "a". |
| 4 |
|
| 5 |
DEFINE BUTTON btnd. |
| 6 |
DEFINE VARIABLE ghBuffer AS HANDLE NO-UNDO. |
| 7 |
DEFINE VARIABLE ghQuery AS HANDLE NO-UNDO. |
| 8 |
DEFINE VARIABLE gwhBrowse AS WIDGET-HANDLE NO-UNDO. |
| 9 |
|
| 10 |
DEFINE FRAME fMain btnd with SIZE 80 BY 17. |
| 11 |
run createWidgets. |
| 12 |
APPLY "entry" TO gwhBrowse. |
| 13 |
on choose of btnd do: |
| 14 |
run mmain. |
| 15 |
end. |
| 16 |
PROCEDURE createWidgets : |
| 17 |
ASSIGN ghBuffer = BUFFER tt1:HANDLE. |
| 18 |
CREATE QUERY ghQuery. |
| 19 |
ghQuery:SET-BUFFERS(ghBuffer). |
| 20 |
ghQuery:QUERY-PREPARE("PRESELECT EACH ":U + ghBuffer:NAME).
|
| 21 |
ghQuery:QUERY-OPEN(). |
| 22 |
CREATE BROWSE gwhBrowse |
| 23 |
ASSIGN |
| 24 |
FRAME = FRAME fMain:HANDLE |
| 25 |
QUERY = ghQuery |
| 26 |
ROW = 3 |
| 27 |
READ-ONLY = FALSE |
| 28 |
SENSITIVE = TRUE |
| 29 |
VISIBLE = TRUE. |
| 30 |
gwhBrowse:ADD-LIKE-COLUMN('tt1.f1').
|
| 31 |
assign gwhBrowse:GET-BROWSE-COLUMN(1):READ-ONLY = false |
| 32 |
gwhBrowse:EXPANDABLE = TRUE. |
| 33 |
END PROCEDURE. |
| 34 |
|
| 35 |
procedure mmain: |
| 36 |
DEFINE VARIABLE rwNextRowID AS ROWID NO-UNDO. |
| 37 |
ghQuery:GET-PREV(). |
| 38 |
IF ghQuery:QUERY-OFF-END = FALSE THEN |
| 39 |
ASSIGN rwNextRowId = ghBuffer:ROWID. |
| 40 |
ghQuery:GET-NEXT(). |
| 41 |
ghBuffer:BUFFER-DELETE(). |
| 42 |
gwhBrowse:DELETE-CURRENT-ROW(). |
| 43 |
ghQuery:QUERY-CLOSE(). |
| 44 |
ghQuery:QUERY-OPEN(). |
| 45 |
ghQuery:REPOSITION-TO-ROWID(rwNextRowid) NO-ERROR. |
| 46 |
DEFINE VARIABLE rwCurrRow AS ROWID NO-UNDO. |
| 47 |
ghBuffer:BUFFER-CREATE. |
| 48 |
ASSIGN rwCurrRow = ghBuffer:ROWID. |
| 49 |
ghBuffer:BUFFER-RELEASE(). |
| 50 |
ghQuery:QUERY-CLOSE(). |
| 51 |
ghQuery:QUERY-OPEN(). |
| 52 |
ghQuery:REPOSITION-TO-ROWID(rwCurrRow) NO-ERROR. |
| 53 |
end procedure. |
| 54 |
enable all with frame fMain. |
| 55 |
wait-for close of current-window. |
| 56 |
|