USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Crystal Reports)

Título da Dica:  Como criar um running total manual para uma linha de um Cross-Tab?
Postada em 6/10/2003 por ~Ð@®£@Ñ            
Refere-se a: Crystal Reports 9

Problema

No Crystal Reports (CR) 9, é possível criar um running total manual que incrementa baseado nos valores de uma linha do Cross-tab?


Solução

No CR 9, há uma propriedade de formatação, 'Display String', que pode ser utilizada para criar uma fórmula running total manual num cross-tab.


Criando um Running Total Manual num Cross-Tab
----------------------------------------------

====================
OBS:

Este exemplo está baseado no banco de dados Xtreme database (Xtreme.mdb) que é instalado como um exemplo com o CR. Ele utiliza as tabelas Customer e Orders.
====================

1. Vá no menu 'Insert' e clique em 'Cross-Tab'. A caixa de diálogo 'Cross-Tab Expert' aparece.

2. Na caixa 'Available Fields' destaque 'Customer.Country' e mova-o para a caixa 'Rows'.

3. Na caixa 'Available Fields' destaque 'Orders.Order Date' e mova-o para a caixa 'Columns'.

4. Clique no botão 'Group Options' a seguir na caixa 'Columns' e a caixa de diálogo 'Cross-Tab Group Options' irá aparecer. A partir da caixa drop-down 'The column will be printed:' clique em 'for each year'. Clique no botão 'OK' para fechar a caixa de diálogo 'Cross-Tab Group Options'.

5. Na caixa 'Available Fields' destaque 'Customer.Last Year's Sales' e mova-a para o caixa 'Summarized Fields' duas vezes.

• A primeira instância deste campo mostra a soma.
• A segunda instância deste campo será formatada para mostrar o running total manual.

6. Clique no tab 'Customize Style' e sob 'Summarized Field', selecione 'Horizontal'.

7. Clique no botão 'OK' para fechar a caixa de diálogo 'Cross-Tab Expert'. Coloque o Cross-tab na seção Report Header.

8. No cross-tab, clique-direito no segundo campo sumário e clique em 'Format Field'.

9. No tab 'Common', clique no botão 'X+2' perto de 'Display Text'.

10. Digite a seguinte fórmula na caixa de diálogo 'Format Formula Editor':

global numbervar RowNumber;
global numbervar RunningTotal;
global numbervar array SummaryValues;
global datetimevar ColumnValue;

if GridRowColumnValue ("Orders.Order Date") <> ColumnValue then RowNumber:=0;
ColumnValue := GridRowColumnValue ("Orders.Order Date");
RowNumber := RowNumber + 1;
RunningTotal := 0;
Redim Preserve SummaryValues[DistinctCount({Customer.Country})];
RunningTotal := SummaryValues[RowNumber] + ToNumber(CurrentFieldValue);
SummaryValues[RowNumber] := RunningTotal;
ToText(SummaryValues[RowNumber],0)

====================
OBS:

"Orders.Order Date" é o alias dado para o campo Order Date.
O alias para um campo pode ser encontrado na caixa 'Functions' na caixa de diálogo 'Format Formula Editor' sob 'Formatting Functions' > 'Row or Column Names'.
====================

11. Clique no botão 'Save and close' para fechar a caixa de diálogo 'Format Formula Editor'. Clique no botão 'OK' para fechar a caixa de diálogo 'Format Editor'. Atualize o relatório.

Um running total manual será mostrado agora no cross-tab.
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página