Map ESC key to a button?

Doug Johnson

New Member
Progress Version 9.1E - Windows XP

I am using several "BACK" buttons to take the user from a popup browse, back to the original browse. This works fine. However, I would like to "map" the ESC key to the BACK button so the KEY takes the user back also. Help please.
 

rzr

Member
It will be difficult to give a correct answer without knowing how your current code is structured.. but you could try this....

Code:
    ON 'END-ERROR':U OF FRAME PopupBrowserFrame
    DO:
        APPLY "CHOOSE" TO Back_Button IN FRAME PopupBrowserFrame.
        RETURN NO-APPLY.
    END.
 

Doug Johnson

New Member
Thanks for the reply! Here's my abbreviated code. After clicking "Location Match" the user has a "Back" button. That's the button I'd like to map to the ESC key.

Code:
DEFINE TEMP-TABLE tier-list NO-UNDO
   FIELD tier-code AS CHAR
   FIELD tier-name AS CHAR
   FIELD tier-float AS CHAR.

CREATE tier-list. ASSIGN tier-code = "TC1" tier-name = "tname".
CREATE tier-list. ASSIGN tier-code = "TC2" tier-name = "tname".

DEFINE TEMP-TABLE whstore NO-UNDO
   FIELD part-num AS CHAR
   FIELD tier-code AS CHAR
   FIELD whse-loc AS CHAR
   FIELD skid-color AS CHAR.

CREATE whstore. ASSIGN part-num = "ABC1" whstore.tier-code = "TC1" whse-loc = "NZ".
CREATE whstore. ASSIGN part-num = "ABC2" whstore.tier-code = "TC1" whse-loc = "NZ".

CREATE whstore. ASSIGN part-num = "ABC3" whstore.tier-code = "TC2" whse-loc = "NZ".
CREATE whstore. ASSIGN part-num = "ABC4" whstore.tier-code = "TC2" whse-loc = "NZ".

DEFINE VARIABLE method-return AS LOGICAL NO-UNDO.
DEFINE VARIABLE tierverify AS CHARACTER FORMAT "X(1)".
DEFINE VARIABLE verifydelete AS CHARACTER FORMAT "X(1)".
DEFINE VARIABLE yesno AS LOGICAL FORMAT "Yes/No" LABEL "      Y/N".

FORM HEADER "Delete this Tier? [" AT 1 tierverify AT 20 "]" AT 21 WITH ROW 5 COLUMN 27 SIDE-LABELS FRAME yesnoframe.

DEFINE QUERY query1 FOR tier-list SCROLLING.

DEFINE BROWSE browse1 QUERY query1 NO-LOCK DISPLAY tier-list.tier-code tier-list.tier-name tier-list.tier-float
    ENABLE tier-list.tier-code tier-list.tier-name tier-list.tier-float WITH 13 DOWN WIDTH 50 NO-ASSIGN SCROLLBAR-VERTICAL SEPARATORS.

DEFINE QUERY query2 FOR whstore SCROLLING.

DEFINE BROWSE browse2 QUERY query2 NO-LOCK DISPLAY whstore.part-num whstore.tier-code whstore.whse-loc whstore.skid-color
    WITH 13 DOWN WIDTH 34 SCROLLBAR-VERTICAL SEPARATORS.

DEFINE BUTTON newtierbutton LABEL "Add" FONT 2 SIZE 5 BY 1.2.
DEFINE BUTTON deletetierbutton LABEL "Delete" FONT 2 SIZE 7 BY 1.2.
DEFINE BUTTON locmatchbutton  LABEL "Loc. Match" FONT 2 SIZE 11 BY 1.2.
DEFINE BUTTON backbutton LABEL "Back" FONT 2 SIZE 6 BY 1.2.

DEFINE FRAME frame1 "                 TIER MAINTENANCE" SKIP(.25)
    SPACE(3) newtierbutton
    SPACE(2) deletetierbutton
    SPACE(2) locmatchbutton
    SKIP(.25)
    browse1 SKIP(.25)
        WITH CENTERED.

DEFINE FRAME frame2
    SPACE(1) backbutton
    SPACE(4) "TIER LOCATIONS" SKIP(.25)
    browse2 SKIP(.25)
        WITH CENTERED.

ON ROW-LEAVE OF browse1 IN FRAME frame1 /* No-Assign Browser */
    DO:
        /*##### MAIN PROGRAM #####*/
        END.

        /*###########################*/
        /*##### FIND MATCH ##########*/
        /*###########################*/
        ON CHOOSE OF locmatchbutton IN FRAME frame1 DO:
            HIDE FRAME frame1.
            ENABLE ALL WITH FRAME frame2.
            GET CURRENT query1 EXCLUSIVE-LOCK NO-WAIT.
            tierverify = tier-list.tier-code.
            OPEN QUERY query2 FOR EACH whstore WHERE whstore.tier-code = tierverify.
            ENABLE browse2 WITH FRAME frame2.
        END.
        
        /*###########################*/
        /*##### BACK ################*/
        /*###########################*/
        ON CHOOSE OF backbutton IN FRAME frame2 DO:
            HIDE FRAME frame2. 
            VIEW FRAME frame1.
        END.
      
        OPEN QUERY query1 FOR EACH tier-list.
            MESSAGE "Press ENTER or click outside row to update.  Click 'Refresh' to resort list.".
      
        PAUSE 0 BEFORE-HIDE.
        ENABLE ALL WITH FRAME frame1.
        WAIT-FOR "CLOSE" OF THIS-PROCEDURE.
 

Doug Johnson

New Member
Yes, but I probably wasn't putting it in the correct place? Or, I made some other mistake. That's why I posted the code. Maybe someone can show me where it needs to go? Thanks.
 

Cringer

ProgressTalk.com Moderator
Staff member
Code:
DEFINE TEMP-TABLE tier-list NO-UNDO
   FIELD tier-code AS CHAR
   FIELD tier-name AS CHAR
   FIELD tier-float AS CHAR.

CREATE tier-list. ASSIGN tier-code = "TC1" tier-name = "tname".
CREATE tier-list. ASSIGN tier-code = "TC2" tier-name = "tname".

DEFINE TEMP-TABLE whstore NO-UNDO
   FIELD part-num AS CHAR
   FIELD tier-code AS CHAR
   FIELD whse-loc AS CHAR
   FIELD skid-color AS CHAR.

CREATE whstore. ASSIGN part-num = "ABC1" whstore.tier-code = "TC1" whse-loc = "NZ".
CREATE whstore. ASSIGN part-num = "ABC2" whstore.tier-code = "TC1" whse-loc = "NZ".

CREATE whstore. ASSIGN part-num = "ABC3" whstore.tier-code = "TC2" whse-loc = "NZ".
CREATE whstore. ASSIGN part-num = "ABC4" whstore.tier-code = "TC2" whse-loc = "NZ".

DEFINE VARIABLE method-return AS LOGICAL NO-UNDO.
DEFINE VARIABLE tierverify AS CHARACTER FORMAT "X(1)".
DEFINE VARIABLE verifydelete AS CHARACTER FORMAT "X(1)".
DEFINE VARIABLE yesno AS LOGICAL FORMAT "Yes/No" LABEL "      Y/N".

FORM HEADER "Delete this Tier? [" AT 1 tierverify AT 20 "]" AT 21 WITH ROW 5 COLUMN 27 SIDE-LABELS FRAME yesnoframe.

DEFINE QUERY query1 FOR tier-list SCROLLING.

DEFINE BROWSE browse1 QUERY query1 NO-LOCK DISPLAY tier-list.tier-code tier-list.tier-name tier-list.tier-float
    ENABLE tier-list.tier-code tier-list.tier-name tier-list.tier-float WITH 13 DOWN WIDTH 50 NO-ASSIGN SCROLLBAR-VERTICAL SEPARATORS.

DEFINE QUERY query2 FOR whstore SCROLLING.

DEFINE BROWSE browse2 QUERY query2 NO-LOCK DISPLAY whstore.part-num whstore.tier-code whstore.whse-loc whstore.skid-color
    WITH 13 DOWN WIDTH 34 SCROLLBAR-VERTICAL SEPARATORS.

DEFINE BUTTON newtierbutton LABEL "Add" FONT 2 SIZE 5 BY 1.2.
DEFINE BUTTON deletetierbutton LABEL "Delete" FONT 2 SIZE 7 BY 1.2.
DEFINE BUTTON locmatchbutton  LABEL "Loc. Match" FONT 2 SIZE 11 BY 1.2.
DEFINE BUTTON backbutton LABEL "Back" FONT 2 SIZE 6 BY 1.2.

DEFINE FRAME frame1 "                 TIER MAINTENANCE" SKIP(.25)
    SPACE(3) newtierbutton
    SPACE(2) deletetierbutton
    SPACE(2) locmatchbutton
    SKIP(.25)
    browse1 SKIP(.25)
        WITH CENTERED.

DEFINE FRAME frame2
    SPACE(1) backbutton
    SPACE(4) "TIER LOCATIONS" SKIP(.25)
    browse2 SKIP(.25)
        WITH CENTERED.

ON 'END-ERROR':U OF FRAME frame2
  DO:
      APPLY "CHOOSE" TO backbutton IN FRAME frame2.
      RETURN NO-APPLY.
  END.
ON ROW-LEAVE OF browse1 IN FRAME frame1 /* No-Assign Browser */
    DO:
        /*##### MAIN PROGRAM #####*/
        END.

        /*###########################*/
        /*##### FIND MATCH ##########*/
        /*###########################*/
        ON CHOOSE OF locmatchbutton IN FRAME frame1 DO:
            HIDE FRAME frame1.
            ENABLE ALL WITH FRAME frame2.
            GET CURRENT query1 EXCLUSIVE-LOCK NO-WAIT.
            tierverify = tier-list.tier-code.
            OPEN QUERY query2 FOR EACH whstore WHERE whstore.tier-code = tierverify.
            ENABLE browse2 WITH FRAME frame2.
        END.
        
        /*###########################*/
        /*##### BACK ################*/
        /*###########################*/
        ON CHOOSE OF backbutton IN FRAME frame2 DO:
            HIDE FRAME frame2. 
            VIEW FRAME frame1.
        END.
      
        OPEN QUERY query1 FOR EACH tier-list.
            MESSAGE "Press ENTER or click outside row to update.  Click 'Refresh' to resort list.".
      
        PAUSE 0 BEFORE-HIDE.
        ENABLE ALL WITH FRAME frame1.
        WAIT-FOR "CLOSE" OF THIS-PROCEDURE.

That seems to work...
 
Top