none
Não consigo chamar uma função de dentro da minha classe RRS feed

  • Pergunta

  • Boa Tarde Pessoal,

    Tenho essa classe abaixo e não consigo ver minha função verificaErros chamando de uma tela qualquer.
    Alguém sabe me dizer o pq disso?

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    
    namespace ImpressoraBematech
    {
      
      public class BemaFI32
      {
        public BemaFI32()
        {
        }
    
        public string verificaErros(ref string r_DescricaoErros, int p_Retorno)
        {
          string v_StringErro = "";
    
          if (p_Retorno == 0)
            v_StringErro = v_StringErro + "- Erro de comunicação./n";
          else if (p_Retorno == 3)
            v_StringErro = v_StringErro + "- Não foi possível criar arquivo TXT./n";
          else if (p_Retorno == 4)
            v_StringErro = v_StringErro + "- Data informada inválida./n";
          else if (p_Retorno == -1)
            v_StringErro = v_StringErro + "- Erro de execução da função./n";
          else if (p_Retorno == -2)
            v_StringErro = v_StringErro + "- Parâmetro inválido na função executada./n";
          else if (p_Retorno == -3)
            v_StringErro = v_StringErro + "- Alíquota não programada./n"; //ERRO IRRECUPERAVEL
          else if (p_Retorno == -4)
            v_StringErro = v_StringErro + "- O arquivo de inicialização BEMAFI32.INI não foi encontrado no diretório de sistema do Windows./n";
          else if (p_Retorno == -5)
            v_StringErro = v_StringErro + "- Erro ao abrir a porta de comunicação./n";
          else if (p_Retorno == -6)
            v_StringErro = v_StringErro + "- Impressora desligada ou cabo de comunicação desconectado./n";
          else if (p_Retorno == -7)
            v_StringErro = v_StringErro + "- Banco não encontrado no arquivo BemaFI32.ini./n";
          else if (p_Retorno == -8)
            v_StringErro = v_StringErro + "- Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT/n";
          else if (p_Retorno == -9)
            v_StringErro = v_StringErro + "- Erro ao fechar porta/n";
          else if (p_Retorno == -19)
            v_StringErro = v_StringErro + "- Parâmetros diferentes/n"; //ERRO IRRECUPERAVEL
          else if (p_Retorno == -22)
            v_StringErro = v_StringErro + "- Não foi possível terminar a impressão/n";
          else if (p_Retorno == -23)
            v_StringErro = v_StringErro + "- Não foi possível terminar a operação/n";
          else if (p_Retorno == -24)
            v_StringErro = v_StringErro + "- Forma de pagamento não programada/n"; // ERRO IRRECUPERAVEL
          else if (p_Retorno == -25)
            v_StringErro = v_StringErro + "- Totalizador não fiscal não programado/n"; //ERRO IRRECUPERAVEL
          else if (p_Retorno == -27)
            v_StringErro = v_StringErro + "- Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)/n";
          else if (p_Retorno == -30)
            v_StringErro = v_StringErro + "- Função não compatível com a impressora YANCO/n"; //ERRO IRRECUPERAVEL
          else if (p_Retorno == -33)
            v_StringErro = v_StringErro + "- Condição de alívio de prato (para modelos CS) ou peso negativo (para modelos BP)./n";
          else if (p_Retorno == -34)
            v_StringErro = v_StringErro + "- Peso instável./n";
          else if (p_Retorno == -35)
            v_StringErro = v_StringErro + "- Peso excedido./n";
          else if (p_Retorno == -36)
            v_StringErro = v_StringErro + "- Forma de pagamento não finalizada/n"; //ERRO IRRECUPERAVEL
          else
            v_StringErro = v_StringErro + "- Erro " + p_Retorno.ToString() + ": Erro desconhecido./n";
    
          return r_DescricaoErros;
        }
      }
    }
    
    Obrigado.
    Att Cristiano Kelsch
    quarta-feira, 16 de março de 2011 16:46

Respostas

  • Sua função esta dentro de uma classe dentro desse namespace: ImpressoraBematech. Se você deseja chamar essa função em uma classe com namespace diferente você precisa referencia-la.

    EX:

    ImpressoraBematech.BemaFI32.verificaErros

    Uma das possiveis cuasas é essa.

    O seu metodo não está declarado como estático, portanto, só pode ser chamado por uma instancia.
    Para que do jeito em que se encontra você possa simplismente chama-lo, deve ser feito dessa forma: 

    ImpressoraBematech.BemaFI32 bemaObj = new ImpressoraBematech.BemaFI32();
    
    bemaObj.verificaErros(...);

    O que é desnecessário, pois apesar de não estar declarado como tal, o seu metodo é. Para resolver isso, e fazer a chamada da forma proposta pelo Guilherme Ferreira, adicione a palavra chave static na declaração do seu metodo, vai ficar assim:

    public static string verificaErros(ref string r_DescricaoErros, int p_Retorno)
    
    
    Espero ter ajudado ;}
    Qualquer duvida, posta ae.
    • Sugerido como Resposta Kelsch quarta-feira, 16 de março de 2011 18:03
    • Marcado como Resposta Harley AraujoModerator segunda-feira, 21 de março de 2011 12:22
    quarta-feira, 16 de março de 2011 17:32

Todas as Respostas

  • Sua função esta dentro de uma classe dentro desse namespace: ImpressoraBematech. Se você deseja chamar essa função em uma classe com namespace diferente você precisa referencia-la.

    EX:

    ImpressoraBematech.BemaFI32.verificaErros

    Uma das possiveis cuasas é essa.

    quarta-feira, 16 de março de 2011 17:08
  • Sua função esta dentro de uma classe dentro desse namespace: ImpressoraBematech. Se você deseja chamar essa função em uma classe com namespace diferente você precisa referencia-la.

    EX:

    ImpressoraBematech.BemaFI32.verificaErros

    Uma das possiveis cuasas é essa.

    O seu metodo não está declarado como estático, portanto, só pode ser chamado por uma instancia.
    Para que do jeito em que se encontra você possa simplismente chama-lo, deve ser feito dessa forma: 

    ImpressoraBematech.BemaFI32 bemaObj = new ImpressoraBematech.BemaFI32();
    
    bemaObj.verificaErros(...);

    O que é desnecessário, pois apesar de não estar declarado como tal, o seu metodo é. Para resolver isso, e fazer a chamada da forma proposta pelo Guilherme Ferreira, adicione a palavra chave static na declaração do seu metodo, vai ficar assim:

    public static string verificaErros(ref string r_DescricaoErros, int p_Retorno)
    
    
    Espero ter ajudado ;}
    Qualquer duvida, posta ae.
    • Sugerido como Resposta Kelsch quarta-feira, 16 de março de 2011 18:03
    • Marcado como Resposta Harley AraujoModerator segunda-feira, 21 de março de 2011 12:22
    quarta-feira, 16 de março de 2011 17:32
  • Obrigado a todos.
    quarta-feira, 16 de março de 2011 18:03