Usuário com melhor resposta
rotina para pegar varios produtos no datagridview

Pergunta
-
Boa Tarde Pessoal!!!
Estou precisando de uma rotina para pegar linha a linha de um datagridview, vou explicar.
Tenho um codigo que gera xml da nfe, na parte de produtos e preciso identidicar o numero de cada item e assim sucessivamente, como o codigo esta rodando so com 4 produtos sta facil, fiz um if para pegar o numero do item e gera o codigo, o problema que agora vai rodar esse xml com mais 50 produtos ou ate 100 produtos, no if fica muito longo o codigo e acho que e errado tambem, a questão e preciso pegar o numero do item final por exemplo 10 itens, esses 10 itens vai estar em um datagridview linha apos linha 10 itens, ai coloca no codigo xml o numero do item e gera o codigo, abaixo vai o exemplo do codigo xml na parte de produtos.
If Me.txttotalregistro.Text = "1" Then ' a soma da coluna registros no datagridview
.WriteStartElement("det") ' abre Item Produto 1 "det"
.WriteAttributeString("nItem", "1") ''' aqui no exemplo esta 1 item e aqui que preciso fazer a magica acontecer e se tiver 51 item e preciso pegar linha a linha e executar o codigo abaixo, para sair no xml os 51 itens exemplo.
.WriteStartElement("prod") ' abre Produto 1
.WriteStartElement("cProd")
Me.dgvprodnfe.CurrentCell = Me.dgvprodnfe.Rows(dgvprodnfe.Rows.Count - 1).Cells(1)
.WriteString(dgvprodnfe.CurrentCell.Value)
.WriteEndElement()
.WriteStartElement("xProd")
Me.dgvprodnfe.CurrentCell = Me.dgvprodnfe.Rows(dgvprodnfe.Rows.Count - 1).Cells(2)
.WriteString(dgvprodnfe.CurrentCell.Value)
.WriteEndElement()
.WriteStartElement("NCM")
Me.dgvprodnfe.CurrentCell = Me.dgvprodnfe.Rows(dgvprodnfe.Rows.Count - 1).Cells(3)
.WriteString(dgvprodnfe.CurrentCell.Value)
.WriteEndElement().WriteEndElement()
Se tiver alguem que possa dar um exemplo pra isso acontecer,
agradeço demais.
Pablo Sousa
PabloSousa
Respostas
-
Olá Pablo_1977
Seria mais ou menos assim:
For linha As Integer = 0 To dgvprodnfe.Rows.Count -1 .WriteStartElement("det") ' abre Item Produto 1 "det" .WriteAttributeString("nItem", linha+1) ''' aqui no exemplo esta 1 item e aqui que preciso fazer a magica acontecer e se tiver 51 item e preciso pegar linha a linha e executar o codigo abaixo, para sair no xml os 51 itens exemplo. .WriteStartElement("prod") ' abre Produto 1 .WriteStartElement("cProd") .WriteString(Me.dgvprodnfe.Rows(linha).Cells(1).Value) 'Usando seu código, apenas acrescentando variavel LINHA .WriteEndElement() ... ... Next
Abraços!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Microsoft Developer .NET
Microsoft Certified Professional
Development Leader at JAMSOFT Informática
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Sugerido como Resposta AndreAlvesLimaModerator segunda-feira, 8 de janeiro de 2018 14:26
- Marcado como Resposta Pablo_1977 segunda-feira, 8 de janeiro de 2018 14:42
Todas as Respostas
-
Olá Pablo_1977
Seria mais ou menos assim:
For linha As Integer = 0 To dgvprodnfe.Rows.Count -1 .WriteStartElement("det") ' abre Item Produto 1 "det" .WriteAttributeString("nItem", linha+1) ''' aqui no exemplo esta 1 item e aqui que preciso fazer a magica acontecer e se tiver 51 item e preciso pegar linha a linha e executar o codigo abaixo, para sair no xml os 51 itens exemplo. .WriteStartElement("prod") ' abre Produto 1 .WriteStartElement("cProd") .WriteString(Me.dgvprodnfe.Rows(linha).Cells(1).Value) 'Usando seu código, apenas acrescentando variavel LINHA .WriteEndElement() ... ... Next
Abraços!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Microsoft Developer .NET
Microsoft Certified Professional
Development Leader at JAMSOFT Informática
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Sugerido como Resposta AndreAlvesLimaModerator segunda-feira, 8 de janeiro de 2018 14:26
- Marcado como Resposta Pablo_1977 segunda-feira, 8 de janeiro de 2018 14:42
-
-