Desafio + Calculo de valores com base em lista e formulas dinamicas

2 respostas
R

Boa tarde, pessoal.

Estou com um bom problema a resolver. e preciso da ajuda de vocês, Tenho que implentar uma rotina, onde fará calculo para grupo de contas, com base num lista de notas fiscais. Estes caluclo são baseado em formuldas criadas pelo usuario, com base em atributos(campos) desta lista. Estou em duvida de como fazer isto.
A rotina se basei em 2 partes: a 1 parte configuração das formulas e a segunda calculo dos valores com base nesta formula.

Para tenta exemplificar:

Minha Lista de notas tem os atributos:
GRUPO_ESTOQUE, GRUPO_CONTABIL, CFOP, ITEM, VALOR

preciso percorrer a lista e calcular os valroes.
as formulas são algo do tipo:
CONTA1 = (GRUPO_ESTOQUE = 3 AND CFOP IN (1101,1102))
CONTA2 = (GRUPO_CONTABIL IN (3,6,7,87) AND (GRUPO_ESTOQUE = 3 AND CFOP = 5102))
CONTA3 = CONTA1 + CONTA2

a ideia seria percorrer a lista para realizar cada calculo.

Alguem poderia me sugerir como fazer isto?

Obrigado

2 Respostas

E

Se as fórmulas obedecessem à sintaxe Java ou Javascript você poderia usar o BeanShell ou o Rhino, respectivamente.

A sintaxe que você apresentou lembra o SQL, mas você não a especificou completamente (só deu meia dúzia de exemplos). Se você definir a sintaxe, pode usar algum programa como o Antlr ou o Javacc, que são programas do tipo “compiler-compilers”, ou então você pode fazer seu próprio analisador léxico e sintático, o que leva certo tempo.

R

entanglement:
Se as fórmulas obedecessem à sintaxe Java ou Javascript você poderia usar o BeanShell ou o Rhino, respectivamente.

A sintaxe que você apresentou lembra o SQL, mas você não a especificou completamente (só deu meia dúzia de exemplos). Se você definir a sintaxe, pode usar algum programa como o Antlr ou o Javacc, que são programas do tipo “compiler-compilers”, ou então você pode fazer seu próprio analisador léxico e sintático, o que leva certo tempo.

A ideia de utilizar esta sintaxe de forma é para facilitar um pouco pro usuário, mas por trás estaria convertendo isto para uma sintaxe java.

Criado 22 de setembro de 2011
Ultima resposta 22 de set. de 2011
Respostas 2
Participantes 2