diff --git a/src/qqq/models/query/QQueryColumns.ts b/src/qqq/models/query/QQueryColumns.ts index 8b5dccb..a824c70 100644 --- a/src/qqq/models/query/QQueryColumns.ts +++ b/src/qqq/models/query/QQueryColumns.ts @@ -117,6 +117,11 @@ export default class QQueryColumns { const [field, tableForField] = TableUtils.getFieldAndTable(table, fieldName) + if(!field) + { + console.warn(`Couldn't find field ${fieldName} in tableMetaData - so not adding a column for it`); + } + let column: Column; if(tableForField.name == table.name) { diff --git a/src/qqq/utils/qqq/FilterUtils.tsx b/src/qqq/utils/qqq/FilterUtils.tsx index b5bb4f7..fdb64a8 100644 --- a/src/qqq/utils/qqq/FilterUtils.tsx +++ b/src/qqq/utils/qqq/FilterUtils.tsx @@ -108,6 +108,12 @@ class FilterUtils const criteria = queryFilter.criteria[i]; let [field, fieldTable] = TableUtils.getFieldAndTable(tableMetaData, criteria.fieldName); + if(!field) + { + console.warn(`Field ${criteria.fieldName} not found in tableMetaData - unable to clean up values for it..`); + return; + } + let values = criteria.values; let hasFilterVariable = false; @@ -401,21 +407,21 @@ class FilterUtils { const expression = new ThisOrLastPeriodExpression(value); let startOfPrefix = ""; - if (fieldMetaData.type == QFieldType.DATE_TIME || expression.timeUnit != "DAYS") + if (fieldMetaData?.type == QFieldType.DATE_TIME || expression.timeUnit != "DAYS") { startOfPrefix = "start of "; } labels.push(`${startOfPrefix}${expression.toString()}`); } - else if (fieldMetaData.type == QFieldType.BOOLEAN) + else if (fieldMetaData?.type == QFieldType.BOOLEAN) { labels.push(value == true ? "yes" : "no"); } - else if (fieldMetaData.type == QFieldType.DATE_TIME) + else if (fieldMetaData?.type == QFieldType.DATE_TIME) { labels.push(ValueUtils.formatDateTime(value)); } - else if (fieldMetaData.type == QFieldType.DATE) + else if (fieldMetaData?.type == QFieldType.DATE) { labels.push(ValueUtils.formatDate(value)); }