Jump to content
rtavix

Dúvidas de como pegar o indice de um DataTable

Recommended Posts

Queria pegar o indice do DataTable e passar esse indice no log para o usuario.

Tentei passar o contato, mas não funciona.

Segue o código:

 

 /*Stopwatch relogio = new Stopwatch();
            relogio.Start();*/
            int linha = 0;
            DataTable Dados = new DataTable();
            //Verifica se um arquivo foi selecionado
            if (selecionarArquivo.HasFile)
            {
                //Valida a extensão do arquivo:
                if (Path.GetExtension(selecionarArquivo.FileName) != ".xlsx" && Path.GetExtension(selecionarArquivo.FileName) != ".xls")
                    ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Somente arquivos em excel')</script>");
                else
                {
                    if (selecionarArquivo.FileContent != null)
                    {
                        string Excel = AppDomain.CurrentDomain.BaseDirectory + selecionarArquivo.FileName;
                        selecionarArquivo.SaveAs(Excel);
                        Dados = DadosExcel(Excel);

                        var registrosValidos = ((DataTable)Dados).Rows.OfType<DataRow>().Skip(5);
                        //Elimina a última linha
                        registrosValidos = registrosValidos.Take(registrosValidos.Count() - 1);
                        //ler de 100 em 100 regisros
                        int quantidade_por_pagina = 100;
                        int total_de_paginas;
                        //Conta os registros válidos
                        int qtd_total_registros = registrosValidos.Count();
                        //Realiza o calculo matemáticos para total de paginas.
                        total_de_paginas = (int)Math.Ceiling((double)qtd_total_registros / quantidade_por_pagina);

                        if (Dados.Rows.Count > 0)
                        {
                            
                            bool layoutValido = VerificaLayout(Dados);

                            if (!layoutValido)
                                ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Layout do arquivo fora do padrão definido para importação.')</script>");
                            else
                            {
                                VerificacaoPreliminar(registrosValidos);
                                //Criando as tarefas paralelas
                                List<System.Threading.Tasks.Task> TarefasParalelas = new List<System.Threading.Tasks.Task>();

                                if (!arquivoInvalidado)
                                {
                                    //Verifica se existe mais de 1 interessado com mesmo CPF cadastrado, salva os interessados inexistentes e altera os cadastros que tem interessados duplicados.
                                    this.ValidaDuplicidadeInteressado();

                                    for (int i = 0; i < total_de_paginas; i++)
                                    {
                                        var pagina = i;
                                        //leio as 100 linhas
                                        var linhasPorPagina = registrosValidos.Skip(pagina * quantidade_por_pagina).Take(quantidade_por_pagina);

                                        //Quebrando em 10 threads, vou quebrar a lista com a extenção criada abaixo
                                        var data_rows_divididos = linhasPorPagina.SplitList(10);

                                        foreach (var linhasDivididas in data_rows_divididos)
                                        {
                                            //ADICIONO A MINHA LISTA DE TAREFAS PARALELAS
                                            TarefasParalelas.Add(ProcessamentoTabela(linhasDivididas, i));
                                        }
                                    }

                                    //INICIOS AS TAREFAS PARALELAS
                                    foreach (var tarefa in TarefasParalelas)
                                        tarefa.Start();

                                    // AGORA ESPERO TODAS TAREFAS CONCLUIREM
                                    System.Threading.Tasks.Task.WaitAll(TarefasParalelas.ToArray());

                                   // ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>");

                                    if (listaGravarProcInter.Count != 0)
                                    {
                                        foreach (ProcessoInteressado item in listaGravarProcInter)
                                        {
                                            aplProcessoInteressado.salvar(item);
                                        }
                                    }

                                    if (listaLogsAuditoria.Count != 0)
                                    {
                                        foreach (var item in listaLogsAuditoria)
                                        {
                                            aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now);
                                        }
                                    }
                                    //Contador de linhas
                                   
                                    linha = linha + 1;
                                    Processo processo = new Processo();
                                    logimportacao.Visible = true;
                                    loglbl.Text = ("O interessado informado na linha " + (linha+1) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

                                    //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");
                                    ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");
                                }

                                else
                                {
                                    logimportacao.Visible = true;
                                    loglbl.Text = log.ToString();
                                    ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
                                }
                            }
                        }
                    }
                }
            }
            //Tempo de importação.
            /*relogio.Stop();
            Debug.WriteLine("#############" + relogio.Elapsed.ToString());*/
        }

 

Share this post


Link to post
Share on other sites
1 hora atrás, quintelab disse:

Não entendi, o seu datatable é a variável dados certo ?
Qual indice quer pegar ? Não achei em nenhum momento do seu código você percorrendo as linhas do seu datatable, não achei nenhum for ou foreach.

Sim, meu dataTable é um variavel. Eu quero exibir dentro do meu log, o indece:

 

Log.Append("O interessado informado na linha " + indiceLinha.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

Eu quero exibir o indice da linha, " O interessado informado na linha 5 foi adicionado novamente ao processo 123565898.

O interessado informado na linha 9 foi adicionado novamente ao processo 123565898.

Share this post


Link to post
Share on other sites

Não tenho certeza se é a solução para o seu problema, substitua:

if (Dados.Rows.Count > 0)
{

Por:

for (int i = 0; i < Dados.Rows.Count; i++)
{

No seu log use a variável i:

Log.Append("O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

Mas teste o que estou sugerindo, do jeito que eu postei o código será executado várias vezes, com base no número de linhas do seu DataTable.

Share this post


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

Não tenho certeza se é a solução para o seu problema, substitua:


if (Dados.Rows.Count > 0)
{

Por:


for (int i = 0; i < Dados.Rows.Count; i++)
{

No seu log use a variável i:


Log.Append("O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

Mas teste o que estou sugerindo, do jeito que eu postei o código será executado várias vezes, com base no número de linhas do seu DataTable.

Ei amigo, então, testei aqui e deu essa mensagem dentro do outro for:

 for (int i = 0; i < total_de_paginas; i++)

Da erro no int i = 0; informando que a variável name i não pode ser declarada porque já existe. Como é um outro for para outra situação, poderia declarar uma outra variável? ou teria como aproveitar essa função que você passou no seu novo for?

Share this post


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

É só mudar o nome da variável, ao invés de i, use outro nome.

Sim, segui esse passo, só alterei a variável.

ao compilar deu o seguinte erro nessa linha do código, tipo essa parte do código outro colega que fez:

Esse é o código de abrir a sessão com o banco

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate.Mapping.Attributes;
using NHibernate.Cfg;
using NHibernate;
using System.IO;
using NHibernate.Context;

namespace SDPJDominio.DataAccess
{
    public class NhibernateHelper
    {
        private ISessionFactory sessionFactory;        
        
        public static ISession GetSessao()
        {
            return Instancia.GetSessionFactory().GetCurrentSession();
        }

        public static ISessionFactory Teste()
        {
            MemoryStream stream = new System.IO.MemoryStream();
            HbmSerializer.Default.Validate = true;
            HbmSerializer.Default.Serialize(stream, System.Reflection.Assembly.GetExecutingAssembly());
            stream.Position = 0;
            Configuration configuracao = new Configuration();            
            configuracao.Configure();
            configuracao.SetProperty("connection.connection_string", ConfigNhibernate.getConfig()); //add essa linha
            configuracao.SetProperty("current_session_context_class", "thread_static"); //add essa linha
            configuracao.AddInputStream(stream);
            stream.Close();

            Instancia.sessionFactory = configuracao.BuildSessionFactory();
            return Instancia.sessionFactory;
        }
       
        public NhibernateHelper()
        {                    
            MemoryStream stream = new System.IO.MemoryStream();
            HbmSerializer.Default.Validate = true;
            HbmSerializer.Default.Serialize(stream, System.Reflection.Assembly.GetExecutingAssembly());
            stream.Position = 0;
            Configuration configuracao = new Configuration();
            configuracao.Configure();
            configuracao.SetProperty("connection.connection_string", ConfigNhibernate.getConfig()); //add essa linha                
            configuracao.AddInputStream(stream);
            stream.Close();
                
            sessionFactory = configuracao.BuildSessionFactory();            
        }

        public static ISessionFactory SessionFactory
        {
            get { return Instancia.sessionFactory; }
        }

        private ISessionFactory GetSessionFactory()
        {
            return sessionFactory;
        }

        public static NhibernateHelper Instancia
        {
            get 
            {
                return CriarGerenciadorDeSessao.gerenciadorDeSessao; 
            }
        }

        public static ISession AbrirSessao()
        {
            return Instancia.GetSessionFactory().OpenSession();
        }

        public static void RecarregarSessao(object obj)
        {
            SessaoCorrente.Refresh(obj);
        }

        public static ISession SessaoCorrente
        {
            get
            {
                return Instancia.GetSessionFactory().GetCurrentSession();
            }
        }

        class CriarGerenciadorDeSessao
        {
            internal static readonly NhibernateHelper gerenciadorDeSessao = new NhibernateHelper();
        }   
    }
}

 

 

 

 

31 minutos atrás, quintelab disse:

É só mudar o nome da variável, ao invés de i, use outro nome.

porém da erro nessa linha:

 

public static ISession SessaoCorrente
        {
            get
            {
                return Instancia.GetSessionFactory().GetCurrentSession();
            }
        }

Com a seguinte mensagem:

No session bound to the current context

Share this post


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

Mudar o nome da variável não tem nada com o erro que postou, deve ser outra coisa que terá que debugar pra descobrir.

Entendi. Amigo, muito obrigado. Vou procurar resolver isso, e tentar compilar pra ver se corrigiu aquele problema.

Share this post


Link to post
Share on other sites
Em 20/04/2018 at 10:36, rtavix disse:

Ei amigo, então, testei aqui e deu essa mensagem dentro do outro for:


 for (int i = 0; i < total_de_paginas; i++)

Da erro no int i = 0; informando que a variável name i não pode ser declarada porque já existe. Como é um outro for para outra situação, poderia declarar uma outra variável? ou teria como aproveitar essa função que você passou no seu novo for?

Quintelab, amigo está aparecendo somente um log dessa forma e também não aparece o numero do processo no log:

 

foi esse o resultado:

 

O interessado informado na linha 635 foi adicionado novamente ao processo 

 

Na frente do processo era para aparecer o numero, e teria que aparecer 9 logs no total :/

 

Segue o código alterado.

 

protected void importar_Click(object sender, EventArgs e)
        {
            /*Stopwatch relogio = new Stopwatch();
            relogio.Start();*/
            //int linha = 0;
            DataTable Dados = new DataTable();
            //Verifica se um arquivo foi selecionado
            if (selecionarArquivo.HasFile)
            {
                //Valida a extensão do arquivo:
                if (Path.GetExtension(selecionarArquivo.FileName) != ".xlsx" && Path.GetExtension(selecionarArquivo.FileName) != ".xls")
                    ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Somente arquivos em excel')</script>");
                else
                {
                    if (selecionarArquivo.FileContent != null)
                    {
                        string Excel = AppDomain.CurrentDomain.BaseDirectory + selecionarArquivo.FileName;
                        selecionarArquivo.SaveAs(Excel);
                        Dados = DadosExcel(Excel);

                        var registrosValidos = ((DataTable)Dados).Rows.OfType<DataRow>().Skip(5);
                        //Elimina a última linha
                        registrosValidos = registrosValidos.Take(registrosValidos.Count() - 1);
                        //ler de 100 em 100 regisros
                        int quantidade_por_pagina = 100;
                        int total_de_paginas;
                        //Conta os registros válidos
                        int qtd_total_registros = registrosValidos.Count();
                        //Realiza o calculo matemáticos para total de paginas.
                        total_de_paginas = (int)Math.Ceiling((double)qtd_total_registros / quantidade_por_pagina);

                        for (int i = 0; i < Dados.Rows.Count; i++ )
                        {

                            bool layoutValido = VerificaLayout(Dados);

                            if (!layoutValido)
                                ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Layout do arquivo fora do padrão definido para importação.')</script>");
                            else
                            {
                                VerificacaoPreliminar(registrosValidos);
                                //Criando as tarefas paralelas
                                List<System.Threading.Tasks.Task> TarefasParalelas = new List<System.Threading.Tasks.Task>();

                                if (!arquivoInvalidado)
                                {
                                    //Verifica se existe mais de 1 interessado com mesmo CPF cadastrado, salva os interessados inexistentes e altera os cadastros que tem interessados duplicados.
                                    this.ValidaDuplicidadeInteressado();

                                    for (int j = 0; j < total_de_paginas; j++)
                                    {

                                        var pagina = j;
                                        //leio as 100 linhas
                                        var linhasPorPagina = registrosValidos.Skip(pagina * quantidade_por_pagina).Take(quantidade_por_pagina);

                                        //Quebrando em 10 threads, vou quebrar a lista com a extenção criada abaixo
                                        var data_rows_divididos = linhasPorPagina.SplitList(10);

                                        foreach (var linhasDivididas in data_rows_divididos)
                                        {
                                            //ADICIONO A MINHA LISTA DE TAREFAS PARALELAS
                                            TarefasParalelas.Add(ProcessamentoTabela(linhasDivididas, j));
                                        }
                                    }

                                    //INICIOS AS TAREFAS PARALELAS
                                    foreach (var tarefa in TarefasParalelas)
                                        tarefa.Start();

                                    // AGORA ESPERO TODAS TAREFAS CONCLUIREM
                                    System.Threading.Tasks.Task.WaitAll(TarefasParalelas.ToArray());

                                    // ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>");
        
                            }
                        }
                            Processo processo = new Processo();
                            logimportacao.Visible = true;
                            loglbl.Text = ("O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>");

                            //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");
                            ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");
                    }
                        if (listaGravarProcInter.Count != 0)
                        {
                            foreach (ProcessoInteressado item in listaGravarProcInter)
                            {
                                aplProcessoInteressado.salvar(item);
                            }
                        }

                        if (listaLogsAuditoria.Count != 0)
                        {
                            foreach (var item in listaLogsAuditoria)
                            {
                                aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now);
                            }
                        }
                        //Contador de linhas

                      }


                    else
                    {
                        logimportacao.Visible = true;
                        loglbl.Text = log.ToString();
                        ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
                    }

                }
            }
            //Tempo de importação.
            /*relogio.Stop();
            Debug.WriteLine("#############" + relogio.Elapsed.ToString());*/
        }

 

Share this post


Link to post
Share on other sites

Da forma com que esta fazendo vai aparecer somente o último valor:
 

loglbl.Text = ("O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>")

Você tem que manter o valor que estava antes:

 

loglbl.Text = loglbl.Text + "O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"


Por que não esta aparecendo o número, não tem ideia.

Share this post


Link to post
Share on other sites
1 hora atrás, quintelab disse:

Da forma com que esta fazendo vai aparecer somente o último valor:
 


loglbl.Text = ("O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>")

Você tem que manter o valor que estava antes:

 


loglbl.Text = loglbl.Text + "O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"


Por que não esta aparecendo o número, não tem ideia.

Eu fiz a alteração aqui, porém está trazendo todos os registros importado, entretanto era para trazer somente 9 registros.

 

 

Log de Importação:
 

O interessado informado na linha 0 foi adicionado novamente ao processo 
O interessado informado na linha 1 foi adicionado novamente ao processo 
O interessado informado na linha 2 foi adicionado novamente ao processo 
O interessado informado na linha 3 foi adicionado novamente ao processo 
O interessado informado na linha 4 foi adicionado novamente ao processo 
O interessado informado na linha 5 foi adicionado novamente ao processo 
O interessado informado na linha 6 foi adicionado novamente ao processo 
O interessado informado na linha 7 foi adicionado novamente ao processo 
O interessado informado na linha 8 foi adicionado novamente ao processo 
O interessado informado na linha 9 foi adicionado novamente ao processo 
O interessado informado na linha 10 foi adicionado novamente ao processo 
O interessado informado na linha 11 foi adicionado novamente ao processo 
O interessado informado na linha 12 foi adicionado novamente ao processo 
O interessado informado na linha 13 foi adicionado novamente ao processo 
O interessado informado na linha 14 foi adicionado novamente ao processo 
O interessado informado na linha 15 foi adicionado novamente ao processo 
O interessado informado na linha 16 foi adicionado novamente ao processo 
O interessado informado na linha 17 foi adicionado novamente ao processo 
O interessado informado na linha 18 foi adicionado novamente ao processo 
O interessado informado na linha 19 foi adicionado novamente ao processo 
O interessado informado na linha 20 foi adicionado novamente ao processo 
O interessado informado na linha 21 foi adicionado novamente ao processo 
O interessado informado na linha 22 foi adicionado novamente ao processo 
O interessado informado na linha 23 foi adicionado novamente ao processo 
O interessado informado na linha 24 foi adicionado novamente ao processo 
O interessado informado na linha 25 foi adicionado novamente ao processo 
O interessado informado na linha 26 foi adicionado novamente ao processo 
O interessado informado na linha 27 foi adicionado novamente ao processo 
O interessado informado na linha 28 foi adicionado novamente ao processo 
O interessado informado na linha 29 foi adicionado novamente ao processo 
O interessado informado na linha 30 foi adicionado novamente ao processo 
O interessado informado na linha 31 foi adicionado novamente ao processo 
O interessado informado na linha 32 foi adicionado novamente ao processo 
O interessado informado na linha 33 foi adicionado novamente ao processo 
O interessado informado na linha 34 foi adicionado novamente ao processo 
O interessado informado na linha 35 foi adicionado novamente ao processo 
O interessado informado na linha 36 foi adicionado novamente ao processo 
O interessado informado na linha 37 foi adicionado novamente ao processo 
O interessado informado na linha 38 foi adicionado novamente ao processo 
O interessado informado na linha 39 foi adicionado novamente ao processo 
O interessado informado na linha 40 foi adicionado novamente ao processo 
O interessado informado na linha 41 foi adicionado novamente ao processo 
O interessado informado na linha 42 foi adicionado novamente ao processo 
O interessado informado na linha 43 foi adicionado novamente ao processo 
O interessado informado na linha 44 foi adicionado novamente ao processo 
O interessado informado na linha 45 foi adicionado novamente ao processo 
O interessado informado na linha 46 foi adicionado novamente ao processo 
O interessado informado na linha 47 foi adicionado novamente ao processo 
O interessado informado na linha 48 foi adicionado novamente ao processo 
O interessado informado na linha 49 foi adicionado novamente ao processo 
O interessado informado na linha 50 foi adicionado novamente ao processo 
O interessado informado na linha 51 foi adicionado novamente ao processo 
O interessado informado na linha 52 foi adicionado novamente ao processo 
O interessado informado na linha 53 foi adicionado novamente ao processo 
O interessado informado na linha 54 foi adicionado novamente ao processo 
O interessado informado na linha 55 foi adicionado novamente ao processo 
O interessado informado na linha 56 foi adicionado novamente ao processo 
O interessado informado na linha 57 foi adicionado novamente ao processo 
O interessado informado na linha 58 foi adicionado novamente ao processo 
O interessado informado na linha 59 foi adicionado novamente ao processo 
O interessado informado na linha 60 foi adicionado novamente ao processo 
O interessado informado na linha 61 foi adicionado novamente ao processo 
O interessado informado na linha 62 foi adicionado novamente ao processo 
O interessado informado na linha 63 foi adicionado novamente ao processo 
O interessado informado na linha 64 foi adicionado novamente ao processo 
O interessado informado na linha 65 foi adicionado novamente ao processo 
O interessado informado na linha 66 foi adicionado novamente ao processo 
O interessado informado na linha 67 foi adicionado novamente ao processo 
O interessado informado na linha 68 foi adicionado novamente ao processo 
O interessado informado na linha 69 foi adicionado novamente ao processo 
O interessado informado na linha 70 foi adicionado novamente ao processo 
O interessado informado na linha 71 foi adicionado novamente ao processo 
O interessado informado na linha 72 foi adicionado novamente ao processo 
O interessado informado na linha 73 foi adicionado novamente ao processo 
O interessado informado na linha 74 foi adicionado novamente ao processo 
O interessado informado na linha 75 foi adicionado novamente ao processo 
O interessado informado na linha 76 foi adicionado novamente ao processo 
O interessado informado na linha 77 foi adicionado novamente ao processo 
O interessado informado na linha 78 foi adicionado novamente ao processo 
O interessado informado na linha 79 foi adicionado novamente ao processo 
O interessado informado na linha 80 foi adicionado novamente ao processo 
O interessado informado na linha 81 foi adicionado novamente ao processo 
O interessado informado na linha 82 foi adicionado novamente ao processo 
O interessado informado na linha 83 foi adicionado novamente ao processo 
O interessado informado na linha 84 foi adicionado novamente ao processo 
O interessado informado na linha 85 foi adicionado novamente ao processo 
O interessado informado na linha 86 foi adicionado novamente ao processo 
O interessado informado na linha 87 foi adicionado novamente ao processo 
O interessado informado na linha 88 foi adicionado novamente ao processo 
O interessado informado na linha 89 foi adicionado novamente ao processo 
O interessado informado na linha 90 foi adicionado novamente ao processo 
O interessado informado na linha 91 foi adicionado novamente ao processo 
O interessado informado na linha 92 foi adicionado novamente ao processo 
O interessado informado na linha 93 foi adicionado novamente ao processo 
O interessado informado na linha 94 foi adicionado novamente ao processo 
O interessado informado na linha 95 foi adicionado novamente ao processo 
O interessado informado na linha 96 foi adicionado novamente ao processo 
O interessado informado na linha 97 foi adicionado novamente ao processo 
O interessado informado na linha 98 foi adicionado novamente ao processo 
O interessado informado na linha 99 foi adicionado novamente ao processo 
O interessado informado na linha 100 foi adicionado novamente ao processo 
O interessado informado na linha 101 foi adicionado novamente ao processo 
O interessado informado na linha 102 foi adicionado novamente ao processo 
O interessado informado na linha 103 foi adicionado novamente ao processo 
O interessado informado na linha 104 foi adicionado novamente ao processo 
O interessado informado na linha 105 foi adicionado novamente ao processo 
O interessado informado na linha 106 foi adicionado novamente ao processo 
O interessado informado na linha 107 foi adicionado novamente ao processo 
O interessado informado na linha 108 foi adicionado novamente ao processo 
O interessado informado na linha 109 foi adicionado novamente ao processo 
O interessado informado na linha 110 foi adicionado novamente ao processo 
O interessado informado na linha 111 foi adicionado novamente ao processo 
O interessado informado na linha 112 foi adicionado novamente ao processo 
O interessado informado na linha 113 foi adicionado novamente ao processo 
O interessado informado na linha 114 foi adicionado novamente ao processo 
O interessado informado na linha 115 foi adicionado novamente ao processo 
O interessado informado na linha 116 foi adicionado novamente ao processo 
O interessado informado na linha 117 foi adicionado novamente ao processo 
O interessado informado na linha 118 foi adicionado novamente ao processo 
O interessado informado na linha 119 foi adicionado novamente ao processo 
O interessado informado na linha 120 foi adicionado novamente ao processo 
O interessado informado na linha 121 foi adicionado novamente ao processo 
O interessado informado na linha 122 foi adicionado novamente ao processo 
O interessado informado na linha 123 foi adicionado novamente ao processo 
O interessado informado na linha 124 foi adicionado novamente ao processo 
O interessado informado na linha 125 foi adicionado novamente ao processo 
O interessado informado na linha 126 foi adicionado novamente ao processo 
O interessado informado na linha 127 foi adicionado novamente ao processo 
O interessado informado na linha 128 foi adicionado novamente ao processo 
O interessado informado na linha 129 foi adicionado novamente ao processo 
O interessado informado na linha 130 foi adicionado novamente ao processo 
O interessado informado na linha 131 foi adicionado novamente ao processo 
O interessado informado na linha 132 foi adicionado novamente ao processo 
O interessado informado na linha 133 foi adicionado novamente ao processo 
O interessado informado na linha 134 foi adicionado novamente ao processo 
O interessado informado na linha 135 foi adicionado novamente ao processo 
O interessado informado na linha 136 foi adicionado novamente ao processo 
O interessado informado na linha 137 foi adicionado novamente ao processo 
O interessado informado na linha 138 foi adicionado novamente ao processo 
O interessado informado na linha 139 foi adicionado novamente ao processo 
O interessado informado na linha 140 foi adicionado novamente ao processo 
O interessado informado na linha 141 foi adicionado novamente ao processo 
O interessado informado na linha 142 foi adicionado novamente ao processo 
O interessado informado na linha 143 foi adicionado novamente ao processo 
O interessado informado na linha 144 foi adicionado novamente ao processo 
O interessado informado na linha 145 foi adicionado novamente ao processo 
O interessado informado na linha 146 foi adicionado novamente ao processo 
O interessado informado na linha 147 foi adicionado novamente ao processo 
O interessado informado na linha 148 foi adicionado novamente ao processo 
O interessado informado na linha 149 foi adicionado novamente ao processo 
O interessado informado na linha 150 foi adicionado novamente ao processo 
O interessado informado na linha 151 foi adicionado novamente ao processo 
O interessado informado na linha 152 foi adicionado novamente ao processo 
O interessado informado na linha 153 foi adicionado novamente ao processo 
O interessado informado na linha 154 foi adicionado novamente ao processo 
O interessado informado na linha 155 foi adicionado novamente ao processo 
O interessado informado na linha 156 foi adicionado novamente ao processo 
O interessado informado na linha 157 foi adicionado novamente ao processo 
O interessado informado na linha 158 foi adicionado novamente ao processo 
O interessado informado na linha 159 foi adicionado novamente ao processo 
O interessado informado na linha 160 foi adicionado novamente ao processo 
O interessado informado na linha 161 foi adicionado novamente ao processo 
O interessado informado na linha 162 foi adicionado novamente ao processo 
O interessado informado na linha 163 foi adicionado novamente ao processo 
O interessado informado na linha 164 foi adicionado novamente ao processo 
O interessado informado na linha 165 foi adicionado novamente ao processo 
O interessado informado na linha 166 foi adicionado novamente ao processo 
O interessado informado na linha 167 foi adicionado novamente ao processo 
O interessado informado na linha 168 foi adicionado novamente ao processo 
O interessado informado na linha 169 foi adicionado novamente ao processo 
O interessado informado na linha 170 foi adicionado novamente ao processo 
O interessado informado na linha 171 foi adicionado novamente ao processo 
O interessado informado na linha 172 foi adicionado novamente ao processo 
O interessado informado na linha 173 foi adicionado novamente ao processo 
O interessado informado na linha 174 foi adicionado novamente ao processo 
O interessado informado na linha 175 foi adicionado novamente ao processo 
O interessado informado na linha 176 foi adicionado novamente ao processo 
O interessado informado na linha 177 foi adicionado novamente ao processo 
O interessado informado na linha 178 foi adicionado novamente ao processo 
O interessado informado na linha 179 foi adicionado novamente ao processo 

Share this post


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

Da forma com que esta fazendo vai aparecer somente o último valor:
 


loglbl.Text = ("O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>")

Você tem que manter o valor que estava antes:

 


loglbl.Text = loglbl.Text + "O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"


Por que não esta aparecendo o número, não tem ideia.

Então quinteLab, amigo eu alterei aqui conforme a sua sugestão porém está puxando o indice 0, sendo que tereia que aparecer essas mensagens:

 

O interessado informado na linha 32 foi adicionado ao processo 0015895755635-29.

O interessado informado na linha 32 foi adicionado ao processo 0032895885258-18.

O interessado informado na linha 32 foi adicionado ao processo 0015545487445-78.

O interessado informado na linha 32 foi adicionado ao processo 0325888885878-82.

O interessado informado na linha 32 foi adicionado ao processo 0248956687569-31.

 

Só que está trazendo a relação de todos os processos :(

Segue o código alterado:

 

for (int i = 0; i < Dados.Rows.Count; i++ )
                        {

                            bool layoutValido = VerificaLayout(Dados);

                            if (!layoutValido)
                                ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Layout do arquivo fora do padrão definido para importação.')</script>");
                            else
                            {
                                VerificacaoPreliminar(registrosValidos);
                                //Criando as tarefas paralelas
                                List<System.Threading.Tasks.Task> TarefasParalelas = new List<System.Threading.Tasks.Task>();

                                if (!arquivoInvalidado)
                                {
                                    //Verifica se existe mais de 1 interessado com mesmo CPF cadastrado, salva os interessados inexistentes e altera os cadastros que tem interessados duplicados.
                                    this.ValidaDuplicidadeInteressado();

                                    for (int j = 0; j < total_de_paginas; j++)
                                    {

                                        var pagina = j;
                                        //leio as 100 linhas
                                        var linhasPorPagina = registrosValidos.Skip(pagina * quantidade_por_pagina).Take(quantidade_por_pagina);

                                        //Quebrando em 10 threads, vou quebrar a lista com a extenção criada abaixo
                                        var data_rows_divididos = linhasPorPagina.SplitList(10);

                                        foreach (var linhasDivididas in data_rows_divididos)
                                        {
                                            //ADICIONO A MINHA LISTA DE TAREFAS PARALELAS
                                            TarefasParalelas.Add(ProcessamentoTabela(linhasDivididas, j));
                                        }
                                    }

                                    //INICIOS AS TAREFAS PARALELAS
                                    foreach (var tarefa in TarefasParalelas)
                                        tarefa.Start();

                                    // AGORA ESPERO TODAS TAREFAS CONCLUIREM
                                    System.Threading.Tasks.Task.WaitAll(TarefasParalelas.ToArray());

                                    // ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>");
        
                            }
                        }
                            Processo processo = new Processo();
                            logimportacao.Visible = true;
                            loglbl.Text = loglbl.Text +"O interessado informado na linha " + i.ToString() + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>";

                            //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");
                            ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");
                    }
                        if (listaGravarProcInter.Count != 0)
                        {
                            foreach (ProcessoInteressado item in listaGravarProcInter)
                            {
                                aplProcessoInteressado.salvar(item);
                            }
                        }

                        if (listaLogsAuditoria.Count != 0)
                        {
                            foreach (var item in listaLogsAuditoria)
                            {
                                aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now);
                            }
                        }
                        //Contador de linhas

                      }


                    else
                    {
                        logimportacao.Visible = true;
                        loglbl.Text = log.ToString();
                        ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
                    }

                }

 

 

 

 

 

Share this post


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

Aí é contigo, tem que ver sua lógica, seus IF e onde esta colocando o seu log.

Sim, verdade. olha te agradeço e consegui aqui :). Eu queria fazer um curso on line de programação, de preferencia de lógica e depois c#, você teria algum para me indicar Quintelab?

Share this post


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

Não moro no Brasil e hoje não sei quais empresas teriam um bom conteúdo nessa área.

Eu costumo estudar online, 2 sites muitos bons são: Udemy e pluralsight

Mas sempre é possível encontrar conteúdo grátis no Youtube

Valeu amigo, vou está providenciando isso logo.

Criei um outro tópico, se voc~e puder me ajudar, agradeço.

 

 

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 rtavix
      Estou realizando uma implementação de um determinado relatório, e implementei a estrutura(html da pagina) do mesmo dinamicamente, entretanto quando vou tentar imprimir ele com os dados preenchidos o mesmo não abre uma aba a parte mostrando toda essa estrutura da pagina. Estou tentando fazer via JavaScript, porém não funciona. meu ação do clique do botão de imprimir é esse:
      <div class="box-footer"> <button class="btn btn-padrao" id="btnImprime" runat="server" visible="false" onserverclick="btnImprimir_ServerClick">Imprimir</button></i>Novo</button> </div> Meu javaScript é esse:
      function Imprimir() { var panel = document.getElementById("ConteinerImprimir"); var printWindow = window.open('', '', ''); printWindow.document.write('<html><head><script src="JsRelatorioFinanciamento.js"></script>'); printWindow.document.write('<link href="../StyleJs.RelFinanciamento.css" rel="stylesheet"/>'); printWindow.document.write('</head><body>'); printWindow.document.write('<div class="conteiner" style="width: 700px">' + panel.innerHTML + '</div>'); printWindow.document.write('</body></html>'); printWindow.document.close(); setTimeout(function () { printWindow.print(); }, 500); return false; e meu código .cs que realiza a implementação da estrutura da pagina em html dinâmico é esse: 
      #region html #region Header private string header = @" <table style = 'margin-bottom: 0px;'> <tr id='topLogo'> <img src = 'http://internet.sefaz.es.gov.br/imagens/topo_brasao.png' alt=''> <td style = 'border: 0px; padding-bottom: 5px;'> <h2 style='margin-top: 15px;' class='center'> TESTE 1 </h2> <h3 style = 'margin-top: 15px;' class='center'> TESTE 2 - 2<br/> </h3> <h3 style = 'margin-top: 15px;' class='center'> TESTE 3<br/> </h3> <h3 style = 'margin-top: 15px;' class='center'> FINANCIAMENTO LIBERADO - TODAS EMPRESAS<br/> </h3> <h3 style = 'margin-top: 15px;' class='center'> Base {1}<br/> </h3> <h1 style = 'margin-top: 15px;' class='left'> EmpresasTESTE4 - {2}<br/> </h1> </td> </tr> </table>"; #endregion #region Conteudo private const string dadosFinanciamento = @" <table style='padding: 0px; margin: 0px;' class='no-bold'> <tr class='tr-center'> <tr> <td colspan = '4' > Razão Social <h4> {0}</h4> </td> </tr> <tr> <td>Inscrição Estadual <h4 class='center'>{1}</h4> </td> <td colspan ='2'> C.N.P.J <h4> {2} </h4> </td> <td colspan='2'>Nome Fantasia <h4>{3}</h4> </td> </tr> </table> <br/>"; #endregion #region ValoresFin private const string dadosValores = @" <table style='padding: 0px; margin: 0px;'class='no-bold'> <tr> <td rowspan = '3' style=border-bottom: 3px solid black> <h5>Faturamento Dezembro 2014</h5> <h4>Saldo</h4> </td> <td class='center'> <h2>ICMS Previsto</h2> </td > <td class='center'> <h2>ICMS Recolhido</h2> </td> <td class='center'> <h2>Contratado</h2> </td> <td class='center'> <h2>Liberado</h2> </td> </tr> <tr> <td class='center'> {0} </td> <td class='center'> {1} </td> <td class='center'> {2} </td> <td class='center'> {3} </td> </tr> </table> <br/>"; #endregion #endregion e estou utilizando o StringBuilder:
      StringBuilder strConstrution = new StringBuilder(); Alguém saberia me instruir como eu posso fazer para conseguir visualizar meu relátorio por completo?
    • By Isabel Ferreira
      Olá, bom dia
       
      Estou tendo um pequeno problema na instalação e configuração do Boleto.net, mesmo lendo no gith deles, aparentemente não estou sabendo mexer, pois é a primeira vez que eu o utilizo. Teria como alguém me explicar o passo a passo de como fazer? Para eu ver o que de errado eu possa ter feito.
       
      Muito obrigada
    • By Ana Caroline Candido
      Boa Tarde pessoal.
      Estou no 3 semestre do curso ciência da computação, e estou com muita dificuldade de achar uma forma de realizar um programa solicitado em meu trabalho semestral.
      Alguém poderia me ajudar, dar alguma luz de como posso começar a desenvolver?
      Segue :

      Deverá ser realizado um trabalho utilizando algoritmos considerando o seguinte exemplo: o geoprocessamento de imagens da floresta amazônica permite a fiscalização de ações de crimes ambientais. Os satélites geram cerca de 100 mil imagens de toda a região a cada 24 horas, essas imagens são armazenadas o catalogadas. Os agentes de fiscalização fazem buscas frequentes de imagens especificas nestas imagens. Cerca de 1000 buscas são feitas no intervalo de 24 horas. Deverá ser selecionado três ou mais estruturas de dados (Pilha ou Fila, Arvores, Vetor) e desenvolver um sistema computacional completo que obtenha os dados catalogados das imagens capturadas dos satélites e compare os desempenhos entre eles. A unidade de medida para efeito de comparação deverá ser o tempo total de ordenação. Deverá ser contabilizado o tempo de aquisição dos dados e o processo específico de busca) Os dados que serão utilizados para as ordenações deverão ser externos (obtidos a partir de valores previamente armazenados, tais como arquivos texto) e internos (valores aleatórios gerados pelo próprio programa ou fornecidos diretamente pelo usuário).  
    • By Rluz2019
      Avaliação Discursiva 4 - Calouros
      Questão A
      Na programação de computadores é muito comum o uso de estruturas iterativas para resolver problemas que envolvem coleções de dados (vetores, matrizes, listas). Considerando o seguinte trecho de código (notado em C#), que define a classe Funcionario:
      class Funcionario
      {
            public  int  Matricula  { get; set;  }
            public  string  Nome  { get; set;  }
            public static List< Funcionario> Funcionarios  {get; set;  }
      }
      Crie, na classe Funcionário:
      1.   Um método estático, denominado GerarLista, que cria e retorna uma lista com 10 registros de funcionários, sendo que:
      a)   A lista gerada será utilizada para preencher o atributo Funcionários, que é uma lista;
      b)   A matrícula deve ser um número inteiro sequencial (de 1 a 10);
      c)   O nome deve ser uma sequência de caracteres gerada aleatoriamente (podem ser nomes sorteados de uma lista pré-armazenada ou uma sequência qualquer de caracteres).
      2.   Um método estático, denominado BuscarFuncionario, que recebe um nome (string) por parâmetro, localiza o funcionário pelo nome na lista, e retorna a matrícula (int) do funcionário encontrado.
      ·       Caso o nome não seja encontrado, o retorno para a matrícula deve ser -1 (menos um).
       
      Meu Código!

      Estou com dificuldades de realizar algum poderia me ajudar a estruturar:
       CODIGO PRINCIPAL
      using System;
      //Using - Biblioteca do C#
      //___________________________________________________________//
      //           Aluno: Rodrigo Fernando da Luz                  //
      //           Faculdade - Fael                                //
      //___________________________________________________________//
      //Aula 02: Atributos e Métodos Unidade 04
      namespace Avaliação_Discursiva_4
      {
          class Program
          {
              static void Main(string[] args) // algoritmo Função ao metodo main
              {
                  GerarLista();
                  Console.ReadKey();
              }
              static void GerarLista()
              {
                  //Instanciar a Classe
                  Funcionario Nome_funcionario = new Funcionario(); //variavel #Nome_funcionario#
                  //Passar o conteudo que vai ser digitado para As Variaveis!!!
         
                  string[] Nomes = new string[10];
                  
                  Console.WriteLine("");
                  Console.WriteLine(" Lista gerada será utilizada para preencher o atributo Funcionários, que é uma lista:");
                  Console.WriteLine("");
                  char[] Xmatricula = new char[10];//Arry
                  char[] Xnome = new char[10];
                  int i;
                  //string Xnomes;
           
                  Console.WriteLine("");
                  Console.WriteLine("Digite Seu Nome: ");
                  Console.WriteLine("");
                  for (i = 0; i < 10; i++)
                  { //Contador 1 até 10.
                      Console.WriteLine("Informe Nome do  " + (i + 1) + " ª Funcionário:");
                      Xnome = char.Parse(Console.ReadLine());
                   
                  }
                  Console.WriteLine("");
                  Console.WriteLine("Lista de Funcionarios: ");
                  Console.WriteLine("");
                  for (i = 0; i < 10; i++)
                  {//Escreve na Tela o Numero 1 ate 10 e Nome do Funcionario.
                      Console.WriteLine("A Matricula: " + (i + 1) + "  ª Funcionario:  " + Nomes);
                  }
              }
          }
      }
       
       
      // CRIADO A CLASSE FUNCIONARIO:
      using System;
      using System.Collections.Generic;
      using System.Text;
      namespace Avaliação_Discursiva_4
      {
          //Atributos da minha Classe
          class Funcionario
          {
              //metodos Get e Set
              //Get Vai Pegar
              //Set vai Gravar
              public string Nome { get; set; }
              
              public int Matricula { get; set;}
              public string Materia { get; set; }
              public string Notas { get; set; }
              public static List<Funcionario> Funcionarios { get; set; }
              public void setNome(string Nome) //metodos //Set vai Gravar
              {
                  this.Nome = Nome;
              }
              public string getNome(string Nome) //metodos //Get vai Pegar
              {
                  return this.Nome;
              }
              public int getMatricula()//metodos //Get vai Pegar
              {
                  return this.Matricula;
              }
          }
      }
       
       
       
      Alguém pode me ajudar?
    • By rtavix
      Pessoal eu sou iniciante na programação, e irei detalhar todo o processo resumidamente que estou fazendo no momento. Eu tenho uma pagina web que realiza uma consulta através de uma determinada data. Tenho um dropdow e dentro dele eu tenho a Opção Mês base e Período, caso eu selecione o Mês base devo carregar um campo de data informando o mes e o ano e em seguida eu tenho dois radio button escrito a opção Sim e Não e caso escolho fazer o filtro por periodo, deverei carregar um capo de data automaticamente para informar um determinado periodo preenchendo a data de inicio dd/MM/yyyy até a data final dd/MM/yyyy, após escolher Mês base ou por Período dentro do dropDow e carregar o campo de data automaticamente onde o usuário informará a data, consequentemente o mesmo irá escolher se a opção é de Liberação Sim ou Não (radio button) acho que é assim que se escreve rs, caso ele realiza sua escolha, deverá carregar os seguintes dados na grid:
      AnoMêsBase, inscEstadual, razaoSocial e NME_ABREV.
      Observação: No meu banco de dados a coluna AnoMesBase está dessa forma por exemplo 032018, sempre irá vir dessa forma, a data nunca será formatado o campo.
      Porém não estou conseguindo trazer as informações que está no banco de dados.
      Até agora implementei as seguintes classes:
       
      using System; using System.Collections.Generic; using System.Linq; using System.Text; using NHibernate.Mapping.Attributes; namespace Dominio.Domain { [Serializable] [Class(Table = "DAP_EMPRESA", NameType = typeof(Empresa), Lazy = false)] public class Empresa { private int codigo; private string inscEstadual; private string razaoSocial; private string nomeAbreviado; private DateTime dataCadastro; private string cnpj; [Id(Column = "ID_EMPRESA", Name = "Codigo", Generator = "increment", UnsavedValue = "0")] public int Codigo { get { return codigo; } set { codigo = value; } } [Property(Column = "INSC_ESTADUAL", Lazy = false)] public string InscEstadual { get { return inscEstadual; } set { inscEstadual = value; } } [Property(Column = "RAZAO_SOCIAL", Lazy = false)] public string RazaoSocial { get { return razaoSocial; } set { razaoSocial = value; } } [Property(Column = "NME_ABREV", Lazy = false)] public string NomeAbreviado { get { return nomeAbreviado; } set { nomeAbreviado = value; } } [Property(Column = "DAT_CADASTRO", Lazy = false)] public DateTime DataCadastro { get { return dataCadastro; } set { dataCadastro = value; } } [Property(Column = "CNPJ", Lazy = false)] public string Cnpj { get { return cnpj; } set { cnpj = value; } } } } using NHibernate.Mapping.Attributes; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Dominio.Domain { [Serializable] [Class(Table = "DAP_FINANCIAMENTO", NameType = typeof(Financiamento), Lazy = false)] public class Financiamento { private int codigo; // private Empresa empresa; // private decimal vlrFinanciamento;// private string inscEstadual;// private string anoMesBase; // private string anoMesFaturamento; // private decimal vlrICMSPrevisto; // private decimal totalRecolhimento; // private DateTime datUltimoRecolhimento; // private decimal totalLiberacao; // private DateTime datLiberacao; // private DateTime datUltimaLiberacao; // private decimal totalDevolucao; // private string descObservacao; // private DateTime dataDevolucao; // private DateTime dataCadastramento; // private int mesBase; // private int mesFat; // [Id(Column = "ID_FINANCIAMENTO", Name = "Codigo", Generator = "increment", UnsavedValue = "0")] public int Codigo { get { return codigo; } set { codigo = value; } } [ManyToOne(0, Name = "Empresa", ClassType = typeof(Empresa), Column = "ID_EMPRESA", Lazy = Laziness.False)] public Empresa Empresa { get { return empresa; } set { empresa = value; } } [Property(Column = "VLR_FINANCIAMENTO", Lazy = false)] public decimal VlrFinanciamento { get { return vlrFinanciamento; } set { vlrFinanciamento = value; } } [Property(Column = "INSC_ESTADUAL", Lazy = false)] public string InscEstadual { get { return inscEstadual; } set { inscEstadual = value; } } [Property(Column = "ANO_MES_BASE", Lazy = false)] public string AnoMesBase { get { return anoMesBase; } set { anoMesBase = value; } } [Property(Column = "ANO_MES_FATURA", Lazy = false)] public string AnoMesFaturamento { get { return anoMesFaturamento; } set { anoMesFaturamento = value; } } [Property(Column = "VLR_ICMS_PREVISTO", Lazy = false)] public decimal VlrICMSPrevisto { get { return vlrICMSPrevisto; } set { vlrICMSPrevisto = value; } } [Property(Column = "TOTAL_RECOLHIDO", Lazy = false)] public decimal TotalRecolhimento { get { return totalRecolhimento; } set { totalRecolhimento = value; } } [Property(Column = "DATA_ULTIMO_RECOL", Lazy = false)] public DateTime DatUltimoRecolhimento { get { return datUltimoRecolhimento; } set { datUltimoRecolhimento = value; } } [Property(Column = "TOTAL_LIBERACAO", Lazy = false)] public decimal VlrTotalLiberacao { get { return totalLiberacao; } set { totalLiberacao = value; } } [Property(Column = "DAT_ULTIMA_LIBERACAO", Lazy = false)] public DateTime DatUltimaLiberacao { get { return datUltimaLiberacao; } set { datUltimaLiberacao = value; } } [Property(Column = "TOTAL_DEVOLUCAO", Lazy = false)] public decimal TotalDevolucao { get { return totalDevolucao; } set { totalDevolucao = value; } } [Property(Column = "DSC_OBSERVACAO", Lazy = false)] public string DescObservacao { get { return descObservacao; } set { descObservacao = value; } } [Property(Column = "DAT_LIBERACAO", Lazy = false)] public DateTime DatLiberacao { get { return datLiberacao; } set { datLiberacao = value; } } [Property(Column = "MES_BASE", Lazy = false)] public int MesBase { get { return mesBase; } set { mesBase = value; } } } } using Dominio.Domain; using NHibernate; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Dominio.DataAccess { public class FinanciamentoDAO { public static List<Financiamento> ListarTodos() { try { ISession sessao = NhibernateHelper.SessaoCorrente; Financiamento financiamento = new Financiamento(); ICriteria criterios = sessao.CreateCriteria(financiamento.GetType()); return criterios.List<Financiamento>().ToList(); } catch (Exception e) { throw new Exception(e.ToString()); } } public static void InserirOuAtualizar(Financiamento financiamento) { ISession sessao = NhibernateHelper.SessaoCorrente; ITransaction transacao = sessao.BeginTransaction(); try { sessao.SaveOrUpdate(financiamento); transacao.Commit(); } catch (Exception e) { transacao.Rollback(); throw new Exception(e.ToString()); } } public static void Deletar(Financiamento financiamento) { ISession sessao = NhibernateHelper.SessaoCorrente; ITransaction transacao = sessao.BeginTransaction(); try { sessao.Delete(financiamento); transacao.Commit(); } catch (Exception e) { transacao.Rollback(); throw new Exception(e.ToString()); } } internal static Financiamento BuscarPorInscEstadual(string InscEstadual) { try { ISession sessao = NhibernateHelper.SessaoCorrente; Financiamento financiamento = new Financiamento(); ICriteria criterios = sessao.CreateCriteria(financiamento.GetType()); criterios.Add(NHibernate.Criterion.Expression.Eq("InscEstadual", InscEstadual)); return criterios.UniqueResult() as Financiamento; } catch (Exception e) { throw new Exception(e.ToString()); } } internal static Financiamento BuscarPorIDFinanciamento(int COD_FINANCIAMENTO) { try { ISession sessao = NhibernateHelper.SessaoCorrente; Financiamento financiamento = new Financiamento(); ICriteria criterios = sessao.CreateCriteria(financiamento.GetType()); criterios.Add(NHibernate.Criterion.Expression.Eq("Codigo", COD_FINANCIAMENTO)); return criterios.UniqueResult() as Financiamento; } catch (Exception e) { throw new Exception(e.ToString()); } } internal static List<Financiamento> ListarPorEmpresa(int ID_EMPRESA) { ISession sessao = NhibernateHelper.SessaoCorrente; Financiamento financiamento; try { financiamento = new Financiamento(); ICriteria criterios = sessao.CreateCriteria(financiamento.GetType()); criterios.CreateAlias("Empresa", "e").Add(NHibernate.Criterion.Expression.Eq("e.Codigo", ID_EMPRESA)); return criterios.List<Financiamento>().ToList(); } catch (Exception e) { throw new Exception(e.ToString()); } } } } using Dominio.DataAccess; using Dominio.Domain; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Dominio.APL { public class AplFinanciamento { public void gravar(Financiamento financiamento) { FinanciamentoDAO.InserirOuAtualizar(financiamento); } public void deletar(Financiamento financiamento) { FinanciamentoDAO.Deletar(financiamento); } public List<Financiamento> listarTodas() { return FinanciamentoDAO.ListarTodos(); } public Financiamento buscarPorInscEstadual(string InscEstadual) { return FinanciamentoDAO.BuscarPorInscEstadual(InscEstadual); } public Financiamento buscarPorIDFinanciamento(int IDFinanciamento) { return FinanciamentoDAO.BuscarPorIDFinanciamento(IDFinanciamento); } public List<Financiamento> listarFinanciamentoPorEmpresa(int idEmpresa) { return FinanciamentoDAO.ListarPorEmpresa(idEmpresa); } } }  
      Esse é meu .cs porém não estou conseguindo fazer funcionar, porque me retorna tudo null ao compilar o código e desconfio que a minha lógica esteja errada.
       
      using Dominio.APL; using Dominio.Domain; using dap.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; namespace dapView.Relatorios.RelFinancLiberadoMesBase { public partial class RelFinancLiberadoMesBase : System.Web.UI.Page { private AplFinanciamento aplFinanciamento = new AplFinanciamento(); private List<Financiamento> financiamento = new List<Financiamento>(); private static bool keyJS { get; set; } protected void Page_Load(object sender, EventArgs e) { keyJS = true; // CarregarComboLiberado(); if (!IsPostBack) { GerenciadorUsuarioPagina.funcao = "RELFIN01"; //btnImprime.Visible = false; } } //Carrega os dados relacionando o tipo de liberação por data //private void CarregarComboLiberado() // { // ddlLiberado.Items.Add("---------Selecione----------"); // ddlLiberado.Items.Add("Mês Base"); // ddlLiberado.Items.Add("Período"); // } protected void btnConsultar_Click(object sender, EventArgs e) { CarregaRelatorio(); } protected void ddlLiberado_SelectedIndexChanged(object sender, EventArgs e) { } public void CarregaRelatorio() { financiamento = aplFinanciamento.listarTodas(); var dados = (from financiamento in financiamento where DateTime.Compare(financiamento.DatUltimaLiberacao, Convert.ToDateTime(txtMesBase.Text.ToString())) == 0 group financiamento by new { financiamento.Codigo, financiamento.Empresa.InscEstadual, financiamento.Empresa.RazaoSocial, financiamento.Empresa.Cnpj, financiamento.Empresa.NomeAbreviado, financiamento.AnoMesBase } into g select new { codigo = g.Key.Codigo, AnoMesBase = g.Key.AnoMesBase, InscricaoEstadual = g.Key.InscEstadual, RazaoSocial = g.Key.RazaoSocial, Cnpj = g.Key.Cnpj, NmeAbreviado = g.Key.NomeAbreviado }).OrderBy(o => o.codigo).ToList(); if (dados.Count() > 0) { //Carrega os dados da gridview de consulta gv.DataSource = dados; gv.DataBind(); gv.UseAccessibleHeader = true; gv.HeaderRow.TableSection = TableRowSection.TableHeader; //Carrega os dados da gridview usada para imprimir gvImprimir.DataSource = dados; gvImprimir.DataBind(); gvImprimir.UseAccessibleHeader = true; gvImprimir.HeaderRow.TableSection = TableRowSection.TableHeader; //mostra botão imprimir //btnImprime.Visible = true; } else { if (keyJS) chamarSwal("aviso", "Não foram encontrados financiamentos para essa data."); // btnImprime.Visible = false; } } private void chamarSwal(string tipo, string mensagem) { var body = (HtmlGenericControl)(Page.Master.FindControl("body")); body.Attributes["onload"] = $"{tipo}(\"{mensagem}\")"; keyJS = false; } } } Esse é o meu html
       
      <%@ Page Title="" Language="C#" MasterPageFile="~/Content/MasterPage.Master" AutoEventWireup="true" CodeBehind="RelFinanciamento.aspx.cs" Inherits="dapView.Relatorios.RelFinancLiberadoMesBase.RelFinancLiberadoMesBase" %> <asp:Content ID="head" ContentPlaceHolderID="headPlaceHolder" runat="server"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css"> <script src="../JsRelatorioFinancLiberadoMesBase.js"></script> <script> var d = "16/09/2019" // date received from card function filldate() { document.getElementById('cardexpirydate').value = d.split('/').reverse().join("-"); } </script> <script> function exibir_ocultar(val) { if (val.value == 'LiberadoMesBase') { document.getElementById('periodo').style.display = 'none'; document.getElementById('MesBase').style.display = 'block'; document.getElementById('periodo').style.display = 'none'; } else { document.getElementById('periodo').style.display = 'block'; document.getElementById('MesBase').style.display = 'none'; } }; </script> </asp:Content> <asp:Content ID="ContentForm" ContentPlaceHolderID="formPlaceHolder" runat="server"> <asp:ScriptManager runat="server"></asp:ScriptManager> <div class="row"> <div class="col-md-12"> <div class="content-box"> <div class="box-title">Financiamento</div> <div class="box-body"> <div id="triage"> <label for="category">Liberado:</label> <div class="form-inline"> <div class="col-md-2"> <label class="radio-inline control-label"> <input checked="checked" name="TaskLog.TaskTypeId" type="radio" value="2"> SIM </label> <label class="radio-inline control-label"> <input id="TaskLog_TaskTypeId" name="TaskLog.TaskTypeId" type="radio" value="1"> NÃO </label> </div> <div id="category-select"> <select onchange="exibir_ocultar(this)" class="col-md-3 form-control" id="category" name="category" style="width: auto"> <option value="LiberadoMesBase">-----------Selecione----------</option> <option value="LiberadoMesBase">Mês Base</option> <option value="LiberadoPeriodo">Período</option> </select> </div> </div> <br /> <div class="row"> <div class="form-group"> <label class="radio-inline control-label"> <input type="radio" name="optradio" checked>Sim</label> <label class="radio-inline"> <input type="radio" name="optradio">Não</label> </div> <br /> <div id="periodo"> <asp:TextBox type="Month" Style="width: 10%" runat="server" ClientIDMode="Static" class="form-control " ID="TextBox1" MaxLength="30"></asp:TextBox> <br /> </div> <br /> <div id="MesBase"> <asp:TextBox type="date" Style="width: 10%" runat="server" ClientIDMode="Static" class="form-control " ID="TextBox2" MaxLength="30"></asp:TextBox> <br /> </div> </div> </div> <div class="row"> <div class="content-box content-box-tabela" id="tabela" style="visibility: hidden"> <asp:GridView class="col-md-12" CssClass="tabela-padrao tabela-padrao-borda dataTable" runat="server" AutoGenerateColumns="False" PageSize="9" ID="gv" Width="100%"> <Columns> <asp:TemplateField HeaderText="Empresa" ItemStyle-HorizontalAlign="Left"> <ItemTemplate> <asp:Label ID="lblCodigo" runat="server" Text='<%# Bind("Codigo") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Valor Financiamento" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="lblValorFinanciamento" runat="server" Text='<%# Bind("ValorFinanciamento") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Inscricao Estadual" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="lblInscricaoEstadual" runat="server" Text='<%# Bind("InscricaoEstadual") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Ano mes base" ItemStyle-HorizontalAlign="Right"> <ItemTemplate> <asp:Label ID="lblAnoMesBase" runat="server" Text='<%# Bind("AnoMesBase") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle CssClass="" HorizontalAlign="Center" /> </asp:GridView> </div> </div> </div> <div class="box-footer"> <button runat="server" class="btn btn-padrao" id="btnConsultar" onserverclick="btnConsultar_Click">Consultar</button> </div> </div> <%--IMPRIMIR--%> <div class="container" style="visibility: hidden" id="ConteinerImprimir"> <div class="table" runat="server" style="margin: 0 auto; width: auto;"> <div class="row"> <div class="col-lg-12"> <img src="http://internet.sefaz.es.gov.br/imagens/topo_brasao.png" alt=""> <br> <br> </div> </div> <div class="row" runat="server" style="border-bottom: 2px solid #B0BEC5"> <div class="col-lg-5"> <strong>Financiamento</strong> </div> <div class="col-lg-5" style="text-align: end;" runat="server" id="totalRegistros"></div> </div> </div> <div class="row"> <div class="content-box content-box-tabela"> <asp:GridView class="col-md-12 grid" runat="server" AutoGenerateColumns="False" PageSize="9" ID="gvImprimir" GridLines="None" RowStyle-HorizontalAlign="Center" Width="100%"> <Columns> <asp:TemplateField HeaderText="Empresa" ItemStyle-HorizontalAlign="Left"> <ItemTemplate> <asp:Label ID="lblCodigo" runat="server" Text='<%# Bind("Codigo") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Valor Financiamento" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="lblValorFinanciamento" runat="server" Text='<%# Bind("ValorFinanciamento") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Inscricao Estadual" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="lblInscricaoEstadual" runat="server" Text='<%# Bind("InscricaoEstadual") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Ano mes base" ItemStyle-HorizontalAlign="Right"> <ItemTemplate> <asp:Label ID="lblAnoMesBase" runat="server" Text='<%# Bind("AnoMesBase") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> <PagerStyle CssClass="" HorizontalAlign="Center" /> </asp:GridView> </div> </div> </div> </div> </div> </asp:Content>  
      Se alguém puder me ajudar, agradeço.
×

Important Information

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