diff --git a/src/qqq/components/query/FilterCriteriaRowValues.tsx b/src/qqq/components/query/FilterCriteriaRowValues.tsx index 2588cd4..eb41a7e 100644 --- a/src/qqq/components/query/FilterCriteriaRowValues.tsx +++ b/src/qqq/components/query/FilterCriteriaRowValues.tsx @@ -286,7 +286,7 @@ function FilterCriteriaRowValues({operatorOption, criteria, field, table, valueC isExpression ? ( makeTextField(field, criteria, valueChangeHandler, 0, undefined, undefined, allowVariables) ) : ( - + - { - isExpression ? ( - makeTextField(field, criteria, valueChangeHandler, 0, undefined, undefined, allowVariables) - ) : ( - - valueChangeHandler(null, "all", value)} - variant="standard" - /> - - ) - } - { - allowVariables && !isExpression && - } + return + valueChangeHandler(null, "all", value)} + variant="standard" + /> ; } diff --git a/src/qqq/utils/qqq/FilterUtils.tsx b/src/qqq/utils/qqq/FilterUtils.tsx index b2bbfd7..2a5e20b 100644 --- a/src/qqq/utils/qqq/FilterUtils.tsx +++ b/src/qqq/utils/qqq/FilterUtils.tsx @@ -109,6 +109,7 @@ class FilterUtils let [field, fieldTable] = TableUtils.getFieldAndTable(tableMetaData, criteria.fieldName); let values = criteria.values; + let hasFilterVariable = false; if (field.possibleValueSourceName) { ////////////////////////////////////////////////////////////////////////////////// @@ -122,7 +123,14 @@ class FilterUtils ////////////////////////////////////////////////////////////////////////////////// if (values && values.length > 0 && values[0] !== null && values[0] !== undefined && values[0] !== "") { - values = await qController.possibleValues(fieldTable.name, null, field.name, "", values); + if (values[0].type && values[0].type == "FilterVariableExpression") + { + hasFilterVariable = true; + } + else + { + values = await qController.possibleValues(fieldTable.name, null, field.name, "", values); + } } //////////////////////////////////////////// @@ -134,7 +142,11 @@ class FilterUtils } } - if (values && values.length) + if (hasFilterVariable) + { + values[0] = new FilterVariableExpression({fieldName: field.name, valueIndex: 0}); + } + else if (values && values.length) { for (let i = 0; i < values.length; i++) {