Ir para conteúdo
Fórum Script Brasil
  • 0

Sub Grupo


Hellyson Lima

Pergunta

Senhores, bom dia (primeiro tópico meu)

Estou com um problema no Crystal Reports XI, tenho a seguinte tabela:

NOME:

HORAS

CAMPOS:

Usuario

Projeto

Semana

Dia

HorasNormais

HorasExtras

O campo Usuario é um campo texto que armazena o login do usuário.

O campo Projeto é um campo texto que armazena o projeto que o usuário vai reportar.

O campo Semana é um campo texto que armazena por exemplo: 19 à 25 de Junho

O campo Dia é numérico e armazena os dias da semana, 19, 20, 21, 22, etc...

O campo HorasNormais é decimal, é a quantidade de horas que o usuário trabalha normalmente

O campo HorasExtras é decimal, é a quantidade de horas extras que o usuário faz no dia.

O usuário preenche um formulário por dia, pode preencher mais de um registro no mesmo dia, exemplo:

O cara trabalho no dia 20, 3 horas normais em um projeto X e mais 3 num projeto Y, então são dois registros.

O relatório que preciso fazer é o seguinte, fazer a soma das duas horas por usuário na semana.

O que fiz:

Criei 3 fórmulas:

varHoras

(if isnull({Semana.HorasNormais}) then 0 else {Semana.HorasNormais}) +

(if isnull({Semana.HorasExtras}) then 0 else {Semana.HorasExtras})

varHorasUsuario

Sum ({@varHoras},{Semana.Usuario} )

varValida

if {@varHoras_Nome} < 40 then

"Reportou menos que 40 horas"

else if {@varHoras_Nome} > 40 then

"Reportou mais de 40 horas"

else

"Reportou 40 horas"

Vou passar como parâmetro a Semana e queria ver naquela semana quem não reportou nada, quem reportou mais de 40hrs e quem reportou menos de 40.

A estrutura do Report ficou assim:

Report Header

Page Header -> Print Date

Group Header #1 -> Group #1 Name (campo semana)

Group Header #2 -> Group #2 Name (campo usuario) -> @varHoras_Nome

Detais (Supress)

Group Footer #2 (Supress)

Group Footer #1

Report Footer

Page Footer -> Page Number

O problema é que não estou conseguindo agrupo por resultado, ou seja, quem fez menos de 40 hrs, mais ou igual, quando vou em Insert -> Group, ele não aparece.

Alguém tem idéia de como posso fazer isso?

Desde já agradeço

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

ta mas a formula dentro dela é essa ne??

if {@varHoras_Nome} < 40 then
"Reportou menos que 40 horas"
else if {@varHoras_Nome} > 40 then
"Reportou mais de 40 horas"
else
"Reportou 40 horas"[/code]

agora esse campo q esta sendo usado dentro da formula...

não importa se chama varHoras_Nome ou varHorasUsuario, mas poste ai a formula q esta dentro desse campo (o codigo).

muito provavalmente o problema esta ai.

veja a explicacao q eu dei num otro tópico hj: http://scriptbrasil.com.br/forum/index.php...st&p=556958

o mesmo vale pra você, onde ele não vai conseguir usar previous(), você tb não conseguira agrupar.

Link para o comentário
Compartilhar em outros sites

  • 0
ta mas a formula dentro dela é essa ne??

if {@varHoras_Nome} < 40 then
"Reportou menos que 40 horas"
else if {@varHoras_Nome} > 40 then
"Reportou mais de 40 horas"
else
"Reportou 40 horas"

agora esse campo q esta sendo usado dentro da formula...

não importa se chama varHoras_Nome ou varHorasUsuario, mas poste ai a formula q esta dentro desse campo (o codigo).

muito provavalmente o problema esta ai.

veja a explicacao q eu dei num otro tópico hj: http://scriptbrasil.com.br/forum/index.php...st&p=556958

o mesmo vale pra você, onde ele não vai conseguir usar previous(), você tb não conseguira agrupar.

Então Kuroi, recapitulando as fórmulas:

varHoras

(if isnull({Semana.HorasNormais}) then 0 else {Semana.HorasNormais}) +

(if isnull({Semana.HorasExtras}) then 0 else {Semana.HorasExtras})

varHorasUsuario

Sum ({@varHoras},{Semana.Usuario} )

varValida

if {@varHorasUsuario} < 40 then

"Reportou menos que 40 horas"

else if {@varHorasUsuario} > 40 then

"Reportou mais de 40 horas"

else

"Reportou 40 horas"

A fórmula varHoras soma a quantidade de horas, a varHorasUsuario soma a quantidade por usuário e a varValida verifica qual situação o usuário está, não consigo agrupo por o varValida

vlw novamente

Link para o comentário
Compartilhar em outros sites

  • 0

a então. é isso aqui ó:

Sum ({@varHoras},{Semana.Usuario} )

você não pode agrupar por um campo q faca sum().

olhai, o sum() já é baseado em otro grupo (no caso o grupo do campo {Semana.Usuario}). você so pode agrupar por campos q sejam unicos pra cada registro. agora o campo varHorasUsuario é unico pra cada grupo, não vai dar.

você vai ter q pensar outra forma de fazer essa divisao q você quer.

o jeito q acho q seria melhor seria você apontar esse seu relatorio pra uma consulta (view) no banco de dados q já faca a soma pra você.

ai o sum() vai estar sendo feito na consulta e o relatorio vai entender como se ele fosse um campo como qualquer um e ai você podera agrupar.

Link para o comentário
Compartilhar em outros sites

  • 0
a então. é isso aqui ó:

Sum ({@varHoras},{Semana.Usuario} )

você não pode agrupar por um campo q faca sum().

olhai, o sum() já é baseado em otro grupo (no caso o grupo do campo {Semana.Usuario}). você so pode agrupar por campos q sejam unicos pra cada registro. agora o campo varHorasUsuario é unico pra cada grupo, não vai dar.

você vai ter q pensar outra forma de fazer essa divisao q você quer.

o jeito q acho q seria melhor seria você apontar esse seu relatorio pra uma consulta (view) no banco de dados q já faca a soma pra você.

ai o sum() vai estar sendo feito na consulta e o relatorio vai entender como se ele fosse um campo como qualquer um e ai você podera agrupar.

Vlw Kuroi, obrigado mesmo, entendi como funciona, vou criar a view no banco já fazendo a soma e assim facilita o relatório.

Muito obrigado

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...