DevExpress PivotGrid
Boa tarde
Preciso gerar um fluxo de caixa utilizando o Pivot. Quando eu monto e mostro dia a dia não tenho problemas, porém quando o usuário agrupa por mes não estou conseguindo montar o saldo final. Exemplo:
[img:descricao=Fluxo aberto por dia]http://arquivo.devmedia.com.br/forum/imagem/462290-20151104-164718.png[/img]
[img:descricao=Fluxo por mês]http://arquivo.devmedia.com.br/forum/imagem/462290-20151104-164749.png[/img]
A linha do saldo inicial eu consegui sempre fazer com que busque o primeiro registro de cada agrupamento (não pode somar porque o saldo inicial do dia 02 deve ser o saldo final do dia 01 e assim por diante). Porém o saldo final não pode ser a soma de todos os saldos finais (o que seria o normal do Pivot), tem que ser o saldo inicial + entradas - Saídas.
E pra completar cada dia pode ter até duas colunas (previsto e realizado).
Alguém sabe como posso fazer isso?
Editado em 04/11/2015 às 17:07
Solução para buscar o saldo inicial:
1) Criar uma procedure para calcular os sumários customizada.
2) No procedimento verifico se é a linha do saldo inicial (como tá escrito) e verifico se o campo que está listado não for o da data (caso quando está agrupado por mês ou ano) e pego o valor do primeiro registro:
3) No campo do PivotGrid coloco o módulo de totalização do sumário como customizada:
4) Seto o procedimento que vai efetuar o calculo customizado ao campo:
Espero que ajude.
Um abraço
Preciso gerar um fluxo de caixa utilizando o Pivot. Quando eu monto e mostro dia a dia não tenho problemas, porém quando o usuário agrupa por mes não estou conseguindo montar o saldo final. Exemplo:
[img:descricao=Fluxo aberto por dia]http://arquivo.devmedia.com.br/forum/imagem/462290-20151104-164718.png[/img]
[img:descricao=Fluxo por mês]http://arquivo.devmedia.com.br/forum/imagem/462290-20151104-164749.png[/img]
A linha do saldo inicial eu consegui sempre fazer com que busque o primeiro registro de cada agrupamento (não pode somar porque o saldo inicial do dia 02 deve ser o saldo final do dia 01 e assim por diante). Porém o saldo final não pode ser a soma de todos os saldos finais (o que seria o normal do Pivot), tem que ser o saldo inicial + entradas - Saídas.
E pra completar cada dia pode ter até duas colunas (previsto e realizado).
Alguém sabe como posso fazer isso?
Editado em 04/11/2015 às 17:07
Solução para buscar o saldo inicial:
1) Criar uma procedure para calcular os sumários customizada.
procedure MyCustomSummary(Sender: TcxPivotGridField; ASummary: TcxPivotGridCrossCellSummary);
2) No procedimento verifico se é a linha do saldo inicial (como tá escrito) e verifico se o campo que está listado não for o da data (caso quando está agrupado por mês ou ano) e pego o valor do primeiro registro:
procedure TFINCN029.MyCustomSummary(Sender: TcxPivotGridField;
ASummary: TcxPivotGridCrossCellSummary);
var
ARow, AColumn: TcxPivotGridGroupItem;
begin
if ASummary.Records.Count = 0 then
Exit;
ARow := ASummary.Owner.Row;
AColumn := ASummary.Owner.Column;
if (ARow.DisplayText = 'SALDO INICIAL') and (AColumn.Field.Caption <> 'Data') then
begin
ASummary.Custom := ASummary.GetValue(ASummary.Records.Items[0]);
end
else
ASummary.Custom := ASummary.Sum;
end;3) No campo do PivotGrid coloco o módulo de totalização do sumário como customizada:
GridPivot.GetFieldByName('Valor').SummaryType := stcustom;4) Seto o procedimento que vai efetuar o calculo customizado ao campo:
GridPivot.GetFieldByName('Valor').OnCalculateCustomSummary := MyCustomSummary;Espero que ajude.
Um abraço
Fernando Vicari
Curtidas 0
Respostas
Fernando Vicari
04/11/2015
Alguém?
GOSTEI 0
Wilson Neto
04/11/2015
Amigo, estou precisando realizar o mesmo processo utilizando o pivot grid, porem estou encontrando dificuldades, vc pode me informar a estrutura de tabelas utilizada?
GOSTEI 0