Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.28;
Скачать: CL | DM;

Вниз

CalcFields   Найти похожие ветки 

 
ТеньЛуны ©   (2002-02-01 14:02) [0]

Можно ли запретить обработку сабж???


 
Alexandr ©   (2002-02-01 14:07) [1]

AutoCalcFields в фалсе поставь


 
ТеньЛуны ©   (2002-02-01 14:11) [2]

Всё равно обрабатывает при скроллинге DBGrid


 
Alexandr ©   (2002-02-01 14:24) [3]

не может быть!


 
Alexandr ©   (2002-02-01 14:25) [4]

слушай, ну если уж совсем никак, то свой флаг создай. И его и проверай в OnCalcFields


 
ТеньЛуны ©   (2002-02-01 14:45) [5]

Сделал...вот код, всё равно

unit dm;

interface

uses
SysUtils, Classes, Controls, DB, DBTables, DateUtils;

type
TdmApp = class(TDataModule)
tblBase: TTable;
dsBase: TDataSource;
quBase: TQuery;
tblBaseID: TIntegerField;
tblBaseDate: TDateField;
tblBaseMoney: TStringField;
tblBaseProcent: TFloatField;
tblBasepstav: TFloatField;
procedure tblBaseCalcFields(DataSet: TDataSet);
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
dates:array[1..1000] of TDate;
end;

var
dmApp: TdmApp;
i:integer;
complet:boolean;
implementation

uses app;

{$R *.dfm}

procedure TdmApp.tblBaseCalcFields(DataSet: TDataSet);
var
f:word;
delta:integer;
date1, date2:TDate;

begin
if not complet then begin
{tblBaseID}
tblBaseID.Value:=quBase.FieldValues["ID"];
{tblBaseDAte}
tblBaseDate.Value:=quBase.FieldValues["Date"];
dates[i]:=quBase.FieldValues["Date"];
delta:=trunc(dates[i])-trunc(dates[i-1]);
if (tblBaseID.Value<>1) or (delta=0) then tblBasePStav.Value:=st*delta/100 else
tblBasepStav.Value:=0;

if quBase.FieldValues["Flag"]=1 then tblBaseMoney.Value:="+"+FloatToStr(quBase.FieldValues["Money"]);
if quBase.FieldValues["Flag"]=0 then tblBaseMoney.Value:="-"+FloatToStr(quBase.FieldValues["Money"]);

Inc(i);
quBase.Next;

if quBase.Eof then begin
date2:=Date;
tblBaseID.Value:=i;
tblBaseDate.Value:=date2;
delta:=trunc(date2)-trunc(dates[i-1]);
tblBasePStav.Value:=st*delta/100;
complet:=true;
end;
end;
end;

procedure TdmApp.DataModuleCreate(Sender: TObject);
begin
i:=1;
complet:=false;
end;

end.


 
Alexandr ©   (2002-02-01 14:50) [6]

ну все правильно!!!!!!!!

у тебя complet:=false
т.о. not complet=true
и естественно фильтрация будет

а про inc(i) и qubase.next и dates[i] я чего-то не въехал сразу. Чего-то ты тут намудрил по-моему


 
ТеньЛуны ©   (2002-02-01 14:52) [7]

тут не мудрёж, тут нужна предыдущая дата для вычисления.

симтом такой - он чистит при скроллинге датагрид


 
ТеньЛуны ©   (2002-02-01 15:02) [8]

решилось очень просто установкой dgEditing:=false;
у грида


 
Alim   (2002-02-01 15:30) [9]

делай так

Procedure TForm1.BigProcessingFunction;
begin
Table1.OnCalcFields := nil;
<Включите любые по сложности вычисления в этом месте!>
Table1.OnCalcFields := Table1OnCalcFields;
end;




Страницы: 1 вся ветка

Текущий архив: 2002.02.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.007 c
7-90689
Мираж
2001-11-24 14:25
2002.02.28
Как сделать окно активным при резворачинании его из трея при помощи хука


14-90661
Иван Шихалев
2002-01-15 18:11
2002.02.28
---|Ветка была без названия|---


7-90671
Лина
2001-11-20 21:09
2002.02.28
Как полностью захватить все ресурсы процессора ?


4-90714
Profi .
2001-12-30 16:27
2002.02.28
SHELLEXECUTE !!!! HELP !!!


7-90681
viksoft
2001-11-04 14:17
2002.02.28
Как отформатировать винт (HDD) ?