Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
rodri_morales
Creator II
Creator II

Inputfield

Buen dia usuarios de qlikview, tengo que dar solucion a un tema que no encuentro como resolverlo. Tengo en la base de datos diferentes proyectos inmobiliarios y necesito hacer calculos con costos de obra y de terreno (los costos de obra van variando). Mi jefe decidio de agregar el los costos, entonces puede modificarlos y actualizarlos. Pense hacer un imputfield con un load inline, el tema es creo un cuadro de tabla, agrego los proyectos, pero no me deja agregar costos de obra. En el script tengo lo siguiente:

INPUTFIELD CostoObra;

LOAD * inline [ComplejoTablero, CostoObra];

1 Solution

Accepted Solutions
etendero
Partner - Creator
Partner - Creator

Hola de nuevo Rodrigo,

Te paso el ejemplo que has mandado con el campo Inputfield configurado correctamente en el script.

En la tabla en diseño, he añadido unos valores manualmente para que los veas.

Un saludo.

View solution in original post

20 Replies
cfz
Former Employee
Former Employee

Buenos días Rodrigo:

Necesitas cargar los valores del campo ComplejoTablero, por ejemplo como se indica más abajo (los de CostoObra los puedes añadir después a través de un cuadro de entrada).

INPUTFIELD CostoObra;


LOAD * inline [ComplejoTablero, CostoObra

A,

B,

C];


Si no cargas los valores del campo ComplejoTablero no vas a poder después añadir el CostoObra.

Un saludo,

Carlos

rodri_morales
Creator II
Creator II
Author

No puede ser automatico?

Porque los Complejos estan cargados en la base de datos, y en un futuro seguro se agreguen. Por eso mi idea era que se vayan agregando solos a medida que lee un Complejo de la base de datos.

cfz
Former Employee
Former Employee

No se si se puede llamar automático, pero lo que debes hacer entonces es utilizar un "preceading load" cuando cargues los valores de la base de datos, por ejmplo

Load *,

0 as  CostoObra;

SQL SELECT ComplejoTablero

from ...

rodri_morales
Creator II
Creator II
Author

No entendi lo que me quisiste explicar.

Yo tengo una consulta SQL que me trae varias columnas, dentro de ellas esta el Complejo (ComplejoTablero lo llame en el LOAD).

Lo que quiero hacer es cargar esos Complejos y poder asignarle un costo de obra a cada uno, pero esto debe ser a mano.

cfz
Former Employee
Former Employee

Lo que quiero decir es que cuando cargas el campo Complejo tienes que crear el campo CostoObra que es un campo especial, cuyos valores se van a poder modificar (un inputfield). La forma más fácil que se me ocurre es haciendo un load justo encima de la consulta sql (que en relidad significa justo después) y asignandole un valor por defecto, por ejemplo 0.

Después puedes asignar el costo a mano con un cuadro de entrada.

rodri_morales
Creator II
Creator II
Author

El tema es que el costo de obra varia de acuerdo al proyecto.

Intente agregar en el load la sentencia: 0 as CostoObra. Pero me tira error de referencia circular.

cfz
Former Employee
Former Employee

Sube si puedes el documento QlikView (mejor un ejemplo reducido) y lo miro a ver si te puedo ayudar.

En realidad el problema es que el inputfiled lo tienes que crear de alguna forma en el script. En el cuadro de tabla le puedes dar los valores pero no crearlos.

rodri_morales
Creator II
Creator II
Author

Ahi adjunte un excel con lo que me devolveria la consulta de SQL y un qvd con la tabla con los proyectos.

Lo que yo quiero es agregar un inputfield que me permita agregar el costo de obra.

Seria algo asi:

Esto devuelve la consulta SQL:

Proyecto

Proyecto 1
Proyecto 2
Proyecto 3
Proyecto 4

Y lo que quiero lograr, es agregar una columna mas en un Cuadro de Tabla, en donde ingrese los valores yo a mano, y quedaria algo asi:

ProyectoCostoObra
Proyecto 11200
Proyecto 21300
Proyecto 3900
Proyecto 4

1050

El CostoObra lo quiero agregar yo e ir modificandolo, para interactuar en otros objetos. Como calcular el costo de obra total de acuerdo a la superficie. ( =Sum(Superficie)*CostoObra )

etendero
Partner - Creator
Partner - Creator

Hola Rodrigo,

Sólo unas anotaciones sobre los campos Inputfield. Tódos los campos que definas en el script como Inputfield, los valores que se introduzcan serán particulares de cada usuario, es decir, si el mismo documento lo abren dos usuarios (dos licencias diferentes), estos verán valores diferentes. Esto es así porque se guardan en el qvw, y no retornan a la base de datos ni o cualquier otro origen de datos.

Como bien indica Carlos, el campo debe existir en el script y contener valores aunque estén inicializados a mano (a 0, en blanco a nulo, etc.)

El/los campo/s elegido/s como Inputfield debe/n ser único/s, puesto que de lo contrario, QV lo utilizará como clave para unir varias tablas.

Realmente estos campos Inputfield son dinámicos, depende de cuantos registros se lean después de la recarga. Si lo tienes en una tabla Inline, siempre tendrá los mismos registros, pero si utilizas un campo de una consulta, variará según los registros que devuelva la consulta.

Un saludo y espero haberte aclarado un poco más.