Definindo um índice e ordenando um alias com DbSetOrder – Maratona AdvPL e TL++ 131

Nesse vídeo demonstraremos a utilização da função DbSetOrder, que serve para definir um índice utilizado para ordenação em um alias.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe131
Ordena uma tabela conforme o índice
@type Function
@author Atilio
@since 15/12/2022
@see https://tdn.totvs.com/display/tec/DBSetOrder
@obs 
    Função DbSetOrder
    Parâmetros
        + nOrdem        , Numérico   , Número do Índice do Alias sendo que a partir da letra A no configurador passa a ser 10 (então B é 11, C é 12, D é 13 e assim por diante)
    Retorno
        Não possui retorno

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe131()
    Local aArea      := FWGetArea()
    Local cMensagem  := ""

    //Usa o índice 1
    DbSelectArea("SB1")
    SB1->(DbSetOrder(1))
    
    //Monta a mensagem e exibe
    cMensagem := "Cadastro de Produtos" + CRLF + CRLF
    cMensagem += "O índice numérico é: " + cValToChar(SB1->(IndexOrd())) + CRLF
    cMensagem += "E a chave do índice é: " + SB1->(IndexKey(IndexOrd())) + CRLF
    FWAlertInfo(cMensagem, "Teste 1 DbSetOrder")





    //Agora usa o índice 5
    SB1->(DbSetOrder(5))

    //Monta a mensagem e exibe
    cMensagem := "Cadastro de Produtos" + CRLF + CRLF
    cMensagem += "O índice numérico é: " + cValToChar(SB1->(IndexOrd())) + CRLF
    cMensagem += "E a chave do índice é: " + SB1->(IndexKey(IndexOrd())) + CRLF
    FWAlertInfo(cMensagem, "Teste 2 DbSetOrder")





    //Agora usa o índice "C" (12)
    SB1->(DbSetOrder(12))

    //Monta a mensagem e exibe
    cMensagem := "Cadastro de Produtos" + CRLF + CRLF
    cMensagem += "O índice numérico é: " + cValToChar(SB1->(IndexOrd())) + CRLF
    cMensagem += "E a chave do índice é: " + SB1->(IndexKey(IndexOrd())) + CRLF
    FWAlertInfo(cMensagem, "Teste 3 DbSetOrder")

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação