Fórum Montar colunas do DBGrid em Run-Time #231365
11/05/2004
0
É para uma tela de pesquisa:
QLoq.SQL.Clear;
QLoq.SQL.Add(´Select codigo, cidade from cidades´);
QLoq.Fields.Add(´Codigo´) // +/- assim
QLoq.Fields.Add(´Cidade´) // +/- assim
DBGrid.Columns.Add;
DBGrid.Columns.Add;
DBGrid.Columns.Fieldname:=´Codigo´
DBGrid.Columns.Fieldname:=Cidades´
Compreendes?
Valberaguiar
Curtir tópico
+ 0Posts
11/05/2004
Rômulo Barros
Gostei + 0
11/05/2004
Valberaguiar
Obrigado!!
Gostei + 0
11/05/2004
Rômulo Barros
procedure TForm1.BitBtn1Click(Sender: TObject); begin ClientDataSet1.Close; ClientDataSet1.CommandText := ´select matricula from pessoal_pes´; DBGrid1.DataSource := DataSource1; DBGrid1.Columns[0].Title.Caption := ´a´; DBGrid1.Columns[0].FieldName := ´matricula´; ClientDataSet1.Open; end; end.
Gostei + 0
11/05/2004
Khundalini
procedure TDataModule1.Table1AfterOpen(DataSet: TDataSet);
begin
Table1.FieldByName(´SALARIO´).Visible := False;
end;
A dica vale mesmo se você não tiver objetos TField criados em tempo de projeto ou em tempo de execução.
[]s
Rubem Rocha
Manaus, AM
Gostei + 0
11/05/2004
Valberaguiar
[b:e5b7b6a2b5]Qloq.Close;
Qloq.FieldList.Clear;[/b:e5b7b6a2b5]
[b:e5b7b6a2b5]Qloq.SQL.Clear;[/b:e5b7b6a2b5] //Não tenho nenhum campo no Editor de Campo do Delphi e nem SQL. OK Até 100¬.
[b:e5b7b6a2b5]Qloq.SQL.Add(´Select Codigo, Cliente, Fantasia From Clientes´);[/b:e5b7b6a2b5]
//Agora defino a SQL em run-time q ora pode ser com cliente e 3 campo e ora com cidades com apenas um campo.
[b:e5b7b6a2b5]Qloq.FieldDefs.Add(´Codigo´, ftInteger, 0, False);
Qloq.FieldDefs.Add(´Cliente´, ftString, 40, False);
Qloq.FieldDefs.Add(´Fantasia´, ftString, 40, False);[/b:e5b7b6a2b5] //Aqui adicionei os campo ao Editor de campo (não sei se esse é o meio mais apropriado para faze-lo). Lembrando sempre q como o Form vai ser usado para localizar tanto ´Clientes´ como ´Cidades´ e outros..... não tem como eu sabe em Design-Time quantos campo são...
[b:e5b7b6a2b5]DBGrid1.Columns.Add;[/b:e5b7b6a2b5] //Para ´Código´
[b:e5b7b6a2b5]DBGrid1.Columns.Add;[/b:e5b7b6a2b5] //Para ´Cliente´
[b:e5b7b6a2b5]DBGrid1.Columns.Add;[/b:e5b7b6a2b5] //Para ´Fantasia´
//Adiciono as colunas para o DBGrid... (3, 2, 1....)
Pessoal até parece está dando certo.... Só falta eu definir as mascáras dos campo para q por exemplo o campo código aparece no grid formatado (0000000010...).
Estava tentando definir as mascáras com:
Qloq.FieldByname(´Codigo´).DisPlayFormat:=´#0000000000´;
só q não tem esse propriedade....
[/b]
Gostei + 0
11/05/2004
Khundalini
Portanto, se quiser definir a máscara de um campo numérico, você precisa fazer um typecast (conversão de tipo), assim:
TNumericField(Query1.FieldByName(´Codigo´)).DisplayFormat := ´#000´;
O peixe foi pescado!
[]s
Rubem Rocha
Manaus, AM
Gostei + 0
11/05/2004
Valberaguiar
:D :D :D
Meu amigo valeu!!!!
Gostei + 0
08/05/2007
Valberaguiar
TIntegerField(Pesquisa.FieldByName(´ID_Pedido´)).DisplayFormat := ´#0000000000´;
o que é cenessário fazer para este type cast funciona com DBExpress, TSQLDataSet?
Grato!!!!
Gostei + 0
08/05/2007
Valberaguiar
mas antes de de fazer o type cast adiciono o campo:
FieldDefs.Add(´ID_Pedido´, ftInteger, 0, False);
Grato!!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)