Montando um formulário com cálculo de saldo automático.
O KankeiDBM também oferece a possibilidade de realizar cálculos de saldo automaticamente a partir de lançamentos. Podem ser inseridos através de formulários, pesquisas, ou mesmo importação. Cada lançamento precisa ter, no mínimo: data e valor.
Para fazer isso, se utiliza tags de configurações avançadas - ver Configurações Avançadas, em XML, de uma questão - disponíveis no site. Com essa configuração é possivel montar sistemas de controles que mantenham o cálculo de saldo do formulário sempre atualizado. Como por exemplo, um controle de estoque onde se quer ter sempre o montante disponível dos produtos estocados.
Para se utilizar os controles de saldo automático:
"A dimensão, ou conjunto, já deve ter as questões para a data, o valor e o saldo. Pode-se criar vários extratos em uma mesma dimensão, ou conjunto, usando-se uma questão filtro para diferenciar um extrato de outro. Exemplo: podemos ter extratos por clientes (questão filtro é o cliente ou a dimensão cliente), por centro de custo (questão filtro é o código do centro de custo ou a dimensão centro de custo). Se o account for feito em um conjunto, já haverá um filtro implícito que é o pai do conjunto." por Rogério Ramos.
Neste exemplo montaremos um controle como descrito acima, um controle de estoque simples, apenas para que se possa entender o funcionamento do mecanismo. Sigas os passos:
Dimensão:
Crie uma nova dimensão no KankeiDBM (botão direito sobre Dimensões/"Nova Dimensão Restrita"), dê o nome que preferir. Não esqueça de inserir um Code na aba "Avançado" da tela de edição.
Questões:
Dentro da nova dimensão deve-se criar as questões pertinentes ao controle que se deseja, nesse caso vamos criar questões como estão dispostas na imagem abaixo:

A Tag:
Depois que já tiver a dimensão e as devidas questões, configure da seguinte maneira:
- Clique com o botão direito sobre a pasta da dimensão, escolha a opção "Editar".

- Com a tela de edição da dimensão aberta, vá até a aba "Avançado" e clique sobre o botão "Propriedades Avançadas". Nesse momento abrirá uma tela de edição de texto. Insera o seguinte código:
<properties>
<account
dateCode="Data"
valueCode="Valor"
balanceCode="Saldo"
accountCode="Estoque" />
</properties>
No nosso formulário de controle de estoque, há um accountCode que é a questão "Estoque", onde teremos as opções: Estoque 1, Estoque 2 e Estoque 3; (Cada estoque terá o seu próprio saldo).

Na imagem acima, veja que troquei o texto entre " " de cada valor do account pelo code da respectiva questão. Ao terminar, clique em Ok e feche a tela de edição da dimensão.
- obs: Nunca esqueça de propôr um Identificador(Code) para as questões criadas no KankeiDBM, eles são fundamentais para funcionalidades como essa. Caso não tenha colocado codes para as suas questões, basta ir até cada questão, clicar sobre ela com o botão direito do mouse e escolher a opção "Editar", ir até até a aba "Avançado" e inserir o texto no campo "Identificador", como na imagem acima.
Resultado:
Agora que as questões já estão prontras e a dimensão já foi configurada, monte um formulário com estas questões e veja o resultado da configuração. Na imagem abaixo há um exemplo que como deve ficar o seu formulário. Note que na primeira imagem que aparece o lançamento "1" (cod do lançamento) para o dia 23, Estoque 1, foi feito uma entrada de R$15,00 que iniciou o saldo. Na segunda imagem, onde há um lançamento de R$10,00 para o mesmo estoque, o saldo subiu para R$25,00. Caso eu registre uma saída para esse mesmo estoque, o valor retirado será abatido desse mesmo campo. O Valor do Saldo é calculado automaticamente no momento em que é salvo o registro.
No caso deste exemplo eu usei uma soma de valores em moeda, esse recurso é perfeitamente aplicável à qualquer tipo de unidade. No exemplo, poderíamos usar quantidades movimentadas no lugar de valor.

