Ir para conteúdo
rtavix

[Resolvido] Erro no log de mensagem para usuário

Recommended Posts

Ao compilar meu código o mesmo me retorna o seguinte erro de log:

 

O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula H referente a linha 1 está em um formato incorreto. Favor corrigir a planilha. 

 

Entretanto o mesmo mostra linha 1 por diversas vezes, o certo era receber linha 1, linha 2, linha 3 assim por diante, alguém pode me ajudar por gentileza?

 

Segue meu código abaixo:

 private Interessado setInteressado(DataRow linha)
        {
            if (!linha.ItemArray[12].ToString().Equals(""))
                interessado.Cep = linha.ItemArray[12].ToString();
            if (!linha.ItemArray[7].ToString().Equals(""))
                if (linha.ItemArray[7].ToString().Length == 14)
                {
                    interessado.CPF_CNPJ = AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString());
                    interessado.Tipo = 1;
                }
                else if (linha.ItemArray[7].ToString().Length == 18)
                {
                    interessado.CPF_CNPJ = AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString());
                    interessado.Tipo = 2;
                }
                else
                {
                    int i = 0; 
                    i = i + 1; //uso para receber a proxima linha
                    log.Append("O CPF/CNPJ informado na célula H referente a linha " + (i) + " está em um formato incorreto. Favor corrigir a planilha. <br>");
                    arquivoInvalidado = true;
                }
            
            return interessado;
        }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu te disse em outro tópico, sua lógica aqui não faz sentido algum. Esse código vai sempre dar 1:

int i = 0; 
i = i + 1; //uso para receber a proxima linha

Você terá que informar o número da linha quando chamar o método:

private Interessado setInteressado(DataRow linha, int indiceLinha)

E no seu else:

 

else 
{ 
log.Append("O CPF/CNPJ informado na célula H referente a linha " + indiceLinha.ToString() + " está em um formato incorreto. Favor corrigir a planilha. <br>"); 
arquivoInvalidado = true; 
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 4/16/2018 at 08:50, quintelab disse:

Eu te disse em outro tópico, sua lógica aqui não faz sentido algum. Esse código vai sempre dar 1:


int i = 0; 
i = i + 1; //uso para receber a proxima linha

Você terá que informar o número da linha quando chamar o método:


private Interessado setInteressado(DataRow linha, int indiceLinha)

E no seu else:

 


else 
{ 
log.Append("O CPF/CNPJ informado na célula H referente a linha " + indiceLinha.ToString() + " está em um formato incorreto. Favor corrigir a planilha. <br>"); 
arquivoInvalidado = true; 
}

 

Oi amigo, então segui tua orientação e alterei conforme na imagem abaixo:

 

Alteração 1.jpg

Alteração 2.jpg

 

Daí quando realizo a alteração amigo, dentro do meu método de Verificação preliminar, me retorna erro na linha setInteressado(linha); informando que :

No overload for methodo 'setInteressado' takes 1 arguments

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 minutos atrás, quintelab disse:

Agora você precisa informar o indice da linha pro seu método. Qual a parte do código que chama esse método ?

Então, apos a sua sugestão e aplicada, no meu método abaixo:

 

 private void VerificacaoPreliminar(IEnumerable<DataRow> dados)
        {
            int i = 0;

            bool importado = false;
            foreach (var linha in dados)
            {
                i = i + 1;
                //Verifica se nenhuma planilha com o numSEP informado já não foi importada                
                if (!linha.ItemArray[17].ToString().Equals(""))
                {
                    if (aplProcessoInteressado.listaProcInterPorCodSep(decimal.Parse(linha.ItemArray[17].ToString())).Count != 0)
                    {
                        importado = true;
                        break;
                    }
                }
                else
                {
                    log.Append("A célula S referente a linha " + (i) + " deve ser preenchida. <br>");
                    arquivoInvalidado = true;
                }

                if (!importado)
                {
                    //Validação de campos obrigatórios                
                    if (linha.ItemArray[6].ToString().Equals(""))
                    {

                        log.Append("A célula G referente a linha " + (i) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    if (linha.ItemArray[7].ToString().Equals(""))
                    {
                        log.Append("A célula H referente a linha " + (i) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    if (linha.ItemArray[14].ToString().Equals(""))
                    {
                        log.Append("A célula O referente a linha " + (i) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }

                    //Valida se pelo menos uma das colunas de NumProcesso está preenchida
                    if (linha.ItemArray[1].ToString() == "" && linha.ItemArray[2].ToString() == "")
                    {
                        log.Append("A célula B referente a linha " + (i) + " e / ou célula C referente a linha " + (i) + " devem estar preenchidas. <br>");
                        arquivoInvalidado = true;
                    }

                    //Valida se a vara e comarca estão preenchidas no arquivo                                 
                    if (linha.ItemArray[3].ToString().Equals(""))
                    {
                        log.Append("A célula D referente a linha " + (i) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    if (linha.ItemArray[5].ToString().Equals(""))
                    {
                        log.Append("A célula F referente a linha " + (i) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    //Valida a consistencia da vara, comarca e numvara.
                    if (!linha.ItemArray[3].ToString().Equals("") &&
                        !linha.ItemArray[5].ToString().Equals(""))
                    {
                        List<VaraExecucao> listaVaraComarca = aplVaraExecucao.Consultar---omeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim());
                        if (listaVaraComarca.Count == 0)
                        {
                            log.Append("No sistema não existe vara de execução associada a comarca informada na linha " + (i) + ". Favor corrigir o sistema. <br>");
                            arquivoInvalidado = true;
                        }
                        else
                        {
                            VaraExecucao vara = new VaraExecucao();
                            if (linha.ItemArray[4].ToString().Equals(""))
                            {
                                vara = listaVaraComarca.Find(o => o.NumeroVara == null);
                            }
                            else
                            {
                                vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim()));
                            }
                            if (vara == null || vara.Codigo == 0)
                            {
                                log.Append("O número da vara informado na célula E referente a linha " + (i) + " não corresponde a vara e comarca informada. Favor corrigir o sistema ou a planilha. <br>");
                                arquivoInvalidado = true;
                            }
                        }
                    }

                    setInteressado(linha);// Dá erro aqui

                }
            }
            if (importado)
            {
                log.Append("Uma planilha com o Nº SEP informado já foi importada. <br>");
                arquivoInvalidado = true;
            }
        }

Dá o erro no setInteressado após a alteração, dizendo que o nome indiceLinha não existe no current context.

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 minutos atrás, quintelab disse:

Basta você passar o número da sua linha pra esse método.

 


setInteressado(linha, i);// Dá erro aqui

Dica: procure algum curso de c#
Algumas video aulas vão te ajudar com alguns pontos básicos.

Brother, como eu disse eu sou iniciante, estou me esforçando, irei começar um cursinho no senac o mês que vem, mas te agradeço ai pelas dicas, mas gostaria de informar que já consegui resolver. Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por laumello12
      Galera ajudinha
      Como faço para consumir um web service pronto em um projeto. Preciso só que ele busque no web service e traga na web 
      HELP
    • Por laumello12
      Galera ajudinha
      Como faço para consumir um web service pronto em um projeto. Preciso só que ele busque no web service e traga na web 
      HELP
    • Por ValérinhaSilva255
      Precisamos criar um teatro, onde utilizaremos os conceitos de uma matriz em C#. Esta matriz, deverá ter, no máximo, 150 lugares.

      O programa deverá reservar uma poltrona, cobrando para isso do usuário 40% do valor total do ingresso, que deverá ser informado na tela inicial do programa.

      Quando ocupada uma poltrona, o usuário poderá pagar 60% ou 100% do valor total (caso esteja ou não reservada anteriormente). No caso de desmarcação de reserva, deverá ser devolvido 50% do valor da reserva (portanto, 20% do valor total do ingresso).

      O programa poderá ocupar, reservar, liberar poltronas.
      Um espetáculo somente poderá acontecer se a arrecadação total for maior ou igual a 51% do valor total do teatro. 

      Quando o teatro for fechado, pede-se para que se informe:
      Total de Lugares reservados: XX
      Valor total das reservas: R$00,00
      Total de Lugares Ocupados: YY
      Valor total de Ocupantes: R$00,00
      Total de Lugares Livres: ZZ

      Mínimo para realização do Evento: R$999,99. Valor Total Arrecadado: R$989,00
      Se o valor arrecadado for MAIOR que 51% do mínimo para realização, deverá ACONTECER o espetáculo, caso contrário, mostrar quantos locais ainda precisariam ser ocupados, da seguinte forma: Precisaríamos de 10 lugares Ocupados ou 30 lugares reservados para que o espetáculo pudesse ocorrer.

      O visitante deverá ter o “mapa” de cadeiras a sua disposição.

      O visitante irá escolher sua posição informando fileira e cadeira desejada.
      EXEMPLO DE EXECUÇÃO
      PREÇO DO INGRESSO: R$100,00

      ***** ***** ****** Mapa do Teatro ***** ***** *****

      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

      ***** ***** ****** Mapa do Teatro ***** ***** *****

      O que você deseja fazer?
      [0] - Finalizar o programa
      [1] - Abrir Espetáculo
      [2] - Reservar uma poltrona
      [3] - Liberar poltrona reservada
      [4] - Vender poltrona
      [7] - Finalizar vendas
      [9] - Parciais do Espetáculo

      Resumo das Operações:
      0 - Finaliza o programa e retorna para o sistema operacional.
      1 - Libera a sala do teatro, para que o programa possa ser executado outras vezes, para outros espetáculos (Zera todas as variáveis).
      2 - Reservar poltrona (Cobrar 40% do valor do ingresso)
      3 - Liberar poltrona reservada (Devolve 20% do valor do ingresso)
      4 - Vender poltrona (Recebe valor integral do ingresso - 100%)
      7 - Finalizar vendas (listar todos os resultados)
      9 - Parciais (saber quanto esta pago em cada situação. Reservas, vendas, etc.) Pode ser solicitado a qualquer momento.
    • Por Fiori
      Eu, estou cursando SI, e estou no primeiro semestre, o professor passou uma lista de exercícios, consegue resolver todos mas quando cheguei nesse não consigo resolver.
      O exercício é esse:  "Entrar via teclado com o sexo de determinado usuário, aceitar somente “F” ou “M” como respostas válidas.".
      Independente se a resposta for "F", "f", "M", "m" ou qualquer outra o loop do Do se repete. Oque preciso fazer para acontecer o if?
      string genero; Console.Clear(); Console.WriteLine("Caso seja mulher, digite [F]."); Console.WriteLine("Caso seja homem, digite [M]."); genero = Console.ReadLine(); do { Console.WriteLine("Valor invalido."); Console.WriteLine("Digite [F] ou [M]."); genero = Console.ReadLine(); } while (genero != "F" || genero != "M"); if (genero == "F" || genero == "M") { Console.WriteLine("Esse valor foi aceito."); Console.ReadKey(); }
       
    • Por Jonathacsantos
      Boa tarde, sou novo na programação, comecei por conta própria e agora estou com um pequeno problema, meu programa depende de uma pasta criada pra executar um .exe que fica dentro de uma outra pasta, sendo que eu preciso que ele leia o .exe independente de onde ele fica instalado, vou mostrar uma parte do código para tentar explicar 
      private void AcessRemo_Click(object sender, EventArgs e) { foreach ( var process in Process.GetProcessesByName("TeamViewer")) { process.Kill(); } Process.Start("C:\\Teste\\suporteremoto.exe"); ele fecha um teamviewer em execução e executa uma versão especifica do teamviewer, sendo que nos meus testes funciona pq eu tenho essa pasta ai chamada teste, mas o programa instala em Program Files, sendo que se for 64, ele vai pra Program Files (x86), dai gostaria de fazer ele ler, tipo um [LocalPath] , mas não sei como , se alguem puder me ajudar ou me da uma luz eu agradeço muito.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.