Project

General

Profile

t2524a.p

updated testcase with p4gl expected output - Ovidiu Maxiniuc, 03/03/2015 12:26 PM

Download (5.5 KB)

 
1
DEF TEMP-TABLE tt0 
2
   FIELD f1 AS INT. 
3
CREATE tt0. tt0.f1 = -2.
4
CREATE tt0. tt0.f1 =  6.
5
CREATE tt0. tt0.f1 = 10.
6

    
7
PROCEDURE pIterateBuffers:
8
   DEFINE INPUT PARAMETER delete-it AS LOGICAL.
9

    
10
   DEFINE VARIABLE VhCurrent AS HANDLE   NO-UNDO.
11
   DEFINE VARIABLE VhNext AS HANDLE      NO-UNDO.
12
   DEFINE VARIABLE cnt AS INTEGER INIT 0 NO-UNDO.
13

    
14
   VhCurrent = SESSION:FIRST-BUFFER NO-ERROR.
15
   DO WHILE VALID-HANDLE(VhCurrent) WITH 5 DOWN:
16
       VhNext = VhCurrent:NEXT-SIBLING.
17
       cnt = cnt + 1.
18
       
19
       DISPLAY cnt + 0 "crt:"  VhCurrent:NAME.
20
       IF VALID-HANDLE(VhCurrent) THEN DO:
21
           /*only delete dynamic buffers*/
22
           IF VhCurrent:DYNAMIC /* shouldn't they all be dynamic ? */
23
                  AND delete-it THEN DO:
24
              DISPLAY "deleting" VhCurrent:NAME.
25
              DELETE OBJECT VhCurrent:TABLE-HANDLE no-ERROR.
26
              if (NOT ERROR-STATUS:ERROR) THEN 
27
                  DISPLAY "Deleted!".
28
           END.
29
       END.
30
       VhCurrent = VhNext.
31
   END.
32
   MESSAGE cnt.
33
END PROCEDURE.
34

    
35
PROCEDURE createSomeDynamicBuffer:
36
   DEFINE VARIABLE tth AS HANDLE NO-UNDO.
37
   DEFINE VARIABLE bh AS HANDLE NO-UNDO.
38
   
39
   CREATE TEMP-TABLE tth.
40
   tth:CREATE-LIKE(BUFFER book:HANDLE).
41
   tth:ADD-NEW-FIELD("f1", "integer").
42
   tth:TEMP-TABLE-PREPARE("newBook").
43

    
44
   bh = tth:DEFAULT-BUFFER-HANDLE.
45
   FOR EACH Book NO-LOCK:
46
      bh:BUFFER-CREATE.
47
      bh:BUFFER-COPY(BUFFER book:HANDLE).
48
   END.
49
   RUN pIterateBuffers(no).
50
END PROCEDURE.
51

    
52
PROCEDURE createSomeDynamicBuffer2:
53
   DEFINE VARIABLE tth2 AS HANDLE NO-UNDO.
54
   DEFINE VARIABLE bh2 AS HANDLE NO-UNDO.
55
      
56
   CREATE TEMP-TABLE tth2.
57
   tth2:CREATE-LIKE(BUFFER book:HANDLE).
58
   tth2:ADD-NEW-FIELD("f2", "character").
59
   tth2:TEMP-TABLE-PREPARE("newBook2").
60

    
61
   bh2 = tth2:DEFAULT-BUFFER-HANDLE.
62
   FOR EACH Book NO-LOCK:
63
      bh2:BUFFER-CREATE.
64
      bh2:BUFFER-COPY(BUFFER book:HANDLE).
65
   END.
66
END PROCEDURE.
67

    
68
DEFINE VARIABLE t2 AS HANDLE.
69
PROCEDURE defineHandleToTempTable:
70
   t2 = BUFFER tt0:HANDLE.
71
   FIND LAST tt0.
72
END PROCEDURE.
73

    
74
DEFINE VARIABLE t3 AS HANDLE.
75
PROCEDURE createHandleToTempTable:
76
   CREATE BUFFER t3 FOR TABLE "tt0" BUFFER-NAME "t3h".
77
   /* t3:FIND-FIRST(). */
78
   DISPLAY "[[[" t3:TABLE-HANDLE:NAME "]]]".
79
END PROCEDURE.
80
   
81
DEFINE VARIABLE b2 AS HANDLE.
82
PROCEDURE defineHandleToPermanentTable:
83
   b2 = BUFFER book:HANDLE.
84
   FIND LAST book.
85
END PROCEDURE.
86

    
87
DEFINE VARIABLE b3 AS HANDLE.
88
PROCEDURE createHandleToPermanentTable:
89
   CREATE BUFFER b3 FOR TABLE "book" BUFFER-NAME "b3h".
90
   b3:FIND-FIRST().
91
END PROCEDURE.
92

    
93
DEFINE BUFFER sb FOR book.
94
PROCEDURE defineBufferForPermanentTable:
95
   FIND FIRST sb.
96
   FIND NEXT sb.
97
END PROCEDURE.
98

    
99
RUN defineHandleToTempTable.           /* t2 / tt0  */
100
RUN createHandleToTempTable.           /* t3 / t3h             <- 1 */
101
RUN defineHandleToPermanentTable.      /* b2 / book */
102
RUN createHandleToPermanentTable.      /* b3 / b3h             <- 4 */
103
RUN defineBufferForPermanentTable.     /* sb / book */
104
DISPLAY sb.isbn STRING(b2::isbn) STRING(b3::isbn) b3:NAME.
105
RUN createSomeDynamicBuffer.           /* newBook              <- 2 */
106
RUN createSomeDynamicBuffer2.          /* newBook2             <- 3 */
107
RUN createSomeDynamicBuffer2.          /* newBook2             <- 3 */
108

    
109
RUN pIterateBuffers(yes).
110
RUN pIterateBuffers(yes).
111
MESSAGE "Done.".
112

    
113
/*
114
Expected output:
115
┌──────────────────────────────────────────┐
116
│ISBN                                      │
117
│───────────────                           │
118
│111-11-1        tt       111-11-0 b3h     │
119
└──────────────────────────────────────────┘
120
┌───────────────────────────────────────────────────┐
121
│         1 crt: t3h                                │
122
│         2 crt: newBook                            │
123
│         3 crt: b3h                                │
124
│                                                   │
125
│                                                   │
126
└───────────────────────────────────────────────────┘
127
┌───────────────────────────────────────────────────┐
128
│         1 crt: t3h      deleting t3h      Deleted!│
129
│         2 crt: newBook  deleting newBook  Deleted!│
130
│         3 crt: newBook2 deleting newBook2 Deleted!│
131
│         4 crt: newBook2 deleting newBook2 Deleted!│
132
│         5 crt: b3h      deleting b3h              │
133
└───────────────────────────────────────────────────┘
134
┌───────────────────────────────────────────────────┐
135
│         1 crt: t3h                                │
136
│         2 crt: b3h                                │
137
│                                                   │
138
│                                                   │
139
│                                                   │
140
└───────────────────────────────────────────────────┘
141

    
142
3
143
5
144
2
145
Done.
146
*/