Jump to content
rtavix

[Resolvido] Problemas com log de erro

Recommended Posts

Estou com problemas para disparar o log para o usuário, no meu código anterior estava dessa forma e funcionava:

 

private void VerificacaoPreliminar(int count, DataSet ds)
{         
    bool importado = false;
    for (int i = 5; i < count; i++)
    {
        //Verifica se nenhuma planilha com o numSEP informado já não foi importada                
        if (!ds.Tables[0].Rows[i].ItemArray[17].ToString().Equals(""))
        {
            if (aplProcessoInteressado.listaProcInterPorCodSep(decimal.Parse(ds.Tables[0].Rows[i].ItemArray[17].ToString())).Count != 0)
            {
                importado = true;
                break;
            }
        }
        else
        {
            log.Append("A célula S" + (i + 1) + " deve ser preenchida. <br>");
            arquivoInvalidado = true;
        }
    }
}

 

E por devidas mudanças acabou que ficou dessa forma:

private void VerificacaoPreliminar(IEnumerable<DataRow> dados)
{
    bool importado = false;
    foreach(var linha in dados)
    {
        //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" + (1) + " deve ser preenchida. <br>");
            arquivoInvalidado = true;
        }
    }
}

 

Entretanto o log exibido para o usuário acabou saindo incorretamente dessa forma:

Log de Importação: No sistema não existe vara de execução associada a comarca informada na linha 1. Favor corrigir o sistema. No sistema não existe vara de execução associada a comarca informada na linha 1. Favor corrigir o sistema.

Alguém por favor sabe uma outra forma que eu venha corrigir isto?

Share this post


Link to post
Share on other sites

O que precisa ser corrigido ? Esse log que você postou: 

 

10 horas atrás, rtavix disse:

Log de Importação: No sistema não existe vara de execução associada a comarca informada na linha 1. Favor corrigir o sistema. No sistema não existe vara de execução associada a comarca informada na linha 1. Favor corrigir o sistema.

 

Não é criado nessa parte do código. Deve vir de outro lugar. Não esta claro o que deve ser corrigido.

Share this post


Link to post
Share on other sites
4 horas atrás, quintelab disse:

O que precisa ser corrigido ? Esse log que você postou: 

 

 

Não é criado nessa parte do código. Deve vir de outro lugar. Não esta claro o que deve ser corrigido.

Na verdade quintelab, eu vou te explicar de forma mais clara, exemplo eu fiz uma alteraçãono log aqui no código, colocando dessa forma:

 log.Append("O CPF/CNPJ informado na célula H" + linha + " está em um formato incorreto. Favor corrigir a planilha. <br>");

porém ao visualizar o log, apresenta- se o seguinte erro, que por sinal sem padrão com o que eu quero, segue o resultado:

Citar
Log de Importação:
 

O CPF/CNPJ informado na célula HSystem.Data.DataRow está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula HSystem.Data.DataRow está em um formato incorreto. Favor corrigir a planilha. 
O CPF/CNPJ informado na célula HSystem.Data.DataRow está em um formato incorreto. Favor corrigir a planilha. 

Só é esse problema que estou empacado. sou novato, estou pegando aos poucos as coisas. 

Share this post


Link to post
Share on other sites

Um DataRow possui linhas e colunas, você precisa informar qual coluna deseja exibir na mesagem.

 

Deveria ser:

 

log.Append("O CPF/CNPJ informado na célula H" + linha["NOME_DO_CAMPO"] + " está em um formato incorreto. Favor corrigir a planilha. <br>");


No seu código tem um exemplo:

 

if (!linha.ItemArray[17].ToString().Equals(""))

Repara que no código acima esta acessando a coluna 17 da linha.

  • +1 1

Share this post


Link to post
Share on other sites
5 horas atrás, quintelab disse:

O que precisa ser corrigido ? Esse log que você postou: 

 

 

Não é criado nessa parte do código. Deve vir de outro lugar. Não esta claro o que deve ser corrigido.

 

Esta sendo criado aqui:

//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 " + linha + ". 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" + ( 1) + " não corresponde a vara e comarca informada. Favor corrigir o sistema ou a planilha. <br>");
                                arquivoInvalidado = true;
                            }
                        }
                    }

 

Share this post


Link to post
Share on other sites
12 minutos atrás, quintelab disse:

Um DataRow possui linhas e colunas, você precisa informar qual coluna deseja exibir na mesagem.

 

Deveria ser:

 


log.Append("O CPF/CNPJ informado na célula H" + linha["NOME_DO_CAMPO"] + " está em um formato incorreto. Favor corrigir a planilha. <br>");


No seu código tem um exemplo:

 


if (!linha.ItemArray[17].ToString().Equals(""))

Repara que no código acima esta acessando a coluna 17 da linha.

Esse :

["NOME_DO_CAMPO"]

Seria o que exatamente?

Share this post


Link to post
Share on other sites
2 horas atrás, quintelab disse:

É você que tem que responder isso.

 

Aí você deve colocar o nome do campo que você precisa exibir no log.

 

Isso é bem básico, se esta perdido, deveria ir no google e pesquisar sobre c# + DataRow e entender como funciona.

Amigo, resolvi da seguinte maneira:

int i=0;

i = i+1;

e por fim passei logErro.Append("A célula S" + (i) + " deve estar preenchida com uma data. <br>"); por exemplo, e funcionou. Se eu passasse a linha, ao compilar, retornava as propriedades.

Mas deu certo. muito obrigado.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Darwin Osi
      Estou com o Visual Studio 2013 instalado sob o Windows 10. Quando tento abrir o primeiro projeto do livro supracitado, chamado Music Trivia, o Visual Studio 2013 montra na janela Solution Express a mensagem:
       
      > Solution 'Music Trivia' (0 projects)
          > Music Trivia (Windows 8.1 required)
              > This computer must be upgraded to Windows 8.1 to load this project.
       
      Como resolver isso e carregar esse e os outros projetos do livro? Desde já agradeço qualquer ajuda.
    • By lsramos
      Tenho um DataGridView que exibe uma tabela do banco de dados. Até aí tudo bem :)
      A questão é que o cabeçalho (primeira linha do DataGrid) traz o nome das colunas da tabela do banco (exemplo: matricula, nome, data_nascimento, etc).
      Eu queria saber se é possível, até para melhor visualização, que eu personalizasse esse cabeçalho sem alterar do banco.
      Algo como inserir no DataGrid o nome das colunas e exportar do banco de dados sem o nome da coluna.
    • By eduarda_dasilveira
      O sistema deverá, utilizando a linguagem C, receber 6 apostas (6 números cada
      aposta no intervalo de 1 a 60) e armazenar estas informações em uma matriz quadrada de
      ordem 6. Um vetor chamado vetGabarito  deve armazenar 6 números, que são os gabaritos
      da aposta.
      Com a matriz de apostas preenchidas, o sistema deverá:
      a. Mostrar a soma da diagonal principal da matriz de apostas.
      b. Transferir todas as apostas para vetores de inteiros de 6 posições.
      c. Indicar quantos números pares e ímpares foram apostados.
      d. Indicar quantos acertos o jogador obteve para cada conjunto de aposta.
       
      Estou com dificuldade de fazer letra d.
      Meu código esta ai mas esta dando erro (mostrando a quantidade errada de acertos) na parte da letra d.
      #include <stdio.h> #include <time.h> #include <conio.h> #include <stdlib.h> int main (void){ int mat [6][6], vetGabarito[6], vet1[6], vet2[6], vet3[6], vet4[6], vet5[6], vet6[6], l, c, soma_diagonal=0, impar=0, par=0; srand (time (NULL)); for (l=0; l<6; l++){ for (c=0; c<6; c++){ printf ("Digite a sua aposta de 1 a 60:"); scanf ("%d", &mat [l][c]); } } for (l=0; l<6; l++){ for (c=0; c<6; c++){ printf (" %d", mat [l][c]); } printf ("\n"); } for (l=0; l<6; l++){ for (c=0; c<6; c++){ if (l==c){ soma_diagonal=soma_diagonal+mat[l][c]; } } } for (c=0; c<6; c++){ vet1[c]= mat [0][c]; vet2[c]= mat [1][c]; vet3[c]= mat [2][c]; vet4[c]= mat [3][c]; vet5[c]= mat [4][c]; vet6[c]= mat [5][c]; printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet1[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet2[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet3[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet4[c]); printf ("Apostas do jogador na rodada [%d] e %d\n", c, vet5[c]); printf ("Aposta do jogador na rodada [%d] e %d\n", c, vet6[c]); } for (l=0; l<6; l++){ for (c=0; c<6; c++){ if ((mat[l][c]%2)==0){ par++; } else { impar++; } } } srand (time (NULL)); for (c=0;c<6;c++){ vetGabarito[c]=rand()%10; } for (c=0; c<6; c++){ printf (" %d", vetGabarito[c]); printf ("\n"); } for (c=0; c<6; c++){ vet1[0]==vetGabarito[c]; vet2[1]==vetGabarito[c]; vet3[2]==vetGabarito[c]; vet4[3]==vetGabarito[c]; vet5[4]==vetGabarito[c]; vet6[5]==vetGabarito[c]; } printf ("A soma da diagonal da matriz e: %d\n", soma_diagonal); printf ("A quantidade de numeros pares foi %d, e de numeros impares foi %d\n", par, impar); printf ("O jogador na primeira rodada teve %d de acertos.\n", vet1[0]); printf ("O jogador na segunda rodada teve %d de acertos.\n", vet2[1]); printf ("O jogador na terceira rodada teve %d de acertos.\n", vet3[2]); printf ("O jogador na quarta rodada teve %d de acertos.\n", vet4[3]); printf ("O jogador na quinta rodada teve %d de acertos.\n", vet5[4]); printf ("O jogador na sexta rodada teve %d de acertos.\n", vet6[5]); return 0; }  
    • By Davi DEVV
      Faça um algoritmo que (utilize funções com ponteiros):
      - Tenha um menu que permita entrar nas funções inserir e buscar, ao selecionar a função inserir, insira somente um funcionário por vez, voltando ao menu principal.
      - Tenha uma estrutura para armazenar, nome, número do cartão e setor de um funcionário.
      - Armazene 10 funcionários.
      - Permita buscar os dados de um funcionário através do número do cartão.
    • By lulicanunes
      - Escreva o programa em linguagem C - É permitido o uso do CodeBlocks - Envie o arquivo, no local apropriado Descrição. Faça um programa em C que calcule o imposto de renda para um conjunto de 5 pessoas (contribuintes). Os dados de cada pessoa devem ser manipulados através de uma estrutura que contém os campos para o nome (string), sobrenome (string), salário mensal (float), deduções (float) e saldo (float). A leitura será feita através de um arquivo texto contendo informações referentes aos três primeiros campos da estrutura. Ao final, o saldo de cada contribuinte deve ser exibido na tela junto com seu nome e sobrenome. OBS.: As instruções a seguir implementam a lógica para resolver esse problema.
      Instruções. 1.
      (1,0) Defina a estrutura para armazenar os dados dos contribuintes.
      2. (1,0) Declare um vetor de estruturas com 5 posições.
      3. (3,0) Faça a leitura dos dados do arquivo de entrada, armazenando-os nas respectivas posições do vetor criado.
      OBS.: Assuma que o arquivo de entrada tem o nome "imposto.txt" e que cada registro (ou linha) desse arquivo tem o formato "%s\t%s\t%f\t%f\n" (i.e., os dados estão separados pelo caractere TAB - "\t").
      Exemplos de possíveis registros do arquivo de entrada:
      Pedro      Silva      2200.00      980.00
      Paulo      Santos    5400.00     2230.00
       
      (3,0) Após concluir a leitura dos dados, crie uma função que será chamada somente uma vez e que receba o vetor de structs e, a partir das informações de salário e deduções, calcule o saldo (imposto devido ou restituição) a ser pago para cada pessoa de acordo com a seguinte fórmula Saldo = Deduções - (12 * Salário mensal * Alíquota)
      O valor da alíquota depende do salário mensal de cada pessoa, com a seguinte divisão:
       
      Salário Mensal                                           Alíquota
      Abaixo de R$ 2.826                                      0.075                            
      De R$ 2.826 até R$ 4.664                            0.225
      Acima de R$ 4.664                                        0.275
       
      (2,0) Imprima na tela um relatório contendo o nome, o sobrenome e o saldo de todos os contribuintes. Exemplo de execução. Resultado considerando o arquivo de entrada fornecido. Nome: João
      Sobrenome: Silva
      Saldo: 9820.00
       
      Nome: Osvaldo
      Sobrenome: Aranha
      Saldo: 6480.00
       
      Nome: Pedro
      Sobrenome: Alves
      Saldo: 4542.00
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.