Skip to content

method Alias2Tab

Saulo Martins edited this page Jul 4, 2026 · 1 revision

Alias2Tab

:Alias2Tab(cAlias,oStyle,lSx3,jCab,lExibirCab,lCombo,aOnlyFieds,xRegraStyle,oStyleLinha,lFiltro,lRTrim,oTabela)
Preenche a planilha atual com o conteúdo de um alias (tabela ou query aberta), com definição automática dos campos pelos SXs


Parâmetros

Parâmetro Tipo Descrição Obrigatório Obs
cAlias caractere Alias com os dados (tabela posicionada ou query) X
oStyle objeto Estilo a ser aplicado no cabeçalho
lSx3 lógico Busca as definições de campo na SX3 (descrição, picture, combo)
jCab json Modifica o cabeçalho dos campos - criado pelo NewFldTab
lExibirCab lógico Exibe o cabeçalho da tabela
lCombo lógico Traduz os campos do tipo combobox para a descrição
aOnlyFieds array Se enviado, somente os campos informados são exibidos
xRegraStyle objeto ou array Regra para formatação dinâmica de linhas - criada pelo NewRuleLine
oStyleLinha objeto Estilo padrão para as linhas
lFiltro lógico Habilita o filtro automático
lRTrim lógico Aplica RTrim nos campos caractere
oTabela objeto Objeto do formato tabela do Excel (AddTabela)

Retorno

Nulo

Exemplo

Local jCab, oRegraLinha
Local lSx3       := .T.  //Buscar definições de campo da SX3
Local lExibirCab := .T.  //Exibir cabeçalho da tabela
Local aOnlyFieds := {"B1_COD","B1_DESC","B1_TIPO","B1_GRUPO","B1_UM","B1_LOCPAD","B1_PICM","B1_PRV1"}
Local oExcel     := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
Local oPosMoeda  := oExcel:NewStyle():SetnumFmt(44)
Local nPosCor3   := oExcel:CorPreenc("FF4F81BD")
Local nPosFont3  := oExcel:AddFont(nTamanho=11,xCorRGB="FFFFFFFF",cNome="Calibri",cfamily="2")
Local oPosCAB    := oExcel:NewStyle():SetFont(nPosFont3):Setfill(nPosCor3)
Local oEstilo1   := oExcel:NewStyle():Setborder(oExcel:Borda("ALL"))

oExcel:ADDPlan(cNome="SB1",cCor="E26B0A")
SB1->(DBSetOrder(4)) //B1_FILIAL, B1_GRUPO, B1_COD
SB1->(DbGoTop())

//Definir detalhe dos campos manualmente
jCab := jSonObject():New()
oExcel:NewFldTab(jCab=jCab,cCampo="B1_PRV1")
jCab["B1_PRV1"]["style"]  := oPosMoeda //Campo com formato moeda
oExcel:NewFldTab(jCab=jCab,cCampo="B1_GRUPO")
jCab["B1_GRUPO"]["ordem"] := 1         //Alterar a ordem da coluna

//Criar subtotal por grupo
oExcel:DefSubTotal(cChave="B1_GRUPO",lSubTotal=.T.,lTotalGeral=.T.,lAgrupar=.T.,nNivel=2)
oExcel:AddSubTotal(cCampo="B1_GRUPO",cFuncao="last") //Último conteúdo
oExcel:AddSubTotal(cCampo="B1_PRV1",cFuncao="9")     //Somar

oExcel:Alias2Tab(cAlias="SB1",oStyle=oPosCAB,lSx3=lSx3,jCab=jCab,lExibirCab=lExibirCab,aOnlyFieds=aOnlyFieds,oStyleLinha=oEstilo1)

oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()

Obs

Para gerar no formato "Formatar como Tabela" do Excel, chame o Alias2Tab a partir do objeto retornado pelo AddTabela.
Veja também o Exemplo Preenchimento com Query/Alias, NewFldTab, DefSubTotal e NewRuleLine.


Clone this wiki locally