Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ricardo.prs

Joga dados no grid

Recommended Posts

Estou com a seguinte duvida.Não estou conseguindo transpor os dados para o Grid.O programinha tem de fazer o seguinte.Tem um combobox que esta pegando de uma tabela apenas um dado, chamado STATUS. Sendo assim, no evendo OnShow do Formulario coloquei.begin while not TB_Gra001.EOF do begin COmbobox1.items.add(TB_Gra001.fieldbyname('STATUS').asstring); TB_Gra001.next; end; end;Com isso ele vai colocar dentro do combobox todos os status da tabela GRa001.dbfSeguinte, ao selecionar qualquer um dos status neste combobox, no grid, deverá aparecer a descrição e o arquivo relacionado ao item selecionado.Sendo assim, no evendo onChang do combobox coloqueiqr_loc.Close;qr_loc.Open; With qr_loc do QR_loc.SQL.Text := 'Select * from GRA001 '+'Where Status =:ComboBox1.Items'; if ComboBox1.Items = QR_LocSTATUS then DBGrid1.Columns[0] := QR_Loc.fieldbyname'ARQUIVO'; DBGrid1.Columns[1] := QR_Loc.fieldbyname'DESCRI'; DBGrid1.Columns[2] := QR_Loc.fieldbyname'OBS';end;Sei que isso esta errado...Por isso, que pergunto. Como fazer?Sem mais.SDS

Compartilhar este post


Link para o post
Compartilhar em outros sites

puts... tah eh confuso...se você vai mexer com dados..conecte os componentes nos bancos...o combobox por exemplo.. pode ser substituido por um dblookupcompobox....eh soh apontar o listsource.... e os dados a serem mostrados..o dbgrid eh dinamico.. e se você não adicionar nenhuma coluna ele toma como colunas todas do datasource...a query tah quase certa...era pra serComboBox1.value ou Combobox.text...entendeu?!reestrutura ai.. se ainda tiver erro eh soh falar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Amigo.ELe ainda esta dando erro.Se usar o DBlockuocombobox, ele não funciona.O erro esta no sqlWith qr_gra001 doqr_gra001.SQL.Text := 'Select * from GRA001 '+'Where Status =:ComboBox1.Items';if ComboBox1.text = qr_gra001STATUS.value thenDBGrid1.Columns[0] := qr_gra001.fieldbyname'ARQUIVO';DBGrid1.Columns[1] := qr_gra001.fieldbyname'DESCRI';DBGrid1.Columns[2] := qr_gra001.fieldbyname'OBS';O problema e jogar os dados que batem para as colunas do Grid;

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza kra, tipo ce ta dizendo que o erro pode ser de sql...

bom sql eh chato, por isso da um cuido rapidasso e ve se esta tudo escrito igual,

ce ta ligado que se por caracter tipo maiusculo minusculo da erro mesmo tem que ce igualsinho,

 

entao seu combo concerteza seria .text;

você deve ter alguns procedures

olha essa minha procedure e ve se te ajuda

olha esse codigo

 

procedure Tfrmcli.atualizagrid ;

var

sql1,sql2,sql3:string;

linha, registros:integer;

begin

sql1:=' select CL_codigo,cl_nome from clientes.db';

sql2:=' where CL_Nome like "'+nome+'%"';

sql3:=' order by cl_nome';

qrycli.SQL.clear;

qrycli.SQl.add(sql1+sql2+sql3);

 

qrycli.Open;

qrycli.Last ;

registros:= qrycli.RecordCount + 1;

grdcli.RowCount := registros;

qrycli.First ;

linha:= 1;

while not qrycli.EOF do

begin

grdcli.Cells [0,linha]:= inttostr(qrycli.fieldbyname('CL_Codigo').asinteger);

grdcli.Cells [1,linha]:= qrycli.fieldbyname('CL_Nome').asstring;

qrycli.Next ;

linha:= linha + 1;

end;

qrycli.Close;

if grdcli.Row = 0 then

begin

grdcli.RowCount := 2;

grdcli.FixedRows := 1;

grdcli.Cells [0,1]:= '';

grdcli.Cells [1,1]:= '';

end;

end;

 

 

 

 

seu codigo reestruturado

sua linha de raciocionio eh bem diferente entao, as vezes nao esta certo o que falei mas pode te ajudar, da uma olha no QR_GRA001.... :D

 

With qr_gra001(.EOF ou BOF) do

qr_gra001.SQL.Text := 'Select * from GRA001 '+'Where Status =:ComboBox1.Items';

if ComboBox1.text = qr_gra001STATUS.value then

DBGrid1.Columns[0] := qr_gra001.fieldbyname'ARQUIVO';

DBGrid1.Columns[1] := qr_gra001.fieldbyname'DESCRI';

DBGrid1.Columns[2] := qr_gra001.fieldbyname'OBS';

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.