Monta um order by conforme índice através da SqlOrder – Maratona AdvPL e TL++ 454

Nesse vídeo demonstraremos a utilização da função SqlOrder, que serve para montar um order by (para ser usado em query) através de uma expressão de índice.

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

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe454
Monta uma ordenação para ser usada em Order By
@type Function
@author Atilio
@since 31/03/2023
@obs 

    Função SqlOrder
    Parâmetros
        Recebe a expressão da SIX (exemplo B1_FILIAL + B1_COD)
    Retorno
        Retorna a expressão para ser usada no SQL (exemplo B1_FILIAL, B1_COD)

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

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

    //Agora usa o índice 8
    DbSelectArea("SB1")
    SB1->(DbSetOrder(8))

    //Monta a mensagem e exibe
    cMensagem := "Cadastro de Produtos" + CRLF + CRLF
    cMensagem += "O índice da SIX é: " + SB1->(IndexKey()) + CRLF
    cMensagem += "O índice para SQL é: " + SqlOrder(SB1->(IndexKey())) + CRLF
    FWAlertInfo(cMensagem, "Teste SqlOrder")

    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