[gx-l] Expression Data Type

Gente, bom dia.


Tenho uma fórmula aqui onde pretendo usar o Expression Data Type, gostaria de saber o seguinte, é possível eu fazer uma área onde o usuário do sistema, que geralmente é um engenheiro, possa introduzir a fórmula? Ou seja, ele fazer a fórmula conhecendo os campos da tabela que podem ser usados e as funções permitidas?

Algo assim:

&Expressao.Expression = ((((DB1Comercial * DB2Comercial * 0.0001)* 3.14159265 * 0.25) + ((DP1Comercial * DP2Comercial * 0.0001)* 3.14159265 * 0.25)) * 0.5 * ComprimentoComercial) -

       ((((OcoBase1 * OcoBase2 * 0.0001)* 3.14159265 * 0.25) + ((OcoPonta1 * OcoPonta2 * 0.0001)* 3.14159265 * 0.25)) * 0.5 * ComprimentoOco -  ((ComprimentoComercial-&ComprimentoFlorestal)/2)- (RoundToEven(Exp(&ComprimentoOco - ((&ComprimentoComercial-&ComprimentoFlorestal)/2)-&ComprimentoFlorestal);0) *

       ((&ComprimentoOco-&ComprimentoFlorestal-((ComprimentoComercial-ComprimentoFlorestal)/2))))"


Sabendo ele que poderá manipular esses campos, e usar as fórmulas disponíveis no roll de fórmulas aceitas

&Expressao.Variables.Set("DB1Comercial", &DB1Florestal.ToString())

       &Expressao.Variables.Set("DB2Comercial", &DB2Florestal.ToString())

       &Expressao.Variables.Set("DP1Comercial", &DP1Florestal.ToString())

       &Expressao.Variables.Set("DP2Comercial", &DP2Florestal.ToString())

       &Expressao.Variables.Set("ComprimentoComercial", &ComprimentoFlorestal.ToString())

       &Expressao.Variables.Set("OcoBase1", &OcoBase1.ToString())

       &Expressao.Variables.Set("OcoBase2", &OcoBase2.ToString())

       &Expressao.Variables.Set("OcoPonta1", &OcoPonta1.ToString())

       &Expressao.Variables.Set("OcoPonta2", &OcoPonta2.ToString())

       &Expressao.Variables.Set("ComprimentoOco", &ComprimentoOco.ToString())

       &Expressao.Variables.Set("ComprimentoFlorestal", &ComprimentoOco.ToString())

       &VolumeComercial = &Expressao.Evaluate()

       If &Expressao.ErrCode = 0

             Msg('Volume Comercial Expressao:'+ &VolumeComercial.ToString().Trim())

       else

             msg('Erro na avalianção da expressão.')

       EndIf



Expression Data Type

Available Operators and Functions

Constants
  • pi
Arithmetic Operators
  • +, -, *, /
Conditional Operators
  • >, <, >=, <=, <>, and, or
Standard Functions
  • abs(n)
  • int(n)
  • frac(n)
  • sin(n)
  • asin(n)
  • cos(n)
  • acos(n)
  • tan(n)
  • atan(n)
  • floor(n)
  • round(n)
  • ln(n) or log(n)
  • exp(n)
  • sqrt(n)
  • pow(m, n)
  • max(m,n)
  • min(m,n)
  • iif( condition, m, n)



--
[]'s
Luciano Topolniak.

--
 
 

0 Response to "[gx-l] Expression Data Type"

Publicar un comentario