Fórum Abrindo form para efetuar filtros #511111
19/02/2015
0
if (frmEstoque.DBGrid1.SelectedIndex = 1) then
Panel_filtro_descricao.Visible:=true;
O panel de filtro por descrição só ficara visivel se a coluna 1 do dbGrid do estoque estiver selecionada. Usando este código não da nenhum erro, porem mesmo com a coluna 1 selecionada, o panel filtro por descrição não fica visivel ao abrir o Form dos filtros. Ai então fiz um teste tirando o panel de filtro por descrição do FrmFiltros e colocando no mesmo Form que esta a dbGrid, o FrmEstoque, ai então funciona perfeitamente, porem preciso trabalhar com um form separado para efetuar os filtros. Como poderia corrigir esta situação ?
Jhon
Curtir tópico
+ 0Posts
19/02/2015
Douglas
Bem, pelo código que você postou não me parece estar fazendo referência ao panel do formulário FrmFiltros.
if (frmEstoque.DBGrid1.SelectedIndex = 1) then Panel_filtro_descricao.Visible:=true;
O certo seria instanciar o seu formulário filtros e aí sim acessar os objetos contidos nele para que possa exibir ou não de acordo com sua necessidade.
if (frmEstoque.DBGrid1.SelectedIndex = 1) then var FrmFiltros : TFrmFiltros; begin FrmFiltros := TFrmFiltros.Create; FrmFiltros.Panel_filtro_descricao.Visible := true; FrmFiltros.ShowModal; end;
Gostei + 0
19/02/2015
Jhon
Quando clico no botão OK do filtro, da erro de acess violation.
Código que esta no botão OK do form filtro:
frmEstoque.ClientDataSet_estoque.Filtered := false;
frmEstoque.ClientDataSet_estoque.Filter := 'data_cad>='''+DateToStr(DateTimePicker1.Date)+''''+
'and data_cad<='''+DateToStr(DateTimePicker2.Date)+'''';
frmEstoque.ClientDataSet_estoque.Filtered := true;
neste caso, o erro acontece por que o ClientDataSet_estoque esta no form estoque, e não no form do filtro, então como eu teria de fazer nesse caso, pois não consigo trabalhar com nenhum componente do banco de dados que esta em outro form, no caso no form estoque. Poderia me ajudar ?
Gostei + 0
20/02/2015
Douglas
Quando clico no botão OK do filtro, da erro de acess violation.
Código que esta no botão OK do form filtro:
frmEstoque.ClientDataSet_estoque.Filtered := false;
frmEstoque.ClientDataSet_estoque.Filter := 'data_cad>='''+DateToStr(DateTimePicker1.Date)+''''+
'and data_cad<='''+DateToStr(DateTimePicker2.Date)+'''';
frmEstoque.ClientDataSet_estoque.Filtered := true;
neste caso, o erro acontece por que o ClientDataSet_estoque esta no form estoque, e não no form do filtro, então como eu teria de fazer nesse caso, pois não consigo trabalhar com nenhum componente do banco de dados que esta em outro form, no caso no form estoque. Poderia me ajudar ?
Jhon, você não consegue trabalhar com o objeto frmEstoque.ClientDataSet_estoque, pois você não manipulou o mesmo na tela de estoque. Para utiliza-lo no formulário filtro, o frmEstoque.ClientDataSet_estoque deve estar com os dados carregado no clientDataSet. Depois você faz a filtragem no formulário de filtros.
Gostei + 0
21/02/2015
Jhon
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)