cintiadel 0 Denunciar post Postado Fevereiro 9, 2009 poxa, valeu agora funcionou... mas apareceu outro problema, com os campos juros e multa, eles estavam aparecendo em todos os itens do grid, mas eles devem seguir o criterio da data ou do label, pois se tiver em atraso, ele mostra, senao não exibe. mas ele ate funcionou, mas tah mostrando o mesmo valor pra todas as linhas e n é, cada uma é um valor, sabe como me ajudar? While situacao.Read() If e.Row.RowType = DataControlRowType.DataRow Then If ((CType(e.Row.Cells(1).Text, DateTime) < Date.Now)) Then lbl_multa.Text = situacao("multa") lbl_juros.Text = situacao("juros") lbl_situacao.Text = "Em atraso" ElseIf ((CType(e.Row.Cells(1).Text, DateTime) >= Date.Now)) Then lbl_multa.Text = "-" lbl_juros.Text = "-" lbl_situacao.Text = "Em aberto" End If End If End While Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Fevereiro 9, 2009 Pode colocar o código inteiro? Parece um problema de lógica, a variavel situacao é um DataReader? Att, Guilherme Oenning Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Fevereiro 9, 2009 Pode colocar o código inteiro? Parece um problema de lógica, a variavel situacao é um DataReader? Att, Guilherme Oenning Protected Sub gvw_View_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvw_View.RowDataBound Dim conexao As New Data.SqlClient.SqlConnection("stringdeconexao") Dim comando As New Data.SqlClient.SqlCommand Dim situacao As Data.SqlClient.SqlDataReader Dim lbl_multa As Label = CType(e.Row.FindControl("lbl_multa"), Label) Dim lbl_juros As Label = CType(e.Row.FindControl("lbl_juros"), Label) Dim lbl_situacao As Label = CType(e.Row.FindControl("lbl_situacao"), Label) conexao.Open() comando.Connection = conexao comando.CommandText = "Select valorpar * 0.02 as multa, (valorpar * 0.000333)* (DateDiff(day, dtvcto,GETDATE())) as juros from tabela1 inner join tabela2 ON tabela2.codigo = tabela1.al_codigo where tabela2.codigo='" & Session("ra") & "'" situacao = comando.ExecuteReader() While situacao.Read() If e.Row.RowType = DataControlRowType.DataRow Then If ((CType(e.Row.Cells(1).Text, DateTime) < Date.Now)) Then lbl_multa.Text = situacao("multa") lbl_juros.Text = situacao("juros") lbl_situacao.Text = "Em atraso" ElseIf ((CType(e.Row.Cells(1).Text, DateTime) >= Date.Now)) Then lbl_multa.Text = "-" lbl_juros.Text = "-" lbl_situacao.Text = "Em aberto" End If End If End While conexao.Close() End Sub Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Fevereiro 9, 2009 Vamos por partes. 1) A condição "if e.Row.RowType = DataControlRowType.DataRow Then" deve ser feita antes de tudo. 2) O evento gvw_View_RowDataBound é disparado para cada linha da grid. E para cada linha do grid você está executando o comando SQL e varrendo até o final. Seu comando SQL deveria trazer apenas um registro, faça um filtro maior, ai leia o DataReader apenas uma vez e jogue no label. Conseguiu entender? Att, Guilherme Oenning. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Fevereiro 10, 2009 Vamos por partes. 1) A condição "if e.Row.RowType = DataControlRowType.DataRow Then" deve ser feita antes de tudo. 2) O evento gvw_View_RowDataBound é disparado para cada linha da grid. E para cada linha do grid você está executando o comando SQL e varrendo até o final. Seu comando SQL deveria trazer apenas um registro, faça um filtro maior, ai leia o DataReader apenas uma vez e jogue no label. Conseguiu entender? Att, Guilherme Oenning. como eu faço pra q ele pegue a o numero da parcela do grid na consulta sql?mesmo assim mudando aquele linha q você falou n funcionou Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Fevereiro 17, 2009 Vamos por partes. 1) A condição "if e.Row.RowType = DataControlRowType.DataRow Then" deve ser feita antes de tudo. 2) O evento gvw_View_RowDataBound é disparado para cada linha da grid. E para cada linha do grid você está executando o comando SQL e varrendo até o final. Seu comando SQL deveria trazer apenas um registro, faça um filtro maior, ai leia o DataReader apenas uma vez e jogue no label. Conseguiu entender? Att, Guilherme Oenning. preciso q ele calcule o juros de acordo com a parcela, mas n to sabendo qual parametro usar pra q ele faça o calculo???? Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Fevereiro 18, 2009 O numero da parcela está na grid? você sabe em que coluna? Você consegue acessar o valor neste método (gvw_View_RowDataBound) usando e.Row.Cells[indice].Text onde indice é o índice que está o valor que você precisa. O resto é regra de negócio, não sei como está sendo aplicado o juros. Att, Guilherme Oenning Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Fevereiro 18, 2009 O numero da parcela está na grid? você sabe em que coluna? Você consegue acessar o valor neste método (gvw_View_RowDataBound) usando e.Row.Cells[indice].Text onde indice é o índice que está o valor que você precisa. O resto é regra de negócio, não sei como está sendo aplicado o juros. Att, Guilherme Oenning nao estava mas eu coloquei, agora esta no indice 1mas continuo com duvida, q é como passar esse valor ou melhor usar como parametro para o calculo do juros no select Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Fevereiro 19, 2009 Dentro do evento RowDataBound, você pode fazer assim: string sql = "SELECT JUROS FROM CONTAS WHERE PARCELA = " + e.Row.Cells[1].Text;Ai depois disso você executa o SQL e o retorno você joga em alguma coluna da grid: e.Row.Cells[4].Text = juros; //Essa variavel aqui vai ter o resultado do SQL acima Só montar a estrutura. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Fevereiro 19, 2009 Dentro do evento RowDataBound, você pode fazer assim: string sql = "SELECT JUROS FROM CONTAS WHERE PARCELA = " + e.Row.Cells[1].Text;Ai depois disso você executa o SQL e o retorno você joga em alguma coluna da grid: e.Row.Cells[4].Text = juros; //Essa variavel aqui vai ter o resultado do SQL acima Só montar a estrutura. esta dando erro Cannot find either column "e" or the user-defined function or aggregate "e.Row.Cells", or the name is ambiguous. Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Fevereiro 19, 2009 Você está usando Visual Studio para desenvolver? A variável "e" é um parâmetro do evento RowDataBound, você está usando este evento? Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Fevereiro 19, 2009 Você está usando Visual Studio para desenvolver? A variável "e" é um parâmetro do evento RowDataBound, você está usando este evento? tenha um serio problema com aspas dupla e aspas simples...hehehehejá resolvi tava certo do jeito q você falou, obrigadaaaaaa Compartilhar este post Link para o post Compartilhar em outros sites