Jump to content
Fórum Script Brasil
  • 0

Dúvida ao criar fórmula no crystal


Tiago_BB

Question

Boa tarde pessoal.

Vamos supor que tenho uma coluna na sessão details com os seguintes valores:

TOTAL

-------

12.000

5.000

8.500

3.100

Preciso fazer um campo fórmula que ficará ao lado da coluna acima, porém tal fórmula deverá retornar o valor do campo TOTAL + o valor da próxima linha da coluna TOTAL, a primeira linha será igual, apartir dela já soma.

Aplicando a teoria para melhor compreensão.

TOTAL - NOVA COLUNA

------ - -------------

12.000 - 12.000 (primeira linha permanece)

5.000 - 17.000 (12.000 + 5.000)

8.500 - 25.500 (17.000 + 8.500)

3.100 - 28.600 (25.500 + 3.100)

Espero que tenha ficado mais claro!!

Espero que possam me ajudar!!!

atte.

Link to post
Share on other sites

22 answers to this question

Recommended Posts

  • 0

Ola Kuroi.

Fiz da forma com que você ensinou... porém como eu crio uma fórmula usando next... o primeiro registro fica em branco.

Fica dessa forma:

TOTAL

-------

12.000

5.000

8.500

3.100

Crindo uma fórmula chamada NOVACOLUNA:

next({TOTAL})

Ele esta retornando da seguinte forma:

TOTAL - NOVACOLUNA

--------- -------------------

12.000 - 5.000

5.000 - 8.500

8.500 - 3.100

3.100 -

Eu gostaria que como 12.000 é a primeira linha ... a primeira linha da nova coluna deverá ser 12.000... a aprtir dai prgar o próximo.

Só que tenho outro problema... conforme comentado anteriormente, não quero pegar o próximo valor... mas sim "pegar" esse primeiro valor (12.000) e somar com o próximo registro (5.000), com isso a segunda linha da fórmula deverá ficar 12.000 + 5.000 = 17.000, e assim sucessivamente...

Preciso que me retorne da seguinte forma:

TOTAL - NOVACOLUNA

--------- -------------------

12.000 - 12.000

5.000 - 17.000 (12.000 + 5.000)

8.500 - 25.500 (17.000 + 8.500)

3.100 - 28.600 (25.500 + 3.100)

Agradeço o interesse.

Abs.

Link to post
Share on other sites
  • 0

mas você fez diferente daquilo q eu falei:

o melhor seria você por um running total fields q faca a soma normal.

aqui eu quis dizer pra essa segunda coluna, é so você fazer uma soma normal por running total fields.

e na hora de mostrar a primera coluna, você pegaria o previous() do campo.

aqui, pensando bem, talvez o melhor não seja pegar next() nem previous(). o melhor acho q seria adicionar o proprio campo TOTAL e por na primera coluna.

Link to post
Share on other sites
  • 0

Pessoal.

Tenho outro problema.

Vamos la... vamos dizer que tenho duas colunas...

COLUNA1 - COLUNA2

----------- ------------

1.000 - 2.500

3.000 - 5.500

5.100 - 10.600

Preciso agora fazer uma soma dos valores dessas duas colunas, porém, não é só somar 1.000 + 2.500... 3.000 + 5.500... Tenho que: na primeira linha sim, somar os dois campos (1.000 + 2500).. mas a partir da segunda linha tenho que "pegar" a primeira linha da nova coluna (1.000 + 2.500 = 3.500) e somar com os valores das duas colunas da próxima linha ( 3.500 + 3.000 + 5.500 ) para obter a segunda linha... e assim sucessivamente.

Não é possível usar o Running Total pois é mais de uma coluna.

No final desejo que fique dessa forma:

COLUNA1 - COLUNA2 - COLUNA3

----------- ------------ -----------

1.000 - 2.500 - 3.500

3.000 - 5.500 - 12.000 (3.500 + 3.000 + 5.500)

5.100 - 10.600 - 27.700 (12.000 + 5.100 + 10.600)

.

.

.

Alguém pode me ajudar!!!

Agradeço desde já!!!!

Link to post
Share on other sites
  • 0

é, você não consegue fazer um running total de otro running total (nem de uma formula baseada num running total).

mas o q você pode fazer é uma formula q some o campo da coluna 1 com, não o campo do running total da coluna 2, mas o campo q esta sendo somado dentro desse running total. ai você deve conseguir fazer o segundo running total q deve fazer a soma correta.

Link to post
Share on other sites
  • 0

Consegui.

Fiz duas fórmula e funcionou!!!

Fórmula 1: @ResetTotal - WhilePrintingRecords; NumberVar Amount := 0

Inseri no PageHeader do relatório.

Fórmula 2: @CalculateTotal - whileprintingrecords; numbervar Amount := Amount + ({@Teste_RuningTotal})

Link to post
Share on other sites
  • 0

Pessoal.

Estou com outra dificuldade.

Conforme mencionado... criei a seguinte fórmula:

@CalculateTotal

whileprintingrecords;

numbervar Amount := Amount + ({@Teste_RuningTotal})

Até ai tudo bem... acontece que... estou precisando da soma total dessa fórmula...

Tentei fazer da seguinte forma criando uma outra fórmula:

whileprintingrecords;

numbervar Amount := sum(Amount) + sum({@Teste_RuningTotal})

Mas reclama que no lugar da variável Amount tem que ser um campo.

Alguém tem uma sugestão???

Atte.

Link to post
Share on other sites
  • 0

Tenho a seguinte fórmula @CalculateTota:

whileprintingrecords;

numbervar Amount := Amount + ({@Teste_RuningTotal})

Onde @Teste_RuningTotal = ({CAMPO1}) + ({@teste})

Onde @teste = {CAMPO1}

Essa fórmula (@CalculateTota) esta na sessão details... exibe os dados que quero certinho...

Preciso no ReportFooter, exibir a soma total dessa coluna (@CalculateTota).

Estou tentando de várias maneiras... mais não da pra somar a variável Amount.

Alguém tem alguma sugestão?

Link to post
Share on other sites
  • 0

você não pode somar campos q tenham whileprintingrecords, porque esse tipo de campo depende de varios registros.

você so pode somar campos q sejam unicos pra cada registro.

da uma olhada no meu post de cima. se você fizer daquela forma, acredito q consiga somar.

Link to post
Share on other sites
  • 0

estava falando desse aqui:

é, você não consegue fazer um running total de otro running total (nem de uma formula baseada num running total).

mas o q você pode fazer é uma formula q some o campo da coluna 1 com, não o campo do running total da coluna 2, mas o campo q esta sendo somado dentro desse running total. ai você deve conseguir fazer o segundo running total q deve fazer a soma correta.

é pra você somar um campo com o outro, não ponha Sum() dentro de nenhuma formula. e nem whileprintingrecords, nem previous() nem next(), etc.

Edited by kuroi
Link to post
Share on other sites
  • 0

Pessoal.

CONSEGUIIIII ... :D

Tenho a seguinte fórmula:

@CalculateTota:

whileprintingrecords;

numbervar Amount := Amount + ({@Teste_RuningTotal})

Eu apenas removi o whileprintingrecords; ... com isso consegui fazer um Insert Summary na fórmula.

Atte;

Link to post
Share on other sites
  • 0

Bom dia pessoal, estou com uma dúvida na criação de uma formula no VB.

 

A |  B  |   C      |     vSaldoFinal

0 | 13 | 129,5 |  116,5 = C + A - B

0 | 13 | 129.5 |  103,5 ( Para calcular este campo, necessito do resultado do campo acima) = vSaldoFinal + A - C

 

FÓRMULA:

Somente no primeiro campo deve ser: C + A - B

Nos próximos campos:

vSaldoFinal + A - C

vSaldoFinal + A - C

vSaldoFinal + A - C

vSaldoFinal + A - C

Etc

A fórmula que tenho aqui é: 

 

WhilePrintingRecords;
CurrencyVar vSaldoFinal;

if {tabela.MOV_CH_SITUACAO}<>'C' then
    vSaldoFinal := ({@campoC} + {tabela.campoA}) - {tabela.campoB};
    

vSaldoFinal;

 

Poderiam me ajudar por favor?

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148863
    • Total Posts
      644886
×
×
  • Create New...