1 &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI
6 &Scoped-define WINDOW-NAME CURRENT-WINDOW
7 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS V-table-Win
8 /*------------------------------------------------------------------------
10 ------------------------------------------------------------------------*/
14 /* *************************** Definitions
************************** */
16 DEF VAR mode
AS CHAR NO-UNDO.
18 DEF VAR parent-key-type
AS CHAR NO-UNDO.
19 DEF VAR parent-task-key
AS CHAR NO-UNDO.
21 /* _UIB-CODE-BLOCK-END
*/
25 &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
27 /* ******************** Preprocessor Definitions
******************** */
29 &Scoped-define PROCEDURE-TYPE SmartViewer
31 &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target
33 /* Name of first Frame and
/or Browse and
/or first Query
*/
34 &Scoped-define FRAME-NAME F-Main
37 &Scoped-define EXTERNAL-TABLES FlowTask
38 &Scoped-define FIRST-EXTERNAL-TABLE FlowTask
41 /* Need to scope the external tables to this procedure
*/
42 DEFINE QUERY external_tables
FOR FlowTask.
43 /* Standard List Definitions
*/
44 &Scoped-Define ENABLED-FIELDS FlowTask.DueDate FlowTask.Description ~
45 FlowTask.Priority FlowTask.EntityCode
46 &Scoped-define FIELD-PAIRS~
47 ~
{&FP1}DueDate ~{&FP2}DueDate ~{&FP3}~
48 ~
{&FP1}Description ~{&FP2}Description ~{&FP3}~
49 ~
{&FP1}EntityCode ~{&FP2}EntityCode ~{&FP3}
50 &Scoped-define ENABLED-TABLES FlowTask
51 &Scoped-define FIRST-ENABLED-TABLE FlowTask
52 &Scoped-Define ENABLED-OBJECTS RECT-1 cmb_TaskType cmb_EntityType
53 &Scoped-Define DISPLAYED-FIELDS FlowTask.DueDate FlowTask.FlowTaskNo ~
54 FlowTask.JobLogNo FlowTask.Description FlowTask.Priority ~
56 &Scoped-Define DISPLAYED-OBJECTS cmb_TaskType cmb_EntityType fil_EntityName ~
59 /* Custom List Definitions
*/
60 /* ADM-CREATE-FIELDS
,ADM-ASSIGN-FIELDS
,List-3
,List-4
,List-5
,List-6
*/
62 /* _UIB-PREPROCESSOR-BLOCK-END
*/
66 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" V-table-Win _INLINE
67 /* Actions
: ? adm
/support
/keyedit.w ? ? ?
*/
75 **************************
76 * Set attributes related to FOREIGN
KEYS
78 RUN set-attribute-list
(
80 Keys-Supplied
= ""'
:U
).
81 /**************************
84 /* _UIB-CODE-BLOCK-END
*/
87 /* ************************ Function Prototypes
********************** */
89 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD find-parent-keytype V-table-Win
90 FUNCTION find-parent-keytype
RETURNS CHARACTER
91 ( /* no parameters
*/ ) FORWARD.
93 /* _UIB-CODE-BLOCK-END
*/
97 /* *********************** Control Definitions
********************** */
100 /* Definitions of the field level widgets
*/
101 DEFINE VARIABLE cmb_EntityType
AS CHARACTER FORMAT "X(256)":U
103 VIEW-AS COMBO-BOX INNER-LINES 5
105 SIZE 14.86 BY 1 NO-UNDO.
107 DEFINE VARIABLE cmb_TaskType
AS CHARACTER FORMAT "X(256)":U
109 VIEW-AS COMBO-BOX INNER-LINES 25
111 SIZE 46.29 BY 1 NO-UNDO.
113 DEFINE VARIABLE fil_AllocatedTo
AS CHARACTER FORMAT "X(256)":U
118 DEFINE VARIABLE fil_EntityName
AS CHARACTER FORMAT "X(256)":U
120 SIZE 36 BY 1.05 NO-UNDO.
122 DEFINE RECTANGLE RECT-1
123 EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
127 /* ************************ Frame Definitions
*********************** */
130 FlowTask.DueDate
AT ROW 1.2 COL 8.14 COLON-ALIGNED
134 FlowTask.FlowTaskNo
AT ROW 1.2 COL 31.57 COLON-ALIGNED
137 FlowTask.JobLogNo
AT ROW 1.2 COL 53.86 COLON-ALIGNED
141 cmb_TaskType
AT ROW 2.6 COL 8.14 COLON-ALIGNED
142 FlowTask.Description
AT ROW 3.8 COL 8.14 COLON-ALIGNED
145 FlowTask.Priority
AT ROW 5 COL 10.14 HELP
146 "Priority of task" NO-LABEL
147 VIEW-AS SLIDER MIN-VALUE -10 MAX-VALUE 10 HORIZONTAL
148 TIC-MARKS BOTTOM FREQUENCY 2
149 SIZE 42.29 BY 1.8 TOOLTIP "Adjust the priority of the task by moving the slider"
150 cmb_EntityType
AT ROW 7.4 COL 8.14 COLON-ALIGNED
151 FlowTask.EntityCode
AT ROW 7.4 COL 23 COLON-ALIGNED NO-LABEL
154 fil_EntityName
AT ROW 7.4 COL 28.72 COLON-ALIGNED NO-LABEL
155 fil_AllocatedTo
AT ROW 8.6 COL 11.57 COLON-ALIGNED NO-LABEL
156 "Person:" VIEW-AS TEXT
157 SIZE 5.14 BY 1 AT ROW 8.6 COL 4.43
158 "Relaxed" VIEW-AS TEXT
159 SIZE 6.29 BY 1 AT ROW 6 COL 4.43
160 "Urgent" VIEW-AS TEXT
161 SIZE 8 BY 1 AT ROW 6 COL 52.43
162 RECT-1
AT ROW 1 COL 1
163 WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
164 SIDE-LABELS NO-UNDERLINE THREE-D
165 AT COL 1 ROW 1 SCROLLABLE
169 /* *********************** Procedure Settings
************************ */
171 &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
172 /* Settings for
THIS-PROCEDURE
174 External Tables
: TTPL.FlowTask
175 Allow
: Basic
,DB-Fields
177 Add Fields to
: EXTERNAL-TABLES
178 Other Settings
: PERSISTENT-ONLY
COMPILE
181 /* This procedure should always be
RUN PERSISTENT. Report the error
, */
182 /* then cleanup and return.
*/
183 IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
184 MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT."
185 VIEW-AS ALERT-BOX ERROR BUTTONS OK.
189 &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
191 /* ************************* Create Window
************************** */
193 &ANALYZE-SUSPEND _CREATE-WINDOW
194 /* DESIGN Window definition
(used by the UIB
)
195 CREATE WINDOW V-table-Win
ASSIGN
198 /* END WINDOW DEFINITION
*/
203 /* *************** Runtime Attributes and UIB Settings
************** */
205 &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
206 /* SETTINGS
FOR WINDOW V-table-Win
207 VISIBLE,,RUN-PERSISTENT
*/
208 /* SETTINGS
FOR FRAME F-Main
209 NOT-VISIBLE Size-to-Fit
*/
211 FRAME F-Main
:SCROLLABLE = FALSE
212 FRAME F-Main
:HIDDEN = TRUE.
214 /* SETTINGS
FOR FILL-IN FlowTask.DueDate
IN FRAME F-Main
216 /* SETTINGS
FOR FILL-IN FlowTask.EntityCode
IN FRAME F-Main
218 /* SETTINGS
FOR FILL-IN fil_AllocatedTo
IN FRAME F-Main
220 /* SETTINGS
FOR FILL-IN fil_EntityName
IN FRAME F-Main
222 /* SETTINGS
FOR FILL-IN FlowTask.FlowTaskNo
IN FRAME F-Main
224 /* SETTINGS
FOR FILL-IN FlowTask.JobLogNo
IN FRAME F-Main
225 NO-ENABLE EXP-LABEL
*/
226 /* SETTINGS
FOR SLIDER FlowTask.Priority
IN FRAME F-Main
228 /* _RUN-TIME-ATTRIBUTES-END
*/
232 /* Setting information for Queries and Browse Widgets fields
*/
234 &ANALYZE-SUSPEND _QUERY-BLOCK FRAME F-Main
235 /* Query rebuild information for
FRAME F-Main
238 */ /* FRAME F-Main
*/
244 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB V-table-Win
245 /* ************************* Included-Libraries
*********************** */
247 {src
/adm
/method
/viewer.i
}
248 {inc
/method
/m-mntvwr.i
}
251 /* _UIB-CODE-BLOCK-END
*/
257 /* ************************ Control Triggers
************************ */
259 &Scoped-define SELF-NAME cmb_EntityType
260 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL cmb_EntityType V-table-Win
261 ON U1
OF cmb_EntityType
IN FRAME F-Main
/* Entity
*/
263 {inc
/selcmb
/scety1.i
"FlowTask" "EntityType"}
266 /* _UIB-CODE-BLOCK-END
*/
270 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL cmb_EntityType V-table-Win
271 ON U2
OF cmb_EntityType
IN FRAME F-Main
/* Entity
*/
273 {inc
/selcmb
/scety2.i
"FlowTask" "EntityType"}
276 /* _UIB-CODE-BLOCK-END
*/
280 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL cmb_EntityType V-table-Win
281 ON VALUE-CHANGED
OF cmb_EntityType
IN FRAME F-Main
/* Entity
*/
283 DO WITH FRAME {&FRAME-NAME}:
284 APPLY "ENTRY":U
TO FlowTask.EntityCode .
288 /* _UIB-CODE-BLOCK-END
*/
292 &Scoped-define SELF-NAME cmb_TaskType
293 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL cmb_TaskType V-table-Win
294 ON U1
OF cmb_TaskType
IN FRAME F-Main
/* Task Type
*/
296 {workflow
/inc
/SCFwTskTyp1.i
"FlowTask" "FlowTaskType"}
299 /* _UIB-CODE-BLOCK-END
*/
303 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL cmb_TaskType V-table-Win
304 ON U2
OF cmb_TaskType
IN FRAME F-Main
/* Task Type
*/
306 {workflow
/inc
/SCFwTskTyp2.i
"FlowTask" "FlowTaskType"}
309 /* _UIB-CODE-BLOCK-END
*/
313 &Scoped-define SELF-NAME FlowTask.EntityCode
314 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL FlowTask.EntityCode V-table-Win
315 ON LEAVE OF FlowTask.EntityCode
IN FRAME F-Main
/* EntityCode
*/
320 /* _UIB-CODE-BLOCK-END
*/
324 &Scoped-define SELF-NAME fil_AllocatedTo
325 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL fil_AllocatedTo V-table-Win
326 ON U1
OF fil_AllocatedTo
IN FRAME F-Main
328 {inc
/selfil
/sfpsn1.i
"FlowTask" "AllocatedTo"}
331 /* _UIB-CODE-BLOCK-END
*/
335 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL fil_AllocatedTo V-table-Win
336 ON U2
OF fil_AllocatedTo
IN FRAME F-Main
338 {inc
/selfil
/sfpsn2.i
"FlowTask" "AllocatedTo"}
341 /* _UIB-CODE-BLOCK-END
*/
345 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL fil_AllocatedTo V-table-Win
346 ON U3
OF fil_AllocatedTo
IN FRAME F-Main
348 {inc
/selfil
/sfpsn3.i
"FlowTask" "AllocatedTo"}
351 /* _UIB-CODE-BLOCK-END
*/
357 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK V-table-Win
360 /* *************************** Main Block
*************************** */
362 /* _UIB-CODE-BLOCK-END
*/
366 /* ********************** Internal Procedures
*********************** */
368 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available V-table-Win _ADM-ROW-AVAILABLE
369 PROCEDURE adm-row-available
:
370 /*------------------------------------------------------------------------------
371 Purpose
: Dispatched to this procedure when the Record-
372 Source has a new row available. This procedure
373 tries to get the new row
(or foriegn keys
) from
374 the Record-Source and process it.
376 ------------------------------------------------------------------------------*/
378 /* Define variables needed by this internal procedure.
*/
379 {src
/adm
/template
/row-head.i
}
381 /* Create a list of all the tables that we need to get.
*/
382 {src
/adm
/template
/row-list.i
"FlowTask"}
384 /* Get the record
ROWID's from the RECORD-SOURCE.
*/
385 {src
/adm
/template
/row-get.i
}
387 /* FIND each record specified by the RECORD-SOURCE.
*/
388 {src
/adm
/template
/row-find.i
"FlowTask"}
390 /* Process the newly available records
(i.e. display fields
,
391 open queries
, and
/or pass records on to any RECORD-TARGETS
).
*/
392 {src
/adm
/template
/row-end.i
}
396 /* _UIB-CODE-BLOCK-END
*/
400 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE cancel-changes V-table-Win
401 PROCEDURE cancel-changes
:
402 /*------------------------------------------------------------------------------
403 Purpose
: Quit without applying any changes
404 ------------------------------------------------------------------------------*/
405 IF mode
= "Add" THEN DO TRANSACTION:
406 FIND CURRENT FlowTask
NO-ERROR.
407 IF AVAILABLE(FlowTask
) THEN DELETE FlowTask.
410 RUN check-modified
( 'clear'
:U
).
412 RUN dispatch
( 'exit'
:U
).
416 /* _UIB-CODE-BLOCK-END
*/
420 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE confirm-changes V-table-Win
421 PROCEDURE confirm-changes
:
422 /*------------------------------------------------------------------------------
424 ------------------------------------------------------------------------------*/
425 RUN verify-flow-task.
426 IF RETURN-VALUE <> "" THEN RETURN.
428 RUN dispatch
( 'update-record'
:U
).
429 RUN notify
( 'open-query
,record-source'
:U
).
431 RUN dispatch
( 'exit'
:U
).
435 /* _UIB-CODE-BLOCK-END
*/
439 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI V-table-Win _DEFAULT-DISABLE
440 PROCEDURE disable_UI
:
441 /*------------------------------------------------------------------------------
442 Purpose
: DISABLE the User Interface
444 Notes
: Here we clean-up the user-interface by deleting
445 dynamic widgets we have created and
/or hide
446 frames. This procedure is usually called when
447 we are ready to
"clean-up" after running.
448 ------------------------------------------------------------------------------*/
449 /* Hide all frames.
*/
451 IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
454 /* _UIB-CODE-BLOCK-END
*/
458 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE entity-changed V-table-Win
459 PROCEDURE entity-changed
:
460 /*------------------------------------------------------------------------------
462 ------------------------------------------------------------------------------*/
463 DO WITH FRAME {&FRAME-NAME}:
464 fil_EntityName
:SCREEN-VALUE = get-entity-name
( SUBSTRING(INPUT cmb_EntityType
, 1, 1), INPUT FlowTask.EntityCode
).
468 /* _UIB-CODE-BLOCK-END
*/
472 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-display-fields V-table-Win
473 PROCEDURE inst-display-fields
:
474 /*------------------------------------------------------------------------------
476 ------------------------------------------------------------------------------*/
480 /* _UIB-CODE-BLOCK-END
*/
484 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE inst-initialize V-table-Win
485 PROCEDURE inst-initialize
:
486 /*------------------------------------------------------------------------------
488 ------------------------------------------------------------------------------*/
490 parent-key-type
= find-parent-keytype
().
491 IF mode
= 'Add'
THEN DO:
493 RUN dispatch
( 'add-record'
:U
).
495 ELSE IF mode
= "Maintain" THEN
496 RUN dispatch
( 'enable-fields'
:U
).
498 RUN dispatch
( 'disable-fields'
:U
).
502 /* _UIB-CODE-BLOCK-END
*/
506 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE override-add-record V-table-Win
507 PROCEDURE override-add-record
:
508 /*------------------------------------------------------------------------------
510 ------------------------------------------------------------------------------*/
511 DO WITH FRAME {&FRAME-NAME}:
512 DEF VAR date-due
AS DATE NO-UNDO.
513 DEF VAR task-no
AS INT NO-UNDO INITIAL 0.
514 DEF VAR results
AS CHAR NO-UNDO.
515 DEF VAR et
AS CHAR NO-UNDO.
516 DEF VAR ec
AS INT NO-UNDO.
518 date-due
= TODAY + 28.
519 RUN workflow
/update-task.p
( INPUT-OUTPUT date-due
, INPUT-OUTPUT task-no
, "NewTask",
520 ",,EV", OUTPUT results
).
522 FIND FlowTask
WHERE FlowTask.DueDate
= date-due
523 AND FlowTask.FlowTaskNo
= task-no
NO-LOCK NO-ERROR.
524 IF NOT AVAILABLE( FlowTask
) THEN
525 MESSAGE "{&FILE-NAME}: Couldn't create new task?" SKIP results.
527 et
= find-parent-key
( "EntityType" ).
528 ec
= INT( find-parent-key
( "EntityCode" ) ).
531 FIND CURRENT FlowTask
EXCLUSIVE-LOCK.
532 IF et
= "Person" THEN
533 FlowTask.AllocatedTo
= ec.
535 FlowTask.EntityType
= et
536 FlowTask.EntityCode
= ec.
537 FIND CURRENT FlowTask
NO-LOCK.
540 CURRENT-WINDOW:TITLE = "Adding a New Task".
541 RUN dispatch
( 'display-fields'
:U
).
542 RUN dispatch
( 'enable-fields'
:U
).
543 RUN dispatch
( 'update-record'
:U
).
549 /* _UIB-CODE-BLOCK-END
*/
553 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pre-assign-statement V-table-Win
554 PROCEDURE pre-assign-statement
:
555 /*------------------------------------------------------------------------------
557 ------------------------------------------------------------------------------*/
558 DEF VAR due-date
AS DATE NO-UNDO.
559 DEF VAR task-no
AS INT NO-UNDO.
560 DEF VAR results
AS CHAR NO-UNDO.
562 DO WITH FRAME {&FRAME-NAME}:
563 due-date
= FlowTask.DueDate.
564 task-no
= FlowTask.FlowTaskNo.
565 IF (INPUT FlowTask.DueDate
<> due-date
) THEN DO:
566 FIND CURRENT FlowTask
NO-LOCK.
567 RUN workflow
/update-task.p
( INPUT-OUTPUT due-date
, INPUT-OUTPUT task-no
, "MoveTask",
568 STRING(INPUT FlowTask.DueDate
,"99/99/9999"), OUTPUT results
).
569 FIND CURRENT FlowTask
EXCLUSIVE-LOCK.
570 FlowTask.DueDate
= due-date.
571 FlowTask.FlowTaskNo
= task-no.
572 DISPLAY FlowTask.DueDate FlowTask.FlowTaskNo .
578 /* _UIB-CODE-BLOCK-END
*/
582 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pre-destroy V-table-Win
583 PROCEDURE pre-destroy
:
584 /*------------------------------------------------------------------------------
586 ------------------------------------------------------------------------------*/
587 IF LAST-EVENT:FUNCTION = "WINDOW-CLOSE" THEN RUN cancel-changes.
590 /* _UIB-CODE-BLOCK-END
*/
594 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records V-table-Win _ADM-SEND-RECORDS
595 PROCEDURE send-records
:
596 /*------------------------------------------------------------------------------
597 Purpose
: Send record
ROWID's for all tables used by
599 Parameters
: see template
/snd-head.i
600 ------------------------------------------------------------------------------*/
602 /* Define variables needed by this internal procedure.
*/
603 {src
/adm
/template
/snd-head.i
}
605 /* For each requested table
, put it's
ROWID in the output list.
*/
606 {src
/adm
/template
/snd-list.i
"FlowTask"}
608 /* Deal with any unexpected table requests before closing.
*/
609 {src
/adm
/template
/snd-end.i
}
613 /* _UIB-CODE-BLOCK-END
*/
617 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed V-table-Win
618 PROCEDURE state-changed
:
619 /* -----------------------------------------------------------
623 -------------------------------------------------------------*/
624 DEFINE INPUT PARAMETER p-issuer-hdl
AS HANDLE NO-UNDO.
625 DEFINE INPUT PARAMETER p-state
AS CHARACTER NO-UNDO.
628 /* Object instance CASEs can go here to replace standard behavior
630 {src
/adm
/template
/vstates.i
}
634 /* _UIB-CODE-BLOCK-END
*/
638 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE use-Mode V-table-Win
640 /*------------------------------------------------------------------------------
642 ------------------------------------------------------------------------------*/
643 DEF INPUT PARAMETER new-mode
AS CHAR NO-UNDO.
647 /* _UIB-CODE-BLOCK-END
*/
651 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE verify-flow-task V-table-Win
652 PROCEDURE verify-flow-task
:
653 /*------------------------------------------------------------------------------
655 ------------------------------------------------------------------------------*/
657 DO WITH FRAME {&FRAME-NAME}:
659 IF TRIM(INPUT FlowTask.Description
) = "" THEN DO:
660 MESSAGE "You must supply a description for the Task!"
661 VIEW-AS ALERT-BOX ERROR TITLE "Incomplete Description".
662 APPLY '
ENTRY'
:U
TO FlowTask.Description.
670 /* _UIB-CODE-BLOCK-END
*/
674 /* ************************ Function Implementations
***************** */
676 &ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION find-parent-keytype V-table-Win
677 FUNCTION find-parent-keytype
RETURNS CHARACTER
678 ( /* no parameters
*/ ) :
679 /*------------------------------------------------------------------------------
682 ------------------------------------------------------------------------------*/
683 DEF VAR key-type
AS CHAR NO-UNDO INITIAL ?.
684 DEF VAR curr-hdl
AS HANDLE NO-UNDO.
685 DEF VAR c-rec-src
AS CHAR NO-UNDO.
687 RUN get-link-handle
IN adm-broker-hdl
688 ( THIS-PROCEDURE, 'RECORD-SOURCE'
:U
, OUTPUT c-rec-src
).
689 ASSIGN curr-hdl
= WIDGET-HANDLE( c-rec-src
) NO-ERROR.
691 IF VALID-HANDLE( curr-hdl
) THEN DO:
692 RUN get-attribute
IN curr-hdl
( 'Key-Name'
:U
).
693 key-type
= RETURN-VALUE.
700 /* _UIB-CODE-BLOCK-END
*/