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

Ajuda contagem de página no crystal reports


Tiago_BB

Pergunta

ola pessoal.

Estou com um problema.

Tenho um relatório no crystal reports que agrupei pelo codigo; no rodapé do rel. inseri a função Page N de M.

O que acontece.. vamos dizer que tenho 2 codigos, logo o relatório ficara com 2 paginas (pag1 - 1 de 1; pag 2 - 2 de 2).

Acontece que gostaria de exibir o numero de paginas referente aquele código e não rem relação ao rel., ou seja, gostaria que como tenho dois codigos, duas folhas, exibir em cada folha 1 de 1.

Outro ponto: cada código pode ter N folhas, com isso se tenho dois codigos, e cada codigo tem 2 folhas, ao inver de exibir 1 de 4, 2 de 4, 3 de 4, 4 de 4; gostaria de exibir 1 de 2, 2 de 2, 1 de 2, 2 de 2.

Espero que entendam.

Atte.

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

Kuroi.

Estou com outra dúvida referente ao mesmo assunto.

Funcionou certinho conforme o comentado, porém, vou precisar mudar o design do relatório.

Com isso no rodapé ficará "normal", ou seja, o numero de página referente ao relatório em si e não em relação ao código, porém, a contagem em relação ao código preciso inserir no group header.

Como faço?

Tentei inserir a função N to M no group header e selecionar a opcao Reset Page Number After, porém não deu certo.

Tem alguma sugestão?

Atte.

Link para o comentário
Compartilhar em outros sites

  • 0

faca um running total field (vou chamar de RTotal0) q faca um count do campo pelo qual você agrupou (acho q é o codigo). e na opcao Reset selecione On Change Of Group e selecione o grupo pelo qual você agrupou.

ai pra fazer a pagina atual do grupo, faca a seguinte formula:

If PreviousIsNull({Tabela.CampoPeloQualVoceAgrupou}) Then
    1
Else
    Int({#RTotal0} / 2) + 1[/code] ontde RTotal0 é o running total field q você criou anteriormente. e pra fazer o total de paginas do grupo, faca:
[code]Int(Count({{Tabela.CampoPeloQualVoceAgrupou}}, {{Tabela.CampoPeloQualVoceAgrupou}}) / 2) + 1

note q nas duas formulas o 2 q aparece é o numero de registros q aparecem numa folha no details (como você disse são 2 registros), se isso mudar você deve mudar nas formulas.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Entaum kuroi.. quase.

O que acontece... fiz como o sugerido.

Pelo que entendi... a formula que exibe o total de paginas:

Int(Count({{Tabela.CampoPeloQualVoceAgrupou}}, {{Tabela.CampoPeloQualVoceAgrupou}}) / 2) + 1

... exibe o total de registros (details).

O que aconteceu no meu caso?

Tenho dois codigos...

onde o primeiro codigo tem 3 registros (details)... ocupando 2 paginas...

.. ai tudo bem... apareceu correto ...

... primeira pag. 1 de 2...

... segunda pag 2 de 2 ...

o segundo codigo tem 4 registros (details).... ocupando duas paginas...

... porém a formula que retorna o total devolve 3 e não 2 como eu esperava!!!

espero que tenha entendido.

O que pode ser?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

é, então mude o total para basic syntax e veja se isso funciona:

Dim y as Number

y = Count({Tabela.CampoPeloQualVoceAgrupou}, {Tabela.CampoPeloQualVoceAgrupou})
If y Mod 2 = 1 Then
    y = y + 1
End If

Formula = y / 2[/code]

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi... funcionou...

1 ) Mas gostaria que você me explicasse a seguinte linha da fórmula:

y = Count({Tabela.CampoPeloQualVoceAgrupou}, {Tabela.CampoPeloQualVoceAgrupou})
2 ) você instanciou creio que uma variavel chamada Formula, mas você não a declarou. O que significa?
Formula = y / 2

3 ) Porque alterar Crystal Syntax para Basic Syntax ??? qual a diferença? Uma mesma fórmula não é igual para ambas as sintaxes?

Agradeço a ajuda Kuroi

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
1 ) Mas gostaria que você me explicasse a seguinte linha da fórmula:

y = Count({Tabela.CampoPeloQualVoceAgrupou}, {Tabela.CampoPeloQualVoceAgrupou})
ele retorna a contagem pelo grupo. tipo se você poe o count, o primeiro campo é aquele q você quer contar (podia ser qualquer um, desde q não tivesse nulos). o segundo é o campo do agrupamento (o grupo q você criou). então esse count() vai retornar o total de registros do grupo. veja ai se da pra entender, senao eu tento explicar melhor.
2 ) você instanciou creio que uma variavel chamada Formula, mas você não a declarou. O que significa?
Formula = y / 2

é q em Basic Syntax o resultado da formula tem q ser colocado nessa variavel Formula, é obrigatorio.

ele já espera q você passe o valor para a Formula, não precisa declarar.

já em Crystal Syntax, você simplesmente escreve o valor e ele já espera q seja o retorno.

3 ) Porque alterar Crystal Syntax para Basic Syntax ??? qual a diferença? Uma mesma fórmula não é igual para ambas as sintaxes?

a diferenca é a sintaxe, o Crystal Syntax usa uma sintaxe proprio do crystal, a Basic Syntax é uma sintaxe parecida com a do visual basic.

o unico motivo q teve pra mudar é q eu trabalho melhor em Basic Syntax e foi ela q eu usei pra te fazer a formula.

Link para o comentário
Compartilhar em outros sites

  • 0

Ola Kuroi, brigado pelas respostas.

Me desculpe, mas continuo a não entender bem a fórmula:

y = Count({Tabela.CampoPeloQualVoceAgrupou}, {Tabela.CampoPeloQualVoceAgrupou})

Não entendi como é interpretado esses dois parametros no count (campo que eu quero contas e campo do agrupamento), como é feito essa contagem. :blush:

Link para o comentário
Compartilhar em outros sites

  • 0

é o seguinte, a funcao Count() conta qtos registros existem na tabela.

se você fizer simplesmente isso:

Count({Tabela.Campo})
ele vai trazer o quantidade total de registros da tabela. tanto faz o campo q você passar por parametro, mas tem q ficar ligado porque se tiver valores nulos no campo, ele não vai contar. adicionando o segundo parametro:
Count({Tabela.Campo}, {Tabela.Campo})

você vai pegar a contagem, não a total, mas sim a referente ao grupo do campo passado por parametro (se você tentar passar algum campo q não tenha sido agrupado, não vai funcionar).

então, o q esse codigo faz é contar qtos registros existem no agrupamento.

agora deu pra entender??

Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal, estou com um problema.

No group Footer, coloque um dado fixo:

_________________________

Assinatura

O que acontece? vamos dizer que esse meu agrupamento da 2 paginas, entaum ficaria assim:

Página 1 de 2 - página 1

Página 2 de 2 - página 2

Porém, acontece que: caso não tenha espaço na página 2 para o group footer, ele joga para uma terceira folha, e nessa folha as fórmulas retornam da seguinte maneira:

Página 2 de 1

porque?

O correto não seria:

Página 1 de 3 - página 1

Página 2 de 3 - página 2

Página 3 de 3 - página 3

???????

Agradeço desde já!!!

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...