Skip to content

method NewFldTab

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

NewFldTab

:NewFldTab(jCab,cCampo,cDescricao,nTamanho,cPicture,cCombo,xStyle,nOrdem,cTipo,cDados,lNewCampo,lHidden,nTamDados)
Inicializa/altera a definição de um campo para ser usada no Alias2Tab. Permite alterar descrição, tamanho, picture, combo, estilo, ordem, ou criar um campo novo calculado.


Parâmetros

Parâmetro Tipo Descrição Obrigatório Obs
jCab json Objeto json com as definições de campos (o mesmo passado ao Alias2Tab) X
cCampo caractere Nome do campo no alias X
cDescricao caractere Descrição/título da coluna nil para não alterar
nTamanho numérico Tamanho da coluna no Excel nil para não alterar
cPicture caractere Picture do campo (ex: "@E 999,999,999.99") nil para não alterar
cCombo caractere Combo de opções (ex: "F=Física;J=Jurídica") nil para não alterar
xStyle objeto Estilo da coluna
nOrdem numérico Ordem da coluna
cTipo caractere Altera o tipo de dado (C,N,D,L)
cDados caractere Altera o dado de leitura (expressão AdvPL, ex: "Recno()")
lNewCampo lógico Cria um campo novo (que não existe no alias) Default .F.
lHidden lógico Oculta o campo Default .F.
nTamDados numérico Tamanho dos dados

Retorno

Json - definição de campos atualizada

Exemplo

Local jCab
Local oExcel    := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
Local oPosMoeda := oExcel:NewStyle():SetnumFmt(44)
Local cAlias    := MpSysOpenQuery("SELECT A1_CGC,A1_COD,A1_PESSOA,A1_NOME,A1_DESC,A1_MSALDO FROM "+RetSqlName("SA1")+" WHERE D_E_L_E_T_=' '")
oExcel:ADDPlan(cNome="SA1",cCor="1F497D")
jCab := jSonObject():New()
oExcel:NewFldTab(jCab=jCab,cCampo="A1_COD",cDescricao="Código do Cliente",nTamanho=10)               //Altera descrição e tamanho
oExcel:NewFldTab(jCab=jCab,cCampo="A1_PESSOA",cCombo="F=Física;J=Jurídica")          //Define combo
oExcel:NewFldTab(jCab=jCab,cCampo="A1_DESC",cPicture="@E 999,999,999.99")               //Define picture
oExcel:NewFldTab(jCab=jCab,cCampo="A1_MSALDO",xStyle=oPosMoeda)                     //Define estilo moeda
oExcel:NewFldTab(jCab=jCab,cCampo="NEWCAMPO",cDescricao="Registro",nTamanho=10,cPicture="9",cTipo="N",cDados="Recno()",lNewCampo=.T.) //Campo novo calculado
oExcel:Alias2Tab(cAlias=cAlias,lSx3=.T.,jCab=jCab)
(cAlias)->(DbCloseArea())
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()

Obs

As propriedades do campo também podem ser ajustadas diretamente no json após a criação, ex: jCab["B1_GRUPO"]["ordem"] := 1.


Clone this wiki locally