segunda-feira, 30 de maio de 2011

Sistema de Ordem de Serviço em C# - SQL Server e Crystal Reports Parte XI

10. Tela Principal

Modifique as propriedades a seguir:
Propriedades
Valores
BackgroundImage
Escolha uma imagem de Plano de Fundo
IsMdiContainer
True
Size
1024; 785
StartPosition
CenterScreen
Text
Tela Principal

Adicione ToolBox >Menu & Toolbars > MenuStrip. Como na imagem:









Crie um sub Menu para o Cadastro como na imagem:

















Ao lado do Menu Cadastro existe um Texto chamado de Type Here clique nele e adicione o menu e o sub Menu como na imagem abaixo:














Adicione o componente chamado ToolBox > ToolStrip. Como na imagem:






Clique na Seta para baixo e adicione 4 Button chamado de:

Name Padrão
Modificar name Para
DisplayStyle
TextImageRelation
Text
toolStripButton1
tsbCliente
Image and Text
ImageAboveText
Cliente
toolStripButton2
tsbServico
Image and Text
ImageAboveText
Serviço
toolStripButton3
tsbOS
Image and Text
ImageAboveText
Ordem de Serviço
toolStripButton4
tsbLogoff
Image and Text
ImageAboveText
Logoff


Adicione as imagens de cada botão pela propriedade Image:
O Seu ToolStrip poderá ter ficado assim:




Caso as imagens estiverem pequenas desative(none) a propriedade ImageScaling.
Atenção: Essa propriedade desativar o tamanho padrão das imagens ser você colocar uma imagem com resolução muito grande ira ficar feio, portanto coloque resolução de ate 32x32 no seu projeto.

Arraste o componente chamado ToolBox>StatusStrip. Como na imagem:











Clique na seta para baixo e adicione 5 StatusLabel com as propriedades a seguir






Name Padrão
Modificar name Para
BorderSides
Text
toolStripStatusLabel1
tsslUsuario
Right
Vazio
toolStripStatusLabel2
tsslIP
Right
Vazio
toolStripStatusLabel3
tsslNomePC
Right
Vazio
toolStripStatusLabel4
tsslData
Right
Vazio
toolStripStatusLabel5
tsslHora
Right
Vazio

O StatusStrip ficara assim:





Clique duas vezes no formulário para abrir o event Load e insira o código a seguir:
//Nível de Acesso: Ser o usuario for Operador o formulario estara invisivel
            if (frmLogin.NivelAcesso == "Operador")
            {
                //Nível de Operador não podera cadastrar usuário
                usuárioToolStripMenuItem.Visible = false;
            }

            //Mostrar o usuário conectado
            tsslUsuario.Text = "Usuário: " + frmLogin.usuarioConectado;

            //Mostra o nome do PC
            string myHost = System.Net.Dns.GetHostName();
            tsslNomePC.Text = "Nome do PC: " + myHost;

            //Mostrar o IP do usuário
            System.Net.IPHostEntry myIPs = System.Net.Dns.GetHostEntry(myHost);
            foreach (System.Net.IPAddress myIP in myIPs.AddressList)
            {
                //Mostar o IP
                tsslIP.Text = "IP: " + myIP;

            }

Insira o Componente Timer modifique as propriedades (Enable para True e Interval para 1000) e clique duas vezes nele e adicione o trecho de código a seguir:
//Mostrar a Hora
            tsslData.Text = DateTime.Now.ToString("HH:mm");

Clique duas vezes no menu Cadastro> Usuário e insira o código abaixo:
  try
            {
                formulario.frmUsuario usuario = null; // form a ser aberto

                //procura form na relação de forms filhos
                foreach (Form frm in this.MdiChildren)
                {
                    //se encontrou inicializa instancia de frmUsuario com o form ja aberto
                    if (frm is formulario.frmUsuario)
                    {
                        usuario = (formulario.frmUsuario)frm;
                        break;
                    }
                }
                // se não encontrou na relação, instancia objeto, "seta"  form pai e exibe form
                if (usuario == null)
                {
                    usuario = new formulario.frmUsuario();
                    usuario.MdiParent = this;
                    usuario.Show();
                }
                //garante que ele fique em foco caso haja outros forms abertos
                usuario.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no menu Cadastro > Cliente e insira o Código a seguir:
   try
            {
                frmCliente cliente = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is frmCliente)
                    {
                        cliente = (frmCliente)frm;
                        break;
                    }
                }
                if (cliente == null)
                {
                    cliente = new frmCliente();
                    cliente.MdiParent = this;
                    cliente.Show();
                }
               
                cliente.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no menu Cadastro> Serviço e adicione o Código a seguir:
try
            {
                formulario.frmServico servico = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is formulario.frmServico)
                    {
                        servico = (formulario.frmServico)frm;
                        break;
                    }
                }
                if (servico == null)
                {
                    servico = new formulario.frmServico();
                    servico.MdiParent = this;
                    servico.Show();
                }

                servico.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no menu Cadastro > Ordem de Serviço e adicione o código a seguir:
try
            {
                frmOS os = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is frmOS)
                    {
                        os = (frmOS)frm;
                        break;
                    }
                }
                if (os == null)
                {
                    os = new frmOS();
                    os.MdiParent = this;
                    os.Show();
                }

                os.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no menu Relatório > Cliente e adicione o código a seguir:
  try
            {
                frmRelCliente relcliente = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is frmRelCliente)
                    {
                        relcliente = (frmRelCliente)frm;
                        break;
                    }
                }
                if (relcliente == null)
                {
                    relcliente = new frmRelCliente();
                    relcliente.MdiParent = this;
                    relcliente.Show();
                }

                relcliente.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no menu Relatório > Serviço e adicione o código a seguir:
try
            {
                frmRelServico relServico = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is frmRelServico)
                    {
                        relServico = (frmRelServico)frm;
                        break;
                    }
                }
                if (relServico == null)
                {
                    relServico = new frmRelServico();
                    relServico.MdiParent = this;
                    relServico.Show();
                }

                relServico.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no menu Relatório > Ordem de Serviço e adicione o código a seguir:
try
            {
                frmRelOS relOS = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is frmRelOS)
                    {
                        relOS = (frmRelOS)frm;
                        break;
                    }
                }
                if (relOS == null)
                {
                    relOS = new frmRelOS();
                    relOS.MdiParent = this;
                    relOS.Show();
                }

                relOS.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no toolStrip1 > Cliente e insira o Código:
   try
            {
                frmCliente cliente = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is frmCliente)
                    {
                        cliente = (frmCliente)frm;
                        break;
                    }
                }
                if (cliente == null)
                {
                    cliente = new frmCliente();
                    cliente.MdiParent = this;
                    cliente.Show();
                }
               
                cliente.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no toolStrip1 > Serviço e insira o Código:
try
            {
                formulario.frmServico servico = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is formulario.frmServico)
                    {
                        servico = (formulario.frmServico)frm;
                        break;
                    }
                }
                if (servico == null)
                {
                    servico = new formulario.frmServico();
                    servico.MdiParent = this;
                    servico.Show();
                }

                servico.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no toolStrip1 > Ordem de Serviço e insira o Código:
try
            {
                frmOS os = null;
                foreach (Form frm in this.MdiChildren)
                {
                    if (frm is frmOS)
                    {
                        os = (frmOS)frm;
                        break;
                    }
                }
                if (os == null)
                {
                    os = new frmOS();
                    os.MdiParent = this;
                    os.Show();
                }

                os.Focus();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível ser conectar ao formulário devido ao erro: " + ex.Message,
                    "Aviso",–
                        MessageBoxButtons.OK,
                            MessageBoxIcon.Information);
            }

Clique duas vezes no menu Cadastro > Sair e adicione o código a seguir:
Application.Exit();
Entre no event do Formulario Tela Principal e clique na propriedade FormClosed e adicione o código a seguir:
Application.Exit();



Termina o Formulário Principal. Na Próxima Parte estaremos desenvolvendo os Relatórios
By: Natanael

9 comentários:

  1. Amigo NATANAEL
    eu estou com um Problema
    eu nao sei um jeito de coloca a tela de Slash depois a do Logim e a do Sistema
    qual tela eu coloco pra o sistema Inicializar ?

    Att
    Caio Bachi
    caio.bachi@gmail.com

    ResponderExcluir
  2. Primeiro inicializa com a tela de login. Porque a tela de login tem um método que inicializar primeiro a tela de splash e depois a tela de login.

    By: Natanael

    ResponderExcluir
  3. mas se eu colocar o logim de começo
    o usuario vai fechar a tela no sistema e a do logim vai ta aberta ok ?

    ResponderExcluir
  4. Natanael, boa noite

    Amigo, não consegui encontrar o código para inclementar o toolStrip (logoff), para trocarmos de usuário sem necessidade de fechar o aplicativo. se possivel posta ai pra gente.

    ResponderExcluir
  5. e verdade. Desculpe.
    Segue o código pra logoff:

    string mensagem = "Que realmente fazer Logoff?";
    if (MessageBox.Show(mensagem,"Aviso",MessageBoxButtons.YesNo,MessageBoxIcon.Information) == DialogResult.Yes)
    {
    this.Hide();
    frmLogin login = new frmLogin();
    login.Show();

    }

    ResponderExcluir
  6. Natanal bom dia,

    Desculpe a ignorancia, mais é que estou aprendendo ainda com seus tutoriais a programar, fiz a chamada do login pelo botao logoff, deu tudo certo, eu tentei fazer com que ele chamasse a tela de login sem carregar a tela de splash quando usar este botão.

    Grato

    Uélisson

    ResponderExcluir
  7. natanael, sabe me dizer pq esta aparecendo esta mensagem qdo tento abrir as telas..segue o erro "form that was specified to be MdiParent for this form is not an MdiContainer
    parameter name value"

    nao criei os relatorios, so criei os formulario de relatorio, pode ser por isso??

    ResponderExcluir
  8. caro amigo fica dando erro no formulario.

    ResponderExcluir