Como manter ordenação de registros na grid ao inserir linhas
19/08/2008
0
Mostro em uma grid lançamentos financeiros ordenados por data, existe nessa tabela uma PK que é um autoincremento;
Digamos que eu tenha 100 lançamentos numa determinada data e o cliente inclui + 1, nesta mesma data, na linha 3. Ele que que o lançamento permaneça na linha 3 (como no excel) e o que aconteçe é que quando eu reabro o arquivo, ordenado por data, esse lançamento apareçe em último;
Como poderia resolver isso, com certeza não é um problema novo, deve existir alguma solução pronta... alguma idéia?
Já pensei em criar um campo float que seria acrescido em um pequeno valor em relação ao lançamento anterior e poderia usar esse campo pra ordenar mas pra mim é um baita ´chuncho´
Rodrigo Buschmann
Posts
20/08/2008
Rodrigo Buschmann
LINHA.......ID........DATA
1..............10..........01/01/2008
2..............11..........01/01/2008
3..............12..........01/01/2008
4..............13..........01/01/2008
5..............14..........01/01/2008
O usuário inclui um registro entre as linhas 3 e 4 e este deverá permaneçer nesta posição só que o ID será 15 então se ordenar por ID ele vai pra último.
20/08/2008
Rodrigo Buschmann
O registro inserido fica por último e não no meio mesmo que a ordenação seja feita só pela data, isso pode ser confirmado fazendo um select pelo ibexpert.
Não sei se a existência da chave pode influenciar alguma coisa (mesmo sem usar order by ID), se for esse o caso não sei como resolver. Pode ser também uma caraterística do firebird.
20/08/2008
Paulo
Criaria uma Triger de Insert e Delete com Cursor(FB tem Cursor?). Para cada posição do Insert ou Delete, o cursor se moveria um registro para Tras, pegaria o valor da Linha, avançava e colocaria Linha+1 e ir avançando o Cursor apartir dele e ir fazendo Linha+1. O problema é o tamanho da tabela, pois se ela for grande, teria que fazer sempre isso, toda vez que houver um INSERT ou DELETE. É o que veio agora na cabeça. Com Order By, não será possível.
Clique aqui para fazer login e interagir na Comunidade :)