Como abrir um arquivo CTREE via AdvPL | Ti Responde 0094

No vídeo de hoje, vamos demonstrar em como abrir um arquivo dtc (CTREE) manualmente via AdvPL usando DbUseArea.

A dúvida de hoje, nos perguntaram, se seria possível abrir antigos arquivos com a extensão .dtc.

 

Pensando nisso, montamos esse exemplo, onde demonstramos em como utilizar a função DbUseArea para abrir esse tipo de arquivo, e assim ter acesso aos dados contido nele.

 

Segue abaixo o vídeo exemplificando:

 

E abaixo o código fonte desenvolvido:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} zVid0094
Exemplo de como abrir um arquivo dtc (ctree) via programação
@type user function
@author Atilio
@since 19/01/2024
/*/

User Function zVid0094()
    Local aArea     := FWGetArea()
    Local cRDD      := "CTREECDX"
    Local cAliasArq := GetNextAlias()
    Local cArquiAtu := "\x_temp\arquivo.dtc"
    Local cMensagem := ""

    //Somente se o arquivo existir
    If File(cArquiAtu)

        //Abre o arquivo CTREE
        DbUseArea(.T., cRDD, cArquiAtu, cAliasArq, .F., .F.)

        //Se tiver dados, exibe uma mensagem
        If ! (cAliasArq)->(EoF())
            cMensagem := "Arquivo " + cArquiAtu + " aberto com sucesso!" + CRLF + CRLF
            cMensagem += "Agora você pode fazer laços de repetição e usar comandos como DbSkip." + CRLF + CRLF
            cMensagem += "Na primeira linha, tem essa informação: " + (cAliasArq)->X3_CAMPO + CRLF
            ShowLog(cMensagem)

        //Senão, avisa que não encontrou informações
        Else
            FWAlertInfo("Não tem dados!", "Arquivo: " + cArquiAtu)
        EndIf
        (cAliasArq)->(DbCloseArea())
    EndIf

    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