Skip to content

method NewRuleLine

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

NewRuleLine

:NewRuleLine(bBloco,aRegra)
Cria uma regra de formatação de linhas para uso no Alias2Tab e no DefBulkLine. O bloco é avaliado a cada linha e o retorno é comparado com as regras cadastradas.


Parâmetros

Parâmetro Tipo Descrição Obrigatório Obs
bBloco bloco de código Bloco avaliado a cada linha - o retorno (caractere) identifica qual regra aplicar X
aRegra array Regras iniciais no formato {cRegra,oStyle,lPrincipal} Podem ser adicionadas depois com AddRegra

Retorno

Objeto - instância de custom.excel.RegraLinha

Métodos do objeto RegraLinha

Método Descrição
AddRegra(cRegra,oStyle,lPrincipal) Cadastra uma regra: quando o retorno do bloco for igual a cRegra, aplica oStyle. lPrincipal indica se substitui o estilo principal da linha
GetArray() Retorna o array interno da regra (para uso no DefBulkLine)

Exemplo

Local oRegraLinha
Local oExcel   := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
Local nPosCor3 := oExcel:CorPreenc("FF4F81BD")
Local nPosFont3:= oExcel:AddFont(nTamanho=11,xCorRGB="FFFFFFFF",cNome="Calibri",cfamily="2")
Local oEstilo1 := oExcel:NewStyle():Setborder(oExcel:Borda("ALL"))
Local oSubTotal:= oExcel:NewStyle(oEstilo1):Setfill(nPosCor3):SetFont(nPosFont3)
oExcel:ADDPlan(cNome="SB1",cCor="E26B0A")
SB1->(DbGoTop())
oExcel:DefSubTotal(cChave="B1_GRUPO",lSubTotal=.T.,lTotalGeral=.T.,lAgrupar=.T.,nNivel=2)
oExcel:AddSubTotal(cCampo="B1_PRV1",cFuncao="9")
//Regra para formatação de linha: o bloco retorna o tipo de linha impressa
oRegraLinha := oExcel:NewRuleLine({|| oExcel:cSubTotalTp })
oRegraLinha:AddRegra(cRegra="S",oStyle=oSubTotal,lPrincipal=.F.) //Linha de SubTotal
oRegraLinha:AddRegra(cRegra="T",oStyle=oSubTotal,lPrincipal=.F.) //Linha de Total Geral
oExcel:Alias2Tab(cAlias="SB1",lSx3=.T.,xRegraStyle=oRegraLinha,oStyleLinha=oEstilo1)
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()

Obs

Também é possível formatar apenas uma coluna da linha, retornando no bloco o nome do campo concatenado ao valor, ex: {|| oExcel:cCampo+"|"+(cAlias)->A1_RECCOFI } com a regra AddRegra("A1_RECCOFI|S",oStyle,.F.).


Clone this wiki locally