Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 13-04-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Puedes usar la unidad PREXPR.PAS, que está incluida en el programa de contabilidad que está publicado en el ftp del Club.

Una vez tienes la fórmula, la puedes enviar alas funciones que te devuelven el resultado

Te adjunto la forma de realizar las llamadas. Puedes observar que las formulas las obtengo de una variable y los valores también de la bbdd pasándole el nombre del campo, concretamente del registro activo.

En las jedi tienes un interprete de pascal incorporado, que además viene en los programas de ejemplo, pero nunca lo he utilizado. Puede ser una buena opción también. Lo que no recuerdo es cómo se llama el componente ni cómo se usa.

Espero que te sirva de ayuda.

Saludos

Código Delphi [-]
procedure TForm.CDSVistaReciboCalcFields(DataSet: TDataSet);
begin
  inherited;
  if  CDSVistaRecibo.FieldByName('COBRAPOLIZA').AsString = 'AGENTE' then
  begin
    DataSet.FieldByName('TOTCOMISION').AsFloat:= CalcularFormula(WFormulaComisionAgente);
    DataSet.FieldByName('TOTLIQUIDACION').AsFloat:= CalcularFormula(WFormulaLiquidacionAgente);
  end;
  if  CDSVistaRecibo.FieldByName('COBRAPOLIZA').AsString = 'COMPAÑIA' then
  begin
    DataSet.FieldByName('TOTCOMISION').AsFloat:= CalcularFormula(WFormulaComisionCIA);
    DataSet.FieldByName('TOTLIQUIDACION').AsFloat:= CalcularFormula(WFormulaLiquidacionCIA);
  end;
end;

function TForm.CalcularFormula(Formula:String): Double;
var
     E: TExpression;
begin
Result:= 0;
E:= CreateExpression(Formula, ValoresFunc);
if Assigned(E) then
  Result:= E.AsFloat;
end;

function TForm.ValoresFunc( const Identifier: String;
                              ParameterList: TParameterList): TExpression;
begin
    Result:= TFloatLiteral.Create(CDSVistaRecibo.fieldByName(Identifier).AsFloat);
end;
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con formula paladincubano Varios 13 13-12-2008 06:58:57
formula.. truequeman Varios 3 20-01-2007 19:12:09
formula en dbgrid federicorl Varios 4 07-08-2006 18:58:36
Formula en Firebird jwmoreira Firebird e Interbase 4 17-05-2005 17:49:57
Almacenar una formula en una tabla jgutti Firebird e Interbase 1 09-09-2004 15:41:46


La franja horaria es GMT +2. Ahora son las 12:17:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi