Added capital works blank section. Synced calling screen.
[capital-apms-progress.git] / vwr / mnt / v-office.w
blobf432d26d13e49ebc64c9e4ee978d764d2e0cac80
1 &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI
2 &ANALYZE-RESUME
3 /* Connected Databases
4 ttpl PROGRESS
5 */
6 &Scoped-define WINDOW-NAME CURRENT-WINDOW
7 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS V-table-Win
8 /*------------------------------------------------------------------------
9 ------------------------------------------------------------------------*/
11 CREATE WIDGET-POOL.
13 /* *************************** Definitions ************************** */
15 DEF VAR mode AS CHAR NO-UNDO.
17 /* _UIB-CODE-BLOCK-END */
18 &ANALYZE-RESUME
21 &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
23 /* ******************** Preprocessor Definitions ******************** */
25 &Scoped-define PROCEDURE-TYPE SmartViewer
27 &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
29 /* Name of first Frame and/or Browse and/or first Query */
30 &Scoped-define FRAME-NAME F-Main
32 /* External Tables */
33 &Scoped-define EXTERNAL-TABLES Office
34 &Scoped-define FIRST-EXTERNAL-TABLE Office
37 /* Need to scope the external tables to this procedure */
38 DEFINE QUERY external_tables FOR Office.
39 /* Standard List Definitions */
40 &Scoped-Define ENABLED-FIELDS Office.OfficeCode Office.ThisOffice ~
41 Office.Name Office.StreetAddress Office.GST Office.GSTNo
42 &Scoped-define FIELD-PAIRS~
43 ~{&FP1}OfficeCode ~{&FP2}OfficeCode ~{&FP3}~
44 ~{&FP1}Name ~{&FP2}Name ~{&FP3}~
45 ~{&FP1}GST ~{&FP2}GST ~{&FP3}~
46 ~{&FP1}GSTNo ~{&FP2}GSTNo ~{&FP3}
47 &Scoped-define ENABLED-TABLES Office
48 &Scoped-define FIRST-ENABLED-TABLE Office
49 &Scoped-Define ENABLED-OBJECTS RECT-24
50 &Scoped-Define DISPLAYED-FIELDS Office.OfficeCode Office.ThisOffice ~
51 Office.Name Office.StreetAddress Office.GST Office.GSTNo
53 /* Custom List Definitions */
54 /* ADM-CREATE-FIELDS,ADM-ASSIGN-FIELDS,List-3,List-4,List-5,List-6 */
56 /* _UIB-PREPROCESSOR-BLOCK-END */
57 &ANALYZE-RESUME
60 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" V-table-Win _INLINE
61 /* Actions: ? adm/support/keyedit.w ? ? ? */
62 /* STRUCTURED-DATA
63 <KEY-OBJECT>
64 THIS-PROCEDURE
65 </KEY-OBJECT>
66 <FOREIGN-KEYS>
67 OfficeCode|y|y|ttpl.Office.OfficeCode
68 </FOREIGN-KEYS>
69 <EXECUTING-CODE>
70 **************************
71 * Set attributes related to FOREIGN KEYS
73 RUN set-attribute-list (
74 'Keys-Accepted = "OfficeCode",
75 Keys-Supplied = "OfficeCode"':U).
76 /**************************
77 </EXECUTING-CODE> */
78 /* _UIB-CODE-BLOCK-END */
79 &ANALYZE-RESUME
82 /* *********************** Control Definitions ********************** */
85 /* Definitions of the field level widgets */
86 DEFINE RECTANGLE RECT-24
87 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
88 SIZE 61.72 BY 9.6.
91 /* ************************ Frame Definitions *********************** */
93 DEFINE FRAME F-Main
94 Office.OfficeCode AT ROW 1.2 COL 8.72 COLON-ALIGNED
95 VIEW-AS FILL-IN
96 SIZE 5.43 BY 1
97 Office.ThisOffice AT ROW 1.2 COL 22.72
98 LABEL "This Office"
99 VIEW-AS TOGGLE-BOX
100 SIZE 10.86 BY 1
101 Office.Name AT ROW 2.2 COL 8.72 COLON-ALIGNED
102 VIEW-AS FILL-IN
103 SIZE 51.43 BY 1
104 Office.StreetAddress AT ROW 4.2 COL 10.72 NO-LABEL
105 VIEW-AS EDITOR SCROLLBAR-VERTICAL
106 SIZE 51.43 BY 5
107 Office.GST AT ROW 9.4 COL 8.72 COLON-ALIGNED
108 LABEL "GST Rate"
109 VIEW-AS FILL-IN
110 SIZE 7.43 BY 1
111 Office.GSTNo AT ROW 9.4 COL 31.57 COLON-ALIGNED
112 LABEL "Primary GST No" FORMAT "999999999999"
113 VIEW-AS FILL-IN
114 SIZE 12 BY 1
115 RECT-24 AT ROW 1 COL 1
116 "Address:" VIEW-AS TEXT
117 SIZE 6.14 BY .6 AT ROW 4.2 COL 4.43
118 FONT 10
119 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
120 SIDE-LABELS NO-UNDERLINE THREE-D
121 AT COL 1 ROW 1 SCROLLABLE
122 FONT 10.
125 /* *********************** Procedure Settings ************************ */
127 &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
128 /* Settings for THIS-PROCEDURE
129 Type: SmartViewer
130 External Tables: ttpl.Office
131 Allow: Basic,DB-Fields
132 Frames: 1
133 Add Fields to: EXTERNAL-TABLES
134 Other Settings: PERSISTENT-ONLY COMPILE
137 /* This procedure should always be RUN PERSISTENT. Report the error, */
138 /* then cleanup and return. */
139 IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
140 MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT."
141 VIEW-AS ALERT-BOX ERROR BUTTONS OK.
142 RETURN.
143 END.
145 &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
147 /* ************************* Create Window ************************** */
149 &ANALYZE-SUSPEND _CREATE-WINDOW
150 /* DESIGN Window definition (used by the UIB)
151 CREATE WINDOW V-table-Win ASSIGN
152 HEIGHT = 15.5
153 WIDTH = 73.72.
154 /* END WINDOW DEFINITION */
156 &ANALYZE-RESUME
159 /* *************** Runtime Attributes and UIB Settings ************** */
161 &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
162 /* SETTINGS FOR WINDOW V-table-Win
163 VISIBLE,,RUN-PERSISTENT */
164 /* SETTINGS FOR FRAME F-Main
165 NOT-VISIBLE Size-to-Fit */
166 ASSIGN
167 FRAME F-Main:SCROLLABLE = FALSE
168 FRAME F-Main:HIDDEN = TRUE.
170 /* SETTINGS FOR FILL-IN Office.GST IN FRAME F-Main
171 EXP-LABEL */
172 /* SETTINGS FOR FILL-IN Office.GSTNo IN FRAME F-Main
173 EXP-LABEL EXP-FORMAT */
174 /* SETTINGS FOR TOGGLE-BOX Office.ThisOffice IN FRAME F-Main
175 EXP-LABEL */
176 /* _RUN-TIME-ATTRIBUTES-END */
177 &ANALYZE-RESUME
180 /* Setting information for Queries and Browse Widgets fields */
182 &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
183 /* Query rebuild information for FRAME F-Main
184 _Options = "NO-LOCK"
185 _Query is NOT OPENED
186 */ /* FRAME F-Main */
187 &ANALYZE-RESUME
192 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB V-table-Win
193 /* ************************* Included-Libraries *********************** */
195 {src/adm/method/viewer.i}
196 {inc/method/m-mntvwr.i}
198 /* _UIB-CODE-BLOCK-END */
199 &ANALYZE-RESUME
203 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK V-table-Win
206 /* *************************** Main Block *************************** */
208 /* _UIB-CODE-BLOCK-END */
209 &ANALYZE-RESUME
212 /* ********************** Internal Procedures *********************** */
214 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-find-using-key V-table-Win adm/support/_key-fnd.p
215 PROCEDURE adm-find-using-key :
216 /*------------------------------------------------------------------------------
217 Purpose: Finds the current record using the contents of
218 the 'Key-Name' and 'Key-Value' attributes.
219 Parameters: <none>
220 ------------------------------------------------------------------------------*/
221 DEF VAR key-value AS CHAR NO-UNDO.
222 DEF VAR row-avail-enabled AS LOGICAL NO-UNDO.
224 /* LOCK status on the find depends on FIELDS-ENABLED. */
225 RUN get-attribute ('FIELDS-ENABLED':U).
226 row-avail-enabled = (RETURN-VALUE eq 'yes':U).
227 /* Look up the current key-value. */
228 RUN get-attribute ('Key-Value':U).
229 key-value = RETURN-VALUE.
231 /* Find the current record using the current Key-Name. */
232 RUN get-attribute ('Key-Name':U).
233 CASE RETURN-VALUE:
234 WHEN 'OfficeCode':U THEN
235 {src/adm/template/find-tbl.i
236 &TABLE = Office
237 &WHERE = "WHERE Office.OfficeCode eq key-value"
239 END CASE.
241 END PROCEDURE.
243 /* _UIB-CODE-BLOCK-END */
244 &ANALYZE-RESUME
247 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available V-table-Win _ADM-ROW-AVAILABLE
248 PROCEDURE adm-row-available :
249 /*------------------------------------------------------------------------------
250 Purpose: Dispatched to this procedure when the Record-
251 Source has a new row available. This procedure
252 tries to get the new row (or foriegn keys) from
253 the Record-Source and process it.
254 Parameters: <none>
255 ------------------------------------------------------------------------------*/
257 /* Define variables needed by this internal procedure. */
258 {src/adm/template/row-head.i}
260 /* Create a list of all the tables that we need to get. */
261 {src/adm/template/row-list.i "Office"}
263 /* Get the record ROWID's from the RECORD-SOURCE. */
264 {src/adm/template/row-get.i}
266 /* FIND each record specified by the RECORD-SOURCE. */
267 {src/adm/template/row-find.i "Office"}
269 /* Process the newly available records (i.e. display fields,
270 open queries, and/or pass records on to any RECORD-TARGETS). */
271 {src/adm/template/row-end.i}
273 END PROCEDURE.
275 /* _UIB-CODE-BLOCK-END */
276 &ANALYZE-RESUME
279 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancel-changes V-table-Win
280 PROCEDURE cancel-changes :
281 /*------------------------------------------------------------------------------
282 Purpose:
283 ------------------------------------------------------------------------------*/
284 RUN check-modified( 'clear':U ).
285 RUN dispatch( 'exit':U ).
286 END PROCEDURE.
288 /* _UIB-CODE-BLOCK-END */
289 &ANALYZE-RESUME
292 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE confirm-changes V-table-Win
293 PROCEDURE confirm-changes :
294 /*------------------------------------------------------------------------------
295 Purpose:
296 ------------------------------------------------------------------------------*/
297 RUN verify-office.
298 IF RETURN-VALUE = "FAIL" THEN RETURN.
300 RUN dispatch( 'update-record':U ).
301 IF mode = "Add" THEN RUN notify( 'open-query,record-source':U).
302 RUN dispatch( 'exit':U ).
303 END PROCEDURE.
305 /* _UIB-CODE-BLOCK-END */
306 &ANALYZE-RESUME
309 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI V-table-Win _DEFAULT-DISABLE
310 PROCEDURE disable_UI :
311 /*------------------------------------------------------------------------------
312 Purpose: DISABLE the User Interface
313 Parameters: <none>
314 Notes: Here we clean-up the user-interface by deleting
315 dynamic widgets we have created and/or hide
316 frames. This procedure is usually called when
317 we are ready to "clean-up" after running.
318 ------------------------------------------------------------------------------*/
319 /* Hide all frames. */
320 HIDE FRAME F-Main.
321 IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
322 END PROCEDURE.
324 /* _UIB-CODE-BLOCK-END */
325 &ANALYZE-RESUME
328 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-assign-statement V-table-Win
329 PROCEDURE inst-assign-statement :
330 /*------------------------------------------------------------------------------
331 Purpose:
332 ------------------------------------------------------------------------------*/
333 FIND OfficeSettings OF Office WHERE OfficeSettings.SetName = "GST-Number" EXCLUSIVE-LOCK NO-ERROR.
334 IF NOT AVAILABLE(OfficeSettings) THEN DO:
335 CREATE OfficeSettings.
336 ASSIGN OfficeSettings.OfficeCode = Office.OfficeCode
337 OfficeSettings.SetName = "GST-Number"
338 OfficeSettings.SetValue = REPLACE( STRING( Office.GSTNo, ">99,999,999"),",","-") .
339 END.
341 FIND OfficeSettings OF Office WHERE OfficeSettings.SetName = "GST-Rate" EXCLUSIVE-LOCK NO-ERROR.
342 IF NOT AVAILABLE(OfficeSettings) THEN CREATE OfficeSettings.
343 ASSIGN OfficeSettings.OfficeCode = Office.OfficeCode
344 OfficeSettings.SetName = "GST-Rate"
345 OfficeSettings.SetValue = STRING( Office.GST ).
347 /* unlock the record */
348 FIND FIRST OfficeSettings OF Office NO-LOCK NO-ERROR.
350 END PROCEDURE.
352 /* _UIB-CODE-BLOCK-END */
353 &ANALYZE-RESUME
356 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-enable-fields V-table-Win
357 PROCEDURE inst-enable-fields :
358 /*------------------------------------------------------------------------------
359 Purpose:
360 ------------------------------------------------------------------------------*/
361 DO WITH FRAME {&FRAME-NAME}:
363 Office.OfficeCode:SENSITIVE = (Mode = "Add").
364 /* Office.StreetAddress:READ-ONLY = No. */
365 Office.GSTNo:HIDDEN = (Mode <> "Add").
366 END.
368 END PROCEDURE.
370 /* _UIB-CODE-BLOCK-END */
371 &ANALYZE-RESUME
374 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-initialize V-table-Win
375 PROCEDURE inst-initialize :
376 /*------------------------------------------------------------------------------
377 Purpose:
378 ------------------------------------------------------------------------------*/
379 IF mode = "Add" THEN DO:
380 have-records = Yes.
381 RUN dispatch( 'add-record':U ).
382 END.
384 RUN dispatch( 'enable-fields':U ).
386 END PROCEDURE.
388 /* _UIB-CODE-BLOCK-END */
389 &ANALYZE-RESUME
392 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE override-add-record V-table-Win
393 PROCEDURE override-add-record :
394 /*------------------------------------------------------------------------------
395 Purpose:
396 Parameters: <none>
397 Notes:
398 ------------------------------------------------------------------------------*/
399 FIND Office WHERE Office.OfficeCode = "" EXCLUSIVE-LOCK NO-ERROR.
400 IF NOT AVAILABLE( Office ) THEN CREATE Office.
402 RUN dispatch( 'display-fields':U ).
403 RUN dispatch( 'enable-fields':U ).
405 CURRENT-WINDOW:TITLE = "Adding New Office".
407 END PROCEDURE.
409 /* _UIB-CODE-BLOCK-END */
410 &ANALYZE-RESUME
413 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pre-destroy V-table-Win
414 PROCEDURE pre-destroy :
415 /*------------------------------------------------------------------------------
416 Purpose:
417 ------------------------------------------------------------------------------*/
418 RUN check-modified( 'clear':U ).
419 END PROCEDURE.
421 /* _UIB-CODE-BLOCK-END */
422 &ANALYZE-RESUME
425 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-key V-table-Win adm/support/_key-snd.p
426 PROCEDURE send-key :
427 /*------------------------------------------------------------------------------
428 Purpose: Sends a requested KEY value back to the calling
429 SmartObject.
430 Parameters: <see adm/template/sndkytop.i>
431 ------------------------------------------------------------------------------*/
433 /* Define variables needed by this internal procedure. */
434 {src/adm/template/sndkytop.i}
436 /* Return the key value associated with each key case. */
437 {src/adm/template/sndkycas.i "OfficeCode" "Office" "OfficeCode"}
439 /* Close the CASE statement and end the procedure. */
440 {src/adm/template/sndkyend.i}
442 END PROCEDURE.
444 /* _UIB-CODE-BLOCK-END */
445 &ANALYZE-RESUME
448 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records V-table-Win _ADM-SEND-RECORDS
449 PROCEDURE send-records :
450 /*------------------------------------------------------------------------------
451 Purpose: Send record ROWID's for all tables used by
452 this file.
453 Parameters: see template/snd-head.i
454 ------------------------------------------------------------------------------*/
456 /* Define variables needed by this internal procedure. */
457 {src/adm/template/snd-head.i}
459 /* For each requested table, put it's ROWID in the output list. */
460 {src/adm/template/snd-list.i "Office"}
462 /* Deal with any unexpected table requests before closing. */
463 {src/adm/template/snd-end.i}
465 END PROCEDURE.
467 /* _UIB-CODE-BLOCK-END */
468 &ANALYZE-RESUME
471 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed V-table-Win
472 PROCEDURE state-changed :
473 /* -----------------------------------------------------------
474 Purpose:
475 Parameters: <none>
476 Notes:
477 -------------------------------------------------------------*/
478 DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
479 DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
481 CASE p-state:
482 /* Object instance CASEs can go here to replace standard behavior
483 or add new cases. */
484 {src/adm/template/vstates.i}
485 END CASE.
486 END PROCEDURE.
488 /* _UIB-CODE-BLOCK-END */
489 &ANALYZE-RESUME
492 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE use-mode V-table-Win
493 PROCEDURE use-mode :
494 /*------------------------------------------------------------------------------
495 Purpose:
496 ------------------------------------------------------------------------------*/
497 DEF INPUT PARAMETER new-mode AS CHAR NO-UNDO.
498 mode = new-mode.
499 END PROCEDURE.
501 /* _UIB-CODE-BLOCK-END */
502 &ANALYZE-RESUME
505 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE verify-office V-table-Win
506 PROCEDURE verify-office :
507 /*------------------------------------------------------------------------------
508 Purpose:
509 ------------------------------------------------------------------------------*/
510 /* does nothing yet */
511 END PROCEDURE.
513 /* _UIB-CODE-BLOCK-END */
514 &ANALYZE-RESUME