No vídeo de hoje vamos demonstrar o que pode causar do registro não ser encontrado via DbSeek / MsSeek (mesmo o registro existindo no banco de dados).
Essa dúvida foi feita pelo grande Igor, onde ele questionou que mesmo as variáveis estando corretas, o Seek não encontrava os registros.
Então foi explicado que o que pode ter ocasionado são os espaços a direita, ai usamos a função AvKey para demonstração.
E abaixo o código fonte desenvolvido para exemplificar:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zVid0055 Função para demonstrar o posicionamento de registros com DbSeek / MsSeek @type Function @author Atilio @since 29/08/2022 /*/ User Function zVid0055() Local aArea := FWGetArea() Local cFilSB1 := FWxFilial("SB1") Local cDescri := "Caneta Vermelha" Local cCodigo := "E0002" DbSelectArea("SB1") SB1->(DbSetOrder(3)) //B1_FILIAL + B1_DESC + B1_COD //Primeiro teste (que não irá encontrar o registro) If SB1->(MsSeek(Alltrim(cFilSB1) + cDescri + cCodigo)) FwAlertInfo("Encontrou", "Teste 1") Else FwAlertInfo("Não encontrou", "Teste 1") EndIf //Segundo teste (que irá encontrar o registro) If SB1->(MsSeek(cFilSB1 + AvKey(cDescri, "B1_DESC") + AvKey(cCodigo, "B1_COD"))) FwAlertInfo("Encontrou", "Teste 2") Else FwAlertInfo("Não encontrou", "Teste 2") EndIf FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.