Jump to content
henrique bonfim

Filtro de usuário interferindo no relatório

Recommended Posts

Boa tarde, gente.

Criei um relatório com os seguintes parâmetros CODCCUSTO, CODCOLIGADA e NUMEROMOV.

Acontece que determinado usuário possui filtros nas tabelas, FLAN.CODCCUSTO, TMOV.CODLOC e GCCUSTO.CODCCUSTO

SELECT    TMOV.CODCOLIGADA AS 'Cód. coligada', TMOV.CODFILIAL AS 'Cód. filial', GFILIAL.NOMEFANTASIA AS 'Filial', TMOV.CODLOC, TMOV.CODTMV AS 'CODTMOV', TMOV.IDMOV AS 'Identificador', TMOV.NUMEROMOV AS 'Número',
        TMOV.VALORLIQUIDO AS 'Valor líquido', TMOV.VALORBRUTOORIG AS 'Valor bruto', TITMMOV.NSEQITMMOV AS 'ITEM', TITMMOV.IDPRD AS 'IDPRODUTO', TPRODUTO.CODIGOPRD AS 'Cód. produto',
        TPRODUTO.NOMEFANTASIA AS 'Produto', TITMMOV.CODUND AS 'Unidade', TITMMOV.PRECOUNITARIO AS 'Preço unitário', CASE TITMMOV.QUANTIDADE WHEN 0 THEN NULL ELSE TITMMOV.QUANTIDADE END AS 'Quantidade',
        TITMMOV.QUANTIDADETOTAL AS 'Quantidade total', TITMMOV.VALORBRUTOITEM AS 'Valor bruto item', TITMMOV.VALORBRUTOITEMORIG AS 'Valor bruto item origem',
        TITMMOV.VALORDESC AS 'Valor desconto', TMOV.CODCCUSTO AS 'Cod Centro de Custo', GCCUSTO.NOME AS 'Centro de custo', TLOC.CODLOC AS 'Cód. local',
        TLOC.NOME AS 'Local', FCFO.CODCFO AS 'Cód. fornecedor', FCFO.NOMEFANTASIA AS 'Fornecedor', TMOV.DATAEMISSAO AS 'Emissao'
FROM TMOV WITH(NOLOCK)
INNER JOIN GFILIAL WITH(NOLOCK) ON GFILIAL.CODCOLIGADA = TMOV.CODCOLIGADA
       AND GFILIAL.CODFILIAL = TMOV.CODFILIAL
INNER JOIN TLOC WITH(NOLOCK) ON TLOC.CODCOLIGADA = TMOV.CODCOLIGADA
       AND TLOC.CODLOC = TMOV.CODLOC
INNER JOIN GCCUSTO WITH(NOLOCK) ON GCCUSTO.CODCOLIGADA = TMOV.CODCOLIGADA
       AND GCCUSTO.CODCCUSTO = TMOV.CODCCUSTO
INNER JOIN TITMMOV WITH(NOLOCK) ON TITMMOV.CODCOLIGADA = TMOV.CODCOLIGADA
       AND TITMMOV.IDMOV = TMOV.IDMOV
INNER JOIN TPRODUTO WITH(NOLOCK) ON TPRODUTO.IDPRD = TITMMOV.IDPRD
INNER JOIN FCFO WITH(NOLOCK) ON FCFO.CODCOLIGADA = TMOV.CODCOLCFO
       AND FCFO.CODCFO = TMOV.CODCFO
WHERE TMOV.NUMEROMOV=:NUMEROMOV AND TMOV.CODCOLIGADA=:CODCOLIGADA AND TMOV.CODTMV='1.1.08' AND TMOV.CODCCUSTO=:CODCCUSTO
GROUP BY TMOV.IDMOV, TMOV.CODCOLIGADA, TMOV.CODFILIAL, GFILIAL.NOMEFANTASIA, TMOV.CODLOC, TMOV.CODTMV, TMOV.NUMEROMOV, TMOV.VALORLIQUIDO, TMOV.VALORBRUTOORIG, TITMMOV.NSEQITMMOV, TITMMOV.IDPRD,
        TPRODUTO.CODIGOPRD, TPRODUTO.NOMEFANTASIA, TITMMOV.CODUND, TITMMOV.PRECOUNITARIO, TITMMOV.QUANTIDADE, TITMMOV.QUANTIDADETOTAL,
        TITMMOV.VALORBRUTOITEM, TITMMOV.VALORBRUTOITEMORIG,    TITMMOV.VALORDESC, TMOV.CODCCUSTO, GCCUSTO.NOME, TLOC.CODLOC,
        TLOC.NOME, FCFO.CODCFO, FCFO.NOMEFANTASIA, TMOV.DATAEMISSAO

Porém, ao executar o relatório, surge a seguinte mensagem

"Erro ao executar relatório
Erro ao executar relatório
Erro ao executar sentença.
Não será possível executar essa consulta, pois não foi possível aplicar o filtro por usuário.

Essa consulta deverá conter o(s) seguinte(s) campo(s) da tabela GCCUSTO: CODCCUSTO
Usuário da execução: METROENG\MTPLAN02$"

 

Observem que o campo GCCUSTO.CODCCUSTO, já está na consulta.

Também fiz um teste trocando o filtro do usuário da tabela GCCUSTO para a tabela TMOV.CODCCUSTO, que tambpem faz parte da planilha e dos parâmetros do relatório, Retornando o mesmo erro ".... tabela TMOV: CODCCUSTO".

 

Alguém pode me ajudar?

 

Share this post


Link to post
Share on other sites

Resolvido.

Resolvi o problema inserindo o 

INNER JOIN GCCUSTO WITH(NOLOCK) ON GCCUSTO.CODCOLIGADA = TMOV.CODCOLIGADA
       AND GCCUSTO.CODCCUSTO = TMOV.CODCCUSTO

Nas subqueries existentes.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Severo Daniel Madruga
      Boa tarde
      Sou novo no mundo dos sistemas Totvs linha RM, estou precisando gerar diversos cubos e raltorios para a versão do RM.Educacional mas estou com uma dificuldade enrome em identificar e entender a identificacao de qual atabela pertençe a qual linha de produtos dentro do banco de dados, gerei um relatorio da tabela GLINKSREL porem existem muitas tabelas que não me levam as respostas esperadas na minha consulta.
      Agradeço a ajuda
    • By Jair - Fórmula
      Estou montando um conceito de testes aqui e usando uma leitura  tipo CONEXAO DE BANCO DADOS com Sentença SQL e me retorna esse erro abaixo. Já ouvi falar, mas não consigo saber exatamente o que colocar no lugar da sentença lá 😕 Por sinal queria mesmo era usar uma  procedure. Ai dependendo já não sei o que fazer neste caso, mas vamos lá... 


      " A sentença SQL da tabela deve conter um comentário para substituição do filtro. /* where */ OU /* and */    "
      Minha sentença é básica, ainda de testes, por exemplo:
      Select CodColigada, Sum(Valor) as Valor 
      From TabTemp
      Where 1=1
      Group by CodColigada
    • By rafaelf
      Esse manual irá te ajudar a identificar:
      - uma tabela a partir de uma tela de cadastro.
      - entender como foi criada a tabela GLINKSREL
      - a executar comandos em SQL e outros.
       
       
      treinamentodesql.pptx
    • By Jair - Fórmula
      Montei uma listagem de tabelas dinâmicas do sistema para quem quiser consultar facilmente o nome de alguma tabela usada para armazenar detalhes de tabelas usadas internamente no sistema para algumas funções, como itens de código de situação de funcionários, tipo de dependente, entre outros.

       
      Vou montar uma outra consulta , provavelmente uma procedure, com informações das tabelas com os detalhes, da GCONSIST, e demais tabelas internas usadas nas tabelas dinâmicas do sistemas. 
       
      Listagem de Tabelas Dinâmicas.xlsx
    • By cezarvinicius
      Boa tarde, pessoal!
      Esse script que estou enviando serve para auxiliar o DP (ou RH) a identificar os funcionários que tiveram os dias pagos inferiores a 30 dias e qual foi o motivo (descontos do mês anterior, atestados médicos), com base nas férias, salário maternidade e atestados. O registro identificado apenas como "MENOR" significa que deve ser verificado pelo DP,  pois existe alguma situação incomum. Esse relatório é mais completo do que verificar somente pelo saldo.
       
    • By Thiago Queiroz
      Boa tarde,
      Gostaria de uma ajuda com um relatório que estou montando,
      no relatório deve ter todos os fornecedores que a empresa DEVE porem não pode ter "puxa" os já pagos, cancelados e com cheque.
      montei um que a condição é flan.statuslan = '0' que vai puxar os resultados que não foram pagos, porem puxa os vencidos e com cheque, e nao acho nada nas tabelas que eu posssa por outra condição para diferenciar.
       
      SELECT FLAN.CODCOLIGADA,
             FLAN.CODCFO,
             FCFO.NOME,
             SUM(FLAN.VALORORIGINAL) AS [VALOR TOTAL]
      FROM FLAN
      INNER JOIN FCFO ON ( FLAN.CODCOLCFO = FCFO.CODCOLIGADA AND FLAN.CODCFO = FCFO.CODCFO )
      WHERE FLAN.PAGREC = '2' AND FLAN.STATUSLAN = '0'
      GROUP BY FLAN.CODCOLIGADA,FLAN.CODCFO,  FCFO.NOME
      ORDER BY FLAN.CODCOLIGADA, FCFO.NOME
    • By Fórum RM
      Quando solicita pra rodar relatórios no Gerador em versões a partir da 12.1.21 e não está instalado o client 11, basta instalar esse arquivo, de acordo com a versão do seu Windows.
      https://www.forumrm.com.br/files/file/387-client-sql-server-2012
       
    • By Cláudio Matias
      Prezados, boa tarde.
      Sou novo aqui no fórum e gostaria, se possível, de expor uma dúvida e caso alguém possa me ajudar, ficarei muito grato.
      Situação: Preciso desenvolver uma consulta SQL que me retorne a jornada planejada do funcionário, montando o quadro de horário em linhas. Utilizei a tabela AJORHOR, porém, ela não atende em todos os casos, já que a jornada da visão do horário pode não corresponder a jornada executada do funcionário. 
      Exemplo do resultado: Linha 1: CHAPA 0001 - SEG - 7:30 - 12:00 - 13:00 - 17:45
                                               Linha 2: CHAPA 0001 - TER - 7:30 - 12:00 - 13:00 - 17:45
                                               Linha 3: CHAPA 0001 - QUA - 7:30 - 12:00 - 13:00 - 17:45
                                               ...
                                               ...
                                               Linha 6: CHAPA 0001 - SAB - COMPENSADO
                                               Linha 7: CHAPA 0001 - DOM - DESCANSO
                                               
       
    • By igoroliveira
      Oi,
       
      Algum usuário possui um relatório para conferência dos cálculos da contribuição previdenciária?
       
      Integração RM x TAF.
    • By luisgustavogomes
      Pessoal, boa tarde!
       
      Preciso executar um SP dentro do visualizador de consultas !
       Alguém já conseguiu efetuar essa operação? 
  • Recent

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.