No vídeo de hoje, vamos demonstrar a diferença de buscar os campos entre a DbStruct e a FWSX3Util.
A dúvida de hoje, nos perguntaram, qual seria a diferença entre usar a DbStruct e a FWSX3Util para buscar os campos.
Pensando nisso, montamos esse exemplo, onde as principais diferenças são:
- Na DbStruct não traz campos virtuais. Já na FWSX3Util você tem essa opção
- Na DbStruct traz o nome do campo, tipo, tamanho e decimais. Já na FWSX3Util traz apenas o nome do campo
- Na DbStruct a ordem que vem, é conforme o campo foi criado na base. Já na FWSx3Util traz a ordenação respeitando a configuração do dicionário (X3_ORDEM)
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zVid0099 Exemplo de comparação entre DbStruct e FWSX3Util (por causa do X3_ORDEM) @type Function @author Atilio @since 01/03/2024 /*/ User Function zVid0099() Local aArea := FWGetArea() Local aEstruSB1 := {} Local aSX3daSB1 := {} Local cMensagem := "" //Abre a tabela de produtos e busca todos os campos DbSelectArea("SB1") aEstruSB1 := SB1->(DbStruct()) aSX3daSB1 := FWSX3Util():GetAllFields("SB1", .F. /*lVirtual*/) //Exibe uma mensagem com a quantidade em comparação cMensagem := FormatStr("Com DbStruct: %n , com FWSX3Util %n", {Len(aEstruSB1), Len(aSX3daSB1)}) FWAlertInfo(cMensagem, "Comparação") FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.