You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Descripción del problema
El filtro esunode no funciona correctamente con algunos valores de campos multienum.
Si nos fijamos en el código
foreach ($valueArray as $thisMultiEnumValue) {
if ($multienumWhereString != '')
$multienumWhereString .= ' OR ' . $this->get_field_name($path, $fieldname, $fieldid);
$multienumWhereString .= ' LIKE \'%' . $thisMultiEnumValue . '%\'';
}
$thisWhereString .= $multienumWhereString;
vemos que se aplica un LIKE al valor interno sin protegerlo con '^'. Eso provoca que si tenemos 2 valores internos tales como "papa" y "papanatas", al seleccionar el primero, aparezcan también los registros que tienen el segundo.
Otro error que se ve es que el operador "distinto de" no trata correctamente los campos multinemun.
Cómo reproducir el problema
Caso del operador "esunode"
1.- En un campo multi-selección añadir 2 valores, tales que sus claves sean una sufijo de la otra (ejemplo "papa" y "papanatas")
2.- Asignar los valores correspondientes a "papa" y "papanatas" a distintos registros.
3.- Crear un informe de KReports, y filtrar con la condición "es uno de" con el valor correspondiente a "papa".
4.- Comprobar que los registros correspondientes a "papanatas" también aparecen en el resultado
Caso del operador "distinto de"
1.- Aprovechar el campo y los valores del caso anterior
2.-
Comportamiento esperado
En el primer caso, sólo los registros correspondientes al valor seleccionado deberían aparecer.
En el segundo caso, para mantener la coherencia del operador con el resto de tipos de campo, se entiende que "distinto de" será todo registro que tenga algún valor distinto, es decir que no tenga exactamente las mismas opciones seleccionadas.
Solución propuesta
Añadir los "^" a la sentencia LIKE. Revisar cómo está haciendo el equals para tratar también casos en que los ^ no estén bien colocados.
Para el segundo caso, aplicar un código parecido al existente para el operador "equals".
Información adicional
Para el segundo caso debe tenerse presente el comportamiento de los campos que pueden estar a NULO, en cuyo caso no aparecen como distintos.
The text was updated successfully, but these errors were encountered:
Descripción del problema
El filtro esunode no funciona correctamente con algunos valores de campos multienum.
Si nos fijamos en el código
vemos que se aplica un LIKE al valor interno sin protegerlo con '^'. Eso provoca que si tenemos 2 valores internos tales como "papa" y "papanatas", al seleccionar el primero, aparezcan también los registros que tienen el segundo.
Otro error que se ve es que el operador "distinto de" no trata correctamente los campos multinemun.
Cómo reproducir el problema
Caso del operador "esunode"
1.- En un campo multi-selección añadir 2 valores, tales que sus claves sean una sufijo de la otra (ejemplo "papa" y "papanatas")
2.- Asignar los valores correspondientes a "papa" y "papanatas" a distintos registros.
3.- Crear un informe de KReports, y filtrar con la condición "es uno de" con el valor correspondiente a "papa".
4.- Comprobar que los registros correspondientes a "papanatas" también aparecen en el resultado
Caso del operador "distinto de"
1.- Aprovechar el campo y los valores del caso anterior
2.-
Comportamiento esperado
En el primer caso, sólo los registros correspondientes al valor seleccionado deberían aparecer.
En el segundo caso, para mantener la coherencia del operador con el resto de tipos de campo, se entiende que "distinto de" será todo registro que tenga algún valor distinto, es decir que no tenga exactamente las mismas opciones seleccionadas.
Solución propuesta
Añadir los "^" a la sentencia LIKE. Revisar cómo está haciendo el equals para tratar también casos en que los ^ no estén bien colocados.
Para el segundo caso, aplicar un código parecido al existente para el operador "equals".
Información adicional
Para el segundo caso debe tenerse presente el comportamiento de los campos que pueden estar a NULO, en cuyo caso no aparecen como distintos.
The text was updated successfully, but these errors were encountered: