GARANTIR DESCONTO

Fórum Campos calculados, como evitar a quot;lentidão no sistemaq #342133

22/05/2007

0

Olá pessoal do fórum.

Estou enfrentando problemas dentro de minha aplicação com campos calculados, vou citar abaixo a estrutura da tabela que tenho em meu banco de dados e a estrutura que preciso em meu relatório.

Utilizo Delphi 7, dbxpress, Fortes Report e Interbase

TBMOVIMENTACAO
IDLANCAMENTO INTEGER NOT NULL,
CODPRODUTO INTEGER,
CODOPERACAO INTEGER, // 1 = saida(venda) e 2 = entrada(compra)
DATAOPERACAO DATE,
QUANTIDADE INTEGER,
VALORTOTAL FLOAT,
USEROPERACAO VARCHAR(30)

pois bem, exemplo de movimentação (Lançadas).

1 - 1 - 2 - 22.05.2007 - 10 - R$ 10,00 - Admin
2 - 1 - 2 - 22.05.2007 - 05 - R$ 5,00 - Admin
3 - 1 - 1 - 22.05.2007 - 03 - R$ 3,00 - Admin

Tenho que apresentar em um relatório o lucro, quantidade que entrou de produtos na loja, valor das entradas, quantidade que saiu da loja e seu valor total, subtraindo os dois depois retornaria então o lucro. Não sei se tem como desenvolver uma sql que faça isso, pois envolve condições no meio ali tipo CODOPERACAO = 1 ou = 2 então estou meio enrolado nisso, se alguém poder me dar uma idéia, muito grato!

A estrutura final do meu relatório deveria ficar assim:

codproduto - descricaoproduto(tbcadprodutos) - qdeCompra* - TotValorCompra* - qdeVenda* - TotValorVenda* - QdeSaldo* - ValorSaldo*

Os campos que estão com asterisco(*) precisam ser calculados.

Obrigado!


Gtts

Gtts

Responder

Posts

22/05/2007

Marco Salles

voce esta usando o Internalcalc do clientDataSet ????


Responder

Gostei + 0

23/05/2007

Gtts

ola marco.

Tentei usar internalcalc mas atualmente em minha aplicação uso CLientDataSet, tens alguma idéia pra me ajudar ?

obrigado.


Responder

Gostei + 0

23/05/2007

Marco Salles

ola marco. [b:141514fe20]Tentei usar internalcalc [/b:141514fe20]mas atualmente em minha aplicação uso CLientDataSet, tens alguma idéia pra me ajudar ? obrigado.


tentou usar ou usou ????

em minha aplicação uso

mas é com ele mesmo que voce usa o internalcalc

e no evento oncalcfields do clientdataset vc coloca o seguinte codigo:

if DataSet.State = dsInternalCalc then 
begin 
Seus calculos
end; 



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar