-
Notifications
You must be signed in to change notification settings - Fork 27
method DefSubTotal
Saulo Martins edited this page Jul 4, 2026
·
1 revision
:DefSubTotal(cChave,lSubTotal,lTotalGeral,lAgrupar,nNivel)
Cria a definição de subtotal e agrupamento para o Alias2Tab
| Parâmetro | Tipo | Descrição | Obrigatório | Obs |
|---|---|---|---|---|
| cChave | caractere | Campo chave do subtotal - gera subtotal a cada mudança de valor | X | |
| lSubTotal | lógico | Cria subtotal a cada modificação da chave | ||
| lTotalGeral | lógico | Cria total geral | ||
| lAgrupar | lógico | Agrupa as linhas (estrutura de tópicos) | ||
| nNivel | numérico | Nível para exibir: 1=Total Geral, 2=SubTotal, 3=Linhas |
Nulo
:AddSubTotal(cCampo,cFuncao,bFormula,bAdvpl,bAdvplExib,xValorIni)
Adiciona uma coluna à definição de subtotal.
| Parâmetro | Tipo | Descrição | Obrigatório | Obs |
|---|---|---|---|---|
| cCampo | caractere | Nome do campo | X | |
| cFuncao | caractere | Função a ser totalizada (tabela abaixo) | Default "9" (Somar) | |
| bFormula | bloco de código | Bloco com retorno da fórmula - enviar quando cFuncao="formula" | Recebe {|cLinIni,cLinFim,cColuna,cChave,lTotalGeral| ...} | |
| bAdvpl | bloco de código | Bloco AdvPL para acumular o subtotal da coluna | Recebe {|aValAtu,xValor| ...} | |
| bAdvplExib | bloco de código | Bloco para exibição da linha de subtotal | Recebe {|aValAtu| ...} | |
| xValorIni | variant | Valor inicial do acumulador |
| Valor | Descrição |
|---|---|
| "1" | Média |
| "2" | Cont.Núm |
| "3" | Cont.Valores |
| "4" | Máximo |
| "5" | Mínimo |
| "9" | Soma (padrão) |
| "last" | Último conteúdo do grupo |
| "formula" | Usa o bloco bFormula para montar a fórmula |
Local oExcel := custom.excel.Xlsx():New(cNomeFile="TstYExcel",cTipo="A")
oExcel:ADDPlan(cNome="SB1",cCor="E26B0A")
SB1->(DBSetOrder(4)) //B1_FILIAL, B1_GRUPO, B1_COD
SB1->(DbGoTop())
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:AddSubTotal(cCampo="B1_PICM",cFuncao="1") //Média
//Fórmula customizada com acumulador AdvPL
oExcel:AddSubTotal(cCampo="B1_LOCPAD",cFuncao="formula";
,bFormula={|cLinIni,cLinFim,cColuna,cChave,lTotalGeral| "SUBTOTAL(3,"+cColuna+cLinIni+":"+cColuna+cLinFim+")" };
,bAdvpl={|aValAtu,xValor| aValAtu[1]+=1 };
,bAdvplExib={|aValAtu,xValor| cValToChar(aValAtu[1]) };
,xValorIni=0)
oExcel:Alias2Tab(cAlias="SB1",lSx3=.T.)
oExcel:Save(GetTempPath())
oExcel:OpenApp()
oExcel:Close()Deve ser chamado antes do Alias2Tab.
Os números de função seguem a função SUBTOTAL do Excel.
- Olá Mundo
- Exemplo Ler xlsx
- Métodos Principais
- New - Construtor da classe
- Open - Abrir planilha (senha opcional)
- GetError - Obter erro da última abertura
- AddPlan - Adicionar planilha
- SetValue - Definir valor da célula
- GetValue - Obter valor da célula
- Save - Salvar planilha
- SetPassword - Proteger com senha de abertura
- OpenApp / Close - Abrir no Excel / Fechar objeto
- SetsheetProtection - Proteger planilha contra edição
- Métodos Posicionamento e referência
- Métodos Células e Conteúdo
- Métodos Estilos
- NewStyle
- NewStyRules
- CorPreenc
- EfeitoPreenc
- AddFont
- Alinhamento
- Borda
- AddFmt
- AddFmtNum
- FormatCond / FormatCondDup / FormatCondTempo
- DataBar - Barra de dados
- IconSet - Conjunto de ícones
- Cellprotection
- Métodos Dimensões e Agrupamento
- Métodos Impressão
- Métodos Imagens
- Gráficos (Charts)
- Visão Geral — Tipos suportados
- Exemplo Completo
- NewChart - Criar gráfico pelo atalho
- Métodos comuns (todos os tipos)
- AddSerie - Adicionar série de dados
- SetTitulo / SetLegenda / SetGrade - Título, legenda e grade
- Set3D - Visualização 3D
- Insert - Inserir na planilha
- Tipos de gráfico
- ChartBar - Colunas e barras
- ChartLine - Linhas
- ChartPie - Pizza
- ChartScatter - Dispersão XY
- ChartArea / ChartStock / ChartRadar - Área, Ações e Radar
- ChartDoughnut / ChartOfPie - Rosca e Pizza de Pizza
- ChartBubble / ChartSurface - Bolhas e Superfície
- ChartCombo - Combinação de gráficos
- Tabela formatada
- Preenchimento em massa (bulk)
- Exemplo 1 - Básico
- BulkNewField - Definição de novas colunas do bulk
- DefBulkLine - Criar definição de campos para preenchimento em massa
- SetValueBulk - Definir valor para preenchimento de bulk
- SetBulkLine - Preenche a linha em bulk do Excel
- FlushBulk - Atualiza dados do Excel
- Preenchimento Excel com Query/Alias
- Exemplo 1 - Básico
- Alias2Tab - Preenche o Excel baseado no alias
- NewFldTab - Altera definição de campos ou cria novo campo
- DefSubTotal - Cria subtotal e agrupamento de subtotal
- NewRuleLine - Regra de formação de linhas