Nesse vídeo demonstraremos a utilização da função DlgToExcel, que serve para pegar algumas informações e gerar um arquivo e abrindo via Excel.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" #Include "TopConn.ch" /*/{Protheus.doc} User Function zExe146 Função que gera um arquivo do Excel (csv) através de informações vindas por parâmetros @type Function @author Atilio @since 16/12/2022 @see https://tdn.totvs.com/pages/releaseview.action?pageId=39682606 @obs Função DlgToExcel Parâmetros + aExport , Array , Dados que serão exportados separados em 1 = Tipo; 2 = Título; 3 = Cabeçalho dos Campos; 4 = Dados Retorno Função não tem retorno **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe146() Local aArea := FWGetArea() Local aCabec := {} Local aDados := {} Local aCampos := {} Local aHeader := {} Local aCols := {} Local cQryAux := "" //Exemplo #1 - Exporta um Array aCabec := {"Nome", "Data Nascimento", "Cidade"} aAdd(aDados, {"Daniel", sToD("19930712"), "Bauru"}) aAdd(aDados, {"Joao", sToD("19910131"), "Agudos"}) aAdd(aDados, {"Maria", sToD("19921231"), "Piratininga"}) DlgToExcel({ {"ARRAY", "Exportacao de dados de um Array", aCabec, aDados} }) //Exemplo #2 - Exportar uma tabela aCampos := {} aAdd(aCampos, {"Grupo", "BM_GRUPO"}) aAdd(aCampos, {"Descricao", "BM_DESC"}) DlgToExcel({ {"TABELA", "Exportacao de dados de uma Tabela", aCampos, "SBM"} }) //Exemplo #3 - Exporta um GetDados (grid com aHeader e aCols) // Título Campo Máscara Tamanho Decimal Valid Usado Tipo F3 Combo aAdd(aHeader, {"Código", "B1_COD", "", TamSX3("B1_COD")[01], 0, ".T.", ".T.", "C", "", ""} ) aAdd(aHeader, {"Descrição", "B1_DESC", "", TamSX3("B1_DESC")[01], 0, ".T.", ".T.", "C", "", ""} ) aAdd(aHeader, {"Tipo", "B1_TIPO", "", TamSX3("B1_TIPO")[01], 0, ".T.", ".T.", "C", "", ""} ) aAdd(aHeader, {"Unidade Medida", "B1_UM", "", TamSX3("B1_UM")[01], 0, ".T.", ".T.", "C", "", ""} ) //Busca os produtos cQryAux := " SELECT B1_COD, B1_DESC, B1_TIPO, B1_UM "+ CRLF cQryAux += " FROM " + RetSQLName("SB1") + " SB1 "+ CRLF cQryAux += " WHERE B1_FILIAL = '" + FWxFilial("SB1") + "' AND B1_MSBLQL != '1' AND SB1.D_E_L_E_T_ = ' ' "+ CRLF TCQuery cQryAux New Alias "QRY_AUX" //Percorre os dados e adiciona nos arrays While ! QRY_AUX->(EoF()) aAdd(aCols, {; QRY_AUX->B1_COD,; // Produto QRY_AUX->B1_DESC,; // Descrição QRY_AUX->B1_TIPO,; // Tipo QRY_AUX->B1_UM,; // Unid. Med. .F.; // Linha Excluida? }) QRY_AUX->(DbSkip()) EndDo QRY_AUX->(DbCloseArea()) DlgToExcel({ {"GETDADOS", "Exportacao de dados de uma Grid", aHeader, aCols} }) FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Daniel,
Função DLGToExcel foi descontinuada.
https://centraldeatendimento.totvs.com/hc/pt-br/articles/360033305094-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Fun%C3%A7%C3%A3o-DlgToExcel-
Boa tarde Jaime, tudo joia?
Opa, obrigado pelo comentário e adendo.
Um grande abraço.