Macro Condição

Delphi

11/07/2006

Sds!

Gostaria de saber se alguém sabe alguma forma / algum componente que verifica condições(True/False) em uma expressão.

Ex:
----------------------------------------------------
      Variaveis    | Descricao
      SDIA = 12    | salario do mes / 30
      DTM =  30    | Dias Trabalhados no Mes
      DMT = False  | condicao Demitido (True/False)
----------------------------------------------------

Condição: Não Demitido e Dias Trabalhados no Mes maior que Zero
(NOT DMT) AND (DMT>0)

Valor: 360,00
SDIA * 30

Estou pensando em fazer uma folha de pagamento utilizando este componente, e tenho esse ímpasse.
Para efetuar o calculo do valor/qtd, já sei o que usar, mas como fazer a verificação das variáveis que são muitas e podem ser usadas ou não?


Atenciosamente,

________________
Ricardo Sobrinho


Ricardoif

Ricardoif

Curtidas 0

Respostas

Rodc

Rodc

11/07/2006

Eu faço esta verificação passando ao banco de dados. No Oracle você pode fazer assim:
SELECT (NOT 30) AND (30>0) AS RETORNO FROM DUAL

Em outros bancos você pode trocar o DUAL pelo nome de qualquer tabela sua.


GOSTEI 0
Ricardoif

Ricardoif

11/07/2006

Obrigado, mas não é bem isso o que eu quero.

Tenho uma tabela com todas as Rubricas cadastradas. Essa tabela possui vários campos, dentre eles:

CODIGO - código da rubrica
NOME - nome da rubrica
QTD - fórmula da qtd
VALOR - fórmula do valor
CONDICAO - condição para ser calculada

Pois bem. no campo CONDICAO é colocado o texto que contem a expressão para que na hora do calculo verifique se pode ou não usar essa rubrica.

Ex: Rubrica [b:a179a94ce2]211 - Remuneração Mensal[/b:a179a94ce2]
campo QTD contém o texto [b:a179a94ce2]DTM[/b:a179a94ce2] (Dias Trabalhados no Mês = [color=red:a179a94ce2]30[/color:a179a94ce2])
campo VALOR contém o texto [b:a179a94ce2]VSDIA * DTM[/b:a179a94ce2] (Valor Sal. Dia * DTM = 12.5 * 30)
campo CONDICAO contém o texto [b:a179a94ce2](NOT DMT) AND (CATEGORIA<>11)[/b:a179a94ce2] (Não Demitido e Categoria diferente de 11)

No loop do funcionário vou verificando as rubricas uma a uma se elas satisfazem a condição, analisando a expresão. Como ler o conteúdo do campo e torná-lo uma expressão lógica.

Tem variáveis do tipo Inteiro(DTM=30), Booleano(ANV-Aniversário no Mês=True/False), etc.


GOSTEI 0
Ricardoif

Ricardoif

11/07/2006

alguem se habilida???


GOSTEI 0
POSTAR