Project

General

Profile

start.p

Razvan-Nicolae Chichirau, 04/22/2025 05:36 AM

Download (1.69 KB)

 
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