Consultor Eletrônico



Kbase P129880: Error 4517 after ADM2 upgrade to OpenEdge
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   28/04/2008
Status: Unverified

FACT(s) (Environment):

Windows
OpenEdge 10.1B

SYMPTOM(s):

Error 4517 with pnavico.w toolbar

You cannot change the READ-ONLY attribute for <browse-widget> while that browser has focus. (4517)

ADM2 application written in Progress 9.1x

The application uses a customized version of the pnavico.w toolbar to sensitize the buttons depending on the records that are displayed in a browse.

Stack trace for the error is:

E:\Progress\101B\p23658_wmfmmedica.ab (E:\Progress\101B\p23658_wmfmmedica.ab) at line 3521
initializeObject E:\Progress\101B\p23658_wmfmmedica.ab (E:\Progress\101B\p23658_wmfmmedica.ab) at line 3737
openQuery adm2/data.p (D:\Progress\101B\gui\adm2\data.r) at line 30041
openQuery adm2/query.p (D:\Progress\101B\gui\adm2\query.r) at line 16184
fetchFirst adm2/data.p (D:\Progress\101B\gui\adm2\data.r) at line 7581
dataAvailable adm2/data.p (D:\Progress\101B\gui\adm2\data.r) at line 4953
dataAvailable adm2/query.p (D:\Progress\101B\gui\adm2\query.r) at line 5445
openQuery adm2/data.p (D:\Progress\101B\gui\adm2\data.r) at line 30041
openQuery adm2/query.p (D:\Progress\101B\gui\adm2\query.r) at line 16184
fetchFirst adm2/data.p (D:\Progress\101B\gui\adm2\data.r) at line 7578
updateQueryPosition adm2/data.p (D:\Progress\101B\gui\adm2\data.r) at line 18098
setQueryPosition adm2/dataquery.p (D:\Progress\101B\gui\adm2\dataquery.r) at line 14064
queryPosition adm2/datavis.p (D:\Progress\101B\gui\adm2\datavis.r) at line 7914
updateMode adm2/datavis.p (D:\Progress\101B\gui\adm2\datavis.r) at line 9606
enableFields bmfmtratam.w (E:\Progress\101B\customers\Spain\W803070057\bmfmtratam.r) at line 5003
--> enableFields adm2/browser.p (D:\Progress\101B\gui\adm2\browser.r) at line 6729

CHANGE:

Upgraded ADM2 application from Progress 9.1x to OpenEdge 10.1B

CAUSE:

This is a known issue

FIX:

None at this time.

But there are two ways to work around the problem:

1. Either by customizing enableFields in browser.p - find the statement in enableFields where the browse read-only is set to false and add the fix code before and after.
end. /* do while valid-handle hColumn */
/* avoid error 4517 setting read-only when browse has focus */
/* Fix start */
if focus = hBrowse then
hBrowse:sensitive = no.
/* Fix end */

hBrowse:READ-ONLY = NO.
/* Fix start */
if hBrowse:sensitive = false then
hBrowse:sensitive = yes.
/* Fix end */

IF lSelected THEN
hBrowse:SELECT-FOCUSED-ROW() NO-ERROR.
2. Alternatively do the same in a local enableFields override in the browse object:
DEFINE VARIABLE hBrowse AS HANDLE NO-UNDO.
{get browseHandle hBrowse}.

if focus = hBrowse then
hBrowse:sensitive = no.
RUN SUPER.
if hBrowse:sensitive = false then
hBrowse:sensitive = yes.