Fórum Ordenar pelo ClientDataSet #412515
08/02/2012
0
Tenho uma base no mysql, onde os dados estao da seguinte forma na tabela:
0001000, 00202, 01000, 1, 10, precisso ordenar esses codigos, para que
fiquem da seguinte ordem no relatorio: 1, 10, 000100, 00202, 01000.
O campo codigo é um varchar, estou utilizando um ClienDataSet e tenho que ordenar
pelo indexFieldNames, estou utilizando o comando abaixo mas nao funciona, porque os
codigos tem zeros na frente.
if ComboBox2.ItemIndex=0 then // o combobox2 é onde tem pra ordenar pelo codigo ou pela descricao do produto
estoquep.IndexFieldNames:=codigo
alguem pode passar uma solucao, ja tinha iniciado outro chamado, mas como estou precisando disso
urgente abri novo chamado.
Abraços Odair
Odair Vavassori
Curtir tópico
+ 0Posts
08/02/2012
Joel Rodrigues
Gostei + 0
08/02/2012
Odair Vavassori
porque uso uma tabela temporaria, para ordenar.
Odair
Gostei + 0
08/02/2012
Marco Salles
Crie um campo Internacalc , de um Nome propricio
Se quiser coloque como Invisivel , não faz diferença
escreva o seguinte codigo no evento OnCalcFields do CDS
if dataset.State = dsInternalCalc then
with TClientDataSet(dataset) do
FieldByName(Truque).AsString:=
StringOfChar(0,6 - length(FieldByName(codigo).AsString))+
FieldByName(codigo).AsString;
end;
ps) aqui meu campo chama TRUQUE e o Campo que quer Ordenar é CODIGO
Coloqueo um Tamanho de SEIS pq vi que voce tinha 000100 , mas pode aumentar a gosto
Agora é so fazer
ClientDataSet1.IndexFieldNames:=Truque;
e estará ordenado como voce quer (
Gostei + 0
09/02/2012
Odair Vavassori
Deu certo, resolveu meu problema
Obrigado pela força Marco
Odair
Gostei + 0
09/02/2012
Marco Salles
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)