[delphi-br] Re: Desafio em cálculo novamente

2010-03-02 Por tôpico harleydiaskoehler
Rafael,

Como funciona essa ordem de execução ?
se o usuário inserir um novo registro que compõe um determinado calculo ele vai 
ter que alterar essa ordem de execução manualmente?





--- Em delphi-br@yahoogrupos.com.br, Allan GabrielAM alla...@... escreveu

 Olá, olha, desenvolvi um sistema para folha de pagamento onde o empresário 
 paga seus funcionários por comissão, bonificação etc..., então tive que fazer 
 com que ele pudesse criar várias fórmulas para um único funcionário, então 
 criei uma tabela específica para elas,onde o usuário simplesmene brinca com 
 campos de qualquer tabela, também passei pela mesma situação que vc, tem 
 campos que precisam ser calculados antes para servirem de base para outros 
 cálculos, então criei uma ordem de execução, é aí que está sua solução, pois 
 o sistema vai executar exatamente na ordem específicada, então vc cria regras 
 para essas execuções e pronto, não sei se é o seu caso, mas uso D7 com FB. 
 Acredito que desenvolvendo nesse sentido é mais fácil.
 
 Espero que eu tenha te ajudado.
 
 Att.
 Rafael
   - Original Message - 
   From: harleydiaskoehler 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Friday, February 26, 2010 9:51 AM
   Subject: [delphi-br] Desafio em cálculo novamente
 
 
 
   Caros Colegas,
 
   Estou postando essa mensagem novamente pporque até aqui ainda não consegui 
 resolver o problema.
   Seguinte:
   Tenho uma tabela com aproximadamente 200 registros dispostos da seguinte 
 forma:
   ID, Descrição, valor e formula.
 
   A coluna valor em algumas situações é informada pelo usuário, mas em outras 
 deve ser calculada de acordo com a formula estipulada na coluna formula, ou 
 seja, sempre que a coluna formula estiver preenchida, esse valor não será 
 digitado.
   Preciso de uma rotina que faça exatamente esses cálculos, pois as formulas 
 podem ser dependentes, por exemplo, para calcular a primeira é necessário 
 calcular a seguinte e depois retornar e efetuar o calculo da primeira e assim 
 sucessivamente. Preciso que a função avalie a formula e identifique se o 
 existe item dependente que seja necessário calcular antes, execute esse 
 cálculo para depois fazer o atual. Algo tipo é feito no Excel ou Calc. Será 
 alguem pode me ajudar nessa lógica ?
   Detalhe, para criação das formulas, utilizo a coluna ID que é string e faço 
 o cálculo com a classe Tevaluator da Jedi. São cálculos simples de adição, 
 subtração, multiplicação e divisão.
   O problema em si não são os cálculos mas sim como fazer as dependências.
 
   Agradeço a ajuda
 
 
 
   
 
 [As partes desta mensagem que não continham texto foram removidas]





[delphi-br] Desafio em cálculo novamente

2010-02-26 Por tôpico harleydiaskoehler
Caros Colegas,

Estou postando essa mensagem novamente pporque até aqui ainda não consegui 
resolver o problema.
Seguinte:
Tenho uma tabela com aproximadamente 200 registros dispostos da seguinte forma:
ID, Descrição, valor e formula.

A coluna valor em algumas situações é informada pelo usuário, mas em outras 
deve ser calculada de acordo com a formula estipulada na coluna formula, ou 
seja, sempre que a coluna formula estiver preenchida, esse valor não será 
digitado.
Preciso de uma rotina que faça exatamente esses cálculos, pois as formulas 
podem ser dependentes, por exemplo, para calcular a primeira é necessário 
calcular a seguinte e depois retornar e efetuar o calculo da primeira e assim 
sucessivamente. Preciso que a função avalie a formula e identifique se o existe 
item dependente que seja necessário calcular antes, execute esse cálculo para 
depois fazer o atual. Algo tipo é feito no Excel ou Calc. Será alguem pode me 
ajudar nessa lógica ?
Detalhe, para criação das formulas, utilizo a coluna ID que é string e faço o 
cálculo com a classe Tevaluator da Jedi. São cálculos simples de adição, 
subtração, multiplicação e divisão.
O problema em si não são os cálculos mas sim como fazer as dependências.


Agradeço a ajuda



[delphi-br] Desafio com cálculo

2010-02-19 Por tôpico harleydiaskoehler
Caros Colegas,

Tenho uma tabela com aproximadamente 200 registros dispostos da seguinte forma:
ID, Descrição, valor e formula.

A coluna valor em algumas situações é informada pelo usuário, mas em outras 
deve ser calculada de acordo com a formula estipulada na coluna formula, ou 
seja, sempre que a coluna formula estiver preenchida, esse valor não será 
digitado e sim calculado.
Preciso de uma rotina que faça exatamente esses cálculos, pois as formulas 
podem ser dependentes, por exemplo, para calcular a primeira é necessário 
calcular a seguinte e depois retornar e efetuar o calculo da primeira e assim 
sucessivamente. Preciso que a função avalie a formula e identifique se o existe 
item dependente que seja necessário calcular antes, execute esse cálculo para 
depois fazer o atual. Algo tipo é feito no Excel ou Calc. Será alguem pode me 
ajudar nessa lógica ?
Detalhe, para criação das formulas, utilizo a coluna ID que é string e faço o 
cálculo com a classe Tevaluator da Jedi. São cálculos simples de adição, 
subtração, multiplicação e divisão.

Quaisquer duvidas só falar.





[delphi-br] Valor da variavel não aparece durante o debug

2010-01-22 Por tôpico harleydiaskoehler
Galera,

Instalei o Delphi 2009 no notebook e funciona perfeitamente a programação, mas 
quando vou debugar o sistema e posiciono o ponteiro do mouse sobre uma variavel 
por exemplo, não aparece o hint, tenho que usar o ctrl + F7, outra coisa que 
observei tb é que os hint's dos botões da barra de ferramentas do delphi tambem 
não aparecem. Alguem se existe alguma configuração pra resolver isso?

grato



Re: RES: [delphi-br] Calculo em DBGrid

2010-01-08 Por tôpico harleydiaskoehler
: TIntegerField;
 
 cdsCalculoValor: TFloatField;
 
 cdsCalculoTotaliza: TBooleanField;
 
 cdsCalculoValorTotaliza: TFloatField;
 
 cdsCalculoTotalValorTotaliza: TAggregateField;
 
 procedure cdsCalculoNewRecord(DataSet: TDataSet);
 
 procedure cdsCalculoTotalizaGetText(Sender: TField; var Text: String;
 
   DisplayText: Boolean);
 
 procedure cdsCalculoTotalizaChange(Sender: TField);
 
 procedure cdsCalculoBeforePost(DataSet: TDataSet);
 
 procedure cdsCalculoTotalizaSetText(Sender: TField;
 
   const Text: String);
 
   public
 
 constructor Create(AOwner: TComponent); override;
 
   end;
 
  
 
 var
 
   dbgCalculo: TdbgCalculo;
 
  
 
 implementation
 
  
 
 uses SysUtils;
 
  
 
 {$R *.dfm}
 
  
 
 procedure TdbgCalculo.cdsCalculoNewRecord(DataSet: TDataSet);
 
 begin
 
   cdsCalculoTotaliza.AsBoolean := true;
 
   cdsCalculoTotalizaChange(cdsCalculoTotaliza);
 
 end;
 
  
 
 constructor TdbgCalculo.Create(AOwner: TComponent);
 
 begin
 
   inherited Create(AOwner);
 
   //  Configura uma lista de campos para uma combo que o DBGrid
 
   //  automaticamente mostrará quando o usuário for informar
 
   //  se o valor será totalizado ou não
 
   dbgCalculo.Columns[3].PickList.Text := 'NÃO' + sLineBreak + 'SIM';
 
 end;
 
  
 
 procedure TdbgCalculo.cdsCalculoTotalizaGetText(Sender: TField;
 
   var Text: String; DisplayText: Boolean);
 
 const
 
   lNomes: array[Boolean] of string = ('NÃO', 'SIM');
 
 begin
 
   if Sender.IsNull or (Sender.DataSet.RecordCount = 0) then
 
 Text := EmptyStr
 
   else {if DisplayText then}
 
 Text := lNomes[Sender.AsBoolean]
 
   {else
 
 Text := Sender.AsString}
 
 end;
 
  
 
 procedure TdbgCalculo.cdsCalculoTotalizaChange(Sender: TField);
 
 begin
 
   //  Copia ou não o valor informado para o campo que será totalizado
 
   case Sender.AsBoolean of
 
 false: cdsCalculoValorTotaliza.AsFloat := 0.00;
 
 true:  cdsCalculoValorTotaliza.AsFloat := cdsCalculoValor.AsFloat;
 
   end;
 
 end;
 
  
 
 procedure TdbgCalculo.cdsCalculoBeforePost(DataSet: TDataSet);
 
 begin
 
   //  Antes de salvar, força recálculo da expressão totalizadora
 
   cdsCalculoTotalizaChange(cdsCalculoTotaliza)
 
 end;
 
  
 
 procedure TdbgCalculo.cdsCalculoTotalizaSetText(Sender: TField;
 
   const Text: String);
 
 begin
 
   //  Traduz a entrada de strings via DBGrid em valores booleanos
 
   if Text = 'NÃO' then Sender.AsBoolean := false;
 
   if Text = 'SIM' then Sender.AsBoolean := true;
 
  
 
   //  Posta a alteração para forçar recálculo
 
   cdsCalculo.Post;
 
 end;
 
  
 
 end.
 
 {  Unit1.pas – final }
 
  
 
  
 
 De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
 nome de harleydiaskoehler
 Enviada em: quinta-feira, 7 de janeiro de 2010 09:35
 Para: delphi-br@yahoogrupos.com.br
 Assunto: [delphi-br] Calculo em DBGrid
 
  
 
   
 
 Prezados Colegas
 
 Preciso realizar calculos dentro de um dbrig.
 
 Utilizo um clientdataset em memoria e tenho diversos registros.
 São quatro campos: id : integer, ds : string, totaliza : string(S/N) e vl :
 valor.
 Atraves de um stringList faço uma carga inicial dos dados que estão em um
 arquivo texto. O usario valida o campo valor e os altera caso necessário em
 seguida clica em um botão que faz os calculos dos campos valor onde
 (totaliza) com a flag = 'S'
 
 Gostaria de eliminar esse botão e a medida que o usuario fosse alterando o
 campo valor, o calculo fosse feito automaticamente, como uma planilha excel.
 tentei colocar o codigo do botão em diversos eventos do grid ou do proprio
 clientdataset, mas não consegui fazer funcionar. Alguem ja fez algo parecido
 ?
 
 saudações
 
  
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





[delphi-br] Calculo em DBGrid

2010-01-07 Por tôpico harleydiaskoehler
Prezados Colegas

Preciso realizar calculos dentro de um dbrig.

Utilizo um clientdataset em memoria e tenho diversos registros.
São quatro campos: id : integer, ds : string, totaliza : string(S/N) e vl : 
valor.
Atraves de um stringList faço uma carga inicial dos dados que estão em um 
arquivo texto. O usario valida o campo valor e os altera caso necessário em 
seguida clica em um botão que faz os calculos dos campos valor onde (totaliza) 
com a flag = 'S'

Gostaria de eliminar esse botão e a medida que o usuario fosse alterando o 
campo valor, o calculo fosse feito automaticamente, como uma planilha excel. 
tentei colocar o codigo do botão em diversos eventos do grid ou do proprio 
clientdataset, mas não consegui fazer funcionar. Alguem ja fez algo parecido ?

saudações




[delphi-br] Re: Conversão de expressão

2009-12-29 Por tôpico harleydiaskoehler
Humberto,

O código a principio funciona, mas não obedece as regras matemáticas numa 
equação. por exemplo:

20 + (30 * 2)
o resultado deveria ser 80, no seu código ele me traz o valor de 100, ou seja 
soma para depois multiplicar. Consegue me ajudar nisso ?

grato




--- Em delphi-br@yahoogrupos.com.br, humberto sales de oliveira 
humberto_...@... escreveu

 coloque um edite com sua operacao, em um button insira o seguinte codigo:
 
 var
 operacao : array[0..10] of double;
 operador : array[0..10] of char;
 x,z,z1 : integer;
 vr,s : string;
 begin
 for x := 0  to 10 do
  begin
  operacao[x] := 0;
  operador[x] := #0;
  end;
 vr := '';
 s := edit1.text;
 if copy(s,length(s),1)  ' ' then
s := s + ' ';
 z := 0;
 z1 := 0;
 for x := 1 to length(s) do
   begin
   case s[x] of
'(' : continue;
')',' ' : begin
 if (vr  '') then
   begin
   operacao[z] := strtofloat(vr);
   inc(z,1);
   end;
   vr := '';
  end;
'0'..'9' : vr := vr + s[x];
'+','-','*','/' : begin
  operador[z1] :=  s[x];
  inc(z1);
  end;
   end;
 
   end;
 for x := 0  to 10 do
  begin
  case operador[x] of
   '+'  : operacao[0] := operacao[0] + operacao[x+1];
   '-'  : operacao[0] := operacao[0] - operacao[x+1];
   '/'  : operacao[0] := operacao[0] / operacao[x+1];
   '*'  : operacao[0] := operacao[0] * operacao[x+1];
   end;
  end;
   showmessage(floattostr(operacao[0]));
 end;
 
 
  Pessoal, 
 
  tenho uma string montada e preciso converte-la para um valor numerico de 
  forma que o cálculo seja realizado.
 
 
  Ex: (100 + 20) / 4
 
  Na verdade preciso que isso me retorne uma variavel com o valor= 30.
 
  Alguem ja fez algo parecido ?
 
 
 





[delphi-br] Topicos demoram a aparecer

2009-12-29 Por tôpico harleydiaskoehler
Gostaria de saber porque os topicos inseridos demoram tanto a aparecer, postei 
um hoje as 8:30 e ja são 10:30 e ainda nada.



[delphi-br] Partes de uma string

2009-12-29 Por tôpico harleydiaskoehler
Pessoal,

Tenho uma string ex: ((campo1 + campo2) / 2) + campo3

preciso fazer uma consulta usando as palavras (campo1,campo2,campo3) que estam 
entre aspas ou um outro delimitador. O detalhe é que pode variar a quantidade 
de campos e tamanhos das palavras a serem pesquisadas por expressão.
Como faço para extrair essas partes delimitadas da minha string para poder 
colocar numa query desprezando os outros caracteres (aspas, parenteses, 
operadores?

grato



[delphi-br] Conversão de expressão

2009-12-28 Por tôpico harleydiaskoehler
Pessoal, 

tenho uma string montada e preciso converte-la para um valor numerico de forma 
que o cálculo seja realizado.


Ex: (100 + 20) / 4

Na verdade preciso que isso me retorne uma variavel com o valor= 30.

Alguem ja fez algo parecido ?



[delphi-br] Criar CORINGA em registro

2009-09-09 Por tôpico harleydiaskoehler
Prezados,

Tenho uma tabela de historicos e outra de lançamentos. Gostaria que ao 
cadastrar determinados registros na tabela de histórico, poder incluir dentro 
da descrição algum tipo de coringa. Por exemplo: Vr. ref. a duplicata nº 
$$Numero da NF $$Nf.
Até ai é tranquilo.

O que preciso é que quando eu for fazer um lançamento utilizando esse histórico 
que tenha um ou mais coringas, o cursor seja posicionado diretamente sobre esse 
coringa para digitação das informações e inibindo a alteração do restante do 
histórico.
Se o histórico tiver mais de um corringa, ao pressionar enter ele vai para o 
seguinte e assim sucessivamente.

Alguem ja fez algo parecido que possa me ajudar ?





[delphi-br] Startar Servidor datasnap como serviço do windows na inicialização

2009-07-20 Por tôpico harleydiaskoehler
Prezados colegas,

Crei um servidor datasnap utilizando no projeto a classe TService.
Consigo criar o serviço normalmente e startar manualmente no painel de controle
do windows, uma vez ativo o serviço, tenho conseguido fazer a conecção do
client. O problema esta quando inicializo o windows. Mesmo estando o serviço em
automático, ele não inicia, e quando efetuo o login a seguinte mensagem do
windows aparece.

szAppName : MeuServico.exe szAppVer : 0.0.0.0 szModName : kernel32.dll
szModVer : 5.1.2600.5781 offset : 00012afb
Aplicativo com falha MeuServico.exe, versão 0.0.0.0, módulo com falha
kernel32.dll, versão 5.1.2600.5781, endereço com falha 0x00012afb.

caso eu vá no painel de controle consigo iniciar normalmente o serviço.

Alguem pode me ajudar ?
O que pode estar faltando?

Obrigado




[delphi-br] Problema com ClientDataSet em memoria

2009-03-25 Por tôpico harleydiaskoehler
Prezados colegas,

Ao dar OPEN em um clientdataset em memoria num determinado Form ligando- o ao 
provider de um datamodule que por sua vez esta ligado a um SQLDataset e a um 
SqlConect, recebo a seguinte mensagem:

missing data provider or data packet

Gostaria de saber se é uma limitação ou se estou fazendo algo errado.
Abaixo o codigo:

var vCds : TClientDataset;
begin
   vCds := TClientDataset.Create(self);
   vCds.ProviderName := datamodule.dsp;

   Try
  vCds.open;
   Finally
 freeAndNil(vCds);
   End;
end;

Lembrando que utilizo o Delphi 2009.

saudações