Главная страница
    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.46 MB
Время: 0.004 c
3-90479
_Mihail_
2002-02-04 06:13
2002.02.28
Переход к записи по номеру


3-90497
HiFiBear
2002-02-01 10:28
2002.02.28
Проьлема с библиотеками ado


1-90598
DJ X
2002-02-03 16:17
2002.02.28
HTML


1-90536
Victor
2002-02-09 11:30
2002.02.28
Путь к файлу


14-90642
anod
2002-01-12 18:01
2002.02.28
Книги





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский