Kbase P85375: Double-click event on "more" node in treeview generates an error
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  04/02/2010 |
|
Status: Unverified
SYMPTOM(s):
Dynamics 2.1A02
Double-click event on "more" node in Tree View generates an error
The key you have specified does not exist
The error appears only with "upgraded" Tree Views from previous Dynamics versions
It doesn't happen with new Tree Views.
FACT(s) (Environment):
Dynamics 2.1A
CAUSE:
Bug# OE00106407
FIX:
Possible workaround: change tvNodeEvent internal procedure inside adm2/tvcontnr.p file as follows: 1. Original code: /*--------------------------------------------------------*/ /* If the last selected node was not the same as the one being expand to, then reposition to that node again after expaning the other node */ IF cLastSelectedNode <> pcNodeKey THEN RUN repositionSDO IN TARGET-PROCEDURE (INPUT cLastSelectedNode). DYNAMIC-FUNCTION("lockWindow":U IN TARGET-PROCEDURE, INPUT FALSE). SESSION:SET-WAIT-STATE("":U). DELETE OBJECT hDataTableBuf NO-ERROR. hDataTableBuf = ?. RUN setDataLinks IN TARGET-PROCEDURE (INPUT "ACTIVE":U). END. /* lExpand = TRUE */ /*--------------------------------------------------------*/ Change to: /*--------------------------------------------------------*/ /* If the last selected node was not the same as the one being expand to, then reposition to that node again after expaning the other node */ /*Change */ hDataTableBuf:FIND-FIRST("WHERE node_key = '" + cLastSelectedNode + "'":U) NO-ERROR. IF NOT hDataTableBuf:AVAILABLE THEN cLastSelectedNode = pcNodeKey. IF cLastSelectedNode <> pcNodeKey THEN RUN repositionSDO IN TARGET-PROCEDURE (INPUT cLastSelectedNode). DYNAMIC-FUNCTION("lockWindow":U IN TARGET-PROCEDURE, INPUT FALSE). SESSION:SET-WAIT-STATE("":U). DELETE OBJECT hDataTableBuf NO-ERROR. hDataTableBuf = ?. RUN setDataLinks IN TARGET-PROCEDURE (INPUT "ACTIVE":U). END. /* lExpand = TRUE */ /*--------------------------------------------------------*/ 2. Original code: /*--------------------------------------------------------*/ WHEN "COLLAPSE":U THEN DO: SESSION:SET-WAIT-STATE("GENERAL":U). /* If the node being collapsed is somehow a parent of a currently selected and displayed node we need to reposition to the node being collapsed */ IF pcNodeKey <> cLastSelectedNode THEN DO: /* Check if the last selected node is a child node of the node being collapsed, if so, we will need to select the node being collapsed */ /*--------------------------------------------------------*/ Change to: /*--------------------------------------------------------*/ WHEN "COLLAPSE":U THEN DO: SESSION:SET-WAIT-STATE("GENERAL":U). /* If the node being collapsed is somehow a parent of a currently selected and displayed node we need to reposition to the node being collapsed */ /*Change */ CREATE BUFFER hDataTableBuf FOR TABLE hTreeTable:DEFAULT-BUFFER-HANDLE. hDataTableBuf:FIND-FIRST("WHERE node_key = '" + cLastSelectedNode + "'":U) NO-ERROR. IF NOT hDataTableBuf:AVAILABLE THEN cLastSelectedNode = pcNodeKey. DELETE OBJECT hDataTableBuf NO-ERROR. IF pcNodeKey <> cLastSelectedNode THEN DO: /* Check if the last selected node is a child node of the node being collapsed, if so, we will need to select the node being collapsed */ /*--------------------------------------------------------*/