Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

como zerar valores no inputfield

Oi Pessoal

estou tentando colocar 0 (zero) nos valores da minha visão de Evolução, esses valores é iniciado com inputfield e através de um botão estamos executando através da seguinte macro:

Antes de mostrar a macro aqui está parte do script que esses campos são inicializado.

INPUTFIELD %INPUT_VENDAS;

INPUTFIELD %INPUT_CHURN;

INPUTFIELD %QTD_CONTRATO_UP;

INPUTFIELD %QTD_CONTRATO_DOWN;

for each File in filelist ('cenarios\EVO*.xml')

EVOL_BASE_PROD_INPUT:

LOAD

  PRODUTO&COD_PERIODO_POV&NOME_CENARIO AS CHAVE_PRODUTO_PERIODO,

  PRODUTO AS PRODUTO_EVOL,

  COD_PERIODO_POV AS COD_PEDIODO_POV_EVOL,

  NOME_CENARIO AS NOME_CENARIO_EVOL,

  CHURN_CENARIO,

    QUANTIDADE_VENDAS,

    QUANTIDADE_CHURN,

    PERCENTUAL_CHURN,

    QUANTIDADE_UP,

    QUANTIDADE_DOWN,

    VALOR_LIQUIDO,

    QUANTIDADEITEM_FINAL,

    QUANTIDADE_VENDAS AS %INPUT_VENDAS,

    QUANTIDADE_CHURN  AS %INPUT_CHURN,

    QUANTIDADE_UP     AS %QTD_CONTRATO_UP,

    QUANTIDADE_DOWN   AS %QTD_CONTRATO_DOWN

from $(File) (XmlSimple, Table is [StraightTableBox/EVOL_BASE_PROD_INPUT]);

next File ;

if noOfRows('EVOL_BASE_PROD_INPUT') <>null then

   BASE_INICIAL:

   LOAD

      RowNo() as CHAVE_CENARIO,

      PRODUTO&[FAMILIA DE PRODUTO]&PACOTE AS CHAVE_PRODUTO,

      PRODUTO&[FAMILIA DE PRODUTO]&PACOTE&DATA_BASE_INICIO AS CHAVE_PRODUTO_DATABASE,

      DATA_BASE,

      DATA_BASE_INICIO,

      ID_PERIODO_POV AS ID_PERIODO_POV_BI,

      num(DATA_BASE_INICIO)&PRODUTO&[FAMILIA DE PRODUTO]&PACOTE as CHAVE_PRECO,

      YEAR(DATA_BASE)&MONTH(DATA_BASE)&DAY(DATA_BASE) AS CHAVE_PERIODO, 

      DATA_BASE_INICIO&PRODUTO as CHAVE_UPDOWN,

      PRODUTO&[FAMILIA DE PRODUTO]&PACOTE&ID_PERIODO_POV as CHAVE_FATURAMENTO_CENARIO,

      YEAR(DATA_BASE)&MONTH(DATA_BASE) AS ANO_MES_PP,

      PRODUTO,

      [FAMILIA DE PRODUTO],

      PACOTE,

      QUANTIDADEITEM,

      IF(ISNULL(CUSTO),0,CUSTO) as CUSTO_POV

   RESIDENT BASE_INICIAL_FULL;

ELSE

   BASE_INICIAL:

   LOAD

      RowNo() as CHAVE_CENARIO,

      PRODUTO&[FAMILIA DE PRODUTO]&PACOTE AS CHAVE_PRODUTO,

      PRODUTO&[FAMILIA DE PRODUTO]&PACOTE&DATA_BASE_INICIO AS CHAVE_PRODUTO_DATABASE,

      DATA_BASE,

      DATA_BASE_INICIO,

      ID_PERIODO_POV AS ID_PERIODO_POV_BI,

      num(DATA_BASE_INICIO)&PRODUTO&[FAMILIA DE PRODUTO]&PACOTE as CHAVE_PRECO,

      YEAR(DATA_BASE)&MONTH(DATA_BASE)&DAY(DATA_BASE) AS CHAVE_PERIODO, 

      DATA_BASE_INICIO&PRODUTO as CHAVE_UPDOWN,

      PRODUTO&[FAMILIA DE PRODUTO]&PACOTE&ID_PERIODO_POV as CHAVE_FATURAMENTO_CENARIO,

      YEAR(DATA_BASE)&MONTH(DATA_BASE) AS ANO_MES_PP,

      PRODUTO,

      [FAMILIA DE PRODUTO],

      PACOTE,

      QUANTIDADEITEM,

      0 AS %INPUT_VENDAS,

      0 AS %INPUT_CHURN,

      0 AS %QTD_CONTRATO_UP,

      0 AS %QTD_CONTRATO_DOWN,

      IF(ISNULL(CUSTO),0,CUSTO) as CUSTO_POV

   RESIDENT BASE_INICIAL_FULL;

ENDIF  

-- Macro para colocar zero nos campos de Inputfield

Sub setCamposEvol

  set table = ActiveDocument.GetSheetObject("EvolBaseProdInput") 

 

    set evol1= ActiveDocument.Fields("%INPUT_VENDAS")

    set evol2= ActiveDocument.Fields("%INPUT_CHURN")

    set evol3= ActiveDocument.Fields("%QTD_CONTRATO_UP")

    set evol4= ActiveDocument.Fields("%QTD_CONTRATO_DOWN")

   

  for RowIter = 1 to table.GetRowCount-1 

        evol1.SetInputFieldValue RowIter ,0

        evol2.SetInputFieldValue RowIter, 0

        evol3.SetInputFieldValue RowIter, 0

        evol4.SetInputFieldValue RowIter, 0

       

  next 

end sub

A Tabela é essa.

imagEvolucao.jpg

Já usei essa macro abaixo

Sub setCamposEvol

   set evol1= ActiveDocument.Fields("%INPUT_VENDAS")

   set evol2= ActiveDocument.Fields("%INPUT_CHURN")

   set evol3= ActiveDocument.Fields("%QTD_CONTRATO_UP")

   set evol4= ActiveDocument.Fields("%QTD_CONTRATO_DOWN")

   

   evol1.ResetInputFieldValues 0

   evol2.ResetInputFieldValues 0

   evol3.ResetInputFieldValues 0

   evol4.ResetInputFieldValues 0

       

end sub

Mas essa macro volta o valor original do campo e não zera o valor.

Agradeço a atenção de todos par mais essa ajuda..

Tags (1)