Carrinho de Compras
29/10/2008
0
Ola Novamente
Dessa vez eu estou desenvolvendo uma rotina similar a de um carrinho de compras que felizmente esta funcionando bem.
Eu seleciono um campo no DropDown que sera o campo ID para o carrinho.Eu estou usando DataSet/DataTable para incluir os dados no carrinho e grava-los de uma so vez ao final.
Acontece que alem desse campo ID do combo eu tenho tambem um campo codigo associado.
Ex : Eu tenho o codigo 1 e o ID= 1
Codigo 1 e ID= 2
Codigo 3 e ID=3
Nas rotinas usando essa rotina similar ao carrinho de compras que usei ate hoje, nunca surgiu a situacao em que eu tinha que incluir o mesmo ID 2 vezes e mesmo que surgisse bastaria eu verificar a quantidade anterior e apenas somar a nova quantidade fornecida.
Porem neste caso eu terei que incluir no carrinho o mesmo ID ´N´ vezes, porem sempre com o campo codigo diferente do anterior.
Como eu faco isso?
Abaixo a rotina que estou usando :
´obtem a tabela do dataset e atribui ao datable local
Dim dt As DataTable = ObterDocumentos().Tables(0)
´localiza o codigo do produto na tabela
Dim row As DataRow = dt.Rows.Find(Convert.ToDouble(CboFormato.SelectedItem.Value))
If row Is Nothing Then
´se nao achou cria uma nova linha
row = dt.NewRow()
row(´itemID´) = Convert.ToDouble(CboFormato.SelectedItem.Value)
row(´REL_DOCUMENTO´) = TxtDocumento.Text.Trim
row(´FORMATO_ID´) = Convert.ToDouble(CboFormato.SelectedItem.Value)
row(´FORMATO_NOME´) = CboFormato.SelectedItem.Text.Trim
row(´REL_PREVINI´) = CDate(TxtInicioPrevisto.Text)
row(´REL_PREVFIM´) = CDate(TxtTerminoPrevisto.Text)
row(´ESPEC_ID´) = CboEspecialidade.SelectedItem.Value
row(´ESPEC_NOME´) = CboEspecialidade.SelectedItem.Text.Trim
row(´REL_HORASPREVISTAS´) = Convert.ToDouble(TxtHorasPrevistas.Text.Trim)
row(´COLABOR_ID´) = CboColaborador.SelectedItem.Value
row(´USER_NOME´) = CboColaborador.SelectedItem.Text.Trim
´inclui a linha no datable
dt.Rows.Add(row)
Else
´se a linha ja existir então apenas altera a quantidade
´Dim qtd As Integer = Convert.ToInt32(row(´Quantidade´))
´qtd = qtd + quantidade
´row(´Quantidade´) = qtd
End If
Catch ex As Exception
lblMensagem.Text = ´Ocorreu um Erro Inesperado : ´ & vbCrLf & ex.Message & vbCrLf ´ & ex.InnerException.ToString
Finally
conexao.Close()
End Try
Eu quero incluir um produto digamos no carrinho de compras, tendo como base o ID e um codigo de servico.
O meu problema esta basicamente na linha abaixo :
Dim row As DataRow = dt.Rows.Find(Convert.ToDouble(CboFormato.SelectedItem.Value))
O Row nao aceita valores tipo String e eu preciso verificar se a linha digitada ja existe baseado no ID (CboFormato.SelectedItem.Value) e em um codigo (Que nao e o do produto)
E agora? Deu para entender ?
Muito Obrigado
Dessa vez eu estou desenvolvendo uma rotina similar a de um carrinho de compras que felizmente esta funcionando bem.
Eu seleciono um campo no DropDown que sera o campo ID para o carrinho.Eu estou usando DataSet/DataTable para incluir os dados no carrinho e grava-los de uma so vez ao final.
Acontece que alem desse campo ID do combo eu tenho tambem um campo codigo associado.
Ex : Eu tenho o codigo 1 e o ID= 1
Codigo 1 e ID= 2
Codigo 3 e ID=3
Nas rotinas usando essa rotina similar ao carrinho de compras que usei ate hoje, nunca surgiu a situacao em que eu tinha que incluir o mesmo ID 2 vezes e mesmo que surgisse bastaria eu verificar a quantidade anterior e apenas somar a nova quantidade fornecida.
Porem neste caso eu terei que incluir no carrinho o mesmo ID ´N´ vezes, porem sempre com o campo codigo diferente do anterior.
Como eu faco isso?
Abaixo a rotina que estou usando :
´obtem a tabela do dataset e atribui ao datable local
Dim dt As DataTable = ObterDocumentos().Tables(0)
´localiza o codigo do produto na tabela
Dim row As DataRow = dt.Rows.Find(Convert.ToDouble(CboFormato.SelectedItem.Value))
If row Is Nothing Then
´se nao achou cria uma nova linha
row = dt.NewRow()
row(´itemID´) = Convert.ToDouble(CboFormato.SelectedItem.Value)
row(´REL_DOCUMENTO´) = TxtDocumento.Text.Trim
row(´FORMATO_ID´) = Convert.ToDouble(CboFormato.SelectedItem.Value)
row(´FORMATO_NOME´) = CboFormato.SelectedItem.Text.Trim
row(´REL_PREVINI´) = CDate(TxtInicioPrevisto.Text)
row(´REL_PREVFIM´) = CDate(TxtTerminoPrevisto.Text)
row(´ESPEC_ID´) = CboEspecialidade.SelectedItem.Value
row(´ESPEC_NOME´) = CboEspecialidade.SelectedItem.Text.Trim
row(´REL_HORASPREVISTAS´) = Convert.ToDouble(TxtHorasPrevistas.Text.Trim)
row(´COLABOR_ID´) = CboColaborador.SelectedItem.Value
row(´USER_NOME´) = CboColaborador.SelectedItem.Text.Trim
´inclui a linha no datable
dt.Rows.Add(row)
Else
´se a linha ja existir então apenas altera a quantidade
´Dim qtd As Integer = Convert.ToInt32(row(´Quantidade´))
´qtd = qtd + quantidade
´row(´Quantidade´) = qtd
End If
Catch ex As Exception
lblMensagem.Text = ´Ocorreu um Erro Inesperado : ´ & vbCrLf & ex.Message & vbCrLf ´ & ex.InnerException.ToString
Finally
conexao.Close()
End Try
Eu quero incluir um produto digamos no carrinho de compras, tendo como base o ID e um codigo de servico.
O meu problema esta basicamente na linha abaixo :
Dim row As DataRow = dt.Rows.Find(Convert.ToDouble(CboFormato.SelectedItem.Value))
O Row nao aceita valores tipo String e eu preciso verificar se a linha digitada ja existe baseado no ID (CboFormato.SelectedItem.Value) e em um codigo (Que nao e o do produto)
E agora? Deu para entender ?
Muito Obrigado
Sid.sil
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)