| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
alexbandeira Mestre


Registrado: Terça-Feira, 27 de Julho de 2004 Mensagens: 812 Localização: Paulista - PE
|
Enviada: Ter Nov 13, 2007 2:29 pm Assunto: Migrando de D5 c/ Paradox p/ D7 c/ Firebird |
|
|
Oi pessoal,
Estou migrando de D5 com Banco Paradox p/ D7 Banco Firebird.
Uso muito Locat e Index para mudar a forma de organização "ordenar" dos dados por ex: Ordemar pelo Código uma tbl e em outro momento ordemar pelo nome.
Já percebi q com Index não é possível organizar, sei que devo usar "Order By" mas como devo usar em modo de execulsão. qual é o font.
E qual é o comando para localizar um registro.
Mais uma coisinha se for possível gostaria de poder mudar em tempo de execusão os registros de um grid, s´´o os pares só os impares serám mostrados em um grid ou apenas os do tipo "Madeira".
Grato pela atenção:
Alexandre Bandeira
BM Softwares PE. |
|
| Voltar ao Topo |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
Enviada: Ter Nov 13, 2007 2:32 pm Assunto: |
|
|
a diferenca é muito maior do que parece...
vc ta usando tables? _________________ “The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart |
|
| Voltar ao Topo |
|
 |
AlexSousa Colaborador


Registrado: Sexta-Feira, 12 de Novembro de 2004 Mensagens: 1879 Localização: São luís - MA
|
Enviada: Ter Nov 13, 2007 2:41 pm Assunto: |
|
|
blz alexbandeira,
se estiver usando IBtables, vc pode usar o LOCATE, INDEX pra fazer o q fazia antes com o paradox, mas caso queira mudar isso vc pode usar querys e usar SELECT´S pra fazer consultas e etc...
quanto ao DGRID naum entendir....blz
abraços, _________________ "Guarda com toda a diligência o teu coração, porque dele procedem as fontes da vida....Prov. 4:23" |
|
| Voltar ao Topo |
|
 |
Borland_Linuxer Moderador

Registrado: Terça-Feira, 11 de Outubro de 2005 Mensagens: 4252 Localização: Manaus - Am
|
Enviada: Ter Nov 13, 2007 3:27 pm Assunto: Re: Migrando de D5 c/ Paradox p/ D7 c/ Firebird |
|
|
| alexbandeira escreveu: | Oi pessoal,
Estou migrando de D5 com Banco Paradox p/ D7 Banco Firebird.
Uso muito Locat e Index para mudar a forma de organização "ordenar" dos dados por ex: Ordemar pelo Código uma tbl e em outro momento ordemar pelo nome.
Já percebi q com Index não é possível organizar, sei que devo usar "Order By" mas como devo usar em modo de execulsão. qual é o font.
E qual é o comando para localizar um registro.
Mais uma coisinha se for possível gostaria de poder mudar em tempo de execusão os registros de um grid, s´´o os pares só os impares serám mostrados em um grid ou apenas os do tipo "Madeira".
Grato pela atenção:
Alexandre Bandeira
BM Softwares PE. |
sobre o grid talves querira poder escolher o que vai aparecer no grid correto ?
nesse caso vc vai ter que usar uma query.
ex:
coloca uma query e na sua propriedade sql coloca
| Código: |
select * from tabela where camponome=:nome |
sendo que o :nome e o parametro que vamos passar pra ele.
ex:
botao
| Código: | query1.close;
query1.parambyname('nome').Value := edt1.text;
query1.pen; |
Assim eu taria trazendo os registros que tivesem valor igual a do edit.
Se não era isso acho posso não entendido, mais se for isso mesmo, posta ai se entendeu ?
Abraços _________________ Abraços
Sérgio Guedes
www.lsisistemas.com.br
www.scvarejo.com.br - Projetos para parceiros e desenvolvedores |
|
| Voltar ao Topo |
|
 |
alexbandeira Mestre


Registrado: Terça-Feira, 27 de Julho de 2004 Mensagens: 812 Localização: Paulista - PE
|
Enviada: Ter Nov 13, 2007 11:06 pm Assunto: |
|
|
Vlw Pessaol
Acho que vcs me ajudaram sim, não pensei q tinha de usar outro componente além do ClienteDataSet. Tudo bem irei inserir querys no projeto.
Irei experimentar qual quer coisa postarei! |
|
| Voltar ao Topo |
|
 |
alexbandeira Mestre


Registrado: Terça-Feira, 27 de Julho de 2004 Mensagens: 812 Localização: Paulista - PE
|
Enviada: Qua Nov 14, 2007 1:28 pm Assunto: |
|
|
Oi estou usando o código abaixo, está funcionando + sem o Order By. Porque o "Order By" não funciona.
Como se deve fazer para poder mudar a ordem dos dados.
Ordenar por Nome ou Ordenar por Código ??
MD.TQuery.Close; /// ñ funciona o order by
MD.TQuery.SQL.Clear;
MD.TQuery.SQL.Add('SELECT EspeProd, EspeQEntr, EspeQEsto, speCodi,EspePComp,EspePVend');
MD.TQuery.SQL.Add('FROM AZ_Prod');
MD.TQuery.SQL.Add('WHERE ( EspeQEntr <= EspeQEsto ) or (EspeQEntr = 0)');
MD.TQuery.SQL.Add('ORDER BY EspeCodi');
MD.TQuery.Open; |
|
| Voltar ao Topo |
|
 |
Borland_Linuxer Moderador

Registrado: Terça-Feira, 11 de Outubro de 2005 Mensagens: 4252 Localização: Manaus - Am
|
Enviada: Qua Nov 14, 2007 1:48 pm Assunto: |
|
|
| alexbandeira escreveu: | Oi estou usando o código abaixo, está funcionando + sem o Order By. Porque o "Order By" não funciona.
Como se deve fazer para poder mudar a ordem dos dados.
Ordenar por Nome ou Ordenar por Código ??
MD.TQuery.Close; /// ñ funciona o order by
MD.TQuery.SQL.Clear;
MD.TQuery.SQL.Add('SELECT EspeProd, EspeQEntr, EspeQEsto, speCodi,EspePComp,EspePVend');
MD.TQuery.SQL.Add('FROM AZ_Prod');
MD.TQuery.SQL.Add('WHERE ( EspeQEntr <= EspeQEsto ) or (EspeQEntr = 0)');
MD.TQuery.SQL.Add('ORDER BY EspeCodi');
MD.TQuery.Open; |
Você ordenar pelos dois campos.
| Citação: | | MD.TQuery.SQL.Add('ORDER BY EspeNome, EspeCodi'); |
ou vc pode usar asc e desc
crescente e decrecente.
aconselho vc usar um clientdataset por que com ele muito fácil
vou mostrar como usar ordenacao usando o clientdataset
Eu tenho a seguinte procedure onde ela pede como parametro o cds o dbgrid e a coluna que foi clicada.
| Código: | procedure OrdenaColunas(cds: TclientDataset; grid: TDBGrid; Column: TColumn);
var
sIndexName : string;
Options: TIndexOptions;
I : integer;
begin
// Alterar as cores do título de um DBGrid em tempo execução
for i:= 0 to grid.Columns.count-1 do
begin
// Coloca Todas Colunas com Cor padrão
grid.Columns[i].Title.Color := clBtnFace;
grid.Columns[i].Title.Font.Color := clBlack;
grid.Columns[i].Title.Font.Style := [];
end;
cds.IndexDefs.Update;
// Muda o Tipo de Ordenação
if cds.IndexName = Column.FieldName + '_ASC' then
begin
sIndexName := Column.FieldName + '_DESC';
Options := [ixDescending];
end
else
begin
sIndexName := Column.FieldName + '_ASC';
Options := [];
end;
if cds.IndexDefs.IndexOf(sIndexName) < 0 then
cds.AddIndex(sIndexName, Column.FieldName, Options);
cds.IndexName := sIndexName;
// Pinta somente a coluna selecionada
// Column.Title.color := ClYellow;
Column.Title.Font.Style := [fsBold];
// Column.Title.Font.Color := clRed;
end; |
agora no evento ontitleclick do dbgrid coloco a seguinte chamada a esse função passando os parametros.
| Código: | procedure TfrmLstRotaCobrador.dbgBaseTitleClick(Column: TColumn);
begin
inherited;
//ordena colunas ao clicar no titulo da grid
OrdenaColunas(dmRotaCobrador.cdsLstRotaCobrador, dbgBase, Column);
end;
|
Então assim como eu clico numa coluna do grid ele ordena por ela. _________________ Abraços
Sérgio Guedes
www.lsisistemas.com.br
www.scvarejo.com.br - Projetos para parceiros e desenvolvedores |
|
| Voltar ao Topo |
|
 |
alexbandeira Mestre


Registrado: Terça-Feira, 27 de Julho de 2004 Mensagens: 812 Localização: Paulista - PE
|
Enviada: Qua Nov 14, 2007 9:20 pm Assunto: |
|
|
Oi Pessal, Vlw pelas dicas. Mas consegui resolver.
O problema é que eu tinha colocado o "Order By" na propriedade SQL do Query. com isso o sistema não aseitava fazer alterações em tempo de execulção. Após remover o este parâmetro do selec, deichando apenas o select na propriedade do componente, consigo alterar a orddem em tempo de execulção.
+ uma vez vlw mesmo pessoal.
Alexandre Bandeira
BM Softwares. |
|
| Voltar ao Topo |
|
 |
|