Boa noite.
Tenho uma tabela (type) onde cada registro tem uma data.
Fiz uma tabela (table) que traz as informações dessa type. Porém, em uma das colunas quero exibir a diferença entre as datas do registro atual e o imediatamente anterior.
Por exemplo, o penúltimo registro foi no dia 10/10 e o último no dia 17/10. Além da coluna “Data”, quero colocar uma coluna exibindo quantos dias se passaram entre as datas do penúltimo e do último registro, no caso, 7 dias.
Não estou sabendo como puxar a data do registro anteior, visto que a tabela me limita às informações da linha.
Estou começando agora e estou treinando fazendo um app pra substituir uma planilha que uso de controle de consumo de combustível. Esse campo de diferença de dias é para saber meu gasto médio diário. Se gastei 210 reais para abastecer após 7 dias do último abastecimento, meu gasto médio diário é de R$ 30,00.
Eu nunca usei essa nova feature da table pois sempre utilizei o grupo repetidor, mas acredito que o conceito seria o mesmo.
É possível selecionar outra linha ( cell) utilizando o índex … tenta usar o índex ( atual - 1), assim ele teria o valor da linha de cima. Só precisaria ter um condicional quando o índex atual fosse igual a 1, pois 1-1 é 0 e a primeira linha teria o cálculo errado. Talvez se partilhar a configuração onde está a data eu possa dar mais informações… mas para o quer precisar trabalhar com índex
1 Like
Entendi. Já é um caminho.
Olhando aqui, vi que o elemento tem a opção “Current row’s index”. No caso, a tabela está configurada para ordem decrescente de datas. Então, a mais recente é o index 1.
Tentei colocar “Current row’s index - 1”, mas não aceita a digitação do número 1.
O elemento table ainda está em versão beta, então provavelmente ainda vão adicionar algumas propriedades a ele. Uma das propriedades que está faltando, e que o repeating group já tem, é a possibilidade de poder referenciar a fonte de dados da própria table.
A solução para o seu problema seria mais ou menos assim com um repeating group. Veja que eu estou referenciando a fonte de dados do próprio RG e acessando o item de uma posição específica usando o index da célula atual - 1 (como você já percebeu, ele não vai te deixar fazer a operação index - 1 direto na expressão, por isso adicionei um arbitrary text ali e depois transformei em número.
O arbitrary text é muito útil sempre que precisar fazer alguma operação de maneira isolada, que de alguma maneira não pode fazer de maneira direta na expressão que está construindo.
Para fazer algo semelhante com o elemento tabela, você vai precisar trazer a fonte de dados da tabela repetindo a mesma busca com um do a search for… no meio da expressão. O resto da lógica é bem parecido.
Valeu, Vini.
Agora com essas respostas acho que vou conseguir.
Vou precisar de um tempo pra estudar direitinho como fazer, mas acho que agora vai.
Depois atualizo aqui se deu certo.
É pessoal. Não deu certo. Eu fiz bem parecido, mas tava dando um valor de 1,78…
Foi aí que pensei em fazer usando só a subtração das datas e o resultado foi 140.
A expressão ficou assim:
Current row’s Abastecimentos’s Data abastecimento - Search for Abastecimentoss:item #Arbitrary text:converted to number’s Data abastecimentoformatted as days
O Arbitrary texto ficou assim: Current row’s index + 1
O problema é que ele não pega o segundo item da TABLE. Ele pega o segundo registro da TYPE, que é um com data de 30/5/23.
Acho que vou ter que fazer com RG.
CONSEGUI!!!
O conteúdo da expressão ficou assim:
Current row’s Abastecimentos’s Valor / Arbitrary text:converted to number:formatted as 1.028,58
E o Arbitrary text ficou assim:
Current row’s Abastecimentos’s Data abastecimento - Search for Abastecimentoss:last item’s Data abastecimentoformatted as days
No Search for eu coloquei uma restrição pra Data ser menor que a data da Current Row.
Obrigado @vini_pereira e @EliasRamos.
Sem a ajuda de vocês não teria dado certo.
2 Likes