![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.09.2007
Сообщений: 29
|
![]()
Не обойдите новичка стороной...
Пожалуйста помогите! Значит представьте есть TDateTimePicker1 и TDateTimePicker2, рядом расположен CheckBox1, а ниже всего этого есть RadioButton1. Каков будет код , чтобы изначально два TDateTimePicker (а) были потухшими , а при нажатии на CheckBox1 они загорались (и обратно) и можно было бы осуществить поиск в выбранном диапазоне, результат которого бы отображался в TDBGrid (е), а при нажатии на RadioButton1 поиск осуществлялся бы по текущую дату (т. е. на данный момент времени), и при этом TDateTimePicker2 становился неактивным. Все запросы поиска осуществлять по нажатию на Button1. Искать необходимо по записям в таблице ? Заранее благодарен ... |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 16
|
![]()
можно было бы осуществить поиск в выбранном диапазоне, результат которого бы отображался в TDBGrid (е) - это в смысле поиск по другому какому-то полю в диапазоне задаваемых дат или нужна фильтрация таблицы по датам?
А насчёт потухающих DateTimePicker1ов можно так: procedure TForm1.CheckBox1Click(Sender: TObject); begin DateTimePicker1.Enabled:=not DateTimePicker1.Enabled; DateTimePicker2.Enabled:=not DateTimePicker2.Enabled; end; Насчёт клика по RadioButton1 - если он один, то лучше заменить его на CheckBox2, если же нужно именно нажатие на RadioButton1, то можно так (только RadioButton один редко используют, я не знаю как с него при помощи мышки можно фокус снять :-))) var LastDate:Tdatetime;// конец диапазона procedure TForm1.FormCreate(Sender: TObject);//задаём конец begin LastDate:=DateTimePicker2.Date;// дата на DateTimePicker2 end; procedure TForm1.RadioButton1Click(Sender: TObject);// меняем конец begin LastDate:=date;//date - текущая дата end; А потом задаём диапазон по DateTimePicker1.date и LastDate (это по нажатии Button1) |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 16
|
![]()
Вместо Radibutton1 советую RadioGroup1, в Items прописать 'по пикеру' и 'по текущей', RadioGroup1.itemindex присвоить 0, а по событию OnClick RadioGroup1 прописать
if RadioGroup1.itemindex=0 then begin DateTimePicker2.visible:=true; LastDate:=DateTimePicker2.Date; end else begin LastDate:=date;//date - текущая дата DateTimePicker2.visible:=false;//чтоб не мешался end; а для фильтрации есть Table1.filter:='({поле}>'+DateTimeP icker1.Date+')and({поле}<'+LastDate +')'; Table1.filtered:=false; Гарантии точности не даю, но примерно так. |
![]() |
![]() |
![]() |
#4 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
![]()
если надумаешь использовать запросі, то ....:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; CheckBox1: TCheckBox; RadioButton1: TRadioButton; Button1: TButton; procedure FormCreate(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin DateTimePicker1.Enabled :=false; DateTimePicker2.Enabled :=false; end; procedure TForm1.CheckBox1Click(Sender: TObject); begin DateTimePicker1.Enabled :=not(DateTimePicker1.Enabled); DateTimePicker2.Enabled :=not(DateTimePicker2.Enabled); end; procedure TForm1.Button1Click(Sender: TObject); begin ReportQuery .Active :=False; ReportQuery.SQL.Clear; ReportQuery.SQL.add('select *'); ReportQuery.sql.add('from proezd_main'); ReportQuery.SQL.Add('where data_d BETWEEN ![]() ![]() ReportQuery.Params[0].Value :=FormatDateTime('yyyy.mm.dd',DateT imePicker1.date); if RadioButton1.Checked then ReportQuery.Params[1].Value :=FormatDateTime('yyyy.mm.dd',now() ) else ReportQuery.Params[1].Value :=FormatDateTime('yyyy.mm.dd',DateT imePicker2.date); ReportQuery.Prepare; ReportQuery.ExecSQl ; end; end.
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 10.09.2007
Сообщений: 29
|
![]()
Pitbull, что ты в Params записал, просто ошибку выдает на нем!Типа
Undeclared identifier: 'Params' |
![]() |
![]() |
![]() |
#6 | |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
![]() Цитата:
ReportQuery.SQL.Add('where data_d BETWEEN : dt and : dtt;');// между двоеточием и dt не нужно пробелов.... Просто если я не ставлю его, то получается смайлик ... ReportQuery.Params[0].Value :=FormatDateTime('yyyy.mm.dd',DateT imePicker1.date ); если AdoQuery, то : ReportQuery.Parameters[0].value......
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 12.09.2007 в 14:10. |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 10.09.2007
Сообщений: 29
|
![]()
Благодарю Pitbull
|
![]() |
![]() |
![]() |
#8 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
![]()
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите! В АССЕМБЛЕРЕ MOV AH,1AH Что значит 1AH? | veter_s_morya | Фриланс | 1 | 16.06.2008 16:03 |
объясните что значит 3й параметр в выражении | MadBeef | Помощь студентам | 1 | 21.05.2008 16:21 |
приложение рядом с часами | ERASERROR | Общие вопросы Delphi | 10 | 23.01.2008 23:59 |
Два календаря рядом | vladimir_86 | JavaScript, Ajax | 0 | 17.01.2008 17:04 |
Что значит эта ошибка (password dialog) | мазер | Помощь студентам | 4 | 05.01.2007 13:11 |