3 Replies Latest reply: Sep 4, 2014 10:49 AM by Diego Diego RSS

    APPLYMAP - IF - Dúvida

    Diego Diego

        Prezados, bom dia!

       

      Abaixo segue  uma expressão no meu script, nessa expressão ela me informa a situação das notas que varia entre 0, 2, 3, 4 e 6.

       

      applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0) as "Situação Nota",

       

      Gostaria de aplicar um nome para cada uma destas situações:

       

      0 - Cancelada

      2 - Recusada

      3 - Normal

      4 - Normal

      6 - Anulada

       

      Como devo proceder neste caso?
      Desde já, agradeço!


      Diego

        • Re: APPLYMAP - IF - Dúvida
          Raphael Pacheco

          Bom, no seu modelo de dados tem que existir uma tabela frete_map_situacao, onde ela deve ser mais ou menos assim:

          frete_map_situacao:

          Mapping Load * InLine [

          De, Para

          1|1|645, 0

          1|2|655, 2

          ];


          E depois, como o seu exemplo demonstrou, ele pega estes valores.

          O que podes fazer é criar mais uma tabela de Mapping, onde você colocará os valores inteiros do status e também sua situação:


          frete_map_desc_situação

          Mapping Load * InLine [

          De, Para

          0, Cacelada

          2, Recusada

          3, Normal

          4, Normal

          6, Anulada

          ];


          Depois, faça um Applymap dentro de outro:

          applymap('frete_map_desc_situação', applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0) , 0) as [Desc. Situação da Nota],


          • Re: APPLYMAP - IF - Dúvida
            Fernando Tonial

            Olá, bem tem algumas formas de fazer isso.

            A mais fácil é criar uma tabela com o Código Situação Nota e Situação Nota e associar pelo campo Código Situação Nota.

             

            [Situacao Nota]:
            Load * Inline [
              Código Situação Nota - Situação Nota
              0 - Cancelada
              2 - Recusada
              3 - Normal
              4 - Normal
              6 - Anulada
            ] (delimiter is '-');
            

             

            Alterando o nome do campo de Situação Nota para Código Situação Nota, ficando assim:

             

            applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0) as "Código Situação Nota",

             

            Outra possibilidade é fazer mais uma tabela de mapping com os valores

             

            MapSituacaoNota:
            Mapping
            Load * Inline [
              de - para
              0 - Cancelada
              2 - Recusada
              3 - Normal
              4 - Normal
              6 - Anulada
            ] (delimiter is '-');
            

             

            e depois fazer um novo applymap, ficando assim:

             

            ApplyMap('MapSituacaoNota',applymap('frete_map_situacao',[cod-estabel]&'|'&[serie]&'|'&num([nr-nota-fis]),0)) as "Situação Nota",