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

DateTimePicker использование его в писке и записях в БД

21.01.2013, 18:03. Показов 2735. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане. вопрос заключается в следующем, как DateTimePicker подключить так что б по нажатию на кнопку к примеру butten1 в сочетании с едитами и комбобокосoм делалась запись даты в поле таблицы БД.
и по нажатию на кнопку butten2 фильтровала записи и выводила по дате и остальным значениям.. в кнопке фильтрации уже забит текст который фильтрует в DBGride а по дате записи в этот день по такому то человеку будет в лист боксе выводиться. кто чем может подскажите. подключены таблицы через ADOTablе. заранее спасибо за понимание и поддержку!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2013, 18:03
Ответы с готовыми решениями:

Использование DateTimePicker
Класс: class Class1 { public Form1 f1 { get; set; } public Class1() { ...

Использование данных из DateTimePicker в SQL запросе Query
есть таблице парадокс с полями типа Date. надо сделать отчёт в QuickReport записей в выбраном промежутке дат. Просто так вывод таблицы...

DateTimePicker перевод его значения в милисекунды
Здравствуйте! Вот фрагмент кода: static double ConvertToUnixTimestamp(DateTime date) { DateTime origin = new...

18
Andrys777
22.01.2013, 08:10
Если ячейка имеет формат даты,то:
Delphi
1
ADOTable1.Fields[...].AsData:=DateTimePicker1.Date
Если ячейка текстовая, то:
Delphi
1
ADOTable1.Fields[...].Value:=DateToStr(DateTimePicker1.Date)
сдесь:ADOTable1.Fields[...] - таблица и ячейка твоей БД, в которую заносишь значения DateTimePicker-а
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
22.01.2013, 12:38  [ТС]
Delphi
1
ADOTable1.Fields[...]
можно записать и так
Delphi
1
ADOTable1.FieldByName('Название столбика')
0
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
24.01.2013, 18:44  [ТС]
Сделал все записывается дата в столбик..
подскажите как что б в условия фильтрации по нажатой кнопке вбивалось значение выставленной даты в дата тайм пикере..
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button6Click(Sender: TObject);
var filtr, // формируемая строка фильтра
d:string;
begin
Uspevaemost.Filtered:=false;
filtr:='';
if lenght(edit1.Text)>0 then
filtr:='id_studenta(FK)='+QuotedStr(edit1.Text);
if length(DateTimePicker1)>0 then \\ вот до сюда дописал и задумался а как дальше..
 
end;
подскажите пожалуйста..
0
 Аватар для Andrys74
217 / 81 / 6
Регистрация: 23.04.2012
Сообщений: 340
24.01.2013, 23:18
Delphi
1
...+DateToStr(DateTimerPicker.Date)
0
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
24.01.2013, 23:35  [ТС]
разве так пойдет фильтрация..
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button6Click(Sender: TObject);
var filtr, // формируемая строка фильтра
d:string;
begin
Uspevaemost.Filtered:=false;
filtr:='';
if lenght(edit1.Text)>0 then
filtr:='id_studenta(FK)='+QuotedStr(edit1.Text);
if length(DateTimePicker1)>0 then 
filtr:='Data_ocenki='+DateToStr(DateTimerPicker.Date)
end;
и не по теме как сделать так что б сетка DBGrid не отображала все даные таблицы.. а отображала их только после того как включена фильтрация..

Добавлено через 14 минут
Цитата Сообщение от ghjuf Посмотреть сообщение
filtr:='Data_ocenki='+DateToStr(DateTime rPicker.Date)
filtr:='Data_ocenki='+DateToStr(DateTime rPicker.Date);
забыл..
1
 Аватар для Andrys74
217 / 81 / 6
Регистрация: 23.04.2012
Сообщений: 340
25.01.2013, 08:15
Честно говоря, не зная твоей проги трудно что-либо советовать. А почему бы тебе всю фильтрацию не построить на ADOQuery ?
В запросе ты сможешь выбрать параметр фильтрации (по дате и/или по имени), также отображение тех полей, какие тебе надо
1
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
25.01.2013, 08:35
Вот не надо так делать DateToStr(DateTimerPicker.Date);.
Ибо что вернет Если дата имеет вид "13.05.2013", а что если так "05.13.2012", а если еще как-нить?
Тогда что будет в вашем фильтре? Если у вас даты с БД в другом формате приходят?
Упрощая если у вас формат даты различается на клиенте и на сервере.
А такое легко может быть ибо люди разные и настройки могут ставить разные.
А в конечном счете пользователь прав и программист должен делать так как хочет пользователь, а не исходить из а мы пользователя заставим.
2
 Аватар для Andrys74
217 / 81 / 6
Регистрация: 23.04.2012
Сообщений: 340
25.01.2013, 08:41
Цитата Сообщение от rdama Посмотреть сообщение
Вот не надо так делать DateToStr(DateTimerPicker.Date);.
Ибо что вернет Если дата имеет вид "13.05.2013", а что если так "05.13.2012", а если еще как-нить?
Тогда что будет в вашем фильтре? Если у вас даты с БД в другом формате приходят?
Упрощая если у вас формат даты различается на клиенте и на сервере.
А такое легко может быть ибо люди разные и настройки могут ставить разные.
А в конечном счете пользователь прав и программист должен делать так как хочет пользователь, а не исходить из а мы пользователя заставим.
Абсолютно с Вами согласен, но в данном случае человеку надо научиться просто строить фильтрацию, а уж потом учитывать все тонкости и ньюансы. Как говориться: от простого к сложному
1
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
25.01.2013, 08:46
Дак лучше сразу учиться делать все правильно, нежели потом переучиваться. ПРосто надо сразу усвоить что не надо использовать такие варианты как DateToStr(DateTimerPicker.Date) если ты не знаешь и не предполагаешь какой формат даты может быть.
А если знаешь и уверен что будет так а не иначе то пользуй DateFormat.
Не знаешь используй тип TDate или TDateTime.
Ну и конечно болезнь всех новичков "запросы с параметрами".
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
25.01.2013, 11:53  [ТС]
ADOQuery не использую потому что не умею я SQL запросы писать
вот гадаю как через ADOTabl провести все дело.. а вообще поля отображают предмет и оценку..
дататаймпикер нужен что б видеть оценки такого то студента в ту или иную дату..
а в самой таблицы есть поля и фамилия и дата(формат поля дата/время)..
0
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
25.01.2013, 12:49
Учите SQL!
Без него в разработке БД делать нечего.
Если на дот нет есть аналог в виде linq, то в delphi только sql.
Ну и вы пока не представляете на сколько это мощное средство.
0
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
25.01.2013, 17:02  [ТС]
я знаю что обрабатывает через скул запросы быстрей и работа программы быстрей и меньше оормозит.. просто изучать SQL времени нет..
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,602
28.01.2013, 05:19
Цитата Сообщение от ghjuf Посмотреть сообщение
я знаю что обрабатывает через скул запросы быстрей и работа программы быстрей и меньше оормозит.. просто изучать SQL времени нет..
Научишь! Когда тебя вставить такой задачу, что без SQL не решается , потом научишь ... времени нет = Это просто лень
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
28.01.2013, 06:05  [ТС]
просто уже все на ADOTable сделано.. все ж переделывать под SQL лень тоже..
а вообще как то сделал я фильтр на Пикере этом.. но он не работает.. отфильтровал я Грид по фамилии 1-й что записи выведены.. теперь по датам желательно что б все оценки в такой то день выставленные показовались по даному студенту. а он у меня пустую сетку при изменении даты показывает.. вот в самом компаненте прописал:
Delphi
1
2
3
Uspevaemost.Filtered:=false
Uspevaemost.Filter:='data_ocenki=#'+DateToStr(DateTimePicker1.Date)+'#';
Uspevaemost.Filtered:=true;
потом была попытка в кнопке поиска сделать еще фильтр на 2-й DBGrid в одном отображаються списки студентов..
а во втором чисто оценки должны отображатсья по 1 студенту.
такой код пробывал
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
procedure TForm1.Button2Click(Sender: TObject);
var filtr, // формируемая строка фильтра
d:string;
begin
anketa.Filtered:=false;
 
filtr:='';
if length(edit1.Text)>0 then
filtr:='Fam ='+QuotedStr(edit1.Text);
if length(edit2.Text)>0 then
begin
if length(filtr)>0 then d:=' and ' else d:='';
filtr:=filtr+d+'Imya ='+QuotedStr(edit2.Text);
end;
if length(edit3.Text)>0 then
begin
if length(filtr)>0 then d:=' and ' else d:='';
filtr:=filtr+d+'Otchestvo ='+QuotedStr(edit3.Text);
end;
if length(edit4.Text)>0 then
begin
if length(filtr)>0 then d:=' and ' else d:='';
filtr:=filtr+d+'Data_rozd ='+QuotedStr(edit4.Text);
end;
if length(edit5.Text)>0 then
begin
if length(filtr)>0 then d:=' and ' else d:='';
filtr:=filtr+d+'id_gruppi ='+QuotedStr(edit5.Text);
end;
if length(filtr)>0 then
begin
anketa.Filter:=filtr;
anketa.Filtered:=true;
end
else showmessage('Все поля пусты');
Uspevaemost.Filtered:=false;
filtr:='';
if length(edit1.Text)>0 then
filtr:='id_studenta(FK)='+QuotedStr(edit1.Text)
else showmessage('Все поля пусты');
Uspevaemost.Filtered:=false;
filtr:='';
if length(edit1.Text)>0 then
filtr:='id_studenta(FK)='+QuotedStr(edit1.Text)
else showmessage('Все поля пусты');
{вот от сюда вторую сетку DBGrid отфильтровать побывал}
Uspevaemost.Filtered:=false; {по аналогии как в начале того кода далаю..}
filtr:='';
if length(edit1.Text)>0 then
filtr:='id_studenta(FK)='+QuotedStr(edit1.Text)
else showmessage('Все поля пусты');
form1.DBGrid2.DataSource.DataSet.Active:=true; 
{пробовал что б сетка включалась ток когда условия фильтрации введены по фамилии}
 Uspevaemost.Filter:='data_ocenki=#'+DateToStr(DateTimePicker1.Date)+'#';{ну и само собой вот тот же кусок кода для пикера}
 Uspevaemost.Filtered:=true;   
end;
Добавлено через 4 минуты
если кому интересно фильтры отключаются по кнопке "отчистить"
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit7.Text:='';
anketa.Filtered:= False;
Uspevaemost.Filtered:=false; 
DBGrid2.DataSource.DataSet.Active:=false; { пытался выключить сетку вместе с фильтрами что б в ней не чего не отображалось.. потому что задача только по 1 студенту. (ЛистБокс вообще предлагали использовать но не понял я его)}
end;
Добавлено через 7 минут
Цитата Сообщение от ghjuf Посмотреть сообщение
а во втором чисто оценки должны отображатсья по 1 студенту.
поправочка оценки и предметы(в самой таблице имеется фамилия,дата оценки, предмет, оценка и группа, в сетке ток предмет и оценка).
0
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
28.01.2013, 06:19
Вы понимаете что вы генерируете тонны говнокода. Вместо того чтоб написать красивое и элегантное решение на SQL.
Опять же разница в формате представления даты вам выдаст непредсказуемый результат.
0
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
28.01.2013, 06:22  [ТС]
в таблице базы у меня поле по формату дата время стоит. и записывается туда с пикера вся инфа нормально и выводиться тоже отлично. просто фильтрация не происходит. вместо того что б "обсирать" мой способ решения задачи, лучше б что путное подсказали уважаемый.
0
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
28.01.2013, 07:45
ghjuf, Вам уже раз 5 повторили. Что ваш подход неверен.
Вы пытаетесь прикрутить стоп сигнал к зайцу.
Вам говорят, что так делать не надо, но мы сидим и усираясь просим чтоб нам помогли его туда прикрутить.
Вот вам решение. Может потребовать библиотеку при запуске.
Если попросит тогда надо будет пересобрать.
date_fltr.zip
1
10 / 10 / 0
Регистрация: 25.05.2011
Сообщений: 161
Записей в блоге: 1
28.01.2013, 17:47  [ТС]
спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2013, 17:47
Помогаю со студенческими работами здесь

Смена даты в datetimepicker при смене времени в другом поле datetimepicker
есть два поля date time picker, одно для изменения времени второе для изменения даты... нужно при попадании часов до 00 ночи, чтобы...

Как сложить поля dbedit и datetimepicker и результат записался в другой datetimepicker
procedure Tpods4et.DateTimePicker1Change(Sender: TObject); var d:string; a:integer; begin a:=strtoint(dbedit4.Text); ...

Из Datetimepicker пытаюсь вычесть Datetimepicker и получит количество дней
В общем проблема такая, пытаюсь вычесть из Datetimepicker2-Datetimepicker1, но разница в днях получается абсолютно другая, если даты...

Подскажите простую реализацию динамического массива и его использование с возможностью изменения его размера
Подскажите простую реализацию динамического масива и его использование с возможностью изменения его размера........спасибо))) ...

Отображать в DateTimePicker-а сегодняшнюю дату, а не дату добавления его на форму
привет всем форумчанинам. У меня такой вопрос, как можно чтобы DateTimePicker показывал сегодняшнюю дату, а не ту дату в которую он был...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru