Nesse vídeo será demonstrado em como deixar uma variável caractere com o mesmo tamanho de um campo do dicionário (ideal para fazer Seek) com a função AvKey.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe058 Exemplo de função que formata um conteúdo conforme o campo do dicionário @type Function @author Atilio @since 05/12/2022 @obs Função AvKey Parâmetros + Conteúdo que será formatado podendo ser numérico ou data ou caractere + Nome do campo do dicionário (SX3) + Define se irá truncar o conteúdo do xInformacao caso o seja menor que o tamanho do campo + Se é para considerar um array como struct do campo (similar ao DbStruct mas somente do campo) Retorno + Conteúdo formatado conforme campo do dicionário de dados (SX3) **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe058() Local aArea := FWGetArea() Local cDescri := "Banana" Local cCodigo := "F0002" //Abre a tabela de produtos e usa o índice da descrição DbSelectArea("SB1") SB1->(DbSetOrder(3)) // B1_FILIAL + B1_DESC + B1_COD //Tenta posicionar logo como veio os dados If SB1->(MsSeek(FWxFilial('SB1') + cDescri + cCodigo)) FWAlertSuccess("Encontrou a busca", "Teste 1") Else FWAlertError("Não Encontrou", "Teste 1") EndIf //Agora formata o conteúdo com o AvKey cDescri := AvKey(cDescri, "B1_DESC") cCodigo := AvKey(cCodigo, "B1_COD") If SB1->(MsSeek(FWxFilial('SB1') + cDescri + cCodigo)) FWAlertSuccess("Encontrou a busca", "Teste 2") Else FWAlertError("Não Encontrou", "Teste 2") EndIf FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Precisei fazer isto ontem, porém fiz utilizando
Left(cString,TamSX3(‘CAMPO’)[1]) 😀
Bom dia Rafael.
Opa, obrigado pelo comentário jovem.
Um grande abraço.