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

Вниз

неправильная дата   Найти похожие ветки 

 
GIL ©   (2003-11-06 12:01) [0]

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"а


 
Anatoly Podgoretsky ©   (2003-11-06 12:09) [1]

Зачем же ты тогдак текстовые значения пытаешься преобразовать с помощью datetostr?


 
Johnmen ©   (2003-11-06 12:10) [2]

.AsDateTime


 
GIL ©   (2003-11-06 12:15) [3]

>Johnmen куда ставить?
>Anatoly Podgoretsky где текстовые значения? в таблице тип даты!


 
Serg   (2003-11-06 12:17) [4]

вместо Main_TBirth.Value напиши
main_t.fieldbyname("birth").asdatetime


 
GIL ©   (2003-11-06 12:19) [5]

все тоже самое


 
Anatoly Podgoretsky ©   (2003-11-06 12:26) [6]

GIL © (06.11.03 12:15) [3]
Цитата "в таблице все тестовые значения - 29.10.1983"


 
GIL ©   (2003-11-06 12:29) [7]

ну они так отображаются в дбгриде, а поле типа даты попробовал изменить main_t.fieldbyname("birth").asdatetime на DataSet.fieldbyname("birth").asdatetime не помогло! в чем вообще дело?????


 
GIL ©   (2003-11-06 12:33) [8]

showmessage(datetostr(dataset.fieldbyname("birth").asdatetime));
показывает 09.07.12595


 
Mike Kouzmine ©   (2003-11-06 12:35) [9]

GIL © (06.11.03 12:33) [8] Значит так и есть.
Ты бы хоть структуру таблицы показал.


 
Anatoly Podgoretsky ©   (2003-11-06 12:35) [10]

Значит такое и есть


 
Serg   (2003-11-06 12:36) [11]

попробуй потрассерить и посмотри, какое значение у поля birth.
если ты говоришь, что оно у тебя везде равно 29.10.1983, так оно и в этом обработчике должно быть таким же, а не 31.07.ххххх.
кстати, нет никакого смысла для каждой записи делать
decodedate(da,.....)
decodedate(lda,....)
это можно вынести за пределы обработчика.


 
GIL ©   (2003-11-06 12:37) [12]

if dataset.IsEmpty then showmessage("");
показывает!!!


 
Mike Kouzmine ©   (2003-11-06 12:39) [13]

Потрепаться однозначно интереснее.


 
Serg   (2003-11-06 12:40) [14]

заморочил, блин, всем голову


 
GIL ©   (2003-11-06 12:40) [15]

if (lda<=dat)and(dat<=da) then Accept:=True else Accept:=False;
сделал так и ошибки выскакивают, но что-то выводится, хотя все равно говорит, что пустая


 
GIL ©   (2003-11-06 12:41) [16]

а мне каково?


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

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


 
GIL ©   (2003-11-06 12:47) [18]

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


 
Johnmen ©   (2003-11-06 12:51) [19]

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


 
GIL ©   (2003-11-06 12:54) [20]

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


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

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


 
GIL ©   (2003-11-06 12:56) [22]

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


 
GIL ©   (2003-11-06 13:02) [23]

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


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

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


 
GIL ©   (2003-11-06 13:10) [25]

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


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

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


 
Anatoly Podgoretsky ©   (2003-11-06 13:16) [27]

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


 
Mike Kouzmine ©   (2003-11-06 13:18) [28]

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


 
GIL ©   (2003-11-06 13:21) [29]

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


 
Mike Kouzmine ©   (2003-11-06 13:25) [30]

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


 
GIL ©   (2003-11-06 13:27) [31]

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


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

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


 
GIL ©   (2003-11-06 13:34) [33]

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


 
Anatoly Podgoretsky ©   (2003-11-06 13:41) [34]

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


 
GIL ©   (2003-11-06 13:45) [35]

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


 
GIL ©   (2003-11-06 14:09) [36]

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



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

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

Наверх




Память: 0.54 MB
Время: 0.028 c
3-89733
jonni
2003-11-09 17:28
2003.11.27
Выборка из базы


8-90000
Spawn
2003-08-03 10:15
2003.11.27
AVI


3-89755
vov-
2003-11-07 21:43
2003.11.27
переиндексация базы данных


3-89789
KIR
2003-11-06 17:38
2003.11.27
Народ, требуется ли BDE, если используется DB.pas?


11-89799
Kobik
2003-03-20 20:32
2003.11.27
KOL+DirectX