4 Replies Latest reply: May 28, 2014 1:12 PM by Hamilton Junior RSS

    Alterar campo de produto na seleção

    Hamilton Junior

      Boa tarde, tenho uma situação que é a seguinte..

      Possuo uma tabela chamada DEPARTAMENTOS onde tem o codigo do departamento e sua descrição

       

      na segunda tabela chmada MOVIMENTO eu tenho os produtos movimentados no periodo onde consta o codigo do item, codigo do departamento e o codigo do lançamento.

       

      minha duvida é a seguinte, tenho vários codigos de lançamentos para o mesmo produto, gostaria que quando o produto do departamento 01 tiver o codigo de lançamento 6000 ele mude seu departamento para 22 assim ao selecionar o departamento 22 um produto de outro departamento qualquer lançado no código 6000 vai aparecer..

       

      pensei em usar o Mapping Inline porém não consigo pensar em algo lógico.

      Consegui me expressar?

        • Re: Alterar campo de produto na seleção
          Fernando Tonial

          Olá,

          É possível fazer sim com mapping,

          E se eu consegui entender bem, veja exemplo:

          MAP_DEPARA_DEPTO:
          Mapping
          LOAD * INLINE [
              COD_LANÇ, COD_DEPTO_PARA
              6000, 22
              6001, 23
              6002, 24
          ];
          
          
          DEPTO:
          LOAD * INLINE [
              COD_DEPTO, DPTO
              01, DEPTO 01 
              02, DEPTO 02
              03, DEPTO 03
              22, DEPTO 22
              23, DEPTO 23
              24, DEPTO 24
          ];
          
          
          LAÇAMENTO:
          LOAD 
            APPLYMAP('MAP_DEPARA_DEPTO',COD_LANÇ,COD_DEPTO) AS COD_DEPTO,
            COD_DEPTO AS COD_DEPTO_ORIGINAL,// APENAS UTILIZADO PARA VERIFICAÇÃO 
            COD_LANÇ, 
            COD_ITEM, 
            VALOR
           INLINE [
              COD_DEPTO, COD_LANÇ, COD_ITEM, VALOR
              01, 6000, 11, 100
              02, 6001, 12, 200
              03, 6002, 13, 300
              01, 5000, 11, 400
              02, 5001, 12, 500
              03, 5002, 13, 600
          ];
          

           

          Dessa forma, será feita a alteração do campo do departamento conforme a tabela MAP_DEPARA_DEPTO, onde o qlikview busca o código do lançamento e altera para o código do departamento.

          Esta operação é feita através do comando

          APPLYMAP('MAP_DEPARA_DEPTO',COD_LANÇ,COD_DEPTO) AS COD_DEPTO,

           

          Qlikfique-se

          Tonial.

            • Re: Alterar campo de produto na seleção
              Hamilton Junior

              Bom dia Fernando, minha dificuldade com o mapping é que eu não sei se os campos podem ser fixos ou podem pegar de um banco de dados. No seu exemplo funcionou perfeitamente e eu poderia usar mas quero facilitar a programação no QV e evitar manutenções básicas no futuro, fiz o seguinte, o documento 6000 que eu digo que tem que mudar para o departamento 22 eu cadastrei no banco de dados, assim a gerencia pode incluir ou excluir os documentos a qualquer hora, acredito que seja uma boa ideia. Eu consigo fazer alguma cosia neste sentido?

               

              1. MAP_DEPARA_DEPTO: 
              2. Mapping 
              3. LOAD * INLINE [ 
              4.     COD_LANÇ, COD_DEPTO_PARA 
              5.     (select doc_codigo from tabela_aux, produtos where prod_codlanc = doc_codigo), (select doc_depto from tabela_aux, produtos where prod_codlanc = doc_codigo) ]

              Caso isto nao seja possível, usarei seu exemplo pois condiz com o que preciso, porém gostaria de algo mais dinâmico. Obrigado pela ajuda.

            • Re: Alterar campo de produto na seleção
              Hamilton Junior

              Boa tarde Fernando, novamente quero agradecer, consegui adaptar o codigo para meu projeto. Realmente não sabia usar o Mapping com SQL e nem para campos diferentes. Obrigado pelo ajuda.