Kbase P34770: Dynamics: SetQueryWhere modified SDO where clause is lost wi
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/09/2003 |
|
Status: Unverified
FACT(s) (Environment):
Dynamics 2.0A
SYMPTOM(s):
Dynamics: SetQueryWhere modified SDO where clause is lost with Filter functionality.
Modification to an SDO query with SetQueryWhere in the InitializeObject procedure of the SDO can be lost with the toolbar filter button. When the Filter button, Advanced TAB "Apply" button, retrieves the SDO base query, the base query is reopened and the additional query filter is lost.
How to add a filter condition to an SDO base query.
CAUSE:
SetQueryWhere does not append its additional filter to the SDO base query.
FIX:
Use addQueryWhere and ManualaddQueryWhere to update the SDO query property. For Example:
PROCEDURE InitializeObject:
RUN SUPER.
DEFINE VARIABLE cManualAddQueryWhere AS CHARACTER NO-UNDO.
DYNAMIC-FUNCTION('addQueryWhere':U IN TARGET-PROCEDURE,
INPUT "customer.custnum > 10",
input ?,
INPUT ?).
DYNAMIC-FUNCTION('openQuery':U IN TARGET-PROCEDURE).
cManualAddQueryWhere = "customer.custnum > 10" + CHR(3) + "?" + CHR(3) + "?".
{set manualAddquerywhere cManualAddQueryWhere}.