O Fator de Arredondamento na Vista de Análise não é considerado no cliente RoleTailored (RTC) do Microsoft Dynamics NAV

Aplica-se A
Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 2009 R2

Este artigo aplica-se ao Microsoft Dynamics NAV para todas as regiões de idioma.

Sintomas

No cliente RoleTailored (RTC), o Fator de Arredondamento na Vista de Análise não é considerado. Por exemplo, defina o Fator de Arredondamento como "1000" na Vista de Análise. No entanto, os números não são apresentados em milhares.
Este problema ocorre nos seguintes produtos:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009 R2

Resolução

Informações de correção

Uma correção suportada está agora disponível na Microsoft. No entanto, destina-se apenas a corrigir o problema descrito neste artigo. Aplique-o apenas a sistemas com este problema específico. Esta correção pode receber testes adicionais. Por conseguinte, se não for gravemente afetado por este problema, recomendamos que aguarde pelo próximo service pack do Microsoft Dynamics NAV 2009 ou pela próxima versão do Microsoft Dynamics NAV que contém esta correção.

Nota Em casos especiais, os custos normalmente incorridos para chamadas de suporte poderão ser cancelados se um Profissional de Suporte Técnico para o Microsoft Dynamics e produtos relacionados determinar que uma atualização específica irá resolver o problema. Os custos de suporte habituais serão aplicados a questões e problemas de suporte adicionais que não se qualificam para a atualização específica em questão.

            
          

Informações de instalação

A Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isto inclui, mas não se limita às garantias implícitas de comercialização ou adequação a um fim específico. Este artigo parte do princípio de que está familiarizado com a linguagem de programação que está a ser demonstrada e com as ferramentas utilizadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para fornecer funcionalidades adicionais ou criar procedimentos para satisfazer os seus requisitos específicos.

Nota Antes de instalar esta correção, verifique se todos os utilizadores cliente do Microsoft Navision têm sessão iniciada no sistema. Isto inclui utilizadores cliente do Microsoft Navision Application Services (NAS). Deve ser o único utilizador cliente com sessão iniciada quando implementa esta correção.

Para implementar esta correção, tem de ter uma licença de programador.

Recomendamos que a conta de utilizador na janela Inícios de Sessão do Windows ou na janela Inícios de Sessão da Base de Dados seja atribuída ao ID da função "SUPER". Se não for possível atribuir à conta de utilizador o ID de função "SUPER", tem de verificar se a conta de utilizador tem as seguintes permissões:

  • A permissão Modificar para o objeto que irá alterar.
  • A permissão Executar para o objeto ID de Objeto de Sistema 5210 e para o objeto ID de Objeto do Sistema 9015.

                
Nota Não tem de ter direitos sobre os arquivos de dados, a menos que tenha de efetuar a reparação de dados.

Alterações de código

Nota Teste sempre as correções de código num ambiente controlado antes de aplicar as correções aos seus computadores de produção.
Para resolver este problema, siga estes passos no formulário Análise de Vendas por Matriz Dim (9227):
Nota As mesmas alterações têm de ser efetuadas na Análise de Vendas por Dim Matrix Page (9227). Se o nome for diferente, é especificado para a Página.

  1. Altere a Propriedade Zero em Branco de "Não" para "Sim" no campo Quantidade Total (6).

  2. Altere o código no acionador do formulário TotalQuantity – OnFormat da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    IF Quantity = 0 THEN
      Text := '';
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    
    CurrForm.TotalQuantity.UPDATEFONTBOLD("Show in Bold");
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  3. Altere o código no acionador da página QuantityOnFormat da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    IF Quantity = 0 THEN
      "+QuantityHideValue" := TRUE;
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    
    TotalQuantityEmphasize := "Show in Bold";
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  4. Altere a Propriedade Zero em Branco de "Não" para "Sim" no campo TotalInvtValue (8).

  5. Altere o código no acionador de formulário TotalInvtValue – OnFormat da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    IF Amount = 0 THEN
      Text := ''
    ELSE
      Text := FORMAT(Amount,0,NormalFormatString);
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    CurrForm.TotalInvtValue.UPDATEFONTBOLD("Show in Bold");
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  6. Altere o código no acionador da página AmountOnFormat da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    IF Amount = 0 THEN
      Text := ''
    ELSE
      Text := FORMAT(Amount,0,NormalFormatString);
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    TotalInvtValueEmphasize := "Show in Bold";
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  7. Altere o código no acionador do formulário Field1 - OnFormat e no acionador da página MatrixData1OnFormat no campo Field1 (13) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  8. Altere o código no acionador de formulário Campo2 - OnFormat e no acionador da página MatrixData2OnFormat no campo Campo2 (15) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  9. Altere o código no acionador do formulário Campo3 – OnFormat e no acionador da página MatrixData3OnFormat no campo Field3 (17) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  10. Altere o código no acionador do formulário Field4 - OnFormat e no acionador da página MatrixData4OnFormat no campo Campo4 (25) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  11. Altere o código no acionador do formulário Field5 - OnFormat e no acionador da página MatrixData5OnFormat no campo Field5 (23) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  12. Altere o código no acionador de formulário Campo6 - OnFormat e no acionador da página MatrixData6OnFormat no campo Campo6 (21) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  13. Altere o código no acionador de formulário Campo7 - OnFormat e no acionador da página MatrixData7OnFormat no campo Field7 (19) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  14. Altere o código no acionador do formulário Field8 - OnFormat e no acionador da página MatrixData8OnFormat no campo Field8 (31) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  15. Altere o código no acionador do formulário Field9 - OnFormat e no acionador da página MatrixData9OnFormat no campo Field9 (39) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  16. Altere o código no acionador do formulário Field10 - OnFormat e no acionador da página MatrixData10OnFormat no campo Field10 (41) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  17. Altere o código no acionador do formulário Field11 - OnFormat e no acionador da página MatrixData11OnFormat no campo Campo11 (45) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  18. Altere o código no acionador do formulário Campo12 - OnFormat e no acionador da página MatrixData12OnFormat no campo Campo12 (27) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  19. Altere o código no acionador de formulário Campo13 - OnFormat e no acionador da página MatrixData13OnFormat no campo Campo13 (29) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  20. Altere o código no acionador do formulário Campo14 - OnFormat e no acionador da página MatrixData14OnFormat no campo Campo14 (33) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  21. Altere o código no acionador do formulário Campo15 – OnFormat e no acionador da página MatrixData15OnFormat no campo Campo15 (35) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  22. Altere o código no acionador do formulário Campo16 - OnFormat e no acionador da página MatrixData16OnFormat no campo Campo16 (37) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  23. Altere o código no acionador do formulário Campo17 - OnFormat e no acionador da página MatrixData17OnFormat no campo Campo17 (43) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  24. Altere o código no acionador do formulário Field18 - OnFormat e no acionador da página MatrixData18OnFormat no campo Field18 (47) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  25. Altere o código no acionador do formulário Campo19 - OnFormat e no acionador da página MatrixData19OnFormat no campo Campo19 (49) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  26. Altere o código no acionador do formulário Field20 - OnFormat e no acionador da página MatrixData20OnFormat no campo Field20 (51) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  27. Altere o código no acionador do formulário Field21- OnFormat e no acionador da página MatrixData21OnFormat no campo Campo21 (53) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  28. Altere o código no acionador do formulário Field22- OnFormat e no acionador da página MatrixData22OnFormat no campo Campo22 (55) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  29. Altere o código no acionador do formulário Field23- OnFormat e no acionador da página MatrixData23OnFormat no campo Campo23 (57) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  30. Altere o código no acionador do formulário Field24- OnFormat e no acionador da página MatrixData24OnFormat no campo Campo24 (59) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  31. Altere o código no acionador do formulário Field25- OnFormat e no acionador da página MatrixData25OnFormat no campo Campo25 (61) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  32. Altere o código no acionador do formulário Field26- OnFormat e no acionador da página MatrixData26OnFormat no campo Campo26 (63) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  33. Altere o código no acionador do formulário Field27- OnFormat e no acionador da página MatrixData27OnFormat no campo Campo27 (65) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  34. Altere o código no acionador do formulário Field28- OnFormat e no acionador da página MatrixData28OnFormat no campo Campo28 (67) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  35. Altere o código no acionador do formulário Field29- OnFormat e no acionador da página MatrixData29OnFormat no campo Campo29 (69) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  36. Altere o código no acionador do formulário Field30- OnFormat e no acionador da página MatrixData30OnFormat no campo Field30 (71) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  37. Altere o código no acionador do formulário Field31- OnFormat e no acionador da página MatrixData31OnFormat no campo Field31 (73) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  38. Altere o código no acionador do formulário Field32- OnFormat e no acionador da página MatrixData32OnFormat no campo Field32 (75) da seguinte forma:
    Código existente

    ...
    // Delete the following lines.
    ItemAnalysisMgt.FormatAmount(Text,RoundingFactor);
    // End of the deleted lines.
    ...
    

    Código de substituição

    ...
    
    ...
    
  39. Altere o código na função CalcAmt da seguinte forma:
    Código existente

    ...
     END;
    END;
    
    IF ShowOppositeSign THEN
      Amt := -Amt;
    EXIT(Amt);
    ...
    

    Código de substituição

    ...
       END;
    END;
    
    IF ShowOppositeSign THEN
      Amt := -Amt;
    
    // Add the following lines.
    CASE RoundingFactor OF
      RoundingFactor::"1":
        Amt := ROUND(Amt,1);
      RoundingFactor::"1000":
        Amt := ROUND(Amt / 1000,0.1);
      RoundingFactor::"1000000":
        Amt := ROUND(Amt / 1000000,0.1);
    END;
    // End of the added lines.
    
    EXIT(Amt);
    ...
    

          

Pré-requisitos

Tem de ter um dos seguintes produtos instalados para aplicar esta correção:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009 R2

                
              

Informações de remoção

Não é possível remover esta correção.

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Referências

VSTF DynamicsNAV SE: 256081

Nota Este é um artigo "PUBLICAÇÃO RÁPIDA" criado diretamente a partir da organização de suporte da Microsoft. As informações aqui contidas são fornecidas tal como estão em resposta a problemas emergentes. Como resultado da velocidade de disponibilização, os materiais podem incluir erros tipográficos e podem ser revistos em qualquer altura sem aviso prévio. Veja Termos de Utilização para outras considerações.