Project

General

Profile

w3.p

Igor Skornyakov, 02/17/2015 04:13 AM

Download (4.76 KB)

 
1
DEFINE VARIABLE mode AS CHARACTER NO-UNDO FORMAT "X(1)".
2
DEFINE VARIABLE wtype AS CHARACTER NO-UNDO FORMAT "X(1)".
3
INPUT FROM TERMINAL.
4
  SET mode LABEL "Please enter mode [D/S] [S]" WITH SIDE-LABELS NO-BOX FRAME q.
5
INPUT CLOSE.
6

    
7
DEFINE VARIABLE choice        AS CHARACTER NO-UNDO FORMAT "x(50)"
8
  LABEL "You have selected".
9
DEFINE VARIABLE choice1        AS CHARACTER NO-UNDO FORMAT "x(50)"
10
  LABEL "Selected".
11
DEFINE VARIABLE idx           AS INTEGER NO-UNDO. 
12
DEFINE VARIABLE items         AS CHARACTER NO-UNDO.
13

    
14
DEFINE VARIABLE rc AS LOGICAL NO-UNDO.
15

    
16
DEFINE FRAME c choice.
17
DEFINE FRAME c1 choice1.
18
DEFINE FRAME y items.
19

    
20
DEFINE VARIABLE aitem AS CHARACTER NO-UNDO LABEL "Item to add last".
21
DEFINE VARIABLE aval AS CHARACTER NO-UNDO LABEL "Value to add last".
22
DEFINE VARIABLE fitem AS CHARACTER NO-UNDO LABEL "Item to add-first".
23
DEFINE VARIABLE fval AS CHARACTER NO-UNDO LABEL "Value to add-first".
24

    
25
DEFINE FRAME z aitem SPACE(2) aval.
26
DEFINE FRAME f fitem SPACE(2) fval.
27

    
28
DEFINE VARIABLE h AS HANDLE NO-UNDO.
29
DEFINE FRAME b  WITH SIZE 30 BY 6.
30
DEFINE VARIABLE hB AS HANDLE NO-UNDO.
31
hB = FRAME b:HANDLE.
32

    
33
RUN P_Create_RS.
34

    
35
DEFINE VARIABLE rb AS CHARACTER NO-UNDO 
36
  VIEW-AS RADIO-SET HORIZONTAL EXPAND
37
  RADIO-BUTTONS
38
     "C1", "1",
39
     "C2", "2",
40
     "C3", "3",
41
     "C4", "4",
42
     "C5", "5",
43
     "C6", "6",
44
     "C7", "7",
45
     "C8", "8",
46
     "C9", "9",        
47
     "CA", "A",
48
     "CB", "B",
49
     "CC", "C",
50
     "CD", "D",
51
     "CE", "E",
52
     "CF", "F" 
53
     .         
54
DEFINE FRAME bs rb  WITH SIZE 70 BY 3.
55
DEFINE VARIABLE hBS AS HANDLE NO-UNDO.
56
hBS = FRAME bs:HANDLE.
57
rb:AUTO-RESIZE IN FRAME bs = TRUE.
58

    
59
IF mode = "D" THEN DO:
60
        MESSAGE "Use dynamic widget" VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
61
        ENABLE ALL WITH FRAME b NO-LABELS TITLE "Please select an item"/* SIZE 80 BY 3*/.
62
END.
63
ELSE DO:
64
        MESSAGE "Use static widget" VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
65
        ENABLE rb WITH FRAME bs NO-LABELS TITLE "Please select an item".
66
        rb:AUTO-RESIZE = FALSE.
67
END.
68

    
69
ENABLE items WITH FRAME y NO-LABELS TITLE "Please specify item to delete" WIDTH 50.
70
ENABLE aitem aval WITH FRAME z TITLE "Please specify item(s) to add last" WIDTH 50.
71
ENABLE fitem fval WITH FRAME f TITLE "Please specify item(s) to add first" WIDTH 50.
72

    
73
RUN P_Show_RC(INPUT ?).
74

    
75
ON RETURN OF items IN FRAME y DO:
76
  ASSIGN FRAME y items.
77
  MESSAGE items VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
78
  rc = IF mode = "S" THEN rb:DELETE(items) IN FRAME bs ELSE h:DELETE(items).
79
  RUN P_Show_RC(INPUT rc).
80
END.        
81
      
82
ON RETURN OF aval IN FRAME z DO:
83
  ASSIGN FRAME z aitem aval.
84
  MESSAGE aitem aval VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
85
  rc = IF mode = "S" THEN rb:ADD-LAST(aitem, aval) IN FRAME bs ELSE h:ADD-LAST(aitem, aval).
86
  RUN P_Show_RC(INPUT rc).
87
END.
88

    
89
ON RETURN OF fval IN FRAME f DO:
90
  ASSIGN FRAME f fitem fval.
91
  MESSAGE fitem fval VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
92
  rc = IF mode = "S" THEN rb:ADD-FIRST(aitem, aval) IN FRAME bs ELSE h:ADD-FIRST(aitem, aval).
93
  RUN P_Show_RC(INPUT rc).
94
END.
95

    
96
ON RETURN OF rb IN FRAME bs DO:
97
  MESSAGE "RETURN" VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
98
  choice1 = rb:SCREEN-VALUE.
99
  DISPLAY choice1 WITH FRAME c1 SIDE-LABELS.
100
END.
101

    
102
ON VALUE-CHANGED OF rb IN FRAME bs DO:
103
  MESSAGE "VALUE-CHANGED" VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
104
  choice = rb:SCREEN-VALUE.
105
  DISPLAY choice WITH FRAME c SIDE-LABELS.
106
END.
107

    
108
ON VALUE-CHANGED OF h
109
DO:
110
  MESSAGE "VALUE-CHANGED" VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
111
  choice = SELF:SCREEN-VALUE.
112
  DISPLAY choice WITH FRAME c SIDE-LABELS.
113
END.
114

    
115
ON RETURN OF h
116
DO:
117
  MESSAGE "RETURN" VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
118
  choice1 = SELF:SCREEN-VALUE.
119
  DISPLAY choice1 WITH FRAME c1 SIDE-LABELS.
120
END.
121

    
122
WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.
123

    
124
PROCEDURE P_Create_RS PRIVATE :
125
 
126
    CREATE RADIO-SET h ASSIGN 
127
        HEIGHT-CHARS  = 1
128
        WIDTH-CHARS   = 10.0
129
        AUTO-RESIZE   = TRUE
130
        HORIZONTAL    = TRUE
131
        EXPAND        = TRUE
132
        .
133

    
134
    h:ADD-LAST("I1", "1").
135
    h:ADD-LAST("I2", "2").
136
    h:ADD-LAST("I3", "3").
137

    
138
    MESSAGE h:WIDTH-CHARS "x" h:HEIGHT-CHARS h:AUTO-RESIZE h:EXPAND h:RADIO-BUTTONS  VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
139

    
140
    h:FRAME = FRAME b:HANDLE.
141
END PROCEDURE.
142

    
143
PROCEDURE P_Show_RC PRIVATE :
144
    DEFINE INPUT PARAMETER rc AS LOGICAL NO-UNDO.
145
    IF mode = "S" THEN
146
        RUN P_Show(INPUT rc, INPUT rb:HANDLE IN FRAME bs, INPUT hBS).
147
    ELSE
148
        RUN P_Show(INPUT rc, INPUT h, INPUT hB).
149
END PROCEDURE.
150

    
151
PROCEDURE P_Show PRIVATE :
152
    DEFINE INPUT PARAMETER rc AS LOGICAL NO-UNDO.
153
    DEFINE INPUT PARAMETER hW AS HANDLE NO-UNDO.
154
    DEFINE INPUT PARAMETER hF AS HANDLE NO-UNDO.
155
    MESSAGE rc hW:WIDTH-CHARS "x" hW:HEIGHT-CHARS hW:AUTO-RESIZE hW:EXPAND hF:WIDTH-CHAR "x" hF:HEIGHT-CHAR hW:RADIO-BUTTONS hF:SCROLLABLE VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
156

    
157
END PROCEDURE.
158