Jump to content

DBgrid e dblookupcombobox


daniel_silva

Recommended Posts

Bom dia.

Tenho 2 tabelas, a 1ª que é dos orçamentos e a 2ª é onde o utilizador define os preços de cada artigo. 

Nos orçamentos tenho um dbgrid com um dblookupcombobox interligada à 2ª tabela (tabela de preços).

O que eu queria era: 

Na tabela de orçamentos ao seleccionar um artigo aparecer logo o preço desse artigo, onde está interligado na 2ª tabela.

Link to comment
Share on other sites

Na tabela de orçamentos tens o preço do artigo, ou apenas a ligação à tabela de artigos?

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Então não percebi bem a questão...
Se o preço também está na mesma tabela, qual o problema em o mostrar junto com os outros campos?

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Directamente não podes. A DBGrid é um componente Data Aware, e como tal recebe os dados de um TDataSource.

O que podes fazer é ligar a DBGrid a um TDataSource, e ligar este à tua Query/Table/Dataset (o componente que usas para aceder ao SQL).
A DBGrid será automaticamente preenchida com os dados que esse componente tiver.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Eu tenho:

- Um query ligado à tabela;

- Um data source ligado ao query.

E tenho um botão "Inserir" que o que queria que fizesse era, escrever nas caixas de texto e de seguida carrego no botão "Inserir" e grava na tabela aparecendo automaticamente no dbgrid. 

Já tentei vários códigos mas todos eles me dão erro... 

Link to comment
Share on other sites

Que caixas de texto?

Se forem DBEdits, ligadas ao mesmo Dataset, isso é feito quase de forma automática, necessitando apenas de chamares o Insert da query (e em alguns casos, dependendo da tua configuração, fazer o Commit no fim).

Que caixas de texto?

Se forem DBEdits, ligadas ao mesmo Dataset, isso é feito quase de forma automática, necessitando apenas de chamares o Insert da query (e em alguns casos, dependendo da tua configuração, fazer o Commit no fim).

Que caixas de texto?

Se forem DBEdits, ligadas ao mesmo Dataset, isso é feito quase de forma automática, necessitando apenas de chamares o Insert da query (e em alguns casos, dependendo da tua configuração, fazer o Commit no fim).

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Esse é o código para inserir, mas verifica se a tua query não está como read-only! 😉

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

@nunopicado consegui 🙂

Nas propriedades do componente Query meti a propriedade RequestLive para True, e o código é como estavas a dizer "query1.insert".

Para gravar fiz desta forma: 

with query1 do
   begin
    Query1.FieldByName('Artigo').AsString := DBLookupComboBox3.Text;
    Post;
   end;

Obrigado pela ajuda! 😄

Link to comment
Share on other sites

Atenção que isso não é preciso para gravar na tabela.

A DBLookUpComboBox tem forma de ela própria ir buscar os dados a uma tabela e gravar noutra.
Se tiveste de fazer isso, é porque a tua combobox não está bem configurada. 

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.