Ajuda! Set Break Order property

Dicas e truques sobre Oracle Reports Builder - modo gráfico ou modo caractere, ascii, arquivo .PRT, etc
Responder
diegorp
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 49
Registrado em: Seg, 23 Mar 2009 10:44 am
Localização: Sapiranga - RS

Boa Tarde, preciso alterar a ordenação do relatório antes de executar, todas as maneiras que tentei não surtiram efeitos... no meu relatório matriz tem o campo id_produto e descricao, na hora de rodar o relatório quero ter a possibilidade de escolher pelo qual campo quero ordenar, então se eu deixar os 2 campos com a propriedade Break Order = Ascending, ele só obedece um campo... quero setar essa propriedade antes da impressão.
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

sE você COLOCAR UM ORDER BY PRA ELES. nÃO FUNCIONA?
tiago.steil
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Qui, 01 Jul 2010 3:22 pm
Localização: RS
Oracle Developer

Tem que colocar a ordenação pela query do report não pelo campo no campo você deixa a opção NOME.

E um jeito de fazer é colocar na query com um parametro, ex:

Selecionar tudo

select codigo
,        descricao
from tabela
where parametro = '1'
order by codigo
union
select codigo
,        descricao
from tabela
where parametro = '2'
order by descricao
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Tome cuidado, um Union pode quebrar a performance do relatório.

A idéia de parametrizar é excelente. Mas tente algo assim:

Selecionar tudo

Select codigo,
       descricao
  From tabela
 Order By case when :parametro = 1 then 1 else 2 end
Lembrando que o 1 e 2 na ordenação refere-se a ordem das colunas.
diegorp
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 49
Registrado em: Seg, 23 Mar 2009 10:44 am
Localização: Sapiranga - RS

Assim... eu tenho uma tela no form que chama esse relatório, nesta tela tem um list onde eu tenho a opção de escolher a ordenação do relatório, ordenar por id ou descricao.... no bloco principal do report eu tenho três campos id_ncm, id_produto e descricao, o report precisa ter pelo menos um desses campos com break order setada, se eu deixar o campo id e o campo descricao com essa propriedade setada... o order by na query não obedece porque eu to passando pra ele o seguinte:

Ordenar por ID :

Selecionar tudo

:P_ORDEM := order by se.id_produto asc
, e depois eu jogo isso na query do relatório assim:

Selecionar tudo

 WHERE se.id_produto = pr.id_produto
   AND se.id_local_estoque IN
       (SELECT l.id_local_estoque
          FROM local_estoque l
         WHERE l.id_local_estoque_pai = :p_id_local_estoque_pai
           AND l.id_local_estoque =
               nvl(:p_id_local_estoque, l.id_local_estoque))
   AND trunc(se.dt_saldo) =
       (SELECT trunc(MAX(se1.dt_saldo))
          FROM saldo_estoque se1
         WHERE se.id_produto = se1.id_produto
           AND se.id_local_estoque = se1.id_local_estoque) &p_ordem
se a ordenação for por descrição, então o parametro :p_ordem := order by pr.descricao asc, e depois joga na query e roda o relatório, sempre funcionou, mas acho que desta vez esta dando problema por que o relatório é uma matrix, eu acho.... se alguém entendeu... e puder me ajudar.... o report tem o comando Set Break Order property, se alguém a usou e pode me ajudar.... sinta-se a vontade... valeu!
aschnell
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Ter, 17 Abr 2012 10:01 am

Bom Dia,
Tive um problema parecido e resolvi da seguinte forma:
- coloquei um decode no select, exemplo:

Selecionar tudo

select decode(:p_ordem , 'A', codigo, 'B', descricao) ordem,
         codigo,
        descricao
from tabela
order by ordem;
:p_ordem é o parametro do relatório se for igual a "A" ordena pelo código, se for igual a "B" ordena pela descrição.

Detalhe importante: tem que ser o primeiro campo da query no report marcado com "BREAK ORDER" Ascend.

Faz assim que vai funcionar certo!

Abraço,

Alex Schnell
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes