0 Replies Latest reply: Jun 12, 2014 10:45 AM by Miguel Arcanjo Negreiros Gomes RSS

    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..