Ir para conteúdo
rtavix

Validar quantidade de carácter de um determinado campo de uma tabela. (Dúvidas)

Recommended Posts

Tenho uma planilha com certos dados, e nessa planilha tenho a coluna M chamada NUCEP, eu preciso validar a quantidade de carácter antes de realizar minha importação, alguém poderia me sugerir uma forma de como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, quintelab disse:

Opa Quintelab, então brother, eu tenho esse código:

 

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

            bool importado = false;

            

            foreach (var linha in dados)
            {
                i++;
                //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 " + (linha["indice"]) + " deve ser preenchida. <br>");
                    arquivoInvalidado = true;
                }

                if (!importado)
                {
                    //Validação de campos obrigatórios
                    if (linha.ItemArray[0].ToString().Equals(""))
                    {
                        log.Append("A célula A linha " + (linha["indice"]) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    if (linha.ItemArray[6].ToString().Equals(""))
                    {
                        log.Append("A célula G linha " + (linha["indice"]) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    if (linha.ItemArray[7].ToString().Equals(""))
                    {
                        log.Append("A célula H linha " + (linha["indice"]) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    if (linha.ItemArray[14].ToString().Equals(""))
                    {
                        log.Append("A célula O linha " + (linha["indice"]) + " 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 linha " + (linha["indice"]) + " e / ou célula C referente a linha " + (linha["indice"]) + " devem estar preenchidas. <br>");
                        arquivoInvalidado = true;
                    }

                    //Valida se campo DataSep e Data de recebimento na oriegem encontram- se preenchidos
                    if (linha.ItemArray[18].ToString().Equals(""))
                    {
                        log.Append("A célula S linha " + (linha["indice"]) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    if (linha.ItemArray[19].ToString().Equals(""))
                    {
                        log.Append("A célula T linha " + (linha["indice"]) + " deve ser preenchida. <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 " + (linha["indice"]) + " deve ser preenchida. <br>");
                        arquivoInvalidado = true;
                    }
                    if (linha.ItemArray[5].ToString().Equals(""))
                    {
                        log.Append("A célula F referente a linha " + (linha["indice"]) + " 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 " + (linha["indice"]) + ". 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 " + (linha["indice"]) + " não corresponde a vara e comarca informada. Favor corrigir o sistema ou a planilha. <br>");
                                arquivoInvalidado = true;
                            }
                        }
                    }

                    if (listaInteressadoArq.Count != 0)
                    {
                        if (!listaInteressadoArq.Exists(o => o.Nome.Equals(linha.ItemArray[6].ToString().ToUpper())))
                            listaInteressadoArq.Add(this.setInteressado(linha, i));
                        else //apenas para verificar os dados do interessado informados na planilha
                            setInteressado(linha, i);
                    }
                    else
                        listaInteressadoArq.Add(this.setInteressado(linha, i));

                    //setInteressado(linha, i);
                }
            }

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

Nesse código acima, eu gostaria de aplicar essa função de validar total de caracteres digitado em cada linha referente a este campo (coluna) da planilha excel e a ideia é já que possuo uma maneira de pegar o indice da linha, pegar e criar um log e enviar para o usuário, informando o nome da cédula e linha e a quantidade de caracter. É meio doido isso, mas a usuário me solicitou isso.

 

Nesse outro código eu tenho o método onde eu verifico o layout da planilha excel.

 

private bool VerificaLayout(DataTable dt)
        {
            if (!dt.Rows[4].ItemArray[0].Equals("Data de Requisição do Pgto"))
                return false;
            if (!dt.Rows[4].ItemArray[1].Equals("NUMERO PROCESSO ANTERIOR"))
                return false;
            if (!dt.Rows[4].ItemArray[2].Equals("NUMERO JUDICIAL"))
                return false;
            if (!dt.Rows[4].ItemArray[3].Equals("COMARCA"))
                return false;
            if (!dt.Rows[4].ItemArray[4].Equals("VARA"))
                return false;
            if (!dt.Rows[4].ItemArray[5].Equals("VARANOME"))
                return false;
            if (!dt.Rows[4].ItemArray[6].Equals("NOME"))
                return false;
            if (!dt.Rows[4].ItemArray[7].Equals("CPF"))
                return false;
            if (!dt.Rows[4].ItemArray[8].Equals("DEENDERECO"))

                return false;
            if (!dt.Rows[4].ItemArray[9].Equals("NUENDERECO"))
                return false;
            if (!dt.Rows[4].ItemArray[10].Equals("DECOMPLEMENTO"))
                return false;
            if (!dt.Rows[4].ItemArray[11].Equals("DEBAIRRO"))
                return false;
            if (!dt.Rows[4].ItemArray[12].Equals("NUCEP"))
                return false;
            if (!dt.Rows[4].ItemArray[13].Equals("NMMUNICIPIO"))
                return false;
            if (!dt.Rows[4].ItemArray[14].Equals("BRUTO"))
                return false;
            if (!dt.Rows[4].ItemArray[15].Equals("IRPF"))
                return false;
            if (!dt.Rows[4].ItemArray[16].Equals("LIQUIDO"))
                return false;
            if (!dt.Rows[4].ItemArray[17].Equals("Nº SEP"))
                return false;
            if (!dt.Rows[4].ItemArray[18].Equals("DATA SEP"))
                return false;
            if (!dt.Rows[4].ItemArray[19].Equals("DATA DE RECEBIMENTO NA ORIGEM"))
                return false;

            return true;
        }

 

Você teria alguma ideia do que eu poderia esta fazendo? Irei olhar teu tópico e avaliar, mas aceito sugestões amigo. valeu até o momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 30/05/2018 at 18:23, rtavix disse:

    if (linha.ItemArray[0].Length > 5)

cara nao conheço essa linguagem mais deve ser assim talvez

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 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.
    • Por lucasrodrigues
      Estou com esse problema ao tentar vincular uma tabela do MySql a um DataSet. Utilizo o MySqlConnector 8.0.13, MySql-For-VisualStudio 1.2.8.

    • Por jtc-carr
      Linguagem c
      Queria a partir de um ficheiro fazer varias somas do seu conteúdo por exemplo de caracteres especiais, vogais, letra "a" , números, De forma a que devolve-se por exemplo 5 linhas, 4 caracteres especiais, 7 vogais, 9 "a", 6 numeros, num total de 40 caracteres, para os numeros fiz um if, para a função mas não funciona como devia
      while( (texto[MAX]=fgetc(textos))!= EOF ) if(texto[MAX] == '\n') linha++; printf("Existem %d linhas no arquivo\n", linha); if (i == '0' || i == '1' || i == 2' || i == '3' || i == '4' || i == '5' || i == 6' || i == '7' || i == '8'|| i == '9' ) Ajuda seria bem vinda, que queria perceber bem isto
    • Por Maicon Santos
      Foi me passada a tarefa de fazer um sistema onde o usuário (funcionário 1) (Funcionário da empresa X) irá fazer um cadastro com suas informações, após esse cadastro essas informações serão avaliadas por outro funcionário (funcionário 2) da empresa X que fica responsável apenas por verificar as informações desse usuário e dar permissões a ele. Até então é um sistema simples de cadastro.
      Após o funcionário 1 fazer o cadastro o funcionário 2 avaliará essas informações para ver se esse usuário pode ter acesso a conta bancária da empresa. (Pera! Como assim?) Exatamente isso, o usuário vai se cadastrar e se ele for apto a acessar a conta bancária da empresa o sistema terá que fazer o login na conta bancária da empresa, ou seja o sistema deve apenas verificar os dados do funcionário 1, se ele for apto abrir a conta da empresa o sistema terá que passar os dados pelo internet banking do Santander.
       
      Um outro exemplo que talvez facilite entender:
      Os funcionários 1, 2 e 3 trabalham juntos gerenciando as finanças da empresa, então todos eles precisam acessar a conta bancaria da empresa, mas o gerente para não ter que passar o login e senha para eles quer que o sistema faça esse login, sem que os funcionários saibam esses devidos dados, então os funcionários farão um cadastro no sistema e após fazer o login no mesmo eles automaticamente fazem o login na conta do Santander da empresa
       
      Basicamente isso, minhas dúvidas até o momento:
      Isso é realmente possível? Fazer o login no internet banking, que tem a função de ser muito seguro, através de um outro sistema
      Eu tenho a disponibilidade para escolher entre fazer um sistema desktop (usando C#, que eu tenho mais domínio) ou fazer um sistema WEB (que eu não possuo tanto domínio assim das linguagens), para fazer esse tipo de trabalho, o que seria mais indicado?
      Quais dicas vocês podem me dar para essa tarefa? Eu trabalho na área de desenvolvimento a pouco tempo, por isso não tenho muito conhecimento de sistemas desse nível, qualquer direção será de grande ajuda.
      Grato!
    • Por Master_Cyber
      Bom noite pessoal... Estou fazendo um bot que se comunica com o QnaMaker, e dependendo da resposta, deverá ser aberto uma conversação guiada através do FormFlow com uso  do Json.
      Meu problema é exatamente neste ponto para conseguir abrir o formulário.
      Estou usando a SDK V3 e o QnAMakerDialog do garypretty.
      Resumidamente neste ponto devo fazer algo para iniciar o form.
      public override async Task DefaultMatchHandler(IDialogContext context, string originalQueryText, QnAMakerResult result) {     QnaAnswer a = result.Answers.First();     var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);          if (a.Answer == "form")     {         // ABRIR FORM AQUI     }          await context.PostAsync(messageActivity);     context.Wait(MessageReceived); }  
      Já tentei várias coisas como chamar context.Forward ou context.Call, mas não da certo,  talvez eu esteja chamando de forma errada.
      Sempre retorna a mensagem dizendo que existe um problema no código fonte.
      Vocês podem me ajudar?
      Obrigado!!
×

Informação importante

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