Nesse vídeo demonstraremos a utilização da função TCSetField, que serve para definir o tipo de um campo de uma query (ideal para campos do tipo data).
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" #Include "TopConn.ch" /*/{Protheus.doc} User Function zExe480 Atualiza as definições de uma tabela no Cache do DBAccess @type Function @author Atilio @since 03/04/2023 @see https://tdn.totvs.com/display/tec/TCSetField @obs TCSetField Parâmetros + cAlias , Caractere , Alias da Query + cField , Caractere , Nome do campo da Query + cType , Caractere , Indica o tipo que será definido (D de Data; N de Numérico; L de Lógico) + nSize , Numérico , Tamanho do campo + nPrecision , Numérico , Quantidade de decimais do campo Retorno Função não tem retorno **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe480() Local aArea := FWGetArea() Local cQrySB1 := "" //Monta uma query para buscar um grupo de produto com o código G001 cQrySB1 += " SELECT " + CRLF cQrySB1 += " B1_COD, B1_DESC, B1_UREV, B1_DATREF " + CRLF cQrySB1 += " FROM " + CRLF cQrySB1 += " " + RetSQLName("SB1") + " SB1 " + CRLF cQrySB1 += " WHERE " + CRLF cQrySB1 += " B1_FILIAL = '" + FWxFilial("SB1") + "' " + CRLF cQrySB1 += " AND B1_GRUPO = 'G001' " + CRLF cQrySB1 += " AND SB1.D_E_L_E_T_ = ' ' " + CRLF //Abre o alias em memória TCQuery cQrySB1 New Alias "QRY_SB1" //Define o campo B1_UREV como do tipo Data TCSetField("QRY_SB1", "B1_UREV", "D") //Exibe alguma mensagem, caso haja dados If ! QRY_SB1->(EoF()) FWAlertInfo("Descrição do primeiro registro: " + QRY_SB1->B1_DESC, "Teste TCSetField") EndIf //Fecha o alias QRY_SB1->(DbCloseArea()) FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.