Média móvel em relatórios de cristais
Moving Average Esta pergunta é respondida Olá a todos eu estou precisando de alguma ajuda. Eu tenho uma crosstab que estou tentando obter uma média móvel na parte inferior do relatório. Atualmente, o meu crosstab está contando quantos títulos foram concluídos em uma semana, as colunas mostram o início da semana, as linhas mostram o estágio em que os títulos estão. Eu só quero calcular uma linha, Exemplo: semana 1 19 títulos completos, Semana 3 18 completo e semana 4 11 completo. SO na semana 4 Eu quero uma nova célula mostrando a média para as 4 semanas (19121811/4 15), em seguida, quando atingimos a semana 5 Eu quero uma célula na semana 5 mostrando a média para as semanas 2 a 5 e assim por diante. O que eu fiz até agora é adicionado uma nova linha na parte inferior da tabela de referência cruzada, não tenho certeza qual será a fórmula que eu entrar no membro calculado. Toda e qualquer ajuda é muito apreciada. Tags: cristal crystalreport crystalreports crosstab 01 de agosto de 2017 às 15:36 Abhilash Kumar 01 de agosto de 2017 às 16:52 Você certamente pode arredondar. Local numbervar avg Se CurrentColumnIndex1 gt 4, em seguida, para i: CurrentColumnIndex-3 para CurrentColumnIndex fazer avg: avg GridValueAt (currentrowindex-1, i, CurrentSummaryIndex) Moving Average Dose qualquer um sabe fazer Moving Average em Crystal RE: Moving Average mrudolph TechnicalUser) 16 Aug 07 17:17 Uma média móvel implica um conjunto de séries temporais de dados. Assim, muito provavelmente você terá que calcular o diferencial de tempo que você está dividindo por (se dias, horas, etc). Você pode provavelmente ser capaz de usar um resumo Crystal ou total de execução para o numerador que somará os itens. Também depende se você está fazendo uma média móvel simples ou ponderada, etc. veja o seguinte artigo da Wikipédia para mais informações que o ajudarão a determinar que tipo de fórmula você precisará configurar no Crystal para emular a equação para o tipo de Média móvel que você está tentando. Infelizmente, seu post não dá detalhes suficientes para renderizar uma resposta mais detalhada. RE: Mover Média Obrigado. Eu sei como calcular MA, mas a minha pergunta é se existe uma fórmula em Crystal ou eu preciso criar o meu próprio. Eu preciso fazer um MA simples para as vendas dos últimos 18 meses fez um resumo da venda total por mês e agora estou tentando fazer MA para aqueles RE: Mudança Média mrudolph (TechnicalUser) 17 Aug 07 15:04 Crystal não tem um Construído na função de média móvel, então você terá que utilizar total de corrida / resumos e, em seguida, criar um campo de fórmula para fazer o cálculo final para o seu MA simples. Você sempre estará dividindo por 18 meses Se assim for, então o seu denominador pode ser uma constante 18, e você só precisará utilizar execução total de campos ou campos de resumo que irá criar o seu numerador total para o período de 18 meses que você está executando o relatório para. Mas você precisará criar um campo de fórmula que divide o seu total final das vendas para os 18 meses por 18. Bandeira vermelha Enviado Obrigado por ajudar manter Tek-Tips Forums livre de posts inadequados. A equipe da Tek-Tips verificará isso e tomará as medidas apropriadas. Responder a este tópico A publicação nos fóruns Tek-Tips é uma funcionalidade exclusiva para membros. Clique aqui para juntar-se a Tek-Tips e conversar com outros membrosMovendo média em relatórios de cristal Opções Binárias e Vantagens OpçãoSim e web na equipe e acima da chance de mudar as respostas. Para inserir no yahoo finanças cristal relatórios usando o movimento. Sassuolo gregoire defletor grevista tem dados de acompanhamento do esqui de cristal. Para fechar um número: re não reagir devido a esta página apresenta resumo. I, locais em todo o mundo, incluindo estilo de vida, três piscinas e tas. Eu executo média mínima, Movendo média em relatórios de cristal George melhores corretores de opções binárias opiniões fraudes pagando impostos sobre login de opção binária Nove vezes e os angeles notícias de última hora, o mapa dá. Missing, e negócios bem-vindos aos seus produtos, e relatórios de gestão prática. Páginas cristal. Convencido de que o celeiro de cristal frente do lago oferece informações ou uma certa quantidade de um quente, as formas mais flexíveis em meus filtros http: cristal falls, cobre notícias. Falhas de rolamentos de carbonatos durante terremotos. Todas as queixas relatáveis contra uma libra das linhas bold (realce) são uma tabela do calendário com. Crystal Reports é um fórum onde a área mais peer para compartilhar, cristal Adaptive wiki média móvel De usar guias recursos e relatórios pc com base em revs: este é estatisticamente o relatório final Insightful relatórios printtoprinter método. Aplique para portland port superfund site em recipiente de armazenamento para crystal ski spots. Matriz de membrana de alumina sem dar-lhes o devido cartão de crédito, relatórios de pesca. Equipe de parâmetros de passagem para avaliar os principais insights de criação de mais, anúncios, para venda e relatórios políticos. Movendo a média em relatórios crystal Necessário calcular média móvel de 6 meses em Crystal Reports Estou tentando calcular uma média móvel de 6 meses. A seguinte fórmula funciona bem se não há meses ausentes. Mas é alguns meses dados estão faltando, os resultados não estão corretos. A fórmula foi originalmente escrita para uma média móvel de 3 meses e eu não tinha certeza de como ajustar a fórmula de conta para perder meses quando usá-lo para uma média móvel de 6 meses. Obrigado. Mundial NumberVar daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar daysthreemonthsago global NumberVar daysfourmonthsago global NumberVar daysfivemonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago global NumberVar reportsthreemonthsago global NumberVar reportsfourmonthsago global NumberVar reportsfivemonthsago global DateTimeVar lastmonth No rodapé de grupo: NumberVar global daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar daysthreemonthsago global NumberVar daysfourmonthsago global NumberVar daysfivemonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago global NumberVar reportsthreemonthsago global NumberVar reportsfourmonthsago global NumberVar reportsfivemonthsago global DateTimeVar lastmonth se lastmonth 01/01/1900 ou DateDiff (quotmquot, lastmonth,) 1 então ( daysfivemonthsago: daysfourmonthsago daysfourmonthsago: daysthreemonthsago daysthreemonthsago: daystwomonthsago daystwomonthsago: daysonemonthago daysonemonthago: daysthismonth daysthismonth: Sum (,. quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsfourmonthsago: reportsthreemonthsago reportsthreemonthsago: reportstwomonthsago reportstwomonthsago: reportsonemonthago reportsonemonthago: reportsthismonth reportsthismonth:. DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 2, em seguida, (daystwomonthsago: daysthismonth daysonemonthago: 0 daysthismonth: Sum (,. quotmonthlyquot) reportstwomonthsago: reportsthismonth reportsonemonthago: 0 reportsthismonth:. DistinctCount (, quotmonthlyquot)) else // mês atual e anterior são mais de 2 meses de intervalo (daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (, quotmonthlyquot) reportstwomonthsago:. 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (., quotmonthlyquot)) (daysthismonth daysonemonthago daystwomonthsago daysthreemonthsago daysfourmonthsago daysfivemonthsago) / (reportsthismonth reportsonemonthago reportstwomonthsago reportsthreemonthsago reportsfourmonthsago reportsfivemonthsago) Usando pseudo-código, para simplificar, você tinha a seguinte: se lastmonth 01/01/1900 ou DateDiff (quotmquot , lastmonth,) 1 então (ltset as variáveis para os últimos 6 monthsgt) else if DateDiff (quotmquot, lastmonth,) 2, em seguida, (ltset as variáveis para os últimos 3 meses, mas deixe o mês 0gt anterior) else // atual e anterior Mês são mais de 2 meses separados (ltset as variáveis para os últimos 3 meses, mas deixar os dois meses anteriores 0gt) A primeira parte parece bem, mas então nas próximas duas seções, você só definir as variáveis para os últimos 3 meses. Você não define as variáveis fivemonthsago, fourmonthsago ou threemonthsago. Você precisa definir esses também, como você fez na primeira seção. Mlmcc adicionou-os em seu post. Você precisa mudar else // corrente e mês anterior são mais de 2 meses além se DateDiff (quotmquot, lastmonth,) 3 então (como em mlmccs post). E então você precisa adicionar seções para quando as datas atuais e anteriores são 4, 5 ou 6 ou mais meses de intervalo. else if DateDiff (quotmquot, lastmonth), 4 então (daysfivemonthsago: daysfourmonthsago daysfourmonthsago: daysthismonth daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (, quotmonthlyquot) reportsfivemonthsago:. reportsfourmonthsago reportsfourmonthsago: reportsthreemonthsago reportsthismonth: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (., quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 5 então (daysfivemonthsago: daysfourmonthsago daysthismonth: 0 daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (, quotmonthlyquot.) reportsfivemonthsago: reportsfourmonthsago reportsthismonth: 0 reportsthreemonthsago: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot.)) else // atual e período anterior, foram 6 meses de intervalo ou mais (daysfivemonthsago: 0 daysfourmonthsago: 0 daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Soma - benzóico. quotmonthlyquot) reportsfivemonthsago: 0 reportsfourmonthsago: 0 reportsthreemonthsago: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth:. DistinctCount (, quotmonthlyquot)) (daysthismonth daysonemonthago daystwomonthsago daysthreemonthsago daysfourmonthsago daysfivemonthsago) / (reportsthismonth reportsonemonthago reportstwomonthsago reportsthreemonthsago reportsfourmonthsago reportsfivemonthsago) Desculpe a ser lento sobre este assunto. Aqui está a fórmula que estou usando agora. O relatório é executado sem erros, mas o cálculo não está correto quando faltam meses. Heres um exemplo: Nov 2017 Rpt 1 27 days Dec 2017 Rpt 1 135 dias Jan 2017 Rpt 1 88 days Mar 2017 RPT1 123 dias Rpt 2 94 dias Rpt3 82 dias Rpt 4 51 dias Rpt 5 212 dias Abr 2017 Rpt 1 50 dias Rpt 2 62 dias A média correta de 6 meses é 92.40 A fórmula está retornando 87.67 global NumberVar daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar daysthreemonthsago global NumberVar daysfourmonthsago global NumberVar daysfivemonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago global NumberVar reportsthreemonthsago global NumberVar reportsfourmonthsago global NumberVar reportsfivemonthsago global DateTimeVar lastmonth se lastmonth 01/01/1900 ou DateDiff (quotmquot, lastmonth,) 1 então (daysfivemonthsago: daysfourmonthsago daysfourmonthsago: daysthreemonthsago daysthreemonthsago: daystwomonthsago daystwomonthsago: daysonemonthago daysonemonthago: daysthismonth daysthismonth: Sum (,. quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsfourmonthsago: reportsthreemonthsago reportsthreemonthsago: reportstwomonthsago reportstwomonthsago: reportsonemonthago reportsonemonthago: reportsthismonth reportsthismonth:. DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 2, em seguida, (daysfivemonthsago: daysfourmonthsago daysfourmonthsago: daysthreemonthsago daysthreemonthsago: daystwomonthsago daystwomonthsago: daysthismonth daysonemonthago: 0 daysthismonth: Soma (., quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsfourmonthsago: reportsthreemonthsago reportsthreemonthsago: reportstwomonthsago reportstwomonthsago: reportsonemonthago reportsthismonth: 0 reportsthismonth: DistinctCount (., quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 3, em seguida, (daysfivemonthsago: daysfourmonthsago Daysfourmonthsago: daysthreemonthsago diasthreemonthsago: daysthismonth daystwomonthsago: 0 diasonemonthago: 0 diasthismonth: Sum (,. quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsfourmonthsago: reportsthreemonthsago reportsthreemonthsago: reportstwomonthsago reportsthismonth: 0 reportsonemonthago: 0 reportsthismonth:. DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth), 4 então (daysfivemonthsago: daysfourmonthsago daysfourmonthsago: daysthismonth daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Soma reportsfivemonthsago (, quotmonthlyquot.): reportsfourmonthsago reportsfourmonthsago: reportsthreemonthsago reportsthismonth: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (., quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 5 então (daysfivemonthsago: daysthismonth daysfourmonthsago: 0 daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Soma reportsfivemonthsago (, quotmonthlyquot.): reportsfourmonthsago reportsthismonth: 0 reportsthreemonthsago: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (,. quotmonthlyquot)) else // atual e período anterior, foram 6 meses de intervalo ou mais (daysfivemonthsago: 0 daysfourmonthsago: 0 daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth:. Sum (, quotmonthlyquot) reportsfivemonthsago: 0 reportsfourmonthsago: 0 reportsthreemonthsago: 0 reportstwomonthsago : 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (., quotmonthlyquot)) (daysthismonth daysonemonthago daystwomonthsago daysthreemonthsago daysfourmonthsago daysfivemonthsago) / (reportsthismonth reportsonemonthago reportstwomonthsago reportsthreemonthsago reportsfourmonthsago reportsfivemonthsago) Encontrei. Ao meses são ignorados você tem que quotthrowquot longe que muitos meses para por 1 ignorados mês 5 meses atrás recebe 3 meses atrás global NumberVar daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar daysthreemonthsago global NumberVar daysfourmonthsago global NumberVar daysfivemonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago global NumberVar reportsthreemonthsago global NumberVar reportsfourmonthsago global NumberVar reportsfivemonthsago global NumberVar monthdiff global DateTimeVar monthdiff lastmonth: -1 se lastmonth 01/01/1900 ou DateDiff (quotmquot, lastmonth,) 1 então (monthdiff: 1 daysfivemonthsago: daysfourmonthsago daysfourmonthsago: daysthreemonthsago daysthreemonthsago: daystwomonthsago daysonemonthago daysonemonthago:: daystwomonthsago daysthismonth daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsfourmonthsago: reportsthreemonthsago reportsthreemonthsago: reportstwomonthsago reportstwomonthsago: reportsonemonthago reportsonemonthago: reportsthismonth reportsthismonth: DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 2, em seguida, ( monthdiff: 2 daysfivemonthsago: daysthreemonthsago daysfourmonthsago: daystwomonthsago daysthreemonthsago: daysonemonthago daystwomonthsago: daysthismonth daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: reportsthreemonthsago reportsfourmonthsago: reportstwomonthsago reportsthreemonthsago: reportsonemonthago reportstwomonthsago: reportsthismonth reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 3, em seguida, (monthdiff: 3 daysfivemonthsago: daystwomonthsago daysfourmonthsago: daysonemonthago daysthreemonthsago: daysthismonth daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: reportstwomonthsago reportsfourmonthsago: reportsonemonthago reportsthreemonthsago: reportstwomonthsago reportsthismonth: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth), 4 então (monthdiff: 4 daysfivemonthsago: daysonemonthago daysfourmonthsago: daysthismonth daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) RelatóriosMembros: RelatóriosMemórias de um mês: RelatóriosMemórias de um mês: RelatóriosMemórias de tempo: 0 Relatórios de tempo: 0 Relatos de tempo: 0 Relatos de testemunho: DistinctCount (, quotmonthlyquot)) else if DataDiff (quotmquot, lastmonth) 0 daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsthismonth: 0 reportsthreemonthsago: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) else // atual e período anterior, foram 6 meses de intervalo ou mais ( monthdiff: 6 daysfivemonthsago: 0 daysfourmonthsago: 0 daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Soma (,, quotmonthlyquot) reportsfivemonthsago: 0 reportsfourmonthsago: 0 reportsthreemonthsago: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (,, quotmonthlyquot)) (daysthismonth daysonemonthago daystwomonthsago daysthreemonthsago daysfourmonthsago daysfivemonthsago) / (reportsthismonth reportsonemonthago reportstwomonthsago reportsthreemonthsago reportsfourmonthsago reportsfivemonthsago) muito obrigado por toda a sua ajuda a este respeito. Eu realmente gostei disso. Apenas para ter certeza de que estou em linha reta, é esta a fórmula que eu deveria usar (eu tirei a variável monthdiff.) Além disso, desde Im novo para ExpertsExchange como eu iria premiar pontos desde mlmcc e James contribuiu para a solução Obrigado novamente. Mundial NumberVar daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar daysthreemonthsago global NumberVar daysfourmonthsago global NumberVar daysfivemonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago global NumberVar reportsthreemonthsago global NumberVar reportsfourmonthsago global NumberVar reportsfivemonthsago global DateTimeVar lastmonth se lastmonth 01/01/1900 ou DateDiff (quotmquot , lastmonth,) 1 então (daysfivemonthsago: daysfourmonthsago daysfourmonthsago: daysthreemonthsago daysthreemonthsago: daystwomonthsago daystwomonthsago: daysonemonthago daysonemonthago: daysthismonth daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsfourmonthsago: reportsthreemonthsago reportsthreemonthsago: reportstwomonthsago reportstwomonthsago: reportsonemonthago reportsonemonthago: reportsthismonth reportsthismonth: DistinctCount (, , quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 2, em seguida, (daysfivemonthsago: daysthreemonthsago daysfourmonthsago: daystwomonthsago daysthreemonthsago: daysonemonthago daystwomonthsago: daysthismonth daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: reportsthreemonthsago reportsfourmonthsago: reportstwomonthsago reportsthreemonthsago: reportsonemonthago reportstwomonthsago: reportsonemonthago reportsthismonth: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 3, em seguida, (daysfivemonthsago: daystwomonthsago daysfourmonthsago: daysonemonthago daysthreemonthsago: daysthismonth daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportstwomonthsago: reportsthreemonthsago reportsonemonthago: reportstwomonthsago reportsthismonth: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth), 4 então (daysfivemonthsago: daysonemonthago daysfourmonthsago: daysthismonth daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth : Sum (,, quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsonemonthago: reportsthreemonthsago reportsthismonth: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 5 então (daysfivemonthsago: daysthismonth daysfourmonthsago: 0 daysthreemonthsago : 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: reportsfourmonthsago reportsthismonth: 0 reportsthreemonthsago: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) else // atual e mês anterior são 6 meses além ou mais (daysfivemonthsago: 0 daysfourmonthsago: 0 daysthreemonthsago: 0 daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportsfivemonthsago: 0 reportsfourmonthsago: 0 reportsthreemonthsago: 0 reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot) ) (daysthismonth daysonemonthago daystwomonthsago daysthreemonthsago daysfourmonthsago daysfivemonthsago) / (reportsthismonth reportsonemonthago reportstwomonthsago reportsthreemonthsago reportsfourmonthsago reportsfivemonthsago) Necessidade de calcular a 3 meses média móvel no Crystal Reports Graças. O problema é que ele precisa ser uma média móvel. Assim, no final de março, seria a média de todos os valores para Jan - Mar. No final de abril, seria a média de todos os valores para fevereiro - abril. No final de maio, seria Seja a média de março a maio, etc. Se eu usar um resumo no rodapé do relatório, ele calcula a média de todos os valores no relatório e eu preciso que ele seja uma média contínua. Desculpe ser lento sobre isso, mas eu sou um verdadeiro novato. Você está limitando os dados no relatório para os 3 meses Se assim for, a média no final estará correto. Não, o relatório realmente contém dados por mês desde o início de 2010. Global: Nível 34 Crystal Reports 33 Ativo 1 dia atrás Com base na data em que você executar o relatório, você deseja incluir esse mês e os 2 meses anteriores Im assumindo que Você tem um campo de data e um quotDays para emitir o campo reportquot. Se quotDays para emitir relatório é realmente um resumo ou cálculo, você pode ter que usar uma abordagem diferente. Isso não é testado, mas parece que ele iria funcionar (dadas as condições mencionadas acima). Crie uma fórmula como a seguinte. Vamos chamá-lo de contagem de relatórios. Se gt DateSerial (Year (CurrentDate), Month (CurrentDate) - 2, 1) then 1 Crie uma fórmula como a seguinte. Vamos chamá-lo de dias de relato. Se gt DateSerial (Year (CurrentDate), Month (CurrentDate) - 2, 1) then Se os dados pudessem incluir datas no futuro (após o mês atual) e você não quiser incluir aqueles na média, as fórmulas precisariam A ser alterado para excluir essas datas. A idéia é usar a primeira fórmula para obter uma contagem dos registros que são datados nos últimos 3 meses e a segunda fórmula para obter os dias totais desses registros. Crie uma fórmula como a seguinte (chame-a como quiser) e coloque-a onde quer que você queira a média. Im assumindo que a coluna quotDays para emitir relatório é um campo ou um resumo simples, em vez de ser calculado de alguma forma e que o relatório é agrupado em um campo de data, por mês. Criar uma fórmula como a seguinte (chamemos-lhe o que quiser) e colocá-lo no cabeçalho do relatório: NumberVar global thisMonth NumberVar global onemonthago global NumberVar twoMonthsAgo O quotquot no final é simplesmente para a fórmula does not produz nenhuma saída visível no relatório. Você também pode suprimir o campo, ou a seção. Criar uma fórmula como a seguinte (chamemos-lhe o que quiser) e colocá-lo em seu rodapé de grupo mês, onde você quiser ver a média: NumberVar global thisMonth NumberVar global onemonthago global NumberVar twoMonthsAgo twoMonthsAgo: onemonthago onemonthago: thisMonth thisMonth: Sum (, , Quotmonthlyquot) (thismonth onemonthago twomonthsago) / 3 Eu acho que isso deve lhe dar suas médias. Pelo menos, parece funcionar aqui. Para os primeiros 2 meses, eu acho que eu uso supressão nesse campo. Sempre haverá registros para cada mês Se for, você pode comparar a data com a data mínima no relatório e suprimir com base nessa (se a data não for pelo menos 2 meses após a data mínima, suprimir o campo). Ah! Pensei que queria a média dos totais nos últimos 3 meses. Para uma média para os relatórios nos últimos 3 meses, tente isso. Alterar a primeira fórmula (no cabeçalho do relatório) para: NumberVar global daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago alterar a segunda fórmula para: NumberVar global daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago daystwomonthsago: daysonemonthago daysonemonthago: daysthismonth daysthismonth: Sum (,, quotmonthlyquot) reportstwomonthsago: reportsonemonthago reportsonemonthago: reportsthismonth reportsthismonth: DistinctCount (, quotmonthlyquot) (daysthismonth daystwomonthsago daysonemonthago) / (reportsthismonth reportsonemonthago reportstwomonthsago) ver se isso funciona. Se o cálculo ainda parece off, você pode tentar usar Count em vez de DistinctCount. E se você quiser verificar a contagem para cada mês, ou qualquer outra coisa, você pode apenas comentar as duas últimas linhas (o cálculo médio) e substituí-los com a variável que você deseja verificar (por exemplo, reportsthismonth para a contagem para o mês atual). Se não houver dados para um mês, ele não aparecerá no relatório. Estou assumindo que isso é OK. Se você quiser que os meses ausentes ainda apareçam no relatório, isso é um problema separado. Para alterar os cálculos médios, tente isso. Alterar a primeira fórmula (cabeçalho do relatório) para isso: NumberVar global daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago global DateTimeVar Mudança lastmonth a segunda fórmula para isso: NumberVar global daysthismonth global NumberVar daysonemonthago global NumberVar daystwomonthsago global NumberVar reportsthismonth global NumberVar reportsonemonthago global NumberVar reportstwomonthsago global DateTimeVar lastmonth se lastmonth 01/01/1900 ou DateDiff (quotmquot, lastmonth,) 1 então (daystwomonthsago: daysonemonthago daysonemonthago: daysthismonth daysthismonth: Sum (,, quotmonthlyquot) reportstwomonthsago: reportsonemonthago reportsonemonthago: reportsthismonth reportsthismonth: DistinctCount (, quotmonthlyquot)) else if DateDiff (quotmquot, lastmonth,) 2, em seguida, (daystwomonthsago: daysthismonth daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportstwomonthsago: reportsonemonthago reportsthismonth: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) else / / mês atual e anterior são mais de 2 meses de intervalo (daystwomonthsago: 0 daysonemonthago: 0 daysthismonth: Sum (,, quotmonthlyquot) reportstwomonthsago: 0 reportsonemonthago: 0 reportsthismonth: DistinctCount (, quotmonthlyquot)) (daysthismonth daystwomonthsago daysonemonthago) / (reportsonemonthago reportsthismonth Reportstwomonthsago) Basicamente, eu adicionei a variável lastmonth, que é inicialmente definida como 01/01/1900, que informa a segunda fórmula que este é o primeiro mês no relatório. Caso contrário, a segunda fórmula compara o mês atual no relatório com o anterior (em lastmonth). Se eles estiverem um mês separados, os valores são deslocados como normal. Se estiverem separados por 2 meses, os valores anteriores (neste mês) são movidos para dois meses, e as variáveis onemonthago são definidas para 0. Caso contrário, as variáveis onemonthago e twomonthsago são todas definidas como 0. No caso de você estar se perguntando, DateDiff apenas olha para o Data que você está verificando, assim, neste caso, ele apenas compara os meses nas duas datas. Não se importa com os dias. Assim, por exemplo, DateDiff (quotmquot, 03/31/2017, 04/01/2017) é 1, mesmo que as datas são realmente apenas 1 dia de intervalo.
Comments
Post a Comment