Ir para conteúdo

Denicio Junior

Alunos
  • Total de itens

    39
  • Registro em

  • Última visita

2 Seguidores

Perfil

Informações adicionais

  • Sexo
    ♂ Masculino
  • Mora em
    SP
  • Nasceu dia
    26-08-1995

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Denicio Junior's Achievements

Incomparável

Incomparável (6/6)

  • Assíduo Rare
  • Feliz 1° ano! ✨

Recent Badges

8

Reputação

4

Community Answers

  1. Bom dia Rosana, conseguiria disponibilizar o PBIX?
  2. Boa tarde @Felipe Bitencourt Santana De Magalhães veja se atende. Ajuda.xlsx
  3. Boa tarde @Willian Wichnieski seria mais ou menos isso? Só estou com dúvida na soma, pois são acumulados, se puder me explicar melhor como ficaria.
  4. Boa tarde @santomx45 dê uma olhada nas configurações dos eixos Y, verifique o mínimo e máximo e também tem uma opção de alinhas os zeros. Essas opções podem alterar o visual de como a linha se comporta em relação as barras.
  5. Bom dia @Ricardo Ferreira poderia disponibilizar o PBIX?
  6. @kleberfernandes Verifique o Certificado SSL: Certifique-se de que o certificado SSL do servidor SQL é válido. Configurações do Power BI: Verifique se o Power BI está configurado para aceitar o certificado SSL. Às vezes, pode ser necessário configurar o Power BI para ignorar certos erros de certificado. Configurações do Servidor SQL: Verifique as configurações do servidor SQL para garantir que ele está configurado corretamente para usar SSL/TLS. Certifique-se de que o servidor SQL está configurado para aceitar conexões SSL e que o certificado está corretamente instalado. Atualizações e Patches: Certifique-se de que tanto o Power BI quanto o servidor SQL estão atualizados com os patches e atualizações mais recentes. Testar Conexão Sem SSL: Como um teste, tente estabelecer a conexão sem usar SSL para ver se o problema está realmente relacionado ao SSL. Se a conexão funcionar sem SSL, isso confirma que o problema está no certificado ou na configuração SSL.
  7. Seria esse o resultado esperado @Kamilla? Caso positivo basta utilizar esse DAX: AV = VAR DRE = [DRE Final] VAR AV = DIVIDE( DRE, IF( LEFT(SELECTEDVALUE(dMascara[CODN1]), 4) = "3110", CALCULATE( [DRE Final], FILTER( ALL(dMascara), dMascara[CODN1] = "3110101000" ) ), CALCULATE( [DRE Final], FILTER( ALL(dMascara), dMascara[CODN1] = "3119999000" ) ) ) ) RETURN AV
  8. Bom dia @leoloures veja se esse codigo te ajuda: Clear(MinhaColecaoComValores); ForAll( Gallery2.AllItems, Collect(MinhaColecaoComValores, { ID: ThisRecord.ID, Trilho: ThisRecord.Trilho, Num_Cabine: ThisRecord.Num_Cabine, ValorAnterior: If( CountRows(MinhaColecaoComValores) = 0, Blank(), Last(MinhaColecaoComValores).Num_Cabine ) } ) ); ForAll( MinhaColecaoComValores, Set(tempID, ThisRecord.ID); // Armazena o ID em uma variável temporária Notify("ID: " & tempID, NotificationType.Information); // Exibe o ID para depuração Patch( 'Trilho de Cabines Base de Dados', LookUp( 'Trilho de Cabines Base de Dados', ID = tempID // Usa a variável temporária no LookUp ), {Num_Cabine: ThisRecord.ValorAnterior} ) ); Explicação dos Ajustes Coleta de Dados na Coleção: O código coleta dados da galeria Gallery2 e armazena na coleção MinhaColecaoComValores. Adiciona um campo ValorAnterior que armazena o valor de Num_Cabine da linha anterior. Uso de Variáveis Temporárias: Dentro do ForAll, usamos Set(tempID, ThisRecord.ID) para armazenar o valor de ID em uma variável temporária chamada tempID. Isso ajuda a evitar problemas de referência direta ao ThisRecord.ID no LookUp. Notificações para Depuração: Adicionamos Notify("ID: " & tempID, NotificationType.Information) para exibir o valor de tempID durante a execução. Isso ajuda a verificar se os valores de ID estão corretos e se o problema está relacionado aos dados. Atualização dos Dados Usando Patch: Usamos a variável tempID no LookUp para garantir que estamos passando o valor correto. Atualizamos o campo Num_Cabine com o valor de ValorAnterior.
  9. Bom dia @Rafael Jefferson não sei se já resolveu mas esse codigo poderia resolver: -- CTE para selecionar os dados relevantes e calcular o saldo do mês anterior WITH CTE_ESTOQUE AS ( SELECT COD_EMPRESA, COD_ITEM, MES_REF, ANO_REF, QTD_ENTRADA, QTD_SAIDA, QTD_MES_ANT, -- Calcula o saldo do mês anterior usando a função LAG LAG(QTD_MES_ANT) OVER (PARTITION BY COD_EMPRESA, COD_ITEM ORDER BY ANO_REF, MES_REF) AS QTD_MES_ANT_LAG FROM DW_ESTOQUE_HIST WHERE ANO_REF IN ('2023', '2024') AND COD_ITEM = 'EXP.E78' AND COD_EMPRESA = '01' ), -- CTE para determinar o saldo final e o status de movimento CTE_MOVIMENTO AS ( SELECT COD_EMPRESA, COD_ITEM, MES_REF, ANO_REF, -- Determina o saldo final considerando as entradas e saídas CASE WHEN QTD_ENTRADA = 0 AND QTD_SAIDA = 0 THEN COALESCE(QTD_MES_ANT_LAG, 0) ELSE QTD_MES_ANT END AS QTD_FINAL, QTD_ENTRADA, QTD_SAIDA, -- Define o status de movimento CASE WHEN QTD_ENTRADA = 0 AND QTD_SAIDA = 0 AND COALESCE(QTD_MES_ANT_LAG, 0) = 0 THEN 'SEM MOVIMENTO' ELSE 'MOVIMENTO OK' END AS MOVIMENTO FROM CTE_ESTOQUE ), -- CTE para calcular o saldo acumulado, replicando o saldo do mês anterior até que haja uma nova movimentação CTE_SALDO AS ( SELECT COD_EMPRESA, COD_ITEM, MES_REF, ANO_REF, QTD_FINAL, QTD_ENTRADA, QTD_SAIDA, MOVIMENTO, -- Calcula o saldo acumulado usando a função SUM com janela SUM(QTD_FINAL) OVER (PARTITION BY COD_EMPRESA, COD_ITEM ORDER BY ANO_REF, MES_REF ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS SALDO_ACUMULADO FROM CTE_MOVIMENTO ) -- Seleciona os resultados finais ordenados por ano e mês SELECT COD_EMPRESA, COD_ITEM, MES_REF, ANO_REF, SALDO_ACUMULADO AS QTD_FINAL, QTD_ENTRADA, QTD_SAIDA, MOVIMENTO FROM CTE_SALDO ORDER BY ANO_REF, MES_REF; Explicação CTE_ESTOQUE: Esta CTE (Common Table Expression) seleciona os dados relevantes da tabela DW_ESTOQUE_HIST para os anos de 2023 e 2024, filtrando pelo item EXP.E78 e pela empresa 01. Utiliza a função LAG para calcular o saldo do mês anterior (QTD_MES_ANT_LAG), particionando por COD_EMPRESA e COD_ITEM e ordenando por ANO_REF e MES_REF. CTE_MOVIMENTO: Esta CTE determina o saldo final (QTD_FINAL) para cada mês. Se não houver entradas e saídas (QTD_ENTRADA = 0 AND QTD_SAIDA = 0), o saldo final é o saldo do mês anterior (QTD_MES_ANT_LAG). Caso contrário, é o saldo do mês atual (QTD_MES_ANT). Define o status de movimento (MOVIMENTO). Se não houver entradas e saídas e o saldo do mês anterior for zero, o status é 'SEM MOVIMENTO'. Caso contrário, é 'MOVIMENTO OK'. CTE_SALDO: Esta CTE calcula o saldo acumulado (SALDO_ACUMULADO) para cada mês, replicando o saldo do mês anterior até que haja uma nova movimentação. Utiliza a função SUM com uma janela que vai desde o início (UNBOUNDED PRECEDING) até a linha atual (CURRENT ROW), particionando por COD_EMPRESA e COD_ITEM e ordenando por ANO_REF e MES_REF. Seleção Final: Seleciona os resultados finais, incluindo o saldo acumulado como QTD_FINAL, e ordena por ano (ANO_REF) e mês (MES_REF).
  10. Bom dia @Maltez seguem alguns passos que vc pode tentar: Verificar o Driver PostgreSQL: Certifique-se de que você tem a versão mais recente do driver ODBC ou ADO.NET para PostgreSQL instalada. Você pode baixar o driver do site oficial do PostgreSQL. Configurações de SSL: Verifique se o seu banco de dados PostgreSQL exige conexões SSL e configure o Power BI para usar SSL, se necessário. No Power BI, você pode marcar a opção "Usar SSL" ao configurar a conexão. Verificar o Firewall do Windows: Certifique-se de que o firewall do Windows não está bloqueando a porta 6432. Teste com Outro Cliente no Windows: Tente usar outro cliente de banco de dados, como pgAdmin, no mesmo computador onde o Power BI está instalado. Isso ajuda a verificar se o problema é específico do Power BI. Verificar os Logs do Power BI: Verifique os logs do Power BI para ver se há mensagens de erro adicionais que possam ajudar a diagnosticar o problema. Você pode encontrar os logs do Power BI em:C:\Users\<SeuUsuário>\AppData\Local\Microsoft\Power BI Desktop\Traces
  11. Bom dia @Victor Rafael Goncalves, baseado na sugestão do @Felipe Bitencourt Santana De Magalhães, fiz alguns ajustes para evitar quebras no processo. Testei e funcionou corretamente no meu caso. Este script em Power Query carrega dados de uma planilha do Google Sheets, processa as abas que são do tipo "Table", promove os cabeçalhos e filtra as linhas onde a coluna DataAtendimento não é nula. O script é estruturado de forma a facilitar ajustes futuros, como a alteração da URL da planilha ou os nomes das colunas. Segue o script: let // Defina a URL da sua planilha do Google Sheets PlanilhaURL = "https://docs.google.com/spreadsheets/d/1Bi1bakqedFk_Z80G6yu6WZS0s6s7dpFywfO2UrS68kk/edit?usp=sharing", // Carrega o conteúdo da planilha Fonte = GoogleSheets.Contents(PlanilhaURL), // Filtra apenas as abas que são do tipo "Table" Abas = Table.SelectRows(Fonte, each [ItemKind] = "Table"), // Função para processar cada aba ProcessarAba = (aba as table) as table => let // Promove os cabeçalhos da tabela TabelaComCabecalhos = Table.PromoteHeaders(aba, [PromoteAllScalars=true]), // Filtra as linhas onde a coluna "DataAtendimento" não é nula TabelaFiltrada = Table.SelectRows(TabelaComCabecalhos, each ([DataAtendimento] <> null)) in TabelaFiltrada, // Aplica a função de processamento a cada aba AbasProcessadas = Table.AddColumn(Abas, "Dados", each ProcessarAba([Data])), // Combina todas as abas processadas em uma única tabela TodasAsAbasCombinadas = Table.Combine(AbasProcessadas[Dados]) in TodasAsAbasCombinadas Explicação das Etapas: Definição da URL da Planilha: PlanilhaURL = "https://docs.google.com/spreadsheets/d/1Bi1bakqedFk_Z80G6yu6WZS0s6s7dpFywfO2UrS68kk/edit?usp=sharing", - Aqui você pode facilmente alterar a URL da planilha conforme necessário. Carregamento do Conteúdo da Planilha: Fonte = GoogleSheets.Contents(PlanilhaURL), - Carrega o conteúdo da planilha a partir da URL fornecida. Filtragem das Abas: Abas = Table.SelectRows(Fonte, each [ItemKind] = "Table"), - Seleciona apenas as abas que são do tipo "Table". Função para Processar Cada Aba: ProcessarAba = (aba as table) as table => let TabelaComCabecalhos = Table.PromoteHeaders(aba, [PromoteAllScalars=true]), TabelaFiltrada = Table.SelectRows(TabelaComCabecalhos, each ([DataAtendimento] <> null)) in TabelaFiltrada, - Define uma função ProcessarAba que promove os cabeçalhos e filtra as linhas onde DataAtendimento não é nula. Aplicação da Função de Processamento: AbasProcessadas = Table.AddColumn(Abas, "Dados", each ProcessarAba([Data])), - Aplica a função ProcessarAba a cada aba e adiciona os dados processados em uma nova coluna chamada "Dados". Combinação de Todas as Abas Processadas: TodasAsAbasCombinadas = Table.Combine(AbasProcessadas[Dados]) - Combina todas as abas processadas em uma única tabela. Ajustes Futuros: URL da Planilha: Basta alterar o valor de PlanilhaURL. Nomes das Colunas: Se os nomes das colunas mudarem, você pode ajustar a função ProcessarAba para refletir os novos nomes.
  12. @Cauatã Pereira Silveira show que bom que deu certo! O AND por default aceita apenas duas condições, é uma péssima limitação. Um workaround seria encadear um AND dentro de outro ou tentar uma abordagem com DAX de repente usando || .
×
×
  • Criar Novo...