Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/16: Рейтинг темы: голосов - 16, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 16.11.2010
Сообщений: 61

Фильтр по дате

16.01.2013, 22:04. Показов 3404. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть таблица по ней надо сделать фильтр и отфильтрованные данный отправить на отчет ... нашел пример, но не могу понять, что за d1 и d2... откуда они там вообще...
как отфильтровать знаю, ну он фильтрует для отображение, тоесть отфильтровал,
данные в гриде показались какие надо ,вывел данные в отчет, а там все рано все данные... как я понял нужно записывать этот фильтр. Ну как его записать не понял?(
для отчета использую несколько таблиц ...


Delphi
1
2
3
4
5
6
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Text:='SELECT * FROM orders WHERE saledate BETWEEN :d1 AND :d2';
Query1.ParamByName('d1').AsDate:=DateTimePicker1.Date;
Query1.ParamByName('d2').AsDate:=DateTimePicker2.Date;
Query1.Active:=true;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2013, 22:04
Ответы с готовыми решениями:

Фильтр по дате (с и по)
datamodule2.ADOQuery4.Filtered:=false; datamodule2.ADOQuery4.Filter:='Дата_прибытия >= ''''+dateToStr(DateTimePicker1.Date)+''''AND...

Фильтр по дате в datetime
Всем привет, знатокам delphi и sql. Есть БД в формате mdb с полем Время в формате datetime. Делаю к примеру запрос, и указываю в качестве...

Фильтр DBgrid по дате
Здравствуйте, есть Dbgrid и DateTimePicker. В DBgrid есть поле Дата мне нужно вывести в DBgrid записи месяц в которых совпадал бы с месяцем...

14
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
16.01.2013, 22:14
Цитата Сообщение от Den A Посмотреть сообщение
есть таблица по ней надо сделать фильтр и отфильтрованные данный отправить на отчет ... нашел пример, но не могу понять, что за d1 и d2... откуда они там вообще...
как отфильтровать знаю, ну он фильтрует для отображение, тоесть отфильтровал,
данные в гриде показались какие надо ,вывел данные в отчет, а там все рано все данные... как я понял нужно записывать этот фильтр. Ну как его записать не понял?(
для отчета использую несколько таблиц ...


Delphi
1
2
3
4
5
6
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Text:='SELECT * FROM orders WHERE saledate BETWEEN :d1 AND :d2';
Query1.ParamByName('d1').AsDate:=DateTimePicker1.Date;
Query1.ParamByName('d2').AsDate:=DateTimePicker2.Date;
Query1.Active:=true;
Это параметры, которые объявлены в 3-й строке Вашего текста (начинаются с двоеточия - признак параметра).
0
 Аватар для Артём121
66 / 65 / 13
Регистрация: 15.11.2010
Сообщений: 396
Записей в блоге: 1
16.01.2013, 22:17
:d1 и :d2 - это параметры запроса. Ниже этим параметрам присваивается некие значение из Календаря. Затем метод Open производит выполнение данного запроса. Для вывода результата в отчет нужно Query1 использовать как источник данных
0
0 / 0 / 0
Регистрация: 16.11.2010
Сообщений: 61
17.01.2013, 09:46  [ТС]
Запрос на отображение выглядит так:

SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo, tovar.sena, tovar.name_tovar, sotrydn.FIO
FROM sotrydn INNER JOIN (tovar INNER JOIN prodasha ON tovar.id_tovar=prodasha.id_tovar) ON sotrydn.id_sot=prodasha.id_sot;

на форму ставлю Query в него перезаписываю sql с новым запросом и вывожу на печать я так понял?

если так то что писать на новый запрос?(

Добавлено через 59 секунд
я так и думал что параметры, ну проблема в том что у меня он 1 параметр , просто дата!-а если дата от и до( вот в чем беда(

Добавлено через 11 часов 23 минуты
что даже не кто не поможет((((
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
17.01.2013, 09:53
Цитата Сообщение от Den A Посмотреть сообщение
Запрос на отображение выглядит так:

SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo, tovar.sena, tovar.name_tovar, sotrydn.FIO
FROM sotrydn INNER JOIN (tovar INNER JOIN prodasha ON tovar.id_tovar=prodasha.id_tovar) ON sotrydn.id_sot=prodasha.id_sot;

на форму ставлю Query в него перезаписываю sql с новым запросом и вывожу на печать я так понял?

если так то что писать на новый запрос?(

Добавлено через 59 секунд
я так и думал что параметры, ну проблема в том что у меня он 1 параметр , просто дата!-а если дата от и до( вот в чем беда(
А как помочь если Вы не говорите что нужно?
Нужно получить продажи за день или за неделю?
В первом случае хватит и одного датепикера, а во втором нужно на форме поместить два..
0
0 / 0 / 0
Регистрация: 16.11.2010
Сообщений: 61
17.01.2013, 11:12  [ТС]
Нужно отфильтровать данные - используя интервал времени от и до (два пикера) .... потом эти данные (отфильтрованные вывести на печать) например от 19.01.2012 до 21 .01.2012 - в отчете мы видим товар которые входят в этот промежуток времени. в отчете продавца , цена ,товар и дата

я делал добавлял на форму Query два пикера и бутон- в обработчик бутона

Соединял and
Delphi
1
2
3
Query1.Active:=FALSE;
Query1.SQL.Text:='SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo, tovar.sena, tovar.name_tovar, sotrydn.FIO and FROM sotrydn INNER JOIN (tovar INNER JOIN prodasha ON tovar.id_tovar=prodasha.id_tovar) ON sotrydn.id_sot=prodasha.id_sot and WHERE prodasha.data BETWENN :d1 AND :d2';
[COLOR="Red"][/COLOR]

(ТАК НЕ РАБОТАЕТ)
Выделяет вот это поле ='S (ошибка:String literals may have at most 255 elements)


Соединял '+'
Delphi
1
2
3
Query1.Active:=FALSE;
Query1.SQL.Text:='SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo, tovar.sena, tovar.name_tovar, sotrydn.FIO '+' FROM sotrydn INNER JOIN (tovar INNER JOIN prodasha ON tovar.id_tovar=prodasha.id_tovar) ON sotrydn.id_sot=prodasha.id_sot '+'WHERE prodasha.data BETWENN :d1 AND :d2';
[COLOR="Red"](ТАК НЕ РАБОТАЕТ)
так ошибка

invalid use of keyword.
token :INNER
line number: 1.


Соединял '+''+'
Delphi
1
2
Query1.SQL.Text:='SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo, tovar.sena, tovar.name_tovar, sotrydn.FIO '+''+' FROM sotrydn INNER JOIN (tovar INNER JOIN prodasha ON tovar.id_tovar=prodasha.id_tovar) ON sotrydn.id_sot=prodasha.id_sot '+''+' WHERE prodasha.data BETWENN :d1 AND :d2';
[COLOR="Red"](ТАК НЕ РАБОТАЕТ)[/COLOR]

invalid use of keyword.
token :BETWENN
line number: 1.


Уже пробовал удалить INNER писал не помогло(


Query1.ParamByName('d1').AsDate:=DateTim ePicker1.DATE;
Query1.ParamByName('d2').AsDate:=DateTim ePicker2.DATE;
Query1.Active:=TRUE;


Подскажите пожалуйста как быть((

видел еще про adoquery filters - так и не понял как работать с ним (
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
17.01.2013, 11:37
Цитата Сообщение от Den A Посмотреть сообщение
...
видел еще про adoquery filters - так и не понял как работать с ним (
Ну, с фильтрами Вы еще и не начинали работать.

А по SQL запросу: есть несколько ошибок, скорее всего просто невнимательность..

Попробуйте так:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Query1.Active:=FALSE;
 
Query1.SQL.Text:=
'SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo,'+
'tovar.sena,tovar.name_tovar, sotrydn.FIO '+ 
'FROM prodasha '+
'INNER JOIN sotrydn ON sotrydn.id_sot=prodasha.id_sot '+
'INNER JOIN tovar ON tovar.id_tovar=prodasha.id_tovar '+ 
'WHERE prodasha.data BETWENN :d1 AND :d2 ';
 
Query1.ParamByName('d1').AsDate:=DateTimePicker1.DATE;
Query1.ParamByName('d2').AsDate:=DateTimePicker2.DATE;
 
Query1.Active:=TRUE;
0
0 / 0 / 0
Регистрация: 16.11.2010
Сообщений: 61
17.01.2013, 14:39  [ТС]
Delphi
1
2
3
4
5
6
7
8
Query1.Active:=FALSE;
 
Query1.SQL.Text:='SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo,'+'tovar.sena,tovar.name_tovar, sotrydn.FIO '+'FROM prodasha '+'INNER JOIN sotrydn ON sotrydn.id_sot=prodasha.id_sot '+'INNER JOIN tovar ON tovar.id_tovar=prodasha.id_tovar '+'WHERE prodasha.data BETWENN :d1 AND :d2 ';
Query1.ParamByName('d1').AsDate:=DateTimePicker1.DATE;
Query1.ParamByName('d2').AsDate:=DateTimePicker2.DATE;
 
 
Query1.Active:=TRUE;

invalid use of keyword.
token :BETWENN
line number: 1.
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
17.01.2013, 14:41
Цитата Сообщение от Den A Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
Query1.Active:=FALSE;
 
Query1.SQL.Text:='SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo,'+'tovar.sena,tovar.name_tovar, sotrydn.FIO '+'FROM prodasha '+'INNER JOIN sotrydn ON sotrydn.id_sot=prodasha.id_sot '+'INNER JOIN tovar ON tovar.id_tovar=prodasha.id_tovar '+'WHERE prodasha.data BETWENN :d1 AND :d2 ';
Query1.ParamByName('d1').AsDate:=DateTimePicker1.DATE;
Query1.ParamByName('d2').AsDate:=DateTimePicker2.DATE;
 
 
Query1.Active:=TRUE;

invalid use of keyword.
token :BETWENN
line number: 1.
Ошибочка. Должно быть BETWEEN
0
0 / 0 / 0
Регистрация: 16.11.2010
Сообщений: 61
17.01.2013, 16:10  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
ADoQuery1.Active:=FALSE;
 
ADoQuery1.SQL.Text:='SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo,'+'tovar.sena,tovar.name_tovar, sotrydn.FIO '+'FROM prodasha '+'INNER JOIN sotrydn ON sotrydn.id_sot=prodasha.id_sot '+'INNER JOIN tovar ON tovar.id_tovar=prodasha.id_tovar '+'WHERE prodasha.data BETWEEN :d1 AND :d2 ';
 
ADoQuery1.Parameters.ParamByName('d1').Value:=DateTimePicker1.Date;
 
ADoQuery1.Parameters.ParamByName('d2').Value:=DateTimePicker2.Date;
 
ADoQuery1.Active:=TRUE;
ADo подключен..
Миниатюры
Фильтр по дате  
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
17.01.2013, 16:27
Цитата Сообщение от Den A Посмотреть сообщение
Delphi
1
2
3
...
 
ADoQuery1.Active:=TRUE;
ADo подключен..

Если это Access, то надо еще скобок напихать:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Query1.Active:=FALSE;
 
Query1.SQL.Text:=
'SELECT prodasha.Id_prodasha, prodasha.id_tovar, prodasha.id_sot, prodasha.data, prodasha.kolvo,'+
'tovar.sena,tovar.name_tovar, sotrydn.FIO '+ 
'FROM prodasha '+
'(INNER JOIN sotrydn ON sotrydn.id_sot=prodasha.id_sot '+
'(INNER JOIN tovar ON tovar.id_tovar=prodasha.id_tovar)) '+ 
'WHERE prodasha.data BETWEEN :d1 AND :d2 ';
 
Query1.ParamByName('d1').AsDate:=DateTimePicker1.DATE;
Query1.ParamByName('d2').AsDate:=DateTimePicker2.DATE;
 
Query1.Active:=TRUE;
0
0 / 0 / 0
Регистрация: 16.11.2010
Сообщений: 61
17.01.2013, 16:41  [ТС]
Почему Query1 ?????????? есть бд разработанная в Access,подключен к ней с помощью адоконекта , значит надо адоквери использовать???
0
 Аватар для Romantik_FM
324 / 316 / 84
Регистрация: 03.03.2010
Сообщений: 1,364
18.01.2013, 10:34
Цитата Сообщение от albor Посмотреть сообщение
ParamByName('d1').AsDate
подскажите, почему у меня на такую запись ругается?
[Error] Graph.pas(71): Undeclared identifier: 'asdate'
0
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
18.01.2013, 10:49
Цитата Сообщение от Romantik_FM Посмотреть сообщение
подскажите, почему у меня на такую запись ругается?
[Error] Graph.pas(71): Undeclared identifier: 'asdate'
Delphi
1
Query1.ParamByName('d1').Value:=DateTimePicker1.DATE;
0
 Аватар для Romantik_FM
324 / 316 / 84
Регистрация: 03.03.2010
Сообщений: 1,364
18.01.2013, 11:17
Цитата Сообщение от albor Посмотреть сообщение
1
Query1.ParamByName('d1').Value:=DateTime Picker1.DATE;
так работает, а на форумах почему то пишут так
Цитата Сообщение от albor Посмотреть сообщение
ParamByName('d2').AsDate
поэтому не понятно когда этот код работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.01.2013, 11:17
Помогаю со студенческими работами здесь

Фильтр по дате: token not found
есть вот такой код const MyDTFmt = 'dd.MM.yyyy' begin form1.Frame31.Query2.Close; form1.Frame31.Query2.SQL.Clear; ...

Фильтр по дате в Table
есть поле DateTimePicker и есть таблица Table, с полем datas тип данных Data, как можно создать фильтр по DateTimePicker для поля datas....

Фильтр по дате
Добрый день. Встроке где у меня, делается критерий по дате <= изадана дата, а как сделать привязку к ячейке или может тексбоксу, чтобы не...

Фильтр по дате
Помогите пожалуйста сделать фильтр по дате. Есть форма Заказы. В ней есть поля. (Дата заказа, Заказчик, Артикул и.т.д.) Сделал...

Фильтр по дате
Доброго времени суток! Такая задачка: элементарной формулой СУММЕСЛИ ищем (в листе all) и суммируем показатели людей по ФИО (на листе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru