Trava um registro para manipulação
Exemplo da Rotina:
RecLock([Alias], [.T. = inclusão, .F. = manipulação])
Exemplo 1- Incluindo um registro em uma tabela customizada:
RecLock("ZZZ", .T.)
ZZZ->ZZZ_FILIAL := FWxFilial('ZZZ')
ZZZ->ZZZ_CAMP01 := "AAA"
ZZZ->ZZZ_CAMP02 := "BBB"
ZZZ->ZZZ_CAMP03 := "CCC"
ZZZ->ZZZ_CAMP04 := "DDD"
ZZZ->(MsUnlock())
Exemplo 2- Alterando um registro via DbSeek:
DbSelectArea('SB1')
SB1->(DbSetOrder(1)) // Filial + Código
//Se conseguir posicionar no produto
If SB1->(DbSeek(FWxFilial('SB1') + "COD_AAA"))
RecLock('SB1', .F.)
SB1->B1_X_CAMPO := "AAA"
SB1->(MsUnlock())
EndIf
Exemplo 3- Alterando um registro via DbGoTo:
//Pegando o RecNo desejado
nRecno := 41574
//Posicionando no registro
DbSelectArea('SB1')
SB1->(DbGoTo(nRecno))
//Alterando o registro
RecLock('SB1', .F.)
SB1->B1_X_CAMPO := "CCC"
SB1->(MsUnlock())
Exemplo 4- Excluindo um registro de uma tabela customizada:
RecLock("ZZZ", .F.)
DbDelete()
ZZZ->(MsUnlock())
Exemplo 5- Verificando se pode ser feita uma manipulação:
If RecLock("ZZZ", .F.)
//comandos
ZZZ->(MsUnlock())
Else
MsgStop("Não foi possível travar o registro para manipulação!", "Atenção")
EndIf
Exemplo em Vídeo:
Clique nesse link para ver um exemplo em Vídeo da nossa Maratona de Exemplos.
Observações:
- Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
- Se tiver sugestões de rotinas, pode entrar em contato;