Fórum Mostrar Dados Dbgrid #530620
03/09/2015
0
Tenho um form com um dbgrid que me mostra as minhas vendas dessa forma
Abaixo como meu dbgrid mostra os registros
CODIGOVENDA | CLIENTE | VALOR
1 JOSE 10,00
2 MARIA 20,00
3 JOAO 30,00
Quero clicar em cima da linha para selecionar e em um botão eu coloquei no capiton escrito PRODUTOS, quando eu selecionar a linha 1( 1/JOSE/10,00) e clicar em cima do botão PRODUTOS me trazer outro form com uma DBgrid com os produtos que originaram essa venda de 10,00 e mostrar o valor total da compra em um edit.
Exemplos
[img:descricao=Dbgrid Com as Vendas do Dias]http://arquivo.devmedia.com.br/forum/imagem/316964-20150903-112108.jpg[/img]
Ao clicar no botão PRODUTOS me mostra os produtos da venda em outra dbgrid
[img:descricao=Dbgrid com produtos]http://arquivo.devmedia.com.br/forum/imagem/316964-20150903-112204.jpg[/img]
Obs.: Estou usando SqlDataSet ligado a um DataSetProvider ligado a um ClientDataSet ligado a um DataSource ligado a um DbGrid
Bruno Henrique
Curtir tópico
+ 1Posts
03/09/2015
Raimundo Pereira
Exemplo:
Tela Consulta Produtos, que será chamada pela tela de Orçamento.
No click ou enter da linha do GRID da tela de consulta, ele irá preencher alguns EDITS do form Orçamento.
FRM_DAV.EDIT_COD_PRODUTO.TEXT:=DM.QPRODUTOS.FIELBYNAME('CÓDIGO').ASSTRING;
DM.QPRODUTOS.CLOSE;
NO FRM_DAV, QUE É SUA TELA DE ORÇAMENTO.
DEPOIS DOS EDITS VOCÊ COLOCA UM BUTTON_ADD_PRODUTO >> ESSE VAI INSERIR OS DADOS DOS EDITS >>FRM_DAV.EDIT_COD_PRODUTO.TEXT;
NO GRID ORÇAMENTO_ITENS.
Não testei, foi apenas citação.
Veja ai e me dê um retorno qual quer coisa.
AT: P2
Gostei + 0
03/09/2015
Bruno Henrique
Estou considerando que as vendas já foram efetuadas e mostro em um dbgrid igual está nas imagens, ao clicar em cima do botão PRODUTOS, me mostra um outro dbgrid os produtos que são referentes a venda
Gostei + 0
03/09/2015
Mateus Carvalho
Pensando nisso, você pode usar um filtro, assim você consegue exibir apenas o necessário (o que você utilizou como filtro) no dbgrid.
Exemplo
Tenho 2 tabelas: 1 - Informações básicas de venda
2 - Produtos vendidos
Na tabela 1, tenho 3 campos:
ID, CLIENTE, VALOR
Na tabela 2, tenho 3 campos:
ID_VENDA, PRODUTO, VALOR
Suponhamos que o campo ID da venda, seja usado para atrelar os produtos à uma venda, logo, para exibir os registros, irei usar um filtro
Exemplo:
Dados da tabela 1:
ID | CLIENTE | VALOR
1 | PEDRO | 50,00
2 | MARIA | 25,00
3 | JOSÉ | 150,00
Dados da tabela 2:
ID_VENDA | PRODUTO | VALOR
1 | ARROZ | 10,00
1 | FILTRO | 40,00
2 | ALCATRA | 20,00
2 | MOLHO | 5,00
3 | FILTRO | 40,00
3 | ARROZ | 10,00
3 | VENTILADOR | 50,00
3 | BATEDEIRA | 50,00
Vamos ao código:
Assim que o usuário clicar em produto, você pode colocar o código de filtro para a tabela 2, assim, no dbgrid, será exibido apenas resultados encontrados:
tabela2.Filtered := False; tabela2.Filter := 'ID_VENDA LIKE ' + QuotedStr( '%' + EDIT_ID_VENDA.Text + '%' ); //Onde "ID_VENDA" é o nome do campo que eu quero pesquisar e o "EDIT_ID_VENDA" é o conteúdo que eu quero filtrar. tabela2.Filtered := True;
Acho que depois disso, é só dar uns ajustes. Lembrando que esse é apenas uma forma de realizar essa ação.
Att!
Gostei + 0
03/09/2015
Raimundo Pereira
Exemplo:
Você terá um Form_Consulta_Venda >>
EDT_NUMERO_VENDA
DBGRID_>>
Q_VENDA_ITENS_
Q_VENDA_ITENS_CLOSE;
Q_VENDA_ITENS_SQL.TEXT:='SELECT CODIGOVENDA,PRODUTOS,QTDE,VALOR FROM TABELA_VENDAS_ITENS WHERE CODIGOVENDA='''+EDT_NUMERO_VENDA.TEXT+''';
Q_VENDA_ITENS_OPEN;
OBSERVAÇÃO ESSA ROTINA ACIMA, MOSTRARÁ APENAS PRODUTOS DE UMA DETERMINADA VENDA ONDE ESSE NÚMERO DEVERÁ SER INFORMADO NO EDIT.
VOCÊ PODE MONTAR A TELA DE ACORDO COM A SUA NECESSIDADE, TRATANDO NO SELECT
IF Q_VENDA_ITENS_.RECORDCOUNT=0 THEN
BEGIN
SHOWMESSAGE('NENHUM REGISTRO ENCONTRADOS ['+EDT_NUMERO_VENDA+']');
END;
Não testei,
Aguardo resposta.
Gostei + 0
03/09/2015
Bruno Henrique
Vou tentar fazer aqui, se eu tiver dúvidas posto novamente!!!(Concerteza vou ter!!! rs)
Obrigado
Gostei + 0
04/09/2015
Bruno Henrique
Quase deu certo!!!
Como vocês pode ver na imagem eu filtrei o nome Bruno ele me trouxe todos os Brunos cadastrados eu cliquei no Bruno de código número 3 e cliquei no botão Cidade Que Reside ele posicionou o cursor(ficou selecionado) em cima da cidade referente ao Bruno de código 3(Acaua / PIAUI) , mais eu preciso que mostre apenas a cidade dele e não todas a cidades apenas a do registro que foi selecionado.Teria que aparecer apenas a cidade Acaua / Piaui !!!
Como faço isso?
[img:descricao=FormPesquisa]http://arquivo.devmedia.com.br/forum/imagem/316964-20150904-002133.jpg[/img]
[img:descricao=FormResideCidade]http://arquivo.devmedia.com.br/forum/imagem/316964-20150904-002558.jpg[/img]
Gostei + 0
04/09/2015
Bruno Henrique
Form1
procedure TForm1.Button1Click(Sender: TObject); begin CdsClientes.Filtered := false; CdsClientes.Filter:= 'NOMERAZAO LIKE ' + QuotedStr( '%' + Edit1.Text + '%' ); CdsClientes.Filtered := true; end; procedure TForm1.Button2Click(Sender: TObject); begin if DBGrid1.selectedindex = 0 then SQLQuery1.Close; SQLQuery1.SQL.Text:='SELECT CIDADENOME, ESTADO FROM CADCLIENTES'; Form2.ShowModal; end;
Form 2
Tenho um dbgrid ligado ao um datasource que está ligado ao cdsclientes do form1
Gostei + 0
04/09/2015
Bruno Henrique
Gostei + 0
04/09/2015
Bruno Henrique
Gostei + 0
04/09/2015
Bruno Henrique
Gostei + 0
04/09/2015
Raimundo Pereira
com isso é só montar o select.
procedure TForm1.Button2Click(Sender: TObject);
begin
SQLQuery1.Close;
SQLQuery1.SQL.Text:='SELECT CIDADENOME, ESTADO,CODIGOCIDADE FROM CADCLIENTES WHERE CODIGOCIDADE='''+
INTTOSTR(CdsClientes.FIELBYNAME('CODIGOCIDADE').ASINTEGER)+''';
SQLQuery1.OPEN;
Form2.ShowModal;
end;
Aguardo retorno.
Gostei + 0
05/09/2015
Bruno Henrique
Gostei + 0
05/09/2015
Bruno Henrique
Gostei + 0
05/09/2015
Bruno Henrique
Gostei + 0
05/09/2015
Mateus Carvalho
Porque se você quer que aparece apenas a cidade de 1 cadastro, você pode colocar um edit ou uma label para mostrar esses dois valores.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)