Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products. All content is subject to change and is provided without warranty.
No script de carregamento ou em uma expressão de gráfico, use uma variável em uma expansão de sinal de dólar para:
Fazer referência a um texto
Fazer referência a um valor numérico
Variável de texto
Ao utilizar uma variável para a substituição de texto no script ou em uma expressão, é usada a seguinte sintaxe:
$(variablename)
$(variablename) expande para o valor na variável. Se variablename não existir, a expansão resultará em uma string vazia.
Exemplos: scripts de carregamento de variáveis de texto
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
Set x = 'red'; // Assign the value "red" to variable x
Set y = 'blue'; // Assign the value "blue" to variable y
Set z = '$(x) $(y)'; // Expands x and y, returns "red blue" in variable z
// Expand x and y, return "red green blue" in variable MyString
Let MyString='$(x)'&' green '&'$(y)';
// Create table MyTable, load variable values for x, y, z into fields X, Y, Z
// Concatenate with variable MyString into field NewString
MyTable:
Load '$(x)' as X, '$(y)' as Y, '$(z)' as Z, '$(MyString)' as NewString autogenerate 1;
Como expandir uma variável em atribuições de variáveis.
Como expandir variáveis combinadas com operações textuais.
Essa é uma configuração útil para criar rótulos dinâmicos e sequências de caracteres de texto geral que combinam um conteúdo de variável com sequências de caracteres estáticas.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
X
Y
Z
NewString
vermelho
azul
red blue
vermelho azul verde
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
Set vFunction = 'upper'; // Assign the string “upper” to variable vFunction
Set vField = 'String'; // Assign the string "String" to variable vField
Let vEvaluate = '$(vFunction)'&'('&'$(vField)'&')';
// The variable vEvaluate returns the value "upper(string)"
MyTable: // Create table called MyTable
Load *, $(vEvaluate) as Upper; // vEvaluate expanded as a dynamic expression
Load *, '$(vEvaluate)' as Expression; // vEvaluate expanded as string
Load * inline [
ID, String
1, abc
2, def
3, ghi
4, jkl ];
Explicação
As instruções Set e Let são usadas para atribuir valores a variáveis no script de carregamento. A diferença entre os dois é que a instrução Set atribui uma string à variável, enquanto a instrução Let avalia o conteúdo da sequência de caracteres antes de atribuir o valor resultante à variável. A tabela inline de carregamento neste exemplo é complementada com duas instruções de carregamento anteriores que são usadas para visualizar diferentes avaliações da variável vEvaluate, tanto como uma sequência de caracteres de texto quanto como a expressão correspondente.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
ID
String
Expression
Upper
1
abc
upper(String)
ABC
2
def
upper(String)
DEF
3
ghi
upper(String)
HIJ
4
jkl
upper(String)
JKL
Exemplo: expressão de gráfico de variável de texto
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
Em uma pasta no modo de edição, abra a caixa de diálogo Variáveis no painel Ativos.
Diálogo Abrir variáveis
Crie as seguintes variáveis:
Variável para criar
Nome
Definição
vSales
Sum(Sales)
vSales2014
Sum({<Year={2014}>}Sales)
vSales2015
Sum({<Year={2015}>} Sales)
vSalesAllYears
$(vSales2014) +$(vSales2015)
vSalesDifference
$(vSales2015)/$(vSales2014) - 1
Variáveis
Crie gráficos de KPI para ver as expansões.
KPIs usando expansões de cifrão.
Expansão de variável numérica
Para expansões variáveis numéricas, use a seguinte sintaxe:
(#variablename)
A expansão sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial (para números muito grandes/pequenos). Se variablename não existir ou não contiver um valor numérico, ela será expandida para 0 em vez de NULL.
Exemplos: scripts de carregamento de variáveis numéricas
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
Set DecimalSep = ','; // Set decimal comma as separator for this example.
Let X = 7/2; // Assign the expression 7/2 to variable X.
MyTable: // Create an inline table labeled “MyTable”
Load 1 as ID, * inline [
DecimalComma DecimalPoint
$(X) $(#X) ]
(delimiter is '\t');
Explicação
A expansão #vVariable sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial. Isso é útil quando a vírgula, em vez do ponto final, é usada como separador decimal e há riscos de conflito com listas separadas por vírgulas.
A principal razão para expandir essas variáveis em uma tabela inline de carregamento é que nenhuma citação adicional de $(X) é necessária.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
DecimalComma
DecimalPoint
3,5
3.5
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
// The three Set statements below are required to mimic and initialize
// Format specifiers that are relevant to this particular example
Set ThousandSep=' '; // Set example thousand separator
Set DecimalSep=','; // Set example decimal separator
Set TimestampFormat='YYYY-MM-DD hh:mm:ss'; // Set example date format
Let vRaw = today()-1/1440; // Timestamp minus one minute
Let vFormat = timestamp($(#vRaw)); // Formatted as timestamp
// Create MyTable as an inline table to expand variables as field values
MyTable:
Load * inline [
DecimalComma DecimalPoint FormattedNumber
$(vRaw) $(#vRaw) $(vFormat) ] (delimiter is '\t');
Explicação
A expansão #vVariable sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial. Isso é útil quando a vírgula, em vez do ponto final, é usada como separador decimal e há riscos de conflito com listas separadas por vírgulas. Também é importante notar que a precisão numérica será afetada devido ao truncamento da parte decimal quando as variáveis são expandidas sem o separador decimal correto.
A principal razão para expandir essas variáveis em uma tabela inline de carregamento é que nenhuma citação adicional de $(X) é necessária.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
DecimalComma
DecimalPoint
FormattedNumber
44 470,00
44469.999305556
2021-09-18 23:59:00
Script de carregamento
Carregue os seguintes dados como um carregamento inline no editor de carregamento de dados:
// The three Set statements below are required to mimic and initialize
// format specifiers that are relevant to this particular example
Set ThousandSep=' '; // Set example thousand separator
Set DecimalSep=','; // Set example decimal separator
Set TimestampFormat='YYYY-MM-DD hh:mm:ss'; // Set example date format
// Assign a numerical value and a valid format specifier to vStart
Let vStart = timestamp#('2021-03-23 12:34:56','$(TimestampFormat)');
// Calculate timestamp (vStart + 3 hours) with valid decimal separator: "."
Let vStop = timestamp($(#vStart)+1/8,'YYYY-MM-DD hh:mm:ss');
// Create MyTable as an inline table to expand variables as field values
MyTable:
Load * inline [
StartTime StopTime
$(vStart) $(vStop) ] (delimiter is '\t');
// This is a tab delimited inline table
// Tab delimited tables are useful for avoiding conflicting list separators
Explicação
A expansão #vVariable sempre gera uma representação de ponto decimal válido do valor numérico da variável, possivelmente com notação exponencial. Isso é útil quando a vírgula, em vez do ponto final, é usada como separador decimal e há riscos de conflito com listas separadas por vírgulas. Também é importante notar que a precisão numérica será afetada devido ao truncamento da parte decimal quando as variáveis são expandidas sem o separador decimal correto.
A principal razão para expandir essas variáveis em uma tabela inline de carregamento é que nenhuma citação adicional de $(X) é necessária.
Saída
Crie a seguinte tabela no Qlik Sense:
Tabela - Saída do script de carregamento
StartTime
StopTime
2021-03-23 12:34:56
2021-03-23 15:34:56
Expandindo variáveis que fazem referência a estados alternados
A variável tem apenas um valor, e esse é usado em todos os estados alternados. Quando você expande uma variável, o valor também é o mesmo, independente de onde a expansão é feita e do estado do objeto.
Se a variável for uma variável calculada, ou seja, a definição começa com um sinal de igual, o cálculo será feito no estado padrão, a menos que você especifique um estado alternado na definição da variável.
Por exemplo, se você tem um estado chamado MyState e uma variável chamada vMyVar:
vMyvar: =only({MyState}MyField)
O conteúdo da definição da variável, com uma referência explícita ao nome do estado alternado, determina em que estado o conteúdo da variável será avaliado.
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!