Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problemas ao criar tabela de fluxo de caixa

Estou precisando criar em uma tabela de fluxo de caixa um saldo retroativo. Preciso expor isso em uma tabela:

Tb_Saldo
Data Vencimento Fluxo11/09/201212/09/201213/09/2012
CategoriaSaldo AcumuladoSaldo AcumuladoSaldo Acumulado
a10,0010,000,00120,000,00100,00
b100,00110,0030,00150,0050,00150,00
c 150,00260,0040,00190,0030,00180,00
d 50,00310,0010,00200,0020,00200,00
e120,00430,0050,00250,0030,00230,00
f20,00450,00-50,00200,0020,00250,00
g-10,00440,0020,00220,0050,00300,00

O que estou precisando é que o Saldo Inicial de "a" seja o valor acumulado de "g" do dia anterior.

Ao recarregar a app é carregado o Saldo do primeiro dia que ai no caso é o dia 11/09/2012, mas não funciona para os demais dias

-Estou fazendo o seguinte tratamento para a coluna Saldo:

if(OPERACAO = 'SALDO' and date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') = today('DD/MM/YYYY'), SUM(VALOR_SALDO),

    if(OPERACAO = 'SALDO'  and date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') > today('DD/MM/YYYY') ,Bottom([acumulado]),//if(OPERACAO = 'SALDO' ,Bottom(Before(VALOR_SALDO)),//ABOVE(SUM(VALOR_SALDO)),

        if(OPERACAO = 'RECEBIMENTO', SUM(VALOR_SALDO),

            IF(OPERACAO = 'PAGAMENTO', SUM(VALOR_SALDO),//*-1,       

               

            )

        )

    )

-Estou fazendo o seguinte tratamento para a coluna Acumulado:

=RangeSum(Above(Total Sum(VALOR_SALDO),0,RowNo()))

13 Replies
srchagas
Creator III
Creator III

Bom Dia Tiago

Então você está usando Today, como hoje é dia 11 vai funcionar, como dia 12 não é hoje não vai funcionar, uma pergunta: O que você quer fazer não é pegar dia anterior e fazer  acumulado?

tenta algo como (DATA_VENCIMENTO_FLUXO)-1  que deve funcionar

imagino que esse DATA_VENCIMENTO_FLUXO seja na verdade a data que fechou o caixa correto, então vc tem o dia anterior em cada linha e começa com ele.

Not applicable
Author

Tenho os dados do dia atual, e os lançamentos previstos para datas futuras, para mostrar como meu fluxo de caixa vai estar dia X se continuar como previsto.

Preciso do saldo inicial do dia de amanhã tendo feito todas as movimentações previstas para hoje.

srchagas
Creator III
Creator III

Entendi

então no caso troca para  por DayStart (today,+1)

segue exemplo:

daystart ( '2006-01-25 16:45' ) retorna '2006-01-25 00:00:00' com um valor numérico subjacente correspondente a '2006-01-25 00:00:00.000'

daystart ( '2006-01-25 16:45', -1 ) retorna '2006-01-24 00:00:00' com um valor numérico subjacente correspondente a '2006-01-24 00:00:00.000'

daystart ('2006-01-25 16:45', 0, 0.5 ) retorna '2006-01-25 12:00:00' com um valor numérico subjacente correspondente a '2006-01-25 12:00:00.000'

O bom de usa-lo que ai você pode colocar o horario que dia realmente começa para você se quiser.

Acho que isso resolve seu problema, qq me avise,

Sds

Not applicable
Author

No caso ai eu precisaria ter o saldo do dia em questão, e do banco só tenho da data atual, eu preciso é pegar a soma da coluna Saldo do dia anterior e e colocar como o valor inicial do dia seguinte.

Tb_Saldo
Data Vencimento Fluxo11/09/201212/09/201213/09/2012
CategoriaSaldo AcumuladoSaldo AcumuladoSaldo Acumulado
a0,0010,00450,00120,00650,00100,00
b100,00110,0030,00150,0050,00150,00
c 150,00260,0040,00190,0030,00180,00
d 50,00310,0010,00200,0020,00200,00
e120,00430,0050,00250,0030,00230,00
f20,00450,0050,00300,0020,00250,00
g10,00460,0020,00320,0050,00300,00

450,00
650,00
850,00
srchagas
Creator III
Creator III

Bem você tem o atual, você teoricamente tem o Anterior....

naquele codigo que você fez mesmo

/// Aqui você pegou dia anterior  no maximo vai ser "0"

if(OPERACAO = 'SALDO' and date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') =< DayStart (today('DD/MM/YYYY'),-1), SUM(VALOR_SALDO),

//////////////////////////////////////////////////

    if(OPERACAO = 'SALDO'  and date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') >DayStart (today('DD/MM/YYYY'),+1)

,Bottom([acumulado]),//if(OPERACAO = 'SALDO' ,Bottom(Before(VALOR_SALDO)),//ABOVE(SUM(VALOR_SALDO)),

        if(OPERACAO = 'RECEBIMENTO', SUM(VALOR_SALDO),

            IF(OPERACAO = 'PAGAMENTO', SUM(VALOR_SALDO),//*-1,      

            )

        )

    )

Outra coisa que pode te ajudar é SetAnalys

tópico como base:

http://community.qlik.com/message/254685#254685

Not applicable
Author

Acho que não estou conseguindo me explicar. Bora lá, tenho a seguinte tabela:

Tb_Saldo
Data Vencimento Fluxo11/09/201212/09/201213/09/2012
CategoriaSaldo Saldo Saldo
a50000,00Saldo Final 11/09/12Saldo Final 12/09/12
b100,0030,0050,00
c 150,0040,0030,00
d 50,0010,0020,00
e120,0050,0030,00
f20,0050,0020,00
g10,0020,0050,00

Saldo Final 11/09/12Saldo Final 12/09/12Saldo Final 13/09/12

O banco me traz o saldo inicial(valor de "a") do dia atual, o que eu preciso é que o valor total do dia atual seja setado como valor de "a" do dia seguinte,e assim sucessivamente. Não estou conseguindo pegar esse valor total de cada dia para colocar como valor inicial do dia seguinte.

srchagas
Creator III
Creator III

Tenta algo parecido com isso:   if (date(DATA_VENCIMENTO_FLUXO,'DD/MM/YYYY') = today('DD/MM/YYYY'), Sum(saldo), saldo)

Nesse if ai seria para ver se Data de vencimento é igual a Hoje, você soma o Saldo com que ja teria, se não ele é saldo ( o que provalmente é do dia anterior)

Not applicable
Author

Dessa forma ai eu estaria somando as movimentações do dia. Mas ainda não sei como estarei pegando o valor do total do saldo do dia anterior e colocar no inicio das movimentações do proximo dia, tipo:

Tb_Saldo
Data Vencimento Fluxo11/09/201212/09/201213/09/2012
CategoriaSaldo Saldo Saldo
a50000,00Saldo Final 11/09/12Saldo Final 12/09/12
b100,0030,0050,00
c 150,0040,0030,00
d 50,0010,0020,00
e120,0050,0030,00
f20,0050,0020,00
g10,0020,0050,00

Saldo Final 11/09/12Saldo Final 12/09/12Saldo Final 12/09/12

O valor 50000,00 é o saldo inical que o banco me traz que será somado com os demais valores do dia(100,00; 150,00; 50,00; 120,00; 20,00; 10,00), que me resultará no Saldo Final do dia 11/09/12, que será 50450,00.

Preciso que esse valor seja setado automaticamente como Saldo de "a" no dia 12/09/12. Não sei como fazer isso. E antes de mais nada obrigado pela força.

srchagas
Creator III
Creator III

Uma pergunta: Esse valor vem "nullo" do banco por acaso, no dia 12/09/2012?

Se vier quando for carregar o Script tentar usar a função Peek(), ela atumaticamente preenche com valor do campo anterior

seria mais ou menos assim:

if(Peek(Acumulado) and IsNull(Acumulado), Peek(Acumulado),Acumulado) AS SALDO