EDITANDO E SALVANDO DENTRO DATAGRID
Boa noite galera, estou montando uma tela. para meus clientes atualizarem os codigos NCM e CEST. e ainda alterar a tributação dos produtos Tributado ou Substituição.
veja nesse print. meu datagrid contendo todo meu estoque certo?
Eu deixei somente esses campos para serem alterados. digitando. [txt-color=#e80000] NCM, CEST e INDICADOR [/txt-color]
daê galera queria saber qual a propriedade a ser usada para salvar a cada modificação q for fazendo q sair do focus.
e queria saber tbm alguem de vcs. como validar em tempo real.. tipo Meu INDICADOR. 1 - é tributado e 2- substituição.
queria saber qual evento validar. ao digitar 1 eu jogar o nome na coluna(7). o nome Tributado ou Substituição conforme o Indicador. tipo. digitei o numero 1 . ai dar Enter q pular para o proximo.. e a coluna (7) exibir o nome correto da tributação... tipo digitei 1 sai ficou tributado. se eu voltar digitar 2 da enter sair .. fica substituição.
veja nesse print. meu datagrid contendo todo meu estoque certo?
Eu deixei somente esses campos para serem alterados. digitando. [txt-color=#e80000] NCM, CEST e INDICADOR [/txt-color]
daê galera queria saber qual a propriedade a ser usada para salvar a cada modificação q for fazendo q sair do focus.
e queria saber tbm alguem de vcs. como validar em tempo real.. tipo Meu INDICADOR. 1 - é tributado e 2- substituição.
queria saber qual evento validar. ao digitar 1 eu jogar o nome na coluna(7). o nome Tributado ou Substituição conforme o Indicador. tipo. digitei o numero 1 . ai dar Enter q pular para o proximo.. e a coluna (7) exibir o nome correto da tributação... tipo digitei 1 sai ficou tributado. se eu voltar digitar 2 da enter sair .. fica substituição.
Pessoal to tentando fazer assim. mais não ta dando certo.
No caso. se eu alterar o indicador da linha [Ô]3[Ô] queria q alterasse a tributação da mesma linha.
Private Sub dgv_Atualizar_Base_RowLeave(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_Atualizar_Base.RowLeave
If dgv_Atualizar_Base.Rows(IntRownIdex).Cells(5).Value = [Ô]1[Ô] Then
dgv_Atualizar_Base.Rows(IntRownIdex).Cells(7).Value = [Ô]Tributado[Ô]
End If
If dgv_Atualizar_Base.Rows(IntRownIdex).Cells(5).Value = [Ô]2[Ô] Then
dgv_Atualizar_Base.Rows(IntRownIdex).Cells(7).Value = [Ô]Substituição[Ô]
End If
End Sub
No caso. se eu alterar o indicador da linha [Ô]3[Ô] queria q alterasse a tributação da mesma linha.
Deve ser a milionésima vez que vou escrever isso aqui: Use OOP. Pare de programar proceduralmente, atualize-se e seus problemas se não acabarem de vez, vão ao menos diminuir muito.
Citação::
Deve ser a milionésima vez que vou escrever isso aqui: Use OOP. Pare de programar proceduralmente, atualize-se e seus problemas se não acabarem de vez, vão ao menos diminuir muito.
KERPLUNK, desculpa mais consegui .. estou usando OOP..
eu tava querendo entender a logica. consegui.. vou atualziar depois q tiver tudo pronto preenchido.. chamar minha função no botao mesmo achei mais facil
oq esta faltando agora para finalizar esse topico..
Como faço para validar a quantidade de digitos dentro do Value coluna [Ô]CEST[Ô] - deixar digitar apenas 7 digitos.
so falta isso Kerplunk, para encerrar o topico. validar dentro do datagrid. deixar digitar apenas 7 digitos dentro da coluna [Ô]CEST[Ô]
Como está fazendo o preenchimento do grid?
Citação::
Como está fazendo o preenchimento do grid?
Private Sub PCarregaDados()
Dim dr As OleDbDataReader = Nothing
Using con As OleDbConnection = GetConnection()
Try
con.Open()
Dim sql As String = [Ô]SELECT codigo,descricao,CFOP_Produto,ncm,CEST,indicador_icms,Cst_CSOSN FROM produtos[Ô]
Dim cmd As OleDbCommand = New OleDbCommand(sql, con)
Dim dt As New DataTable
dr = cmd.ExecuteReader
dt.Load(dr)
If dt.Rows.Count > 0 Then
Dim AddGrid As Integer
Dim row As String()
Dim numCOLUNAS As Integer = dt.Columns.Count
For AddGrid = 0 To dt.Rows.Count - 1
row = New String() {
dt.Rows(AddGrid)(0).ToString(),
dt.Rows(AddGrid)(1).ToString(),
dt.Rows(AddGrid)(2).ToString(),
dt.Rows(AddGrid)(3).ToString(),
dt.Rows(AddGrid)(4).ToString(),
dt.Rows(AddGrid)(5).ToString(),
dt.Rows(AddGrid)(6).ToString()}
dgv_Atualizar_Base.Rows.Add(row)
If dgv_Atualizar_Base.Rows(AddGrid).Cells(5).Value = [Ô]1[Ô] Then
dgv_Atualizar_Base.Rows.Item(AddGrid).Cells(7).Value = [Ô]Tributado[Ô]
End If
If dgv_Atualizar_Base.Rows(AddGrid).Cells(5).Value = [Ô]2[Ô] Then
dgv_Atualizar_Base.Rows.Item(AddGrid).Cells(7).Value = [Ô]Substituição[Ô]
End If
[ô]Quatro_dig_NCM = Mid(dgv_Atualizar_Base.Rows(AddGrid).Cells(3).Value, 1, 4)
[ô]PCarrega_NCM()
Next
End If
Catch ex As Exception
MsgBox([Ô]Ocorreu um erro na Leitura[Ô] & ex.Message, MsgBoxStyle.Information)
Finally
con.Close()
End Try
End Using
End Sub
Kerplunk, o carregamento esta ok. eu deixei apenas as essas 3 colunas para serem editadas pelo usuario.. NCM, CEST e INDICADOR
ai to precisando por uma validação nessas 3 colunas.
nas colunas.
* NCM - deixar digitar apenas 8 digitos.
*CEST - 7 digitos.
* INDICADOR - 1 digito.
No CellValidating consegue fazer isto.
Desculpe, mas você [txt-color=#e80000]NÃO[/txt-color] está usando OOP e por isso está com dificuldades.
Citação::
Desculpe, mas você [txt-color=#e80000]NÃO[/txt-color] está usando OOP e por isso está com dificuldades.
Ja resolvi Kerplunk, eu so estava querendo saber onde ficaria melhor fazer a validação .. ai o amigo ai Omar, falou no evento CellValidating
fiz e deu certo :)
Como ainda não está usando, comece ao menos a treinar OOP. Tente fazer o mesmo form. Adicione coisas como um somatório de tudo, por exemplo. Com OOP, cada uma dessas coisas se resolve com apenas uma linha curtinha de código.
Citação::
Como ainda não está usando, comece ao menos a treinar OOP. Tente fazer o mesmo form. Adicione coisas como um somatório de tudo, por exemplo. Com OOP, cada uma dessas coisas se resolve com apenas uma linha curtinha de código.
é verdade Kerplunk, eu ja estou fazendo em algumas funções novas. realmente o codigo diminui bastante. a linha . e facil de entender e dar manutenção.
mais em outras partes q tenho no meu projeto. eu não encarei a mudar kkkkk 8mil linhas de codigos. 10mil kkkk em algumas telas q tenho .
mais as novas funções ja estou usando como base de tudo :D

Tópico encerrado , respostas não são mais permitidas