Текущий архив: 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.51 MB
Время: 0.009 c