none
Formulário de pesquisa para outros forms

    Question

  • Pessoal,

    Estou com uma dúvida complicadinha na minha cabeça. Preciso fazer um formulário de pesquisa, que sirva para mais de uma tela do meu sistema.

    Um exemplo:

    Quero que o usuário, quando entrar em um campo e pressionar "Enter", abra uma tela de pesquisa, para ele buscar o valor a ser inserido naquele campo.

    Agora, como usar isso em várias outras telas do meu sistema? Por exemplo, se eu quiser pesquisar o estado na tela de clientes ou de fornecedores, eu gostaria de usar o mesmo formulário de pesquisa para ambas as telas.

    Como dizer ao form de pesquisa, qual o formulário que o chamou e para qual formulário ele terá que passar a informação pesquisada?

    Alguém tem um exemplo, tutorial ou artigo que possa me ajudar?

    Abraços!

    Thursday, January 31, 2013 6:49 PM

All replies

  • Boa tarde

    Segue algumas sugestões que uso aqui na empresa de maneira dinamica

    1 - nada é estático, ex: você não fix um grid de clientes ou de fornecedores e sim, você monta um interpretador de dat table e apartir do datatable, por exemplo, gerar as colunas do seu data grid view,

    2 - procura colocar algo que seja 'universal' nessa tela ex: campo - pesquisar, um combo com os tipos de filtros (sugestão: usar as colunas do dataTable para gerar os filtros e as colunas assim você conseguiria trabalhar de maneira dinamica com qualquer valor possível, porém, sem valores estáticos) , um grid para listar todos os itens.

    usamos aqui o seguinte:

    passamos um 'select' por parametros para a tela de pesquisa, e a tela de pesquisa usa o select para carregar o datatable, e  do data table eu preencho o grid com os valores gerados dinamicamente apatir das colunas x linhas do Dt, e gerar um, usamos aqui para indicar em qual campo de pesquisa, um combobox para indicar as colunas de filtro, e deixe a tela se automatizar e se ajustar conforme o seu select, ai para funcionar o que vc faria:

     passar o select formatado com parametro

    ou deixar o select salvo em um lugar no bd, por exemplo,

    e passar um 'id' para ele ir pegar o select para o determinado caso.

    preferimos manipular as Strings pois trabalhar com texto é muito mais flexivel e possui diversos métodos de trabalhar.

    Espero ajudar,  duvida estamos ae

    Abraços ;)

    Thursday, January 31, 2013 7:56 PM
  • Cara você pode fazer assim. No seu formulário de pesquisa adicione um objeto do tipo form, e de um overload em seu construtor (utilizei nomes bobos pra explicar melhor):

    Form formQueChamou;
    
    Public FormDePesquisa(Form formQueChamou)
    {
        this.formQueChamou = formQueChamou;
        InitializeComponent();
        //resto de seu construtor....
    }

    Agora em seus outros forms, toda vez que for chamar o form de pesquisa você passa o própio formulário como parâmetro:

    FormDePesquisa frmDePesquisa = new FormDePesquisa(this);
    frmDePesquisa.Show();

    Sendo assim, o objeto formQueChamou do seu formulário de pesquisa será uma referência do formulário que o abriu, logo você poderá enviar as informações através dele.

    Espero que tenha sido claro, qualquer coisa pergunta ai!


    Ao infinito e além!

    Friday, February 08, 2013 7:11 PM
  • Parece que este tópico ficou pendente então montei um exemplo na galeria para você conseguir dinamizar seus formulários de pesquisa Clique Aqui

    espero que ajude =D

    abraços

    Tuesday, February 12, 2013 5:07 PM