Invoervelden
QlikView ondersteunt een speciaal soort veld, dat u kunt wijzigen zonder de uitvoering van het script: het invoerveld.
Een invoerveld is gelijk aan elk ander veld in QlikView, met het verschil dat de waarden, zoals die in het script worden gelezen, later kunnen worden aangepast zonder dat het script opnieuw hoeft te worden uitgevoerd. Invoervelden kunnen worden gebruikt zoals elk ander veld in elk soort werkbladobject.
Bij het gebruik van invoervelden worden door het script voor elke veldwaarde tijdelijke aanduidingen gemaakt, die later kunnen worden bewerkt zodat ze nieuwe gegevens kunnen bevatten. Van elk veld kan een invoerveld worden gemaakt door het op te nemen in een inputfield-opdracht in het script voordat het wordt weergegeven in een LOAD- of SELECT-opdracht.
Waarden van een invoerveld kunnen worden gewijzigd in cellen in keuzelijsten en tabelgrafiekuitdrukkingen. Alleen keuzelijsten en tabelkolommen die invoervelden bevatten, kunnen worden bewerkt. Door met de muis over een bewerkbare cel te bewegen, wordt een invoerpictogram weergegeven. Als u op het pictogram klikt, wordt voor de cel de modus voor het bewerken van invoer ingeschakeld. Met de toetsen pijl omhoog/omlaag kunt u van de ene naar de andere cel bewegen zonder de modus voor invoer bewerken uit te schakelen. Wanneer nieuwe waarden worden ingevoerd, wordt het gehele QlikView-document herberekend.
Een cel in een tabelgrafiekuitdrukking kan een speciale aggregatiefunctie voor invoervelden bevatten en toch nog geschikt zijn voor gegevensinvoer. De wijziging wordt dan teruggevoerd naar de onderliggende veldwaarden op basis van vooraf bepaalde algoritmen, zoals ''gelijk verdeeld'' of ''verhoudingsgewijs verdeeld''.
Het is mogelijk relatieve verandering op te geven.
De volgende syntaxis is van toepassing (n is een getal):
Syntaxis | Beschrijving |
---|---|
%+n | verhoogt de huidige waarde met n% |
%-n | vermindert de huidige waarde met n% |
+=n | verhoogt de huidige waarde met n |
-=n | vermindert de huidige waarde met n |
*=n | vermenigvuldigt de huidige waarde met n |
/=n | deelt de huidige waarde door n |
Voorbeeld:
%+10 verhoogt de huidige waarde met 10%.
+=56 verhoogt de huidige waarde met 56.
*=2 vermenigvuldigt de waarde met 2.
/=2 deelt de waarde door 2.
/=0 geen wijziging.
Er zijn ook automatiserings-API's voor het programmatisch verwijderen en instellen van waarden.
Beperkingen
- Een berekend veld en sleutelvelden kunnen niet als invoervelden worden gebruikt. De invoerveldfunctie wordt automatisch uitgeschakeld.
- Invoervelden zijn niet geschikt voor grote hoeveelheden gegevens omdat ze veel minder efficiënt zijn in het opslaan van gegevens dan normale velden.
- De sleutel tussen het invoerveld en het logische veld moet uniek zijn, het kan geen dubbele waarden bevatten.
Voorbeeld van invoerveld
In dit voorbeeld wordt een invoerveld aan de gegevens toegevoegd en er wordt getoond hoe u de waarden interactief kunt bijwerken.
-
Laad de volgende gegevens in het load-script.
Inputfield Value;
Table1:
LOAD * inline [
[
Key, Attribute, Value
Bob, Jan, 100
Bob, Feb, 200
Bob, Mar, 300
Kate, Jan, 400
Kate, Feb, 500
Kate, Mar, 600
];
- Als u de gegevens hebt geladen, maakt u een tabelobject en voegt u de drie velden toe.
-
Maak een diagram met een strakke tabel en voeg Key toe als dimensie. Voeg de volgende uitdrukkingen toe:
- Sum(Value)
- InputSum(Value)
Beide uitdrukkingen tonen dezelfde waarde, maar u kunt alleen InputSum(Value) in de strakke tabel bijwerken, Sum(Value) kunt u niet bijwerken.
U kunt nu Value interactief wijzingen in het tabelobject. De geaggregeerde waarden van de uitdrukkingen in de strakke tabel worden dienovereenkomstig bijgewerkt.
U kunt ook de waarden van de uitdrukking InputSum(Value) bijwerken in de strakke tabel. De onderliggende waarden worden in het tabelobject bijgewerkt. De wijziging wordt evenredig verdeeld over alle waarden, maar u kunt de verdelingsmodus wijzigen in de functie InputSum().