Fórum Passar todos dados que estao com checked=true do jvdbgrid... #341998

18/05/2007

0

Olah pessoal, bom tenho um jvdbgrid(JEDI) com um campo LOGICAL que mostra dentro do jvDBGrid em forma de checked. Ate ai tudo bem.

O que eu preciso eh os campos que vou marcar no checkbox do jvdbgrid seja passados para um memo.

Ou seja percorrer a tabela procurando quais checheds estao ativos e jogar todos eles para o memo.

Algeu pode me explicar como fazer isso?

Grato
Adriano


Adriano_servitec

Adriano_servitec

Responder

Posts

18/05/2007

Massuda

Acho que não entendi mas...

Esse campo que é exibido como sendo um checkbox é um campo da tabela? Se for, o mais simples é percorrer o dataset (First/while not Eof/Next) selecionando os registros que atendem ao seu critério. Ou fazer uma query para pegar os registros desejados.


Responder

Gostei + 0

18/05/2007

Adriano_servitec

Acho que não entendi mas... Esse campo que é exibido como sendo um checkbox é um campo da tabela? Se for, o mais simples é percorrer o dataset (First/while not Eof/Next) selecionando os registros que atendem ao seu critério. Ou fazer uma query para pegar os registros desejados.


Entao seria algo tipo + ou - assim

 dm.dataset1.SQL.Clear;
SQL.Add(´SELECT * FROM tabela´);
Add(´where campoboolean = ´T´ order by formula´);
Open;
DataSet1.First;
while not DataSet1.Eof do
begin
{passando os comando que estao como True no dbgrid para o memo}
memo1.clear;
memo1.lines.add(dataset1.fieldbyname(´campo´).asString + ´......´)
DataSet1.Next;
end;



Responder

Gostei + 0

18/05/2007

Massuda

Aparentemente é isso mesmo. Duas coisas apenas...

* já que você vai gerar uma nova query, use um componente de query que não seja o que está ligada no grid, senão vai dar um efeito esquisito para o usuário

* O memo1.Clear deve(ria) ser antes do while, senão a cada registro você apaga o conteúdo do memo e perde todo o trabalho que já foi feito.


Responder

Gostei + 0

18/05/2007

Adriano_servitec

Aparentemente é isso mesmo. Duas coisas apenas... * já que você vai gerar uma nova query, use um componente de query que não seja o que está ligada no grid, senão vai dar um efeito esquisito para o usuário * O memo1.Clear deve(ria) ser antes do while, senão a cada registro você apaga o conteúdo do memo e perde todo o trabalho que já foi feito.


Ok, fiz como vc disse.

Mais nao estou conseguindo fazer funcionar a SQL

Veja

procedure TFFormulas.Button15Click(Sender: TObject); begin query2.sql.clear; query2.sql.add(´select * from teste´); [color=red:7725ceb735]query1.sql.add(´WHERE TIPO = True´);[/color:7725ceb735] query1.open; Vars.Clear; Query2.First; while not Query2.Eof do begin {passando os comando que estao como True no dbgrid para o memo} vars.lines.add(query2.fieldbyname(´nome´).asString); //+ (query2.fieldbyname(´tipo´).asBoolean)´); Query2.Next; end; end;


Essa condiçao do where tem que filtrar um campo LOGICAL do Paradox, mais nao esta funcionando a condiçao.

Algum erro na SQL?

grato
Adriano.


Responder

Gostei + 0

18/05/2007

Adriano_servitec

Nossa que falta de atençao a minha

Estou usando no mesmo codigo dois nomes de querys diferentes :oops:

Soh agora percebi, que terei que usar somente a query2.

Erro de digitação.


Problema resolvido

Valeu amigo
Obrigado.


Responder

Gostei + 0

18/05/2007

Adriano_servitec

Bom agora estou pensando em fazer o seguinte

Tenho uma tabela aonde fica armazenada algumas formulas matematicas e como dito antes tem um campo boolean aonde quero deixar o checked ativado alguns itens. E tenho outra tabela contendo nomes de funcionarios.

Bom se eu fazer relacionamento entre esta duas tabelas logicamente ira mostrar na tabela formula o que esta cheched=true ou nao de cada funcionario, mais ai achei que vai ficar muito grande esta tabela de formulas.

Entao gostaria de saber se ha algum jeito de criar um tipo diferente de mostar isso.

Bom tentando explicar melhor minha ideia

tenho a tabela funcionarios cadastrados os seguntes funcionarios
adriano
jose
maria

e a tabela formulas cadastrada as seguintes formulas
horas extras 50¬ (salario/220)*(1+50/100)
horas extras 100¬(salario/220)+(1+100/100)
adicional 30¬(salario*30/100)

Bom vamos supor que o funcionario adriano tenha hExtra 50¬ + adicional, entao no campo aonde fica o campo logical marco com o cheched do dbgrid essas duas opçoes, ai quando mostro o funcionario adriano a tabela formula deve mostrar como deixei marcado, e os outros que nao marquei nada fica desmarcado.

Entenderam.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar