Combobox em um DBGrid
29/11/2005
0
Obrigado
Leandrosl
Posts
29/11/2005
Jairroberto
Use a propriedade PickList da coluna do DBGrid para informar as opções desejadas, mantendo a propriedade ButtonStyle dessa mesma coluna com o valor dbsAuto.
Um abraço,
Jair
29/11/2005
Leandrosl
Coloquei uma linha de comando dentro do PickList, mais ele não me mostro nenhum resultado e também não deu erro,, segue abaixo o codigo que usei:
SELECT MAX(Dataveiculacao) FROM veiculacao
WHERE CodigoVeiculacao=´ DBEditCodveiculacao´
Obrigado
30/11/2005
Jairroberto
A propriedade PickList é um objeto do tipo TStrings onde você pode descrever as opções que estarão disponíveis para o usuário selecionar. Ela não processa comandos SQL.
Neste caso, você deve usar um Query derivado de DataSet para executar o comando SQL e alimentar o PickList com o resultado. Veja um exemplo imaginando que você utilize DBExpress:
procedure AlimentarDataVeiculacao(const CodigoVeiculacao: string); var DataSet: TSQLQuery; begin DataSet := TSQLQuery.Create(Self); try DataSet.SQLConnection := SeuObjetoSQLConnection; DataSet.SQL.Text := Format(´SELECT MAX(Dataveiculacao) FROM veiculacao WHERE CodigoVeiculacao = ¬s´, [QuotedStr(CodigoVeiculacao)]); DataSet.Open; if not DataSet.IsEmpty then DBGrid1.Columns[1].PickList.Text := DataSet.Fields[0].DisplayText else DBGrid1.Columns[1].PickList.Text := ´´; DataSet.Close; finally DataSet.Free; end; end;
O exemplo considera que:
1) SeuObjetoSQLConnection é um objeto do tipo TSQLConnection utilizado para conexão com o banco de dados via DBExpress;
2) CodigoVeiculacao é um campo do tipo string;
3) DBGrid1 é um objeto do tipo TDBGrid que contém a coluna onde você quer colocar o ComboBox
4) A segunda coluna do DBGrid1 (Columns[1]) é a coluna onde será apresentado o ComboBox com o registro retornado pelo DataSet.
Você pode disparar esse procedimento a partir do evento OnExit do DBEditCodveiculacao, por exemplo:
procedure DBEditCodveiculacaoExit(Sender: TObject); begin AlimentarDataVeiculacao(DBEditCodveiculacao.Text); end;
Um abraço,
Jair
Clique aqui para fazer login e interagir na Comunidade :)