Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Efetuar verificação caso duas opções selecionadas...
forçar o usuário escolher primeiro uma opção do listview determinada.
Teria que fazer uma verificação assim, se objListItem.SubItems(7) = 1 estiver marcado sozinho no list e existir o objListItem.SubItems(7) = 7 podendo estar marcado ou não na listview, deverá obrigar o usuário primeiro enviar a opção objListItem.SubItems(7) = 7, agradeço muito, to apanhando de uma coisa simples... to bitolado.
Hoje temos o seguinte código fonte que não deixa ele selecionar mult aprovações, porém preciso fazer tambem a seguinte validação:
For Each objListItem In ltwOperacoesPendentes.ListItems
If objListItem.Checked Then
If blnFlag Then
MsgBox "Multi Aprovação com operações de Reset de Senha e Inclusão de Usuário não são permitidas!", vbExclamation, Me.Caption
Exit Sub
End If
'Na coluna 7, está o id_operacao, que indica qual operação
'(1 = cadastro de usuários e 7 = reset de senha)
'Na coluna 8, reside o tipo de operação.
If Index = 0 Then
If (objListItem.SubItems(7) = 1 And objListItem.SubItems(8) = "I") Or _
objListItem.SubItems(7) = 7 Then
'Primeiro obtém a nova senha do usuário.
strFragLSO = objListItem.SubItems(9)
lngIDOperacao = objListItem.SubItems(7)
lngIdUsuario = CapturarIDUsuarioOperacaoPendente(objListItem.SubItems(7), Right(objListItem.Key, Len(objListItem.Key) - 1))
blnFlag = True
End If
End If
strOperacoes = strOperacoes + IIf(strOperacoes = "", "", ",") + Right(objListItem.Key, Len(objListItem.Key) - 1)
End If
Next
Agradeço ajuda!
Bom dia, agradeço a atenção:
Tenho um listview com checkbox, preciso fazer uma verificação ao selecionar um item, a verificação seria assim:
Imagina que tenho X itens no listview, desses itens tem 2 que o valor é igual a 1 e outro igual a 7, preciso da seguinte regra:
Se existir na lista o item 1 e o 7 forçar que seja primeiro selecionado o item 1 entendeu? se na lista existir somente o item com valor 7 passar normalmente.
Hoje eu tenho o seguinte código, ele verifica itens com multi aprovações, precisaria colocar nesse código a validação. Obrigado!
Private Sub ProcessarOperacaoPendente(ByVal Index As Integer)
Dim strOperacoes As String
Dim objListItem As MSComctlLib.ListItem
Dim blnFlag As Boolean
Dim strFragLSO As String
Dim lngIdUsuario As Long
Dim lngIDOperacao As Long
'Captura as operações pendentes e verifica se existe na multi seleção mais de um reset de senha e
'inclusão de usuário selecionados; só é possível multi-aprovação / rejeição nos demais casos, pois
'a inclusão de usuário e o reset de senha implicam em exibir um form com o segundo fragmento da senha,
'o que torna muito ruim a visualização, caso o administrador resolva autorizar 4 resets de senha,
'por exemplo.
For Each objListItem In ltwOperacoesPendentes.ListItems
If objListItem.Checked Then
If blnFlag Then
MsgBox "Multi Aprovação com operações de Reset de Senha e Inclusão de Usuário não são permitidas!", vbExclamation, Me.Caption
Exit Sub
End If
'Na coluna 7, está o id_operacao, que indica qual operação
'(1 = cadastro de usuários e 7 = reset de senha)
'Na coluna 8, reside o tipo de operação.
If Index = 0 Then
If (objListItem.SubItems(7) = 1 And objListItem.SubItems(8) = "I") Or _
objListItem.SubItems(7) = 7 Then
'Primeiro obtém a nova senha do usuário.
strFragLSO = objListItem.SubItems(9)
lngIDOperacao = objListItem.SubItems(7)
lngIdUsuario = CapturarIDUsuarioOperacaoPendente(objListItem.SubItems(7), Right(objListItem.Key, Len(objListItem.Key) - 1))
blnFlag = True
End If
End If
strOperacoes = strOperacoes + IIf(strOperacoes = "", "", ",") + Right(objListItem.Key, Len(objListItem.Key) - 1)
End If
Next
If strOperacoes <> "" Then
'Se houver ao menos uma operação pendente selecionada ....
Load frmAutenticacao
With frmAutenticacao
If Index = 0 Then
.OperacaoCorrente = APROVAR
Else
.OperacaoCorrente = REJEITAR
End If
.idOperacaoPendente = strOperacoes
.FragSenhaLSO = strFragLSO
.idUsuarioAprovado = lngIdUsuario
.idOperacao = lngIDOperacao
.Show vbModal
End With
Unload frmAutenticacao
Call AtualizarLista
Else
MsgBox "Selecione ao menos uma operação pendente!", vbExclamation, Me.Caption
End If
End Sub
Certo, não trabalho muito com listview mas vamos la.
Eu creio que assim como uma listbox, a listview tem(se não tem um campo próprio) para armazenar um valor de qualquer tipo, por exemplo, um código de cliente que deverá ficar oculto e quando este for acionado eis que então o programa busca o valor armazenado.
você poderia adicionar este valor na validação, como não tenho o nome exato agora vou te deixar apenas com um pseudoalgoritmo aqui e alguns sites de referencia, espero que ajude.
ai vai:
Você poderia utilizar estes campos de armazenamento de dados ocultos(se eu não me engano é a propriedade BindingContext) para armazenar os valores dessas propriedades, e então, você poderia definir uma rotina para o evento de clique sobre um subitem, como o selectedIndexChanged, para que ele busque o valor deste BindingContext e verifique se é 1 ou 7, e outro para quando os valores fossem adicionados assim você poderia verificar logo de inicio como você que fazer esta verificação.
Irei averiguar os nomes melhor e dar mais uma pesquisada com uns contatos, mas por enquanto o "algoritmo" é o que eu posso oferecer hehehe espero que isso te ajude.
Aqui vai alguns sites de referencia:
http://msdn.microsoft.com/pt-br/library/system.windows.forms.listbox.aspx
Pessoal muito obrigado mesmo pelas informações e atenção!!! De verdade mesmo!!! eu consegui da seguinte forma:
Criei um contador e fiz uma verificação no itens da lista, ficou assim:
For Each objListItem In ltwOperacoesPendentes.ListItems
'Validação para resetar senha antes do cadastro
intB = intB + 1
If objListItem.Checked Then
If objListItem.SubItems(7) = 1 Then
intA = 1
If intB <> 1 And intB <> 0 And intA = 1 Then
MsgBox "Esta transação deve ser aprovada após a transação de reset de senha.", vbExclamation, Me.Caption
Exit Sub
End If
End If
If blnFlag Then
MsgBox "Multi Aprovação com operações de Reset de Senha e Inclusão de Usuário não são permitidas!", vbExclamation, Me.Caption
Exit Sub
End If
'Na coluna 7, está o id_operacao, que indica qual operação
'(1 = cadastro de usuários e 7 = reset de senha)
'Na coluna 8, reside o tipo de operação.
If Index = 0 Then
If (objListItem.SubItems(7) = 1 And objListItem.SubItems(8) = "I") Or _
objListItem.SubItems(7) = 7 Then
'Primeiro obtém a nova senha do usuário.
strFragLSO = objListItem.SubItems(9)
lngIDOperacao = objListItem.SubItems(7)
lngIdUsuario = CapturarIDUsuarioOperacaoPendente(objListItem.SubItems(7), Right(objListItem.Key, Len(objListItem.Key) - 1))
blnFlag = True
End If
End If
strOperacoes = strOperacoes + IIf(strOperacoes = "", "", ",") + Right(objListItem.Key, Len(objListItem.Key) - 1)
End If
Next
Se alguém passar por esta mesma situação estou a disposição para ajudar!
Muito bom cara, não precisou nem das referencias ;D
Cara não entendi o seu problema, você conseguiria por favor explicar melhor o que você deseja fazer?
Grato