Pregunta
· 1 sep, 2022

Parámetros en tablePane

Hola!!!! Tengo un tablepane con una propiedad "where Clause  = CAMPO > ?"

Cuando desde un ClassMethod quiero actualizar el query de ese tablePane usando "zen(tablePane).parameters[0].value = valor"
me devuelve el siguiente error:

Cannot set properties of undefined (setting 'value') 

 

Alguna idea de qué estoy haciendo mal?

Muchas gracias!!!!!

Product version: Caché 2012.1
$ZV: Cache Zen
Comentarios (4)3
Inicie sesión o regístrese para continuar

Es difícil saber qué está pasando sin ver el código y probarlo. Antes de verlo, diría que el tableare no tiene definido parámetros en la descripción de la tabla. Ejemplo:

<tablePane id="table"
           sql="SELECT ID,Name FROM MyApp.Employees
                WHERE Name %STARTSWITH ? ORDER BY Name"
           >
     <parameter value="Z"/>
</tablePane>

Podrías intentar simplificar el código al máximo en una clase copiada de la original, y, cuando no puedas reducir más el código, nos lo mandes y podamos echarle un vistazo. 

Este es el tablepane:

<tablePane  
                      id="tpDIGI"
                      showQuery="true" 
                      valign="top" 
                      maxRows="300" 
                      tableName="NombreTabla"
                      showRowSelector="false"
                      width="490px"
                      showFilters="true" 
                      showValueInTooltip="true" 
                      autoExecute="true" 
                      fixedHeaders="true"
                      whereClause="CAMPO = ?"
                      onselectrow="" 
                      useSnapshot="true"
                       initialExecute="true"
                       rowSelect="false">
                    <column ... />
            </tablePane>

Más abajo, tengo un ClassMethod que ejecuta:

zen('tpDIGI').parameters[0].value='1111'

Ahi me da el error antes mencionado. Alguna idea???

Hola Luis,

Parece que estás en una versión muy antigua (2012) y utilizando una tecnología (ZEN) también antigua. ZEN se soporta aún por compatibilidad, pero échale un vistazo al InterSystems IRIS Migration Guide en el WRC > Software Distribution > Docs.

Sobre tu cuestión, el error probablemente viene dado de que intentas establecer el value de algo nulo. No consigues referencia el parámetro. Prueba con el ejemplo que te ha pasado Mario, o incluso mejor añade un id al parámetro para que puedas referenciarlo directamente a través del identificador.

<tablePane id="table"
           queryClass="MyApp.Employee"
           queryName="ListEmployees">
    <parameter value="Sales" id="param1"/>
    <parameter value="NEW YORK"/>
</tablePane>

Mira por ejemplo en Query Parameters