Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

неправильная дата [D6, Paradox]


Страницы:   1 2

GIL ©   (2003-11-06 12:01:00) 

procedure TForm1.Main_TFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
var y,d,m,m1,d1,dd,mm,y1,yy:word;
dat,dat1:TDate;
begin
Accept:=False;
if not (Main_TBirth.Value = null) then
begin
decodedate(da,y,m,d);
decodedate(lda,y1,m1,d1);
decodedate(Main_TBirth.Value,yy,mm,dd);
dat:=encodedate(y1,mm,dd);
showmessage(datetostr(Main_TBirth.Value));
if (lda<=dat)and(dat<=da) then Accept:=True;
end;
end;
в таблице все тестовые значения - 29.10.1983
в сообщении появляется - 31.07.18533
и 30.12.15443 после появления PrintPreview от QuickReport"а


GIL   (2003-11-06 14:09:00) [1]

ауу, кто-нибудь знает!! ответ на вопрос!!???


GIL   (2003-11-06 13:45:00) [2]

>Anatoly Podgoretsky
ну не знаю, не знаю, у меня у всех типов поля кроме подстановочных все правильно читается, а когда делаю локать по айдишнику в род. таблице все работает!!
А как насчет трехразовой фильтрации?? с ней то что делать??
причем когда ее инициирует Квикрепорт, то она пробегает одну и туже запись два раза подряд, а не просто вызывает фильтр два раза


Anatoly Podgoretsky   (2003-11-06 13:41:00) [3]

GIL © (06.11.03 13:21) [29]
обработчик OnFilterRecord работает даже с Папой Римским!!!


GIL   (2003-11-06 13:34:00) [4]

TP (06.11.03 13:32) [32]
То, что OnCalcFields происходит до OnFilterRecord известно давно.
при чем здесь это? Если ты про "И всем всем всем, запомните набудущее что обработчик OnFilterRecord не работает в полями подстановки!!", то сам подумай что сказал


TP   (2003-11-06 13:32:00) [5]

То, что OnCalcFields происходит до OnFilterRecord известно давно.


GIL   (2003-11-06 13:27:00) [6]

ну не знаю я!!!, ну скажите кто знает!! Anatoly Podgoretsky наверняка знаешь!!! скажи!! pls


Mike Kouzmine   (2003-11-06 13:25:00) [7]

GIL © (06.11.03 13:21) [29] Спасибо, запомним. А ты подумай и нам скажи, мы тоже это запомним.


GIL   (2003-11-06 13:21:00) [8]

извините, просто ее долго писать, а при взгляде на нее возникнет много вопросов по степени оптимизации, все работает!!
И всем всем всем, запомните набудущее что обработчик OnFilterRecord не работает в полями подстановки!!!
всем большое спасибо за терпение и советы!!
но напоследок возник еще один вопрос, протрассировав прогу в дельфе увидел очень интересный момент: после того, как я вызываю PrintPreview у QuickReport прога еще 2 раза!! прогоняет фильтр!!, получается что я фильтрую таблицу 3 раза!! как этого избежать?


Mike Kouzmine   (2003-11-06 13:18:00) [9]

Anatoly Podgoretsky © (06.11.03 13:16) [27] Грустно это.


Anatoly Podgoretsky   (2003-11-06 13:16:00) [10]

Mike Kouzmine © (06.11.03 13:04) [24]
Не дождешься, по крайней мере ранее ни кому не удалось.


GIL   (2003-11-06 13:14:00) [11]

ура, фильтр работает, но все равно выдает кучу ошибок


GIL   (2003-11-06 13:10:00) [12]

кажется я начинаю догонять, он не может правильно взять данные из полей подстановок!!


Mike Kouzmine   (2003-11-06 13:04:00) [13]

GIL © (06.11.03 13:02) [23] Ты дай структуру таблицы, а потом спрашивай.


GIL   (2003-11-06 13:02:00) [14]

попробовал считывать другие поля - все считывается неверно!!! возникает вопрос: КАК ВЕРНОсчитать значения полей текущей записи в обработчике события OnFilterRecord?????


GIL   (2003-11-06 12:56:00) [15]

я уже так сделал, на фика не в том, как выводить, а в том что ДАТАневерно считывается


Serg   (2003-11-06 12:54:00) [16]

а не проще ли
showmessage(dataset.fieldbyname("birth").asstring); ?


GIL   (2003-11-06 12:54:00) [17]

заместо
SetRangeStart;
Main_TID_Birth.Value:=i;
SetRangeEnd;
Main_TID_Birth.Value:=j;
ApplyRange;
поставил
Main_T.SetRange([i],[j]);
датасет престал быть пустым, но всеравно ругается на дату


Johnmen   (2003-11-06 12:51:00) [18]

showmessage(FormatDateTime("dd.mm.yyyy",(dataset.fieldbyname("birth").asdatetime)));


GIL   (2003-11-06 12:47:00) [19]

без разницы как писать, если дату из таблицы он берет неправильную.


Serg   (2003-11-06 12:44:00) [20]

вместо такой констукции
if (lda<=dat)and(dat<=da) then Accept:=True else Accept:=False;
правильнее писать
Accept:=(lda<=dat)and(dat<=da);


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо